動画やゲーム,AR/MRコンテンツで利用する音源にリアルな残響音を付加する手法として、コンボリューション(畳み込み)リバーブがあります。
これは、インパルス応答と呼ばれる実測で収録した残響音データを使って、実際に存在する空間の反響・残響を生み出すことができます。
コンボリューション リバーブ | Unreal Engine ドキュメント
コンボリューションリバーブ自体の実装は非常に簡単です。
しかし、個人で高品質なインパルス応答を収録するのは技術や機材的に難しいです。
そこで、様々な空間のインパルス応答のライブラリを無料で公開している OpenAir というWebサイトを紹介します.
インパルス応答の収録場所は、イギリス国内にある教会のような歴史的な建造物内や大学内施設のようです。
また、シミュレーションで生成したインパルス応答も掲載されています。
2022年5月時点で、計49種類のデータが公開されています。
各場所ごとに、以下の情報が含まれています。
- Information: 収録場所・機材情報・IR測定方法
- Image: 収録風景、建物の見取り図など
- Inpulse Responses:
- インパルス応答自体の波形、試聴
- インパルス応答を畳み込んだ音源の試聴
- インパルス応答の収録データ
- Read Me: 上記データの命名規則、収録データのフォーマットなど
- Acoustic Parameters: 残響時間など
- 収録場所情報(GoogleMap)
インパルス応答の収録データは基本的に1st-order Ambisonics B-format (4ch) 格納されています。
これをステレオ音源用のインパルス応答に変換するために、以下のMATLAB用スクリプトが公開されています。
- Convert B-Format to MS Stereo
- Convert B-format to Stereo UHJ
https://www.openair.hosted.york.ac.uk/?page_id=1039
MATLABスクリプトを見ると分かりますが、結局のところ、WXYZという サンプル数×チャネル数(4) の2次元配列としてインパルス応答データを読み込み、各チャネルの信号の重み付き加減算でステレオ信号用インパルス応答に変換します。
従って、上記のMATLABスクリプトを参考に実装すれば任意のプログラミング言語で利用可能です*1.
ライセンスは基本的にCC BY 4.0となっていますので、商用での利用もしやすいと思います。