(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024164882
(43)【公開日】2024-11-28
(54)【発明の名称】AGC制御装置、AGC制御方法、及びプログラム
(51)【国際特許分類】
H03G 3/20 20060101AFI20241121BHJP
H04R 3/00 20060101ALI20241121BHJP
【FI】
H03G3/20 B
H04R3/00 310
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023080576
(22)【出願日】2023-05-16
(71)【出願人】
【識別番号】308036402
【氏名又は名称】株式会社JVCケンウッド
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】藤井 優美
(72)【発明者】
【氏名】村田 寿子
(72)【発明者】
【氏名】永井 俊明
【テーマコード(参考)】
5D220
5J100
【Fターム(参考)】
5D220AA50
5D220AB08
5J100JA01
5J100JA03
5J100LA01
5J100LA13
(57)【要約】
【課題】適切にAGC制御を行うことができるAGC制御装置、AGC制御方法及びプログラムを提供する。
【解決手段】AGC制御装置は、フィルタ処理済み信号をフレーム分割して、フレーム毎に最大値を検出する最大値検出部402と、最大値に基づいて、AGC係数をフレーム毎に算出する係数算出部403と、AGC係数を平滑化することで、平滑化ゲインを算出する平滑化部404と、平滑化ゲインをフィルタ処理済み信号に乗じて、乗算信号を生成する乗算部405と、乗算信号において、ノイズが発生しているか否かを検知するノイズ検知部408と、ノイズが検知された場合、平滑化パラメータを変更する平滑化パラメータ調整部413と、を備えている。
を備えている。
【選択図】
図3
【特許請求の範囲】
【請求項1】
入力信号に対して、フィルタを用いたフィルタ処理を行うことでフィルタ処理済み信号を生成するフィルタ処理部と、
コンテンツの所定期間における前記フィルタ処理済み信号をフレーム分割して、フレーム毎に最大値を検出する最大値検出部と、
前記最大値に基づいて、AGC(Auto Gain Control)係数をフレーム毎に算出する係数算出部と、
平滑化パラメータを用いて、前記フレーム毎の前記AGC係数を平滑化することで、平滑化ゲインを算出する平滑化部と、
前記平滑化ゲインを前記フィルタ処理済み信号に乗じることで、乗算信号を生成する乗算部と、
前記乗算信号において、ノイズが発生しているか否かを検知するノイズ検知部と、
前記ノイズが検知された場合、前記平滑化パラメータを変更する平滑化パラメータ調整部と、を備えたAGC制御装置。
【請求項2】
前記平滑化部がカットオフ周波数を有するローパスフィルタを用いて、前記AGC係数の平滑化処理を行い、
前記平滑化パラメータが前記ローパスフィルタの前記カットオフ周波数である請求項1に記載のAGC制御装置。
【請求項3】
前記平滑化パラメータとして、複数のカットオフ周波数が設定されており、
前記平滑化パラメータ調整部が、前記ノイズが検知されなくなるまで、前記カットオフ周波数を初期値よりも高い値と低い値に交互に変更していく請求項2に記載のAGC制御装置。
【請求項4】
入力信号に対して、フィルタを用いたフィルタ処理を行うことでフィルタ処理済み信号を生成するステップと、
コンテンツの所定期間における前記フィルタ処理済み信号をフレーム分割して、フレーム毎に最大値を検出するステップと、
前記最大値に応じたAGC係数をフレーム毎に算出するステップと、
平滑化パラメータを用いて、前記AGC係数を平滑化することで、平滑化ゲインを算出するステップと、
前記平滑化ゲインをフィルタ処理済み信号に乗じることで、乗算信号を生成するステップと、
前記乗算信号において、ノイズが発生しているか否かを検知するステップと、
前記ノイズが検知された場合、前記平滑化パラメータを変更するステップと、を備えたAGC制御方法。
【請求項5】
コンピュータに対してAGC制御方法を実行させるためのプログラムであって、
前記AGC制御方法は
コンテンツの所定期間における入力信号に対して、フィルタを用いたフィルタ処理を行うことでフィルタ処理済み信号を生成するステップと、
前記フィルタ処理済み信号をフレーム分割して、フレーム毎に最大値を検出するステップと、
前記最大値に応じたAGC係数をフレーム毎に算出するステップと、
平滑化パラメータを用いて、前記AGC係数を平滑化することで、平滑化ゲインを算出するステップと、
前記平滑化ゲインをフィルタ処理済み信号に乗じることで、乗算信号を生成するステップと、
前記乗算信号において、ノイズが発生しているか否かを検知するステップと、
前記ノイズが検知された場合、前記平滑化パラメータを変更するステップと、を備えた、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、AGC制御装置、AGC制御方法、及びプログラムに関する。
【背景技術】
【0002】
音像定位技術として、ヘッドホンを用いて受聴者の頭部の外側に音像を定位させる頭外定位技術がある。特許文献1の頭外定位技術では、ヘッドホンから耳までの特性をキャンセルし、ステレオスピーカから耳までの4本の特性を与えることにより、音像を頭外に定位させている。
【0003】
頭外定位再生においては、2チャンネル(以下、chと記載)のスピーカから発した測定信号(インパルス音等)を聴取者本人(ユーザ)の耳に設置したマイクロフォン(以下、マイクとする)で録音する。そして、インパルス応答で得られた収音信号に基づいて、処理装置がフィルタを作成する。これにより、スピーカから外耳道のマイク位置までの空間音響伝達特性に応じたフィルタが作成される。作成したフィルタを2chのオーディオ信号に畳み込むことにより、頭外定位再生を実現することができる。
【0004】
さらに、ヘッドホンから耳までの特性をキャンセルするためのフィルタを生成するために、ヘッドホンから耳元乃至鼓膜までの特性(外耳道伝達関数ECTF、外耳道伝達特性とも言う)を聴取者本人の耳に設置したマイクで測定する。
【0005】
特許文献2には、オートゲインコントロール(AGC)装置が開示されている。このAGC装置は、入力音声信号を帯域分割フィルタで分割している。AGC装置は、分割された信号を絶対値に変換し、絶対値と重み付けデータとを乗算している。乗算された値を加算して、加算された値に基づいて、ゲインをコントロールしている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2019-62430号公報
【特許文献2】特開2002-162029号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
このような頭外定位処理装置等では、入力信号に対して各種フィルタを畳み込む等のフィルタ処理が行われている。そして、フィルタ処理された信号がヘッドホン等から出力される。このフィルタは、個人の頭部や耳介の形状によって、フィルタの周波数特性が異なるため、最適なAGC係数も異なる。さらに、コンテンツのシーンによっても周波数特性が異なるため、コンテンツのシーン及び、個人のフィルタによって、最適なAGC係数を調整することが望まれる。
【0008】
本開示は上記の点に鑑みなされたものであり、適切にAGC制御することがAGC制御装置、AGC制御方法、及びプログラムを提供するものである。
【課題を解決するための手段】
【0009】
本実施の形態にかかるAGC制御装置は、入力信号に対して、フィルタを用いたフィルタ処理を行うことでフィルタ処理済み信号を生成するフィルタ処理部と、コンテンツの所定期間における前記フィルタ処理済み信号をフレーム分割して、フレーム毎に最大値を検出する最大値検出部と、前記最大値に基づいて、AGC(Auto Gain Control)係数をフレーム毎に算出する係数算出部と、平滑化パラメータを用いて、前記フレーム毎の前記AGC係数を平滑化することで、平滑化ゲインを算出する平滑化部と、前記平滑化ゲインを前記フィルタ処理済み信号に乗じることで、乗算信号を生成する乗算部と、前記乗算信号において、ノイズが発生しているか否かを検知するノイズ検知部と、前記ノイズが検知された場合、前記平滑化パラメータを変更する平滑化パラメータ調整部と、を備えている。
【0010】
本実施の形態にかかるAGC制御方法は、入力信号に対して、フィルタを用いたフィルタ処理を行うことでフィルタ処理済み信号を生成するステップと、コンテンツの所定期間における前記フィルタ処理済み信号をフレーム分割して、フレーム毎に最大値を検出するステップと、前記最大値に応じたAGC係数をフレーム毎に算出するステップと、平滑化パラメータを用いて、前記AGC係数を平滑化することで、平滑化ゲインを算出するステップと、前記平滑化ゲインをフィルタ処理済み信号に乗じることで、乗算信号を生成するステップと、前記乗算信号において、ノイズが発生しているか否かを検知するステップと、前記ノイズが検知された場合、前記平滑化パラメータを変更するステップと、を備えている。
【0011】
本実施の形態にかかるプログラムは、コンピュータに対してAGC制御方法を実行させるためのプログラムであって、前記AGC制御方法は、コンテンツの所定期間における入力信号に対して、フィルタを用いたフィルタ処理を行うことでフィルタ処理済み信号を生成するステップと、前記フィルタ処理済み信号をフレーム分割して、フレーム毎に最大値を検出するステップと、前記最大値に応じたAGC係数をフレーム毎に算出するステップと、平滑化パラメータを用いて、前記AGC係数を平滑化することで、平滑化ゲインを算出するステップと、前記平滑化ゲインをフィルタ処理済み信号に乗じることで、乗算信号を生成するステップと、前記乗算信号において、ノイズが発生しているか否かを検知するステップと、前記ノイズが検知された場合、前記平滑化パラメータを変更するステップと、を備えている。
【発明の効果】
【0012】
本開示によれば、適切にAGC制御を行うことができるAGC制御装置、AGC制御方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【0013】
【
図1】本実施の形態に係る頭外定位処理装置を示すブロック図である。
【
図2】AGC処理を行うための処理システムの構成を模式的に示すブロック図である。
【
図3】平滑化パラメータを調整するための構成を模式的に示すブロック図である。
【
図4】フレーム間にノイズが発生した波形を模式的に示す図である。
【
図5】ノイズが発生した波形を模式的に示す図である。
【
図6】AGC制御方法を示すフローチャートである。
【
図7】AGC制御方法を示すフローチャートである。
【発明を実施するための形態】
【0014】
本実施の形態にかかる音像定位処理の概要について説明する。本実施の形態にかかる頭外定位処理は、空間音響伝達特性と外耳道伝達特性を用いて頭外定位処理を行うものである。空間音響伝達特性は、スピーカなどの音源から外耳道までの伝達特性である。外耳道伝達特性は、ヘッドホン又はイヤホンのスピーカユニットから鼓膜までの伝達特性である。本実施の形態では、ヘッドホン又はイヤホンを装着していない状態での空間音響伝達特性を測定し、かつ、ヘッドホン又はイヤホンを装着した状態での外耳道伝達特性を測定し、それらの測定データを用いて頭外定位処理を実現している。
【0015】
本実施の形態にかかる頭外定位処理は、パーソナルコンピュータ、スマートホン、タブレットPCなどのユーザ端末で実行される。ユーザ端末は、プロセッサ等の処理手段、メモリやハードディスクなどの記憶手段、液晶モニタ等の表示手段、タッチパネル、ボタン、キーボード、マウスなどの入力手段を有する情報処理装置である。ユーザ端末は、データを送受信する通信機能を有していてもよい。さらに、ユーザ端末には、ヘッドホン又はイヤホンを有する出力手段(出力ユニット)が接続される。ユーザ端末と出力手段との接続は、有線接続でも無線接続でもよい。
【0016】
以下の説明では、AGC制御装置(AGC処理部ともいう)を用いた音場再生装置として、2chの頭外定位処理装置について説明する。もちろん、AGC制御装置は、マルチチャネルの頭外定位処理装置やその他の音場再生装置について適用可能である。マルチチャネルの頭外定位処理装置にAGC制御装置を適用する場合、頭外定位処理部101(
図1参照)は、マルチチャネルの各入力信号に、頭外定位処理フィルタを畳み込むことで、2chの信号を生成する。そして、AGC制御装置が頭外定位処理部から出力される2chの信号にAGC処理を行う。
【0017】
(頭外定位処理装置)
本実施の形態にかかる音場再生装置の一例である、頭外定位処理装置100のブロック図を
図1に示す。頭外定位処理装置100は、ヘッドホン43を装着するユーザUに対して音場を再生する。そのため、頭外定位処理装置100は、LchとRchのステレオ入力信号FL、FRについて、音像定位処理を行う。LchとRchのステレオ入力信号FL、FRは、DVD(Digital Versatile Disc)プレイヤーやBD(Blu-ray Disc:登録商標))プレイヤーなどから出力されるアナログのオーディオ信号、又は、mp3(MPEG Audio Layer-3)等のデジタルオーディオデータである。
【0018】
なお、オーディオ信号、又はデジタルオーディオデータをまとめて入力信号と称する。すなわち、LchとRchのステレオ入力信号FL、FRが入力信号となっている。ステレオ入力信号FL、FRは映画やドラマなどの各種コンテンツに含まれた音声信号である。コンテンツは複数のチャプタに分割されていてもよい。各チャプタをシーンともいう。チャプタとチャプタとの間は、無音期間が設けられていてもよい。例えば、シーンが切り替わるタイミングには、無音期間があってもよい。
【0019】
本実施の形態では、頭外定位処理装置100が、フィルタを適切に処理するための演算処理を行っている。頭外定位処理装置100の演算処理部は、パーソナルコンピュータ(PC)、タブレット端末、スマートホン等であり、メモリ、及びプロセッサを備えている。メモリは、処理プログラムや各種パラメータや測定データなどを記憶している。プロセッサは、メモリに格納された処理プログラムを実行する。プロセッサが処理プログラムを実行することで、各処理が実行される。プロセッサは、例えば、CPU(Central Processing Unit)、FPGA(Field-Programmable Gate Array)、DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit)、又は、GPU(Graphics Processing Unit)等であってもよい。
【0020】
なお、頭外定位処理装置100は、物理的に単一な装置に限られるものではなく、一部の処理が異なる装置で行われてもよい。例えば、一部の処理がスマートホンなどにより行われ、残りの処理がヘッドホン43に内蔵されたDSP(Digital Signal Processor)などにより行われてもよい。
【0021】
頭外定位処理装置100は、空間音響フィルタ処理部10、逆フィルタ部41、逆フィルタ部42、AGC処理部45L、45R(まとめて、AGC処理部45ともいう)と、ヘッドホン43を備えている。空間音響フィルタ処理部10、逆フィルタ部41、及び逆フィルタ部42、AGC処理部45は、具体的にはプロセッサ等により実現可能である。空間音響フィルタ処理部10と逆フィルタ部41、42とをまとめて、頭外定位処理部101と称する。つまり、頭外定位処理部101は、空間音響フィルタ処理部10と逆フィルタ部41、42とを備えている。
【0022】
空間音響フィルタ処理部10は、空間音響伝達特性Hls、Hlo、Hro、Hrsを格納する畳み込み演算部11~12、21~22、及び加算器24、25を備えている。畳み込み演算部11~12、21~22は、空間音響伝達特性を用いた畳み込み処理を行う。空間音響フィルタ処理部10には、DVDプレイヤーなどからのステレオ入力信号FL、FRが入力される。空間音響フィルタ処理部10には、空間音響伝達特性が設定されている。空間音響フィルタ処理部10は、各chのステレオ入力信号FL、FRに対し、空間音響伝達特性のフィルタ(以下、空間音響フィルタとも称する)を畳み込む。空間音響伝達特性は被測定者の頭部や耳介で測定した頭部伝達関数HRTFでもよいし、ダミーヘッドまたは第三者の頭部伝達関数であってもよい。
【0023】
4つの空間音響伝達特性Hls、Hlo、Hro、Hrsを1セットとしたものを空間音響伝達関数とする。畳み込み演算部11、12、21、22で畳み込みに用いられるデータが空間音響フィルタとなる。空間音響伝達特性Hls、Hlo、Hro、Hrsを所定のフィルタ長で切り出すことで、空間音響フィルタが生成される。
【0024】
空間音響伝達特性Hls、Hlo、Hro、Hrsのそれぞれは、インパルス応答測定などにより、事前に取得されている。例えば、ユーザUが左右の耳にマイクをそれぞれ装着する。ユーザUの前方に配置された左右のスピーカが、インパルス応答測定を行うための、インパルス音をそれぞれ出力する。そして、スピーカから出力されたインパルス音等の測定信号をマイクで収音する。マイクでの収音信号に基づいて、空間音響伝達特性Hls、Hlo、Hro、Hrsが取得される。左スピーカと左マイクとの間の空間音響伝達特性Hls、左スピーカと右マイクとの間の空間音響伝達特性Hlo、右スピーカと左マイクとの間の空間音響伝達特性Hro、右スピーカと右マイクとの間の空間音響伝達特性Hrsが測定される。
【0025】
そして、畳み込み演算部11は、Lchのステレオ入力信号FLに対して空間音響伝達特性Hlsに応じた空間音響フィルタを畳み込む。畳み込み演算部11は、畳み込み演算データを加算器24に出力する。畳み込み演算部21は、Rchのステレオ入力信号FRに対して空間音響伝達特性Hroに応じた空間音響フィルタを畳み込む。畳み込み演算部21は、畳み込み演算データを加算器24に出力する。加算器24は2つの畳み込み演算データを加算して、逆フィルタ部41に出力する。
【0026】
畳み込み演算部12は、Lchのステレオ入力信号FLに対して空間音響伝達特性Hloに応じた空間音響フィルタを畳み込む。畳み込み演算部12は、畳み込み演算データを、加算器25に出力する。畳み込み演算部22は、Rchのステレオ入力信号FRに対して空間音響伝達特性Hrsに応じた空間音響フィルタを畳み込む。畳み込み演算部22は、畳み込み演算データを、加算器25に出力する。加算器25は2つの畳み込み演算データを加算して、逆フィルタ部42に出力する。
【0027】
逆フィルタ部41、42にはヘッドホン特性(ヘッドホンの再生ユニットとマイク間の特性)をキャンセルする逆フィルタLinv、Rinvが設定されている。逆フィルタ部41は、逆フィルタLinvを格納し、逆フィルタ部42は逆フィルタRinvを格納する。そして、空間音響フィルタ処理部10での処理が施された再生信号(畳み込み演算信号)に逆フィルタLinv、Rinvを畳み込む。逆フィルタ部41で加算器24からのLch信号に対して、Lch側のヘッドホン特性の逆フィルタLinvを畳み込む。同様に、逆フィルタ部42は加算器25からのRch信号に対して、Rch側のヘッドホン特性の逆フィルタRinvを畳み込む。逆フィルタLinv、Rinvは、ヘッドホン43を装着した場合に、ヘッドホンユニットからマイクまでの特性をキャンセルする。マイクは、外耳道入口から鼓膜までの間ならばどこに配置してもよい。
【0028】
以下、頭外定位処理部101によって頭外定位処理された信号をフィルタ処理済み信号XL,XRとする。フィルタ処理済み信号XL、XRは、入力信号にフィルタが畳み込まれた信号となっている。フィルタ処理済み信号XLはLchの信号である。フィルタ処理済み信号XRはRchの信号である。
【0029】
逆フィルタ部41は、Lchのフィルタ処理済み信号XLをAGC処理部45Lに出力する。AGC処理部45Lは、フィルタ処理済み信号XLに対して、AGC処理を施すことで出力信号YLを生成する。具体的には、AGC処理部45Lは、フィルタ処理済み信号XLの各サンプルに平滑化ゲインを乗算する。AGC処理部45Lは出力信号YLをヘッドホン43の左ユニット43Lに出力する。
【0030】
逆フィルタ部42は、Rchのフィルタ処理済み信号XRをAGC処理部45Rに出力する。AGC処理部45Rは、フィルタ処理済み信号XRに対して、AGC処理を施すことで出力信号YRを生成する。具体的には、AGC処理部45Rは、フィルタ処理済み信号XRの各サンプルに平滑化ゲインを乗算する。AGC処理部45Rは出力信号YRをヘッドホン43の右ユニット43Rに出力する。なお、
図1では、便宜上、Lch、RchのそれぞれにAGC処理部45L、45Rが設けられている構成が示されているが、実際には
図2に示すように1つのAGC処理部45がLch、Rchの信号に対してAGC処理を行う。
【0031】
ユーザUは、ヘッドホン43を装着している。ヘッドホン43は、Lchの出力信号YLとRchの出力信号YR(以下、Lchの出力信号YLとRchの出力信号YRをまとめてステレオ出力信号とも称する)をユーザUに向けて出力する。つまり、ヘッドホン43はステレオ出力信号YL,YRを出力することで、コンテンツが再生する。これにより、ユーザUの頭外に定位された音像を再生することができる。
【0032】
このように、頭外定位処理装置100は、空間音響伝達特性Hls、Hlo、Hro、Hrsに応じた空間音響フィルタと、ヘッドホン特性の逆フィルタLinv,Rinvを用いて、頭外定位処理を行っている。以下の説明において、空間音響伝達特性Hls、Hlo、Hro、Hrsに応じた空間音響フィルタと、ヘッドホン特性の逆フィルタLinv,Rinvとをまとめて頭外定位処理フィルタとする。2chのステレオ再生信号の場合、頭外定位フィルタは、4つの空間音響フィルタと、2つの逆フィルタとから構成されている。そして、頭外定位処理装置100は、ステレオ再生信号に対して合計6個の頭外定位フィルタを用いて畳み込み演算処理を行うことで、頭外定位処理を実行する。頭外定位フィルタは、ユーザU個人の測定に基づくものであることが好ましい。例えば,ユーザUの耳に装着されたマイクが収音した収音信号に基づいて、頭外定位フィルタが設定されている。
【0033】
このように空間音響フィルタと、ヘッドホン特性の逆フィルタLinv,Rinvはオーディオ信号用のフィルタである。これらのフィルタが再生信号(ステレオ入力信号FL、FR)に畳み込まれることで、頭外定位処理装置100が、頭外定位処理を実行する。
【0034】
AGC処理部45はフィルタ処理済み信号XL、XRに対して、AGC処理を施す。AGC処理部45は、フィルタ処理済み信号XL、XRの各サンプルにそれぞれAGC係数αを乗算する。AGC係数αは、サンプルに応じて異なっている。つまり、AGC係数αは時間に応じて変化する。AGC処理が施されたフィルタ処理済み信号がヘッドホン43から出力される出力信号YL、YRとなる。
【0035】
(システム構成)
次に、
図2を用いて、AGC処理を行うための処理システム構成について説明する。
図2は、AGC処理を行う処理システム200の全体構成を示すブロック図である。処理システム200は、AGC制御部210とAGC処理部45と平滑化パラメータ格納部241とAGCパラメータ格納部242とを備えている。
図2に示すAGC処理部45は、
図1のAGC処理部45L、及びAGC処理部45Rに対応している。つまり、
図1のAGC処理部45L、及びAGC処理部45Rが、1つのAGC処理部45として機能する。
【0036】
AGC処理部45は、上記の通り、ユーザがコンテンツを視聴中にオンライン処理を実行する。AGC制御部210は、ユーザのコンテンツ視聴よりも前に処理を行う。AGC制御部210は事前にオフラインでの処理を行うことができる。AGC制御部210はプロセッサやメモリなどを備えた処理装置であり、後述する処理を実行する。AGC制御部210の処理装置と、頭外定位処理装置100は、物理的に同じ装置であってもよく、異なる装置であってもよい。
【0037】
AGC制御部210は、AGC係数を算出するためのパラメータを設定する。具体的には、AGC制御部210は、フレーム毎のAGC係数と、AGC係数を平滑化するための平滑化パラメータを算出する。AGCパラメータ格納部242は、AGC処理を行うためのAGCパラメータを格納する。平滑化パラメータ格納部241は、平滑化のためのパラメータを格納する。例えば、平滑化パラメータは、IIRフィルタのカットオフ周波数である。
【0038】
AGC制御部210は、フィルタ生成部211、フィルタ格納部212、解析部213を備えている。フィルタ生成部211は、頭外定位処理に用いられるフィルタを生成する。ステレオ入力信号FL、FRを用いる場合、上記のようにフィルタ生成部211は、6つのフィルタを生成する。フィルタ生成部211は、空間音響伝達特性Hls、Hlo、Hro、Hrsに応じた空間音響フィルタと、ヘッドホン特性の逆フィルタLinv,Rinvを生成する。
【0039】
フィルタ生成部211は、ユーザがマイクを装着した状態でのインパルス応答測定に基づいて、頭外定位フィルタを生成することができる。フィルタ生成部211は、例えば、マイクとスピーカを用いたインパルス応答測定によって、空間音響フィルタを生成する。マイクとヘッドホンを用いたインパルス応答測定によって、逆フィルタLinv,Rinvを生成する。
【0040】
フィルタ生成部211は、データベースなどからユーザに適した頭外定位フィルタを生成しても良い。例えば、フィルタ生成部211は、ユーザの外耳道伝達特性を測定して、外耳道伝達特性とのマッチング処理により頭外定位フィルタを生成しても良い。フィルタ生成部211によりフィルタ生成については、公知の処理を用いることができるため、詳細な説明を省略する。
【0041】
フィルタ格納部212は、フィルタ生成部211で生成されたフィルタのフィルタ係数を格納する。フィルタ格納部212は空間音響伝達特性Hls、Hlo、Hro、Hrsに応じた空間音響フィルタと、ヘッドホン特性の逆フィルタLinv,Rinvとを格納する。フィルタ格納部212に格納されているフィルタは、
図1で示した頭外定位フィルタと同一のデータである。つまり、頭外定位受聴を行うときと同じフィルタを用いて、解析部213が、後述する解析処理を行う。
【0042】
解析部213は、入力信号FL、FRを解析して、AGC係数を設定するための平滑化パラメータを算出する。具体的には、解析部213は、フィルタ格納部212に格納されているフィルタを用いて、入力信号FL、FRに対して頭外定位処理を行うことで、フィルタ処理済み信号を生成する。ここでは、解析部213は、上記のように6つの頭外定位フィルタを用いて、頭外定位処理を行う。そして、フィルタ処理済み信号を解析することで、平滑化パラメータ及びAGC係数を生成する。解析部213の処理については後述する。
【0043】
平滑化パラメータ格納部241は、平滑化パラメータをメモリなどに格納する。AGCパラメータ格納部242は、AGCパラメータをメモリなどに格納する。AGCパラメータは、例えば、スレッショルド値vth、半減期、アタックタイム、リリースタイムである。
【0044】
次に、解析部213の構成及び処理について、
図3を用いて説明する。
図3は、解析部213の構成及び処理を説明するためのブロック図である。解析部213は、入力部401と、頭外定位処理部101と、最大値検出部402と、係数算出部403と、平滑化部404と、乗算部405と、記憶部406と、ノイズ検知部408と、解析パラメータ格納部412とを備えている。
【0045】
入力部401には、ステレオ入力信号FL、FRが入力される。頭外定位処理部101は、
図1と同様に、ステレオ入力信号FL、FRに対して頭外定位処理を行うことで、フィルタ処理済み信号XL、XRを生成する。頭外定位処理部101は、6つの頭外定位フィルタを用いて、頭外定位処理を行う。頭外定位処理部101は、フィルタ処理済み信号XL、XRを最大値検出部402、及び乗算部405に出力する。
【0046】
最大値検出部402は、フィルタ処理済み信号XL、XRをフレーム分割して、フレーム毎に最大値を検出する。最大値検出部402は、1シーン分のフィルタ処理済み信号XL、XRを複数のフレームに分割する。最大値検出部402は、所定のフレーム長及び周期によって、所定時間のフィルタ処理済み信号XL、XRをフレーム分割する。1フレームは複数のサンプルを含んでいる。例えば、1フレームは、512サンプルを含んでいる。そして、最大値検出部402は、フレーム毎に最大値を検出する。最大値検出部402は、フレーム数分の最大値vMaxLRを検出する。
【0047】
ここで、最大値検出部402は、Lch、Rchのフィルタ処理済み信号XL、XRの中から1つの最大値vMaxLRを検出する。つまり、1フレームにおける2つのフィルタ処理済み信号XL、XRの中から1つの最大値vMaxLRを検出する。
【0048】
例えば、1フレームにおいて、Lchのフィルタ処理済み信号XLの最大値をvMaxLとし、Rchのフィルタ処理済み信号XRの最大値をvMaxRとする。Lchの最大値vMaxLがRchの最大値vMaxR以上の場合、Lchの最大値vMaxLが1フレームでの最大値vMaxLRとなる。Lchの最大値vMaxLがRchの最大値vMaxRよりも小さい場合、Lchの最大値vMaxRが1フレームでの最大値vMaxLRとなる。このように、左右のチャネルのフィルタ処理済み信号のXL、XRの中からフレーム毎の最大値vMaxLRを算出する。
【0049】
係数算出部403は、最大値vMaxLRに基づいて、AGC係数を算出する。係数算出部403は、AGCパラメータ格納部242に格納されているAGCパラメータを参照して、AGC係数を算出する。AGC係数は、フレーム毎に設定された値となっている。ここで、フレーム毎に設定されたAGC係数をフレーム係数ともいう。AGCパラメータ格納部242は、例えば、スレッショルド値vth、半減期、アタックタイム、リリースタイムなどのAGCパラメータを格納している。AGCパラメータ格納部242には、これらのAGCパラメータが予め格納されている。
【0050】
スレッショルド値vthは、フィルタ処理済み信号にAGC処理による圧縮を施すか否かを判定するための値である。つまり、フィルタ処理済み信号XL、XRがスレッショルド値vthを越えたときに、振幅を圧縮する。半減期は、i番目のフレームでの最大値が半分に減衰するまでの時間を示す。アタックタイムは信号がスレッショルド値vthを越えてから圧縮が始まるまでの時間を示す時定数である。リリースタイムは、信号がスレッショルド値vthを下回ってから圧縮を終えるまでの時間を示す時定数である。
【0051】
例えば、係数算出部403は、フレーム毎のAGC係数αを以下の式(1)により求算出する。なお、以下の式(1)において、x=vMaxLRである。
【数1】
【0052】
最大値がスレッショルド値vth以下の時、AGC係数αは1となる。最大値がスレッショルド値vthよりも大きい時、AGCパラメータから算出される。AGC係数αはフレーム毎に設定されたフレーム係数である。
【0053】
平滑化部404は、フレーム毎のAGC係数αを平滑化することで、平滑化ゲインαsを算出する。平滑化ゲインαsは、フレームに含まれるサンプル毎に算出される。従って、平滑化ゲインαsは、1サンプル毎に異なる値となり得る。
【0054】
平滑化部404は、IIR(Infinite Impulse Response)フィルタを用いて、AGC係数αを平滑化する。平滑化部404は、解析パラメータ格納部412に格納されている解析パラメータを読み出す。解析パラメータは、平滑化部404における平滑化処理を調整するためのパラメータである。
【0055】
平滑化部404は、解析パラメータを参照して、AGC係数αを平滑化する。これにより、平滑化部404は、フレームに含まれるサンプル毎に平滑化ゲインαsを算出する。例えば、1フレームに含まれるサンプル数が512の場合、1フレームにおけるLch、Rchのそれぞれのフィルタ処理済み信号に対して、それぞれ512個の平滑化ゲインを算出する。
【0056】
ここで、IIRフィルタはカットオフ周波数を有するLPF(ローパスフィルタ)となっている。解析パラメータ格納部412は、複数のカットオフ周波数を格納している。カットオフ周波数は、例えば、5kHz、4kHz、3kHz、2kHz、1kHz、800Hz、500Hz、300Hz、200Hz、100Hz、50Hzとなっている。平滑化部404は、解析パラメータ格納部412に格納されている複数のカットオフ周波数の中から1つのカットオフ周波数を読み出す。
【0057】
例えば、平滑化部404は、カットオフ周波数として1kHzを読み出す。平滑化部404はカットオフ周波数が1kHzのIIRフィルタを用いて、AGC係数αを平滑化する。平滑化部404は、フレーム毎に設定されたAGC係数をIIRフィルタに入力することで、平滑化ゲインαsを算出する。
【0058】
例えば、i番目のフレームのAGC係数α(i)として、0.7が設定され、(i+1)番目のフレームのAGC係数α(i+1)として、0.6が設定されているとする。1フレームが512サンプルを含んでいるとする。この場合、平滑化部404は、フレームに含まれる全てのサンプルに対して平滑化ゲインαsを算出する。平滑化部404は、IIRフィルタを用いた平滑化処理を行っている。よって、i番目のフレームの最後のサンプルと、(i+1)番目の最初のサンプルとの間で、平滑化ゲインの違いが大きくならないようにできる。例えば、i番目のフレームの最後のサンプルにおける平滑化ゲイン値0.649とし、(i+1)番目の最初のサンプルにおける平滑化ゲインと0.650とする。平滑化部404は、フレーム間において、平滑化ゲインが滑らかな曲線を示すように設定することができる。
【0059】
このように、平滑化部404は、サンプル毎に平滑化ゲインαsを算出する。平滑化部404は、平滑化ゲインαsをフィルタ処理済み信号XL、XRに乗じる。平滑化ゲインαsはフィルタ処理済み信号XL、XRに対して共通となっている。上記のように平滑化ゲインαsはサンプル毎に異なっている。そして、フィルタ処理済み信号XL、XRのサンプル毎にそれぞれ平滑化ゲインαsが設定されている。
【0060】
記憶部406は、各サンプルに平滑化ゲインが乗じられた乗算値をメモリなどに記憶する。記憶部406は1シーン分の乗算値のデータを乗算信号として格納する。記憶部406は、Lch、Rchの乗算信号をメモリなどに格納する。
【0061】
ノイズ検知部408は1シーン分の乗算信号に対してノイズが発生しているか否かを検知する。ノイズ検知部408は種々の手法を用いてノイズを検知する。ノイズ検知部408は、例えば、
図4に示すように、フレーム間の信号レベルの差分が所定値以上の場合、ノイズが発生していると判定する。
図4では、i番目のフレームと(i+1)番目のフレームとの間でレベル差が大きくなっている。つまり、i番目のフレームの最後のサンプルと、(i+1)番目のフレームの最初のサンプルとで信号レベルの差が大きくなっている。信号レベルの差が所定値を越えた場合、ノイズ検知部408はノイズがあることを検知する。ノイズ検知部408は、連続する2つのサンプルの振幅差を所定の所定値と比較する。振幅差が所定値を越えた場合に、ノイズ検知部408は、ノイズが発生したことを検知する。
【0062】
あるいは、ノイズ検知部408は、フィルタ処理済み信号XL、XRとの振幅の差分からノイズを検出することもできる。例えば、ノイズ検知部408は、オリジナル信号と乗算信号との差分値を求める。ノイズが発生した場合、差分が大きくなる。
【0063】
オリジナル信号は平滑化ゲインを乗算する前のフィルタ処理信号である。フィルタ処理信号と乗算信号との差分値をdiffとして示す。例えば、1番目のサンプルの差分値はdiff(1)、2番目のサンプルの差分値はdiff(2)とする。ノイズ検知部408は差分値diffの変化量(傾き)を求める。例えば、ノイズ検知部408は、連続する2つの差分値diffから変化量diff’を算出する。例えば、diff’(1)=diff(2)―diff(1)となる。そして、
図5に示すように、ノイズ検知部408は、diff’が急激に大きくなった箇所でノイズが発生したことを検知する。
【0064】
ノイズ検知部408はノイズを検知したことを示す検知信号を平滑化パラメータ調整部413に出力する。平滑化パラメータ調整部413は、ノイズが発生した場合、平滑化パラメータを調整する。上記のように、平滑化パラメータはカットオフ周波数となっている。よって、平滑化パラメータ調整部413は、カットオフ周波数を変更する。例えば、最初、カットオフ周波数が1kHzとなっている。よって、ノイズ検知部408は、カットオフ周波数を2kHzに変更する。
【0065】
そして、解析部213は変更後のカットオフ周波数で、再度、入力信号を解析する。具体的には、平滑化部404は、変更されたカットオフ周波数で平滑化処理を行うことで、平滑化ゲインを生成する。そして、乗算部405は、平滑化処理で得られた平滑化ゲインをフィルタ処理信号に乗じることで、乗算信号を生成する。ノイズ検知部は、乗算信号にノイズが発生しているか否かを判定する。平滑化パラメータ調整部413は、ノイズが発生しなくなるまで、平滑化パラメータを変更する。つまり、平滑化パラメータ調整部413は、ノイズが発生しなくなるように、平滑化パラメータを調整する。
【0066】
また、平滑化パラメータ調整部413は、初期カットオフ周波数から高周波数側及び低周波数側に交互にカットオフ周波数を変更して行くことが好ましい。例えば、1kHzが初期カットオフ周波数であるとする。1kHzのカットオフ周波数でノイズが発生する場合、平滑化パラメータ調整部413はカットオフ周波数を1kHzよりも高い2kHzに変更する。カットオフ周波数が2kHzでもノイズが発生する場合、平滑化パラメータ調整部413が1kHzよりも低い800Hzに変更する。カットオフ周波数が800Hzでもノイズが発生する場合、平滑化パラメータ調整部413は1kHzよりも高い3kHzに変更する。カットオフ周波数が3kHzでもノイズが発生する場合、平滑化パラメータ調整部413は1kHzよりも低い500Hzに変更する。
【0067】
平滑化パラメータ調整部413は、ノイズが検知されなくなるまで、カットオフ周波数を初期値よりも高い値と低い値に交互に変更していく。このようにすることで、速やかに適切な平滑化パラメータを探索することができる。そして、平滑化パラメータ調整部413は、ノイズが検知されなかったカットオフ周波数を平滑化パラメータとして、メモリなどに格納する。平滑化パラメータは、シーン毎に決定される。つまり、コンテンツが複数のシーン(チャプタ)を有する場合、平滑化パラメータ調整部413は、それぞれのシーンについて、ノイズが検知されない平滑化パラメータを設定する。n番目のチャプタの平滑化パラメータを平滑化パラメータ[n]として示す。なお、nは1以上の整数である。
【0068】
平滑化パラメータ調整部413は、調整済みの平滑化パラメータを
図2の平滑化パラメータ格納部241に出力する。平滑化パラメータ格納部241は、調整済みの平滑化パラメータをメモリなどに格納する。平滑化パラメータ格納部241は、チャプタ毎に平滑化パラメータを格納する。上記のように、平滑化パラメータは、LPFのカットオフ周波数である。よって、平滑化パラメータ格納部241には、チャプタ毎に異なるカットオフ周波数が設定される。
【0069】
図2に戻り、AGC処理部45における構成及び処理について説明する。AGC処理部45は、信号入力部451と、最大値検出部452と、係数算出部453と、平滑化部454と、乗算部455と、信号出力部457とを備えている。
【0070】
信号入力部451には、頭外定位処理されたフィルタ処理済み信号XL、XRが入力される(
図1を参照)。最大値検出部452は、フィルタ処理済み信号XL、XRの最大値vMaxLRをフレーム毎に検出する。係数算出部453は、最大値vMaxLRに基づいて、フレーム毎にAGC係数αを算出する。
【0071】
最大値検出部452、及び係数算出部453における処理は、最大値検出部402、及び係数算出部403と同様であるため説明を省略する。また、係数算出部453は、AGCパラメータ格納部242から、スレッショルド値vth、半減期、アタックタイム、リリースタイムなどのAGCパラメータを取得する。ここでのAGCパラメータは、係数算出部403で用いられたAGCパラメータと同じ値となっている。よって、係数算出部453で算出されたAGC係数αは、係数算出部403で算出されたAGC係数αと同一の値となる。
【0072】
平滑化部454は、フレーム毎のAGC係数に対して平滑化処理を行うことで、平滑化ゲインαsを生成する。ここでは、平滑化部454は、平滑化部404と同様の平滑化処理を行う。平滑化部454はIIRフィルタを用いて、AGC係数αを平滑化する。IIRフィルタはカットオフ周波数を有するLPFとなっている。
【0073】
さらに、平滑化部454は、平滑化パラメータ格納部241から平滑化パラメータとしてカットオフ周波数を読み出している。従って、平滑化部454は、ノイズが検知されないように調整済みのカットオフ周波数を用いて、AGC係数を平滑化している。よって、平滑化部454が、ノイズが発生しないような平滑化ゲインαsを生成することができる。平滑化ゲインαsはサンプル毎に設定された値である。平滑化部454は、平滑化ゲインαsを乗算部455に出力する。
【0074】
乗算部455は、平滑化ゲインα
sをフィルタ処理済み信号に乗算することで、乗算信号を生成する。乗算部455の処理は、乗算部405の処理と同様の処理である。乗算部455は、乗算信号を信号出力部457に出力する。信号出力部457は乗算信号を出力信号YL、YRとして、ヘッドホン43に出力する(
図1参照)。これにより、ヘッドホン43の左ユニット43LからLchの出力信号YLが再生され、右ユニット43RからRchの出力信号YRが再生される。
【0075】
よって、ユーザUは、適切にAGC処理されたステレオ出力信号を受聴することができる。頭外定位再生処理を行う際は、頭外定位処理装置100が、リアルタイムに入力されたコンテンツの入力信号に対して頭外定位処理を行う。さらに、AGC処理部45が、予め設定したAGCパラメータと、事前に決定した平滑パラメータを用いてシーン毎に最適なAGC処理を行うことができる。平滑化パラメータは、コンテンツ、及び頭外定位フィルタに応じて設定されている。従って、AGC処理部45は、コンテンツ及び頭外定位フィルタに適したAGC処理を行うことができる。ノイズが発生しないように、コンテンツ及びユーザに合わせて最適な平滑化ゲインを設定することができるため、AGC処理部45がAGC処理を行うことができる。これにより、頭外定位受聴効果を高めることができる。
【0076】
図6,
図7は、AGC制御方法を示すフローチャートである。まず、入力部401に入力信号FL、FRが入力される(S101)。頭外定位処理部101が、頭外定位フィルタを用いて、入力信号FL,FRに対して頭外定位処理を行う(S102)。これにより、フィルタ処理済み信号XL、XRが生成される。
【0077】
最大値検出部402がフィルタ処理済み信号XL、XRをフレーム分割する(S103)。最大値検出部402が各フレームの最大値vMaxLRを検出する(S104)。係数算出部403がAGCパラメータを設定する(S105)。ここでは、係数算出部403が、AGCパラメータ格納部242からスレッショルド値vth等のAGCパラメータを読み出す。
【0078】
係数算出部403がAGCパラメータを用いて、最大値vMaxLRからAGC係数αを算出する(S106)。係数算出部403は、フレーム毎にAGC係数αを算出する。平滑化部404が解析パラメータを取得する(S107)。平滑化部404が解析パラメータ格納部412からカットオフ周波数などの解析パラメータを読み出す。最初の処理では、係数算出部403は解析パラメータとして、カットオフ周波数の初期値(例えば、1kHz)を取得する。
【0079】
平滑化部404は、解析パラメータを用いて、AGC係数αから平滑化ゲインαsを算出する(S108)。ここでは、平滑化部404は、カットオフ周波数を有するIIRを用いて、AGC係数を平滑化する。平滑化部404は、サンプル毎に平滑化ゲインαsを算出することができる。平滑化ゲインαsは左右のchで共通となっている。
【0080】
乗算部405が平滑化ゲインをフィルタ処理信号に乗算する(S109)。つまり、サンプル毎に、平滑化ゲインαsとフィルタ処理済み信号XL、XRとの積を求める。これにより、時系列に沿った乗算信号が生成される。記憶部406が乗算信号を記憶する(S110)。
【0081】
ノイズ検知部408が乗算信号にノイズが発生しているか否かを検知する(S111)。ノイズ検知部408は種々のノイズ検知処理を用いてノイズを検知することができる。そして、ノイズ検知部408は、ノイズが発生したか否かを判定する(S112)。ノイズが発生した場合(S112のYES)、平滑化パラメータ調整部413が、平滑化パラメータを変更する(S113)。そして、ステップS104に戻り、解析部213が処理を繰り返し行う。
【0082】
ノイズが発生していない場合(S112のNO)、平滑化パラメータ調整部413が、n番目のチャプタの平滑化パラメータ[n]を決定する(S114)。解析部213は、最終チャプタの解析が終了したか否かを判定する(S115)。最終チャプタの解析が終了していない場合(S115のNO)、次のチャプタの処理に移行する(S116)。そして、ステップS103に戻り、解析部213が処理を繰り返す。つまり、解析部213が、次のチャプタに対する平滑化パラメータを決定する。最終チャプタの解析が終了した場合(S115のYES)、解析部213が処理を終了する。
【0083】
このようにすることで、解析部213が、それぞれのチャプタについて適切な平滑化パラメータを求めることができる。よって、頭外定位処理装置100が各チャプタを適切に再生することができる。
【0084】
なお、平滑化部404における平滑化処理は、IIRフィルタを用いる処理に限られるものではない。カットオフ周波数を有するLPFであれば、FIRフィルタや移動平均フィルタ等を用いる処理であってもよい。また、ノイズ解析を行う前に、低域通過フィルタや帯域制限フィルタを用いて、ノイズ解析を行う帯域を限定してもよい。AGC係数の算出方法は、フィードフォワード型や平方根型に限らず、フィードバック型や級数展開型を用いてもよい。
【0085】
上記の説明では、頭外定位フィルタを入力信号FL、FRに畳み込む例について説明したが、入力信号に畳み込むフィルタは頭外定位フィルタに限られるものではない。つまり、頭外定位フィルタ以外のフィルタを畳み込んだ信号をフィルタ処理済み信号としてもよい。上記方法は、例えば、ステレオ拡大、音像定位、又はノイズキャンセル等の各種フィルタを用いた音声信号処理に利用可能である。予め設定されたフィルタに基づいて、コンテンツを再生する場合において、適切にAGC処理を行うことができる。
【0086】
上記処理のうちの一部又は全部は、コンピュータプログラムによって実行されてもよい。上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0087】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限られたものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【0088】
U ユーザ
1 被測定者
2L 左マイク
2R 右マイク
5L 左スピーカ
5R 右スピーカ
9L 左耳
9R 右耳
10 空間音響フィルタ処理部
11 畳み込み演算部
12 畳み込み演算部
21 畳み込み演算部
22 畳み込み演算部
24 加算器
25 加算器
41 逆フィルタ部
42 逆フィルタ部
43 ヘッドホン
45 AGC処理部
100 頭外定位処理装置
101 頭外定位処理部
210 AGC制御部
211 フィルタ生成部
212 フィルタ格納部
213 解析部
241 平滑化パラメータ格納部
242 AGCパラメータ格納部
401 入力部
402 最大値検出部
403 係数算出部
404 平滑化部
405 乗算部
406 記憶部
408 ノイズ検知部
412 解析パラメータ格納部
413 平滑化パラメータ調整部
452 最大値検出部
453 係数算出部
454 平滑化部
455 乗算部