逆問題による部屋推定
録音から部屋を復元するのは逆問題です。順方向の音響は「この部屋があるとき、どう聞こえるか」を問いますが、libsonare が問うのはその逆、「この音があるとき、どんな部屋がそれを生んだか」です。推定モードと信頼度スコアは、その逆問題をどう解くか、そして結果をどこまで信じるかを決める 2 つの要素です。
順方向と逆方向
順方向では、既知の部屋はそのインパルス応答(IR)でとらえられます。空間内で鳴らした完全に瞬間的なクリックの音で、直接音に加えてあらゆる反射と残響のテールを丸ごと含みます。それ以外(RT60、明瞭度、形状、吸音)はすべて、その 1 つの信号から導かれます。
逆問題はその流れを逆向きにたどります。録音から減衰を復元し、減衰から部屋を推測します。どれだけうまくいくかは、減衰が録音の中でどれだけはっきり聞こえるかで決まります。2 つのモードの違いはこの点にあります。
インパルス応答モード
インパルス応答モードでは、手拍子、風船の破裂音、スターターピストル、または再生したサインスイープを逆畳み込みした録音など、インパルス応答そのものに近い録音を解析器に与えます。減衰が信号の中にはっきり含まれていて汚れていないため、推定は最も高精度になります。録音したままのサインスイープは励振信号と部屋の応答を畳み込んだもので、IR ではありません。解析前に既知のスイープ信号で逆畳み込みしてください。自分で録音できるときはこのモードを使います。
こうしたクリーンな励起や逆畳み込み済みのスイープ応答は、analyzeImpulseResponse(...) か estimateRoom(..., { mode: 'impulse_response' }) に渡します(空間ルームスキャナーの「インパルス応答として扱う」がこれにあたります)。すると解析器はテールを掘り出そうとせず、そのまま読み取ります。
ブラインドモード
ブラインドモードの入力は音楽、音声、フィールド録音といった通常の素材で、部屋の響きを測るために録られたものではありません。クリーンなクリックはなく、残響は音源信号と絡み合っています。解析器は、テールが一瞬だけ単独で聞こえる音の隙間・ノートの切れ目・休符から、減衰をブラインドで復元しなければなりません。
- 演奏の包絡線
- 隙間で露出したテール
- 継ぎ合わせた減衰の推定
ブラインド推定は、2 つの部屋の比較や録音環境の把握といった、空間のランキングや可視化には有用ですが、建築的な測定値ではありません。根拠のある推測であり、復元できるのは音源信号の中で実際に聞き取れる減衰だけです。そのため、静かな瞬間のない大音量で連続したマスターのような隙間のない密な素材は、はっきりしたノートの切れ目や休符を持つ音楽より推定が弱くなります。
ブラインドモードが返すもの・返さないもの
ブラインド推定が復元するのは減衰だけです。rt60、帯域別 RT60、そしてそれらの上に組み立てられる部屋の推定値が得られます。明瞭度は計算されず、c50・c80・d50 は NaN で返ります。ブラインド経路には直接音の到達時刻がなく、0 から −10 dB の独立した当てはめができないため、edt は NaN です。edtBands は要求したバンド数を保ちますが、全要素が NaN になります。
信頼度
信頼度スコア(0〜1 の値。空間ルームスキャナーではパーセントで表示)は、入力が当てはめた減衰をどれだけ支持するかを報告します。仮定した部屋の形状、吸音率の事前値、音源距離が正しいことを示すスコアではありません。長く途切れないテールを持つクリーンなインパルス応答は高く、ノイズが多い素材、強く圧縮された素材、残響の乏しい素材は低くなります。
| 信頼度 | 結果の読み方 |
|---|---|
| 高い(≳ 0.7) | 減衰の当てはめがよく支持されています。推定形状を読むときは事前値を確認してください。 |
| 中程度(約 0.35〜0.7) | 比較や可視化には使えるが、細部は慎重に。 |
| 低い(≲ 0.35) | クリーンな減衰領域がなく、推定は粗い。インパルス応答の録音を試す。 |
信頼度が低いときは、クリーンなインパルス(手拍子や破裂音)を録音するか、サインスイープを録音して既知の励振信号で逆畳み込みし、得られた IR をインパルス応答モードで解析します。低い信頼度はアルゴリズムの失敗ではなく、減衰を当てはめるのに足る残響が録音から読み取れなかったという合図です。
録音がきれいでも低く出る場合が 1 つあります。インパルス応答では、スコアは EDT と RT60 の一致を評価します。そのため、音源の近くで測った場合や 2 つの空間が連成している場合のように、初期と後期の減衰が実際に異なる部屋では、データの質より低いスコアになります。そうした IR を捨てる前に、2 つの値を自分で比べてください。
libsonare が録音をどう逆解析するか
libsonare は入力からエネルギー減衰曲線を作ります。インパルス応答モードでは与えられた IR からそのまま曲線を得て、ブラインドモードではノートの解放、過渡の隙間、無音など、残響のテールが一瞬だけ聞こえる区間を特定し、それらから減衰の推定を継ぎ合わせて復元します。ブラインドモードが当てはめるのは後期減衰の RT60 だけです。直接音の到達時刻がないため EDT と明瞭度は求められず、edt は NaN、edtBands は要求された長さを保ちますが全要素が NaN です。信頼度は減衰の当てはめがどれだけ支持されるかを表します。インパルス応答では RT60 と EDT の一致度(60 dB まで外挿した長さと最初の 10 dB の傾きから求めた長さが同じであるほど、フィットは信頼できます)が支配的で、設定値 minDecayDb から決まる固定的な項も加わります。ブラインドモードでは、フレームエネルギーを指数減衰がどれだけ説明できているか、減衰の開始点がノイズフロアからどれだけ離れているか、当てはめた窓が復元された RT60 に対してどれだけ長いかが信頼度に反映されます。estimateRoom(...) では、設定した事前値のもとで帯域のカバレッジと吸音の物理的妥当性も返される信頼度に影響します。信頼度は仮定した形状、吸音率の事前値、音源距離が正しいことを示しません。スタジオで測定して逆畳み込みしたスイープ IR は、長くクリーンなテールがよく当てはまるため高い信頼度になります。大音量で密度が高く強く圧縮されたマスターは、短くノイズの多いテールの断片しか露出しないため低くなります。