反射音のリアルタイム畳込み機能および頭部回転追従機能を 搭載した3

2-P-5
反射音のリアルタイム畳込み機能および頭部回転追従機能を
搭載した3次元聴覚ディスプレイの開発*
☆堀越健也(千葉工大院・工学研)
,飯田一博(千葉工大・工)
1
はじめに
音 源 信 号 に 頭 部 伝 達 関 数 (HRTF : HeadRelated Transfer Function)を畳込み,ソフトウ
ェア上で音像を制御する聴覚ディスプレイが
開発されてきた.その中には,1 次の反射音
に対応した聴覚ディスプレイ[1, 2]があり,高
次の反射音をリアルタイムに畳込む聴覚ディ
スプレイが三橋他[3]によって開発された.
一方,モーションセンサを用いて受聴者の
頭部運動に追従し,音像を制御する動的聴覚
ディスプレイ[4]がある.受聴者の頭部運動に
よって,直接音や反射音の入射方向が変化す
る度に,入射方向に対応する HRTF を音源信
号にリアルタイムに畳込む必要があるため,
高次の反射音を含む場合,リアルタイムに畳
込むことは難しい.
本稿では,高次の反射音をリアルタイムで
畳込み,頭部回転運動にも追従する機能を開
発し,本研究室で開発している聴覚ディスプ
レイ SIRIUS に搭載したので,アルゴリズム
について報告する.
2
聴覚ディスプレイ SIRIUS の基本構成
SIRIUS は Windows 7 以降搭載の PC にて
動作する.音源信号に頭部インパルス応答
( HRIR : Head-Related Impulse Response)をリア
ルタイムに畳込み,音像を制御する.音源信
号は WAVE 形式(48000 Hz,16 bit )に対応し,
ハードディスク上に HRIR データベース(応答
長 : 512 サンプル、約 11 ms )を持つ.このデ
ータベースは,日本人成人 120 耳の上半球正
中面 7 方向(0° ~ 180°,30° 間隔)の HRIR で
構成される.さらに,両耳間時間差(ITD :
Interaural Time Difference)と組み合わせること
で 3 次元方向に展開し[5],任意の方向への音
像の制御を実現している.また,GUI 上でマ
ウスを用いて,音像位置の設定,畳込む HRIR
および音源の変更を行うことができる.さら
に,ヘッドトラッカ(9 軸モーションセンサ
ZMP IMU-Z) , 3D 位 置 セ ン サ (Kinect for
Windows)を用いて,受聴者の頭部運動,位置
情報を反映した音像制御が可能である.開発
言語は Visual C++,C#である.Fig. 1 に SIRIUS
の処理フローを示す.
開 始
<GUI部>
音源の方向,
距離を設定
<センサ部>
センサ制御
姿勢算出
ヘッドトラッカ
3D位置センサ
初期化
GUIの設定と頭部姿勢,頭部位置
から相対的な方向・距離を算出
対応する方向のHRIRを呼び出し
ITD付加処理
音源信号との畳込み
信号をバッファに送信,再生
HRIRs
終了操作が
された
Yes
No
終 了
Fig. 1 聴覚ディスプレイ SIRIUS の処理フロー
3
反射音のリアルタイム畳込み
空間において音源から発せられた音響信号
は,壁や天井による反射や,障害物による回
折等の影響を受ける.その特性を表したもの
を空間インパルス応答(RIR : Room Impulse
Response)という.RIR に左耳および右耳の
HRIR を畳込んだ,バイノーラルインパルス
応答(BRIR : Binaural Room Impulse Response)
を音源信号に畳込むことで,その空間を再現
することができる.
しかし,RIR が長い場合,従来の overlapadd 法では音源信号と BRIR をリアルタイム
に畳込むことは難しい.
本機能では三橋他[3]によって開発された,
音源信号と BRIR をフレーム (1 フレーム :
512 サンプル)で分割し,反射音をリアルタイ
ムで畳込むアルゴリズムを用いた.その概念
図を Fig. 2 に示す.
*
Development of three-dimensional auditory display with real-time convolution of reflections and head
tracking, by HORIKOSHI, Kenya and IIDA, Kazuhiro (Chiba Institute of Technology).
日本音響学会講演論文集
- 691 -
2015年9月
Sound source
開 始
S1
S2
・・・
Sn
*
*
*
BRIR1
BRIR1
BRIR1
+
+
初期化
水平面1°間隔のBRIR 360個を
メモリに読込み
S1
*
BRIR
・・・
BRIR2
<センサ部>
センサ制御
Sn
*
BRIRm-1
+
+
S1
Sn-1
*
・・・
BRIRm
Output1
Output2
・・・
Outputn
・・・
Sn
*
*
BRIRm
BRIRm
Outputm+n-2
Outputm+n-1
ヘッドトラッカ
信号をバッファに送信,再生
終了操作が
された
Yes
水平面 1° 間隔の BRIR の作成
外部ソフトウェア
幾何音響
シミュレーション
ODEON
直接音および反射音の情報を
テキストファイルから読込む
(n : 到来音の総本数)
Loop 1
d=0, 359, 1 d:加算する角度
Fig. 4 頭部回転追従の処理フロー
本処理のアルゴリズムは以下の通りである.
1) 4 章にて作成した BRIR(0° ~ 359° ,
360 個)をメモリに読み込む
2) センサから頭部姿勢情報を取得し,Yaw
を角度(度)に変換する
3) Yaw の角度から対応する BRIR をメモ
リから呼び出す
4) 呼び出した BRIR と音源信号を 3 章に
て述べた方法にて畳込む
5) 4)の畳込みによって得た信号をバッファ
に送信し,再生する
6) 2)~6)をプログラム終了まで繰り返す
Loop 2
m=0, n-1, 1
m番の反射音の方位角φ [度] にdを加算
m番の反射音の角度を変換
(球座標系φ,θ → 矢状面座標系α,β)
上昇角βに対応するHRIRを呼び出し
HRIRs
1ステップ前で得たHRIRと反射音を畳込む
BRIR (L,R) をテキストファイルで出力
両耳間時間差 (ITD) を計算
1ステップ前で得た結果に到達時間 + ITD分
ずらしてBRIR作成用配列に加算
Loop 1
Loop 2
終 了
Fig. 3 水平面 1° 間隔の BRIR 作成処理フロー
本処理のアルゴリズムは以下の通りである.
1) 幾何音響シミュレーション ODEON[6]
にて 1/3 オクターブバンドごとに RIR を
計算する
2) 全帯域の RIR を合成する
3) RIR の直接音および反射音の仰角に
対応する HRIR を畳込む
4) RIR の直接音および反射音の方位角から
ITD を求め,左耳または右耳の信号を
ITD 分遅らせる
5) 左耳および右耳の BRIR として出力する
6) 受聴者を水平面内にて 1° 回転させ,
359° まで 2)~6)を繰り返す
5
頭部回転追従
本機能では頭部運動のうち,Yaw における
頭部回転運動に追従するアルゴリズムを開発
した.処理フローを Fig. 4 に示す.
日本音響学会講演論文集
No
終 了
開 始
RIRs
頭部姿勢情報から
Yawを角度 (度) に変換
フレーム分割による
反射音のリアルタイム畳込み
受聴者の頭部回転運動に追従するために,
受聴者を水平面内にて 1° 間隔で回転させた,
0° ~ 359° の BRIR を作成するアルゴリズム
を開発した.処理フローを Fig. 3 に示す.
初期化:BRIR作成用配列の確保
頭部姿勢情報を取得
対応する方向のBRIRを呼び出し
Fig. 2 反射音のリアルタイム畳込みの概念[3]
4
BRIRs
6
おわりに
本稿では,
反射音をリアルタイムに畳込み,
頭部回転運動にも追従するアルゴリズムを
述べ,聴覚ディスプレイに搭載した.
謝辞
本研究の一部は文科省私立大学戦略的研究
基盤形成支援事業(S1311003)により実施した.
参考文献
[1] J.D.Miller, E.M.Wenzel, ICAD 2001, 2001.
[2] 大内他, 日本音響学会誌 62 (3) , 224-232,
2006.
[3] 三橋他, 音講論 (秋) , 709 – 710, 2013.
[4] J.D.Miller, E.M.Wenzel, ICAD 2002, 2002.
[5] Morimoto et al., Acoust. Sci. Tech., 24 (5),
267-275, 2003.
[6] ODEON, http://www.odeon.dk/
- 692 -
2015年9月