(57)【要約】【課題】音圧が高いことに起因する音声劣化を抑制する。【解決手段】検出部が、第１のマイクを介して入力された第１音声信号に、音圧が高いことに起因する音声劣化が生じているか否かを検出する。検出部により第１音声信号の音声劣化が検出された場合に、補正部が、第１のマイクとは異なる位置に設けられた第２のマイクを介して入力され、かつ第１音声信号より音圧が低くなるようにゲイン調整された第２音声信号に基づいて、第１音声信号に音声劣化が生じていない場合の第３音声信号を推定し、第３音声信号を用いて第１音声信号を補正する。【選択図】図２
2017011541.tif 000002
【特許請求の範囲】
【請求項１】
第１のマイクを介して入力された第１音声信号に、音圧が高いことに起因する音声劣化が生じているか否かを検出する検出部と、
前記検出部により前記第１音声信号の音声劣化が検出された場合に、第２のマイクを介して入力され、かつ前記第１音声信号より音圧が低くなるようにゲイン調整された第２音声信号に基づいて、前記第１音声信号に音声劣化が生じていない場合の第３音声信号を推定し、該第３音声信号を用いて前記第１音声信号を補正する補正部と、
を含む音声処理装置。
【請求項２】
前記検出部は、所定数のサンプルを含むフレーム毎に、前記第１音声信号のレベルが所定値を超えている部分がある場合に、該フレームに前記音声劣化が生じていることを検出する請求項１記載の音声処理装置。
【請求項３】
前記補正部は、前記第１音声信号と前記第３音声信号とを所定の比率で合成することにより、前記第１音声信号を補正する請求項１又は請求項２記載の音声処理装置。
【請求項４】
前記検出部は、所定数のサンプルを含むフレーム毎に、前記第１音声信号のレベルが所定値を超えている部分の長さに基づいて、前記音声劣化の度合いを算出し、
前記補正部は、前記検出部により算出された前記音声劣化の度合いに応じて、前記所定の比率を決定する
請求項３記載の音声処理装置。
【請求項５】
前記補正部は、前記検出部により算出された前記音声劣化の度合いが大きいほど、前記第３音声信号の比率が高くなるように、前記所定の比率を決定する請求項４記載の音声処理装置。
【請求項６】
前記補正部は、フレームの開始部分から徐々に前記第３音声信号の比率が高くなるように前記第１音声信号と合成すると共に、該フレームの終了部分に向けて徐々に前記第３音声信号の比率が低くなるように前記第１音声信号と合成する請求項３〜請求項５のいずれか１項記載の音声処理装置。
【請求項７】
前記補正部は、前記第３音声信号のレベルの最大値が、音声処理装置で表現可能なレベルの最大値となるように、前記第３音声信号のレベルを調整する請求項１〜請求項６のいずれか１項記載の音声処理装置。
【請求項８】
前記第１音声信号と前記第２音声信号との位相差から、前記第１のマイク及び前記第２のマイクに対する音声の到来方向を算出する到来方向算出部と、
前記到来方向算出部により算出された音声の到来方向毎に、前記第１音声信号と前記第２音声信号との比と、過去に学習された補正特性とに基づいて、前記第２音声信号から前記第３音声信号を推定するための補正特性を学習する学習部と、を含み、
前記補正部は、前記第２音声信号と、該第２音声信号について前記到来方向算出部により算出された音声の到来方向について学習された補正特性とに基づいて、前記第３音声信号を推定する
請求項１〜請求項７のいずれか１項記載の音声処理装置。
【請求項９】
前記第１のマイク、及び該第１のマイクから出力された音声信号をゲイン調整して、前記第１音声信号として出力する第１ゲイン調整部を含む第１音声信号出力部と、
前記第２のマイク、及び該第２のマイクから出力された音声信号を、前記第１ゲイン調整部より小さいゲインでゲイン調整して、前記第２音声信号として出力する第２ゲイン調整部を含む第２音声信号出力部と、
請求項１〜請求項８のいずれか１項記載の音声処理装置と、
前記補正部により補正された前記第１音声信号を送信する送信部と、
を含む通話装置。
【請求項１０】
コンピュータに、
第１のマイクを介して入力された第１音声信号に、音圧が高いことに起因する音声劣化が生じているか否かを検出し、
前記第１音声信号の音声劣化が検出された場合に、第２のマイクを介して入力され、かつ前記第１音声信号より音圧が低くなるようにゲイン調整された第２音声信号に基づいて、前記第１音声信号に音声劣化が生じていない場合の第３音声信号を推定し、該第３音声信号を用いて前記第１音声信号を補正する
ことを含む処理を実行させるための音声処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、音声処理装置、音声処理プログラム、及び通話装置に関する。
【背景技術】
【０００２】
従来、複数のマイクを用いて、これらのマイクへの音波の到来方向を判定し、かつ、ほぼ同時刻に到来する音波については、これらを合成した後、合成音波の到来方向を判定する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−９３６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、携帯電話やＩＰ電話などにおける通話において、送話音を入力する際、大音量の送話音が入力されると、音圧が高いことに起因する音声劣化、いわゆる信号の振り切れが生じてしまい、送話音質が劣化する。また、信号が振り切れないようにするために、マイクの入力ゲインを下げた場合には、送話音の音量が低下してしまう。
【０００５】
上記の従来技術では、このような信号の振り切れに対処することはできない。
【０００６】
開示の技術は、一つの側面として、音圧が高いことに起因する音声劣化を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
開示の技術は、一つの態様として、第１のマイクを介して入力された第１音声信号に、音圧が高いことに起因する音声劣化が生じているか否かを検出する検出部を備える。また、開示の技術は、前記検出部により前記第１音声信号の音声劣化が検出された場合に、第２音声信号に基づいて、前記第１音声信号に音声劣化が生じていない場合の第３音声信号を推定し、該第３音声信号を用いて前記第１音声信号を補正する補正部を備える。第２音声信号は、第２のマイクを介して入力され、かつ前記第１音声信号より音圧が低くなるようにゲイン調整された信号である。
【発明の効果】
【０００８】
一つの側面として、音圧が高いことに起因する音声劣化を抑制することができる、という効果を有する。
【図面の簡単な説明】
【０００９】
【図１】第１及び第２実施形態に係る携帯電話の概略構成を示すブロック図である。
【図２】第１及び第２実施形態に係る音声処理装置の概略構成を示す機能ブロック図である。
【図３】信号の振り切れを説明するための図である。
【図４】ゲインを下げた場合の信号の一例を示す図である。
【図５】音声の到来方向の算出を説明するための図である。
【図６】補正特性データベースの一例を示す図である。
【図７】サンプルのインデックスと、補正メインマイク信号を生成する際に用いる係数との関係の一例を示す図である。
【図８】第１及び第２実施形態に係る音声処理装置として機能するコンピュータの概略構成を示すブロック図である。
【図９】第１実施形態における音声処理の一例を示すフローチャートである。
【図１０】第１実施形態における振り切れ検出処理の一例を示すフローチャートである。
【図１１】補正特性学習処理の一例を示すフローチャートである。
【図１２】第１実施形態における振り切れ補正処理の一例を示すフローチャートである。
【図１３】推定メインマイク信号の振幅調整処理の一例を示すフローチャートである。
【図１４】振り切れ区間の最長の継続長と、振り切れ度との関係の一例を示す図である。
【図１５】第２実施形態における音声処理の一例を示すフローチャートである。
【図１６】第２実施形態における振り切れ検出処理の一例を示すフローチャートである。
【図１７】振り切れ度算出処理の一例を示すフローチャートである。
【図１８】第２実施形態における振り切れ補正処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、開示の技術に関する実施形態の一例を詳細に説明する。以下の各実施形態では、開示の技術に係る音声処理装置を、携帯電話に搭載した例について説明する。
【００１１】
＜第１実施形態＞
図１に示すように、第１実施形態に係る携帯電話１０は、アンテナ１１と、アンテナ１１を介して受信したＲＦ（Radio Frequency）信号の復調、及びアンテナ１１を介して送信する信号のＲＦ信号への変調を行うＲＦ送受信部１２とを含む。また、携帯電話１０は、信号の受信時に、アナログ信号をデジタル信号に変換すると共に、信号の送信時に、デジタル信号をアナログ信号に変換するアナログ−デジタル（ＡＤ）／デジタル−アナログ（ＤＡ）変換部１３を含む。さらに、携帯電話１０は、デジタル信号にベースバンド処理を行うベースバンド部１４を含む。
【００１２】
また、携帯電話１０は、デジタル信号をアナログ信号に変換するＤＡ変換部１５と、ＤＡ変換部１５で変換されたアナログ信号を増幅するアンプ１６と、アンプ１６で増幅された信号を出力するスピーカ１７とを含む。
【００１３】
また、携帯電話１０は、周辺の音を収音し、収音した音をアナログ信号に変換して出力するメインマイク１８Ａ及びサブマイク１８Ｂを含む。また、携帯電話１０は、メインマイク１８Ａから出力されたアナログ信号を増幅するアンプ１９Ａと、サブマイク１８Ｂから出力されたアナログ信号を増幅するアンプ１９Ｂとを含む。アンプ１９Ｂのゲインは、アンプ１９Ａのゲインよりも小さい。さらに、携帯電話１０は、アンプ１９Ａから出力されたアナログ信号をデジタル信号に変換するＡＤ変換部２０Ａと、アンプ１９Ｂから出力されたアナログ信号をデジタル信号に変換するＡＤ変換部２０Ｂとを含む。
【００１４】
また、携帯電話１０は、ＡＤ変換部２０Ａ及びＡＤ変換部２０Ｂの各々から出力されたデジタル信号を入力として受け取り、後述する音声処理を施した信号を出力する音声処理装置３０を含む。以下では、ＡＤ変換部２０Ａから出力されて音声処理装置３０に入力されるデジタル信号、すなわち、メインマイク１８Ａを介して入力された信号を「メインマイク信号」という。また、ＡＤ変換部２０Ｂから出力されて音声処理装置３０に入力されるデジタル信号、すなわち、サブマイク１８Ｂを介して入力された信号を「サブマイク信号」という。
【００１５】
なお、メインマイク１８Ａは、開示の技術の第１のマイクの一例であり、サブマイク１８Ｂは、開示の技術の第２のマイクの一例であり、アンプ１９Ａは、開示の技術の第１ゲイン調整部の一例であり、アンプ１９Ｂは、開示の技術の第２ゲイン調整部の一例である。また、メインマイク１８Ａ及びアンプ１９Ａの部分は、開示の技術の第１音声信号出力部の一例であり、サブマイク１８Ｂ及びアンプ１９Ｂの部分は、開示の技術の第２音声信号出力部の一例である。また、メインマイク信号は、開示の技術の第１音声信号の一例であり、サブマイク信号は、開示の技術の第２音声信号の一例である。
【００１６】
図２に示すように、音声処理装置３０は、機能的には、振り切れ検出部３１と、到来方向算出部３２と、補正特性学習部３３と、振り切れ補正部３４とを含む。また、音声処理装置３０の所定の記憶領域には、補正特性データベース（ＤＢ）３５が記憶される。なお、振り切れ検出部３１は、開示の技術の検出部の一例であり、補正特性学習部３３は、開示の技術の学習部の一例であり、振り切れ補正部３４は、開示の技術の補正部の一例である。
【００１７】
振り切れ検出部３１は、メインマイク信号に、音圧が高いことに起因する音声劣化、いわゆる信号の振り切れが生じているか否かを検出する。信号の振り切れとは、図３に示すように、入力されたアナログ信号をデジタル信号に変換した際、入力された信号のレベルがデジタル信号で表現可能な最大振幅又は最小振幅を超えてしまい、入力信号を正確に再現できない現象である。なお、振り切れを防止するために、アンプ１９Ａのゲインを小さくすることも考えられるが、どの程度のレベルで振り切れが生じるかを予め把握することは困難である。そのため、必要以上にアンプ１９Ａのゲインを小さくした結果、図４に示すように、入力信号の音圧の低下を招いてしまう。
【００１８】
振り切れ検出部３１は、具体的には、メインマイク信号の所定数のサンプルを含む区間であるフレーム毎に、そのフレームに含まれるサンプルの信号レベルが、予め定めた振幅上限閾値TH_MAXを超えている部分が存在するか否かを検出する。これにより、そのフレームにおいて、振り切れが生じているか否かを検出する。閾値TH_MAXは、音声処理装置３０で表現可能なデジタル信号の最大振幅より、少し小さめの値に設定しておくことができる。例えば、音声処理装置３０で表現可能なビット数を１０進数で表すと−３２７６７〜３２７６７の場合、振幅上限閾値TH_MAXは、TH_MAX＝３２７６６と設定しておくことができる。なお、本実施形態では、音声処理装置３０で表現可能なデジタル信号の最小振幅の絶対値は、音声処理装置３０で表現可能なデジタル信号の最大振幅と同一であるものとして説明する。
【００１９】
振り切れ検出部３１は、振り切れが生じているか否かの検出結果を、振り切れ補正部３４へ受け渡す。
【００２０】
到来方向算出部３２は、メインマイク信号とサブマイク信号との位相差から、メインマイク１８Ａ及びサブマイク１８Ｂに対する音声の到来方向を推定する。具体的には、到来方向算出部３２は、時間領域の信号であるメインマイク信号及びサブマイク信号を、例えば、ＦＦＴ（Fast Fourier Transform）等により周波数分析して、周波数領域の信号に変換する。周波数領域の信号に変換されたメインマイク信号をメインマイク信号スペクトル、周波数領域の信号に変換されたサブマイク信号をサブマイク信号スペクトルという。到来方向算出部３２は、周波数分析により、下記（１）式に示すメインマイク信号スペクトルの位相、及び下記（２）式に示すサブマイク信号スペクトルの位相を算出する。
【００２１】
main_phase[t][i] = tan-1(main_Im[t][i]/main_Re[t][i])          （１）
sub_phase[t][i] = tan-1(sub_Im[t][i]/sub_Re[t][i])            （２）
【００２２】
ここで、ｔはフレームのインデックス、ｉは周波数帯域のインデックスである。また、main_Re[t][i]は、メインマイク信号スペクトルの実部、main_Im[t][i]は、メインマイク信号スペクトルの虚部、sub_Re[t][i]は、サブマイク信号スペクトルの実部、及びsub_Im[t][i]は、サブマイク信号スペクトルの虚部である。
【００２３】
図５に示すように、メインマイク１８Ａとサブマイク１８Ｂとを結ぶ線と直交する線と、サブマイク１８Ｂに対する音声の到来方向とのなす角をθとする。また、メインマイク１８Ａとサブマイク１８Ｂとの間の距離をｓとする。この場合、メインマイク信号スペクトルとサブマイク信号スペクトルとの位相差は、下記（３）式となるため、音声の到来方向を示す角度θ（以下、「到来方向θ」という）は、下記（４）式で表される。
【００２４】
(2πΔfi*s*sinθ)/c = main_phase[t][i] - sub_phase[t][i]        （３）
θ= sin-1((main_phase[t][i] - sub_phase[t][i])*(c/ 2πΔfi*s))   （４）
【００２５】
ここで、Δｆｉは、周波数分析における周波数帯域ｉの帯域幅（例えば、３２．５Ｈｚ）、ｃは音速である。
【００２６】
したがって、到来方向算出部３２は、周波数分析により得たメインマイク信号スペクトルの位相main_phase[t][i]、及びサブマイク信号スペクトルの位相sub_phase[t][i]を、（４）式に代入することにより、到来方向θを算出する。
【００２７】
到来方向算出部３２は、上述の周波数分析により、下記（５）式に示すメインマイク信号スペクトルの振幅、及び下記（６）式に示すサブマイク信号スペクトルの振幅も算出する。
【００２８】
main_amp[t][i] = 
sqrt(main_Re[t][i]*main_Re[t][i] + main_Im[t][i]*main_Im[t][i])  （５）
sub_amp[t][i] = 
sqrt(sub_Re[t][i]*sub_Re[t][i] + sub_Im[t][i]*sub_Im[t][i])      （６）
【００２９】
到来方向算出部３２は、算出した到来方向θ、メインマイク信号スペクトルの振幅main_amp[t][i]及び位相main_phase[t][i]、並びにサブマイク信号スペクトルの振幅sub_amp[t][i]及び位相sub_phase[t][i]の情報を、補正特性学習部３３へ受け渡す。また、到来方向算出部３２は、算出した到来方向θ、並びにサブマイク信号スペクトルの振幅sub_amp[t][i]及び位相sub_phase[t][i]の情報を振り切れ補正部３４へ受け渡す。
【００３０】
補正特性学習部３３は、振り切れ検出部３１により振り切れが検出されていないフレームについて、後述する振り切れ補正部３４で、メインマイク信号を補正する際に用いる補正特性を学習する。メインマイク信号の補正には、振り切れが生じていないと仮定した場合のメインマイク信号として、サブマイク信号から推定した推定メインマイク信号を用いる（詳細は後述）。補正特性は、この推定メインマイク信号をサブマイク信号から生成する際にサブマイク信号に適用されるパラメータである。サブマイク信号は、サブマイク１８Ｂ及びアンプ１９Ｂを介して入力されており、アンプ１９Ｂは、アンプ１９Ａよりゲインが小さい。そのため、メインマイク信号では振り切れが生じて、元の音声を再現できていない部分が存在するとしても、サブマイク信号では、その再現できていない部分の情報を保持している可能性が高い。そこで、サブマイク信号から補正特性を学習するものである。なお、推定メインマイク信号は、開示の技術の第３音声信号の一例である。
【００３１】
具体的には、補正特性学習部３３は、現フレームについて、到来方向算出部３２から受け渡された情報、及び補正特性ＤＢ３５に保存された過去の補正特性を用いて、最新の補正特性を学習する。より具体的には、補正特性学習部３３は、下記（７）式に示す補正特性スペクトルの振幅、及び下記（８）式に示す補正特性スペクトルの位相を算出する。
【００３２】
H_amp[θ][t][i] = 
(1-α)*main_amp[t][i]/sub_amp[t][i] + α*H_amp[θ][t-1][i]        （７）
H_phase[θ][t][i] =
(1-α)*main_phase[t][i]/sub_phase[t][i] + α*H_phase[θ][t-1][i]  （８）
【００３３】
ここで、H_amp[θ][t-1][i]及びH_phase[θ][t-1][i]は、補正特性ＤＢ３５に保存された過去フレームの補正特性として最後に算出された補正特性である。αは０〜１の更新係数であり、過去に算出された補正特性をどの程度影響させて現フレームの補正特性を算出するかを定める係数である。例えば、α＝０．９９とすることができる。
【００３４】
補正特性学習部３３は、算出した補正特性スペクトルの振幅H_amp[θ][t][i]、及び補正特性スペクトルの位相H_phase[θ][t][i]を、例えば、図６に示すような、補正特性ＤＢ３５に保存する。図６の例では、補正特性ＤＢ３５は、到来方向θ毎及び周波数帯域ｉ毎に、補正特性スペクトルの振幅H_amp[θ][t][i]及び位相H_phase[θ][t][i]の各々を格納している。補正特性ＤＢ３５における各到来方向θには所定幅を持たせておく（例えば、θ１は０〜１°、θ２は１°〜２°）。そして、補正特性学習部３３は、補正特性を補正特性ＤＢ３５に保存する際には、到来方向算出部３２で算出された到来方向θに対応する欄の補正特性に上書きする。
【００３５】
なお、本実施形態では、補正特性学習部３３は、振り切れ検出部３１により振り切れが検出されていないフレームについて、補正特性を学習する場合について説明するが、全てのフレームの各々から補正特性を学習してもよい。また、上記では、到来方向算出部３２が行った周波数分析の結果を、補正特性学習部３３へ受け渡す場合について説明したが、補正特性学習部３３が周波数分析を行ってもよい。この場合、補正特性学習部３３が行った周波数分析の結果のうち、メインマイク信号スペクトルの位相main_phase[t][i]、及びサブマイク信号スペクトルの位相sub_phase[t][i]の情報を、到来方向算出部３２へ受け渡せばよい。
【００３６】
振り切れ補正部３４は、振り切れ検出部３１から受け渡された検出結果が、メインマイク信号に振り切れが生じていることを示すものである場合、メインマイク信号を補正した補正メインマイク信号を生成して出力する。具体的には、振り切れ補正部３４は、到来方向算出部３２から受け渡された到来方向θに対応する補正特性H_amp[θ][t][i]及びH_phase[θ][t][i]を、補正特性ＤＢ３５から取得する。そして、振り切れ補正部３４は、サブマイク信号スペクトルに、取得した補正特性を適用して、下記（９）式に示す推定メインマイク信号スペクトルの振幅、及び下記（１０）式に示す推定メインマイク信号スペクトルの位相を算出する。
【００３７】
est_main_amp[t][i] = sub_amp[t][i] * H_amp[θ][t][i]            （９）
est_main_phase[t][i] = sub_phase[t][i] * H_phase[θ][t][i]    （１０）
【００３８】
振り切れ補正部３４は、推定メインマイク信号スペクトルの振幅est_main_amp[t][i]及び位相est_main_phase[t][i]から、下記（１１）式に示す推定メインマイク信号スペクトルの実部、下記（１２）式に示す虚部を算出する。
【００３９】
est_main_Re[t][i] = 
est_main_amp[t][i] * cos(est_main_phase[t][i])             （１１）
est_main_Im[t][i] = 
est_main_amp[t][i] * sin(est_main_phase[t][i])             （１２）
【００４０】
振り切れ補正部３４は、推定メインマイク信号スペクトルの実部est_main_Re[t][i]及び虚部est_main_Im[t][i] を逆フーリエ変換する。これにより、振り切れ補正部３４は、周波数領域の信号である推定メインマイク信号スペクトルを、時間領域の信号である推定メインマイク信号est_main[t][k]に変換する。ここで、ｋは、サンプルのインデックスである。
【００４１】
振り切れ補正部３４は、推定メインマイク信号を、音声処理装置３０で表現可能なデジタル信号の最大振幅から最小振幅を最大限活用するように、推定メインマイク信号の振幅を調整する。具体的には、推定メインマイク信号の信号レベルの最大値をmax、及び音声処理装置３０で表現可能なデジタル信号の最大振幅をTH_MAX_AMPとすると、振り切れ補正部３４は、下記（１３）式により、振幅調整係数mod_ampを算出する。そして、振り切れ補正部３４は、下記（１４）式に示すように、推定メインマイク信号est_main[t][k]に振幅調整係数mod_ampを適用し、振幅調整した推定メインマイク信号mod_est_main[t][k]を算出する。
【００４２】
mod_amp = TH_MAX_AMP/max                                     （１３）
mod_est_main[t][k] = mod_amp * est_main[t][k]                （１４）
【００４３】
振り切れ補正部３４は、振幅調整した推定メインマイク信号と、振り切れが生じている元のメインマイク信号とを、所定の比率で合成して、補正メインマイク信号を生成する。例えば、振り切れ補正部３４は、振幅調整した推定メインマイク信号mod_est_main[t][k]と、メインマイク信号main[t][k]とを用いて、下記（１５）式により、補正メインマイク信号mod_main[t][k]を生成する。
【００４４】
mod_main[t][k] = 
(1-p) * main[t][k] + p * mod_est_main[t][k]               （１５）
【００４５】
ここで、ｐは、０〜１の任意の係数である。フレーム間の繋ぎ目で、補正メインマイク信号mod_main[t][k]が不連続になることを回避するために、係数ｐを、例えば、図７に示すような値とすることができる。図７の例では、サンプル長（１フレームのサンプル数）Ｎ（例えば、Ｎ＝１６０）のフレームにおいて、最初のサンプルからＬ個目のサンプルまで（開始部分）のサンプルに対する係数ｐは、ｐ＝ｋ／Ｌである。また、最後のサンプルからＬ個前のサンプルまで（終了部分）のサンプルに対する係数ｐは、ｐ＝１−（（ｋ−（Ｎ−Ｌ））／Ｌ）である。開始部分及び終了部分以外の部分のサンプルに対する係数ｐは、ｐ＝１である。
【００４６】
振り切れ補正部３４は、生成した補正メインマイク信号を出力する。
【００４７】
また、振り切れ補正部３４は、振り切れ検出部３１から受け渡された検出結果が、メインマイク信号に振り切れが生じていないことを示すものである場合、メインマイク信号をそのまま出力する。
【００４８】
音声処理装置３０は、例えば、図８に示すコンピュータ４０で実現することができる。コンピュータ４０はＣＰＵ４１、一時記憶領域としてのメモリ４２、及び不揮発性の記憶部４３を備える。また、コンピュータ４０は、表示装置及び入力装置等の入出力装置４８が接続される入出力インターフェース（Ｉ／Ｆ）４４を備える。また、コンピュータ４０は、記録媒体４９に対するデータの読み込みと書き込みとを制御するｒｅａｄ／ｗｒｉｔｅ（Ｒ／Ｗ）部４５、及びインターネット等のネットワークに接続されるネットワークＩ／Ｆ４６を備える。ＣＰＵ４１、メモリ４２、記憶部４３、入出力Ｉ／Ｆ４４、Ｒ／Ｗ部４５、及びネットワークＩ／Ｆ４６は、バス４７を介して互いに接続される。
【００４９】
記憶部４３は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（solid state drive）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部４３には、コンピュータ４０を音声処理装置３０として機能させるための音声処理プログラム５０が記憶される。また、記憶部４３は、補正特性ＤＢ３５を構成する補正特性情報が記憶される補正特性情報記憶領域５５を有する。
【００５０】
ＣＰＵ４１は、音声処理プログラム５０を記憶部４３から読み出してメモリ４２に展開し、音声処理プログラム５０が有するプロセスを順次実行する。また、ＣＰＵ４１は、補正特性情報記憶領域５５から補正特性情報を読み出し、補正特性ＤＢ３５をメモリ４２に展開する。
【００５１】
音声処理プログラム５０は、振り切れ検出プロセス５１と、到来方向算出プロセス５２と、補正特性学習プロセス５３と、振り切れ補正プロセス５４とを有する。ＣＰＵ４１は、振り切れ検出プロセス５１を実行することで、図２に示す振り切れ検出部３１として動作する。また、ＣＰＵ４１は、到来方向算出プロセス５２を実行することで、図２に示す到来方向算出部３２として動作する。また、ＣＰＵ４１は、補正特性学習プロセス５３を実行することで、図２に示す補正特性学習部３３として動作する。また、ＣＰＵ４１は、振り切れ補正プロセス５４を実行することで、図２に示す振り切れ補正部３４として動作する。これにより、音声処理プログラム５０を実行したコンピュータ４０が、音声処理装置３０として機能することになる。
【００５２】
なお、音声処理プログラム５０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ（Application Specific Integrated Circuit）等で実現することも可能である。
【００５３】
次に、第１実施形態に係る携帯電話１０の作用について説明する。携帯電話１０において、通話機能が起動され、送話音声がメインマイク１８Ａ及びサブマイク１８Ｂに入力される。メインマイク１８Ａ及びサブマイク１８Ｂの各々から、送話音声を示すアナログ信号が出力される。アナログ信号は、アンプ１９Ａ及びアンプ１９Ｂに入力され、アンプ１９Ａ及びアンプ１９Ｂ各々に設定されたゲインでゲイン調整されて出力される。アンプ１９Ａ及びアンプ１９Ｂの各々から出力されたアナログ信号は、ＡＤ変換部２０Ａ及びＡＤ変換部２０Ｂに入力され、それぞれデジタル信号に変換されたメインマイク信号main[t][k]、及びサブマイク信号sub[t][k]を出力する。そして、メインマイク信号main[t][k]及びサブマイク信号sub[t][k]が音声処理装置３０に入力されると、音声処理装置３０が、フレームｔについて、図９に示す音声処理を実行する。なお、ｋは、ｋ＝０，１，２，・・・，Ｎ−１である。すなわち、１フレームのサンプル数はＮ（例えば、Ｎ＝１６０）である。
【００５４】
図９に示す音声処理のステップＳ１０で、振り切れ検出部３１が、図１０に詳細を示す振り切れ検出処理を実行する。
【００５５】
図１０に示す振り切れ検出処理のステップＳ１１で、振り切れ検出部３１が、サンプルのインデックスを示す変数ｋを０に設定し、信号レベルが振幅上限閾値TH_MAXを超えたサンプルの連続数をカウントするための変数fmaxを０に設定する。
【００５６】
次に、ステップＳ１２で、振り切れ検出部３１が、現フレームｔにおけるメインマイク信号のｋ番目のサンプルの信号レベルの絶対値｜main[t][k]｜が、予め定めた振幅上限閾値TH_MAXを超えているか否かを判定する。｜main[t][k]｜＞TH_MAXの場合には、処理はステップＳ１３へ移行し、振り切れ検出部３１が、fmaxを１インクリメントする。次に、ステップＳ１４で、振り切れ検出部３１が、fmaxが、振り切れ判定閾値TH１より大きいか否かを判定する。振り切れ判定閾値TH１は、サンプルの信号レベルが、TH１を超える回数連続して振幅上限閾値TH_MAXを超えた場合に、そのフレームに振り切れが生じていると判定するための閾値である。例えば、TH１＝３とすることができる。fmax＞TH１の場合には、処理はステップＳ１５へ移行し、fmax≦TH１の場合には、処理はステップＳ１７へ移行する。
【００５７】
ステップＳ１５では、振り切れ検出部３１が、振り切れが生じていることを示す検出結果「振り切れあり」を出力して、音声処理（図９）に戻る。
【００５８】
一方、上記ステップＳ１２で、｜main[t][k]｜≦TH_MAXと判定された場合には、処理はステップＳ１６へ移行し、振り切れ検出部３１が、fmaxを０に戻し、処理はステップＳ１７へ移行する。
【００５９】
ステップＳ１７では、振り切れ検出部３１が、ｋを１インクリメントする。次に、ステップＳ１８で、振り切れ検出部３１が、ｋがＮ−１を超えたか否かを判定することにより、フレームｔの最終サンプルまで処理が終了したか否かを判定する。ｋ≦Ｎ−１の場合には、処理はステップＳ１２に戻り、上述の処理を繰り返す。一方、ｋ＞Ｎ−１の場合には、処理はステップＳ１９へ移行し、振り切れ検出部３１が、振り切れが生じていないことを示す検出結果「振り切れなし」を出力して、音声処理（図９）に戻る。
【００６０】
次に、図９に示す音声処理のステップＳ３０で、到来方向算出部３２が、メインマイク信号main[t][k]、及びサブマイク信号sub[t][k] を周波数分析する。周波数分析により、到来方向算出部３２は、メインマイク信号スペクトルの振幅main_amp[t][i]及び位相main_phase[t][i]、並びにサブマイク信号スペクトルの振幅sub_amp[t][i]及び位相sub_phase[t][i]を得る。そして、到来方向算出部３２は、メインマイク信号スペクトルの位相main_phase[t][i] 、及びサブマイク信号スペクトルの位相sub_phase[t][i]を、（４）式に代入することにより、到来方向θを算出する。
【００６１】
次に、ステップＳ４０で、振り切れ検出部３１が、フレームｔに振り切れが生じているか否かを、上記ステップＳ１５又はＳ１９（図１０）で出力した検出結果に基づいて判定する。振り切れが生じている場合には、処理はステップＳ７０へ移行し、振り切れが生じていない場合には、処理はステップＳ５０へ移行する。
【００６２】
ステップＳ５０では、補正特性学習部３３が、図１１に詳細を示す補正特性学習処理を実行する。
【００６３】
図１１に示す補正特性学習処理のステップＳ５１で、補正特性学習部３３は、到来方向算出部３２で算出された到来方向θ及び周波数分析の結果を取得する。周波数分析の結果とは、メインマイク信号スペクトルの振幅main_amp[t][i]及び位相main_phase[t][i]、並びにサブマイク信号スペクトルの振幅sub_amp[t][i]及び位相sub_phase[t][i]である。
【００６４】
次に、ステップＳ５２で、補正特性学習部３３が、補正特性ＤＢ３５から、到来方向θに対応する過去の補正特性を取得する。そして、補正特性学習部３３は、周波数分析の結果と、取得した過去の補正特性とを用いて、（７）式に示す補正特性スペクトルの振幅H_amp[θ][t][i]、及び（８）式に示す補正特性スペクトルの位相H_phase[θ][t][i]を算出する。
【００６５】
次に、ステップＳ５３で、補正特性学習部３３は、到来方向算出部３２で算出された到来方向θに対応する補正特性ＤＢ３５の欄に保存されている補正特性を、算出した補正特性で上書きすることにより保存し、音声処理（図９）に戻る。
【００６６】
次に、図９に示す音声処理のステップＳ６０で、振り切れ補正部３４は、元のメインマイク信号main[t][k]をそのまま出力し、音声処理は終了する。
【００６７】
なお、ステップＳ５０の処理とステップＳ６０の処理とは、いずれを先に実行してもよいし、また、両方の処理を並行して実行するようにしてもよい。
【００６８】
一方、ステップＳ７０では、振り切れ補正部３４が、詳細を図１２に示す振り切れ補正処理を実行する。
【００６９】
図１２に示す振り切れ補正処理のステップＳ７１で、振り切れ補正部３４が、到来方向算出部３２で算出された到来方向θ、並びにサブマイク信号スペクトルの振幅sub_amp[t][i]及び位相sub_phase[t][i]を取得する。そして、振り切れ補正部３４は、取得した到来方向θに対応する補正特性H_amp[θ][t][i]及びH_phase[θ][t][i]を、補正特性ＤＢ３５から取得する。
【００７０】
次に、ステップＳ７２で、振り切れ補正部３４が、サブマイク信号スペクトルの振幅sub_amp[t][i]及び位相sub_phase[t][i]に、取得した補正特性H_amp[θ][t][i]及びH_phase[θ][t][i]を適用する。これにより、振り切れ補正部３４は、（９）式に示す推定メインマイク信号スペクトルの振幅est_main_amp[t][i]、及び（１０）式に示す推定メインマイク信号スペクトルの位相est_main_phase[t][i]を算出する。そして、振り切れ補正部３４は、推定メインマイク信号スペクトルの振幅est_main_amp[t][i]及び位相est_main_phase[t][i]から、（１１）式に示す推定メインマイク信号スペクトルの実部est_main_Re[t][i]、下記（１２）式に示す虚部est_main_Im[t][i]を算出する。さらに、振り切れ補正部３４は、推定メインマイク信号スペクトルの実部est_main_Re[t][i]及び虚部est_main_Im[t][i] を逆フーリエ変換することにより、推定メインマイク信号est_main[t][k]を算出する。
【００７１】
次に、ステップＳ７３で、振り切れ補正部３４が、図１３に詳細を示す推定メインマイク信号の振幅調整処理を実行する。
【００７２】
図１３に示す推定メインマイク信号の振幅調整処理のステップＳ７３１で、振り切れ補正部３４が、推定メインマイク信号est_main[t][k]の信号レベルの最大値を探索するための変数maxを０に設定する。また、振り切れ補正部３４が、フレームｔにおけるサンプルのインデックスを示す変数ｋを０に設定する。
【００７３】
次に、ステップＳ７３２で、振り切れ補正部３４が、現フレームｔにおける推定メインマイク信号のｋ番目のサンプルの信号レベルの絶対値｜est_main[t][k]｜が、maxより大きいか否かを判定する。｜est_main[t][k]｜＞maxの場合には、処理はステップＳ７３３へ移行し、振り切れ補正部３４が、｜est_main[t][k]｜の値をmaxに格納し、処理はステップＳ７３４へ移行する。一方、｜est_main[t][k]｜≦maxの場合には、処理はステップＳ７３３をスキップし、ステップＳ７３４へ移行する。
【００７４】
ステップＳ７３４では、振り切れ補正部３４が、ｋを１インクリメントする。次に、ステップＳ７３５で、振り切れ補正部３４が、ｋがＮ−１を超えたか否かを判定することにより、フレームｔの最終サンプルまで処理が終了したか否かを判定する。ｋ≦Ｎ−１の場合には、処理はステップＳ７３２に戻り、上述の処理を繰り返す。一方、ｋ＞Ｎ−１の場合には、処理はステップＳ７３６へ移行する。
【００７５】
ステップＳ７３６では、振り切れ補正部３４が、音声処理装置３０で表現可能なデジタル信号の最大振幅TH_MAX_AMPと、maxの値とを用いて、（１３）式により、振幅調整係数mod_ampを算出する。
【００７６】
次に、ステップＳ７３７で、振り切れ補正部３４が、変数ｋを０に設定する。次に、ステップＳ７３８で、振り切れ補正部３４が、推定メインマイク信号est_main[t][k]と、振幅調整係数mod_ampとを用いて、（１４）式により、振幅調整した推定メインマイク信号mod_est_main[t][k]を算出する。
【００７７】
次に、ステップＳ７３９で、振り切れ補正部３４が、ｋを１インクリメントする。次に、ステップＳ７４０で、振り切れ補正部３４が、ｋ＞Ｎ−１か否かを判定する。ｋ≦Ｎ−１の場合には、処理はステップＳ７３８に戻り、上述の処理を繰り返す。一方、ｋ＞Ｎ−１の場合には、推定メインマイク信号の振幅調整処理を終了し、振り切れ補正処理（図１２）に戻る。
【００７８】
次に、図１２に示す振り切れ補正処理のステップＳ７５で、振り切れ補正部３４が、振幅調整した推定メインマイク信号mod_est_main[t][k]と、メインマイク信号main[t][k]とを用いて、（１５）式により、補正メインマイク信号mod_main[t][k]を生成する。そして、振り切れ補正処理は終了し、処理は音声処理（図９）に戻る。
【００７９】
次に、図９に示す音声処理のステップＳ８０で、振り切れ補正部３４は、生成した補正メインマイク信号mod_main[t][k]を出力して、音声処理は終了する。
【００８０】
音声処理装置３０から出力された補正メインマイク信号mod_main[t][k]又はメインマイク信号main[t][k]は、ベースバンド部１４でベースバンド処理され、ＡＤ／ＤＡ変換部１３でアナログ信号に変換され、ＲＦ送受信部１２でＲＦ信号に変調される。そして、ＲＦ信号は、アンテナ１１を介して、通話先の携帯電話等の通信端末に送信される。したがって、振り切れが抑制された送話信号が、通話先の通信端末に送信される。
【００８１】
以上説明したように、第１実施形態に係る携帯電話１０によれば、携帯電話１０には、音声処理装置３０が搭載されている。音声処理装置３０は、メインマイク信号に振り切れが生じている場合に、メインマイク信号よりゲインが小さいサブマイク信号から、メインマイク信号を推定する。そして、音声処理装置３０は、推定したメインマイク信号を用いて、振り切れが生じたメインマイク信号を補正する。このため、音圧が高いことに起因する音声劣化、すなわち振り切れを抑制することができる。
【００８２】
また、サブマイク信号から推定したメインマイク信号は、音声処理装置３０で表現可能なデジタル信号の最大振幅から最小振幅までを最大限活用するように振幅調整される。このため、単にゲインを小さくすることにより振り切れを抑制しようとする場合に生じる入力信号の音圧低下も抑制することができる。
【００８３】
＜第２実施形態＞
次に、第２実施形態について説明する。なお、第２実施形態に係る音声処理装置を含む携帯電話について、第１実施形態と同様の部分については、同一符号を付して、詳細な説明を省略する。
【００８４】
図１に示すように、第２実施形態に係る携帯電話２１０は、アンテナ１１と、ＲＦ送受信部１２と、ＡＤ／ＤＡ変換部１３と、ベースバンド部１４と、ＤＡ変換部１５と、アンプ１６と、スピーカ１７とを含む。また、携帯電話２１０は、メインマイク１８Ａ及びサブマイク１８Ｂと、アンプ１９Ａ及びアンプ１９Ｂと、ＡＤ変換部２０Ａ及びＡＤ変換部２０Ｂと、音声処理装置２３０とを含む。
【００８５】
図２に示すように、音声処理装置２３０は、機能的には、振り切れ検出部２３１と、到来方向算出部３２と、補正特性学習部３３と、振り切れ補正部２３４とを含む。また、音声処理装置２３０の所定の記憶領域には、補正特性ＤＢ３５が記憶される。なお、振り切れ検出部２３１は、開示の技術の検出部の一例であり、振り切れ補正部２３４は、開示の技術の補正部の一例である。
【００８６】
振り切れ検出部２３１は、メインマイク信号のフレーム毎に、音圧が高いことに起因する音声劣化、いわゆる信号の振り切れがどの程度生じているかを検出する。具体的には、振り切れ検出部２３１は、メインマイク信号のフレーム毎に、そのフレームに含まれるサンプルの信号レベルが、予め定めた振幅上限閾値TH_MAXを連続して超えている振り切れ区間の継続長（サンプル数）を検出する。そして、振り切れ検出部２３１は、１つのフレームから検出した振り切れ区間の最長の継続長に基づいて、そのフレームの振り切れ度を算出する。
【００８７】
振り切れ検出部２３１は、例えば、図１４に示すように、振り切れ度として、０〜１の値を算出することができる。図１４の例では、振り切れ度frateは、振り切れ区間の最長の継続長max_fdataが、継続長上限閾値TH_FMAX（例えば、TH_FMAX＝１０）未満の場合は、frate＝max_fdata／TH_FMAXである。また、継続長max_fdataが継続長上限閾値TH_FMAX以上の場合には、frate＝１である。フレーム内で振り切れが生じていない場合には、振り切れ度frateは０である。
【００８８】
なお、振り切れ度は、図１４の例に限定されず、振り切れ区間の継続長が長いほど大きくなる値を算出すればよい。また、振り切れ区間の継続長として、最長の継続長を用いる場合に限らず、１フレーム内から検出された振り切れ区間の継続長の平均や合計を用いてもよい。
【００８９】
振り切れ検出部２３１は、算出した振り切れ度を振り切れ補正部２３４へ受け渡す。
【００９０】
振り切れ補正部２３４は、第１実施形態に係る振り切れ補正部３４と同様、サブマイク信号スペクトルに、音声の到来方向θに対応する補正特性を適用して、推定メインマイク信号を算出する。そして、振り切れ補正部２３４は、算出した推定メインマイク信号est_main[t][k]を、振り切れ度frateを用いて、下記（１６）式に示すように補正する。
【００９１】
est_main2[t][k] = 
frate * est_main[t][k] + (1-frate) * main[t][k]           （１６）
【００９２】
これは、推定メインマイク信号は、サブマイク信号から推定したものであり、本来のメインマイク信号とは異なるものであるため、本来のメインマイク信号より音声品質が低下している場合がある。そこで、振り切れ度が小さい場合には、メインマイク信号の補正に用いる推定メインマイク信号の影響を小さくするものである。
【００９３】
振り切れ補正部２３４は、振り切れ度に基づいて補正した推定メインマイク信号est_main2[t][k]から、第１実施形態の振り切れ補正部３４と同様に、振幅調整した推定メインマイク信号mod_est_main2[t][k]を算出する。また、振り切れ補正部２３４は、振幅調整した推定メインマイク信号mod_est_main2[t][k]と、メインマイク信号main[t][k]とを、所定の比率で合成して、補正メインマイク信号mod_main[t][k]を生成する。補正メインマイク信号mod_main[t][k]は、第１実施形態の振り切れ補正部３４と同様に、例えば（１５）式のmod_est_main[t][k]をmod_est_main2[t][k]に置き換えた式により算出することができる。
【００９４】
補正した推定メインマイク信号は、振り切れ度が大きいほど、推定メインマイク信号の割合が高く、振り切れ度が小さいほど、本来のメインマイク信号の割合が高くなるように補正されている。そのため、補正した推定メインマイク信号を用いて生成される補正メインマイク信号も、振り切れ度の大小に応じた割合で、本来のメインマイク信号の情報と、サブマイク信号から推定された情報とが含まれることになる。なお、振り切れが検出されなかった場合、すなわち、振り切れ度frateが０の場合には、補正メインマイク信号mod_main[t][k]＝メインマイク信号main[t][k]である。
【００９５】
振り切れ補正部２３４は、生成した補正メインマイク信号を出力する。
【００９６】
音声処理装置２３０は、例えば、図８に示すコンピュータ４０で実現することができる。コンピュータ４０の記憶部４３には、コンピュータ４０を音声処理装置２３０として機能させるための音声処理プログラム２５０が記憶される。
【００９７】
ＣＰＵ４１は、音声処理プログラム２５０を記憶部４３から読み出してメモリ４２に展開し、音声処理プログラム２５０が有するプロセスを順次実行する。音声処理プログラム２５０は、振り切れ検出プロセス２５１と、到来方向算出プロセス５２と、補正特性学習プロセス５３と、振り切れ補正プロセス２５４とを有する。ＣＰＵ４１は、振り切れ検出プロセス２５１を実行することで、図２に示す振り切れ検出部２３１として動作する。また、ＣＰＵ４１は、振り切れ補正プロセス２５４を実行することで、図２に示す振り切れ補正部２３４として動作する。他のプロセスについては、第１実施形態に係る音声処理プログラム５０と同様である。これにより、音声処理プログラム２５０を実行したコンピュータ４０が、音声処理装置２３０として機能することになる。
【００９８】
なお、音声処理プログラム２５０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【００９９】
次に、第２実施形態に係る携帯電話２１０の作用について説明する。第２実施形態では、音声処理装置２３０で実行される音声処理が第１実施形態と異なるため、音声処理について説明する。なお、第１実施形態における音声処理と同様の処理となるステップについては、同一符号を付して、詳細な説明は省略する。
【０１００】
図１５に示す音声処理のステップＳ２１０で、振り切れ検出部２３１が、図１６に詳細を示す振り切れ検出処理を実行する。
【０１０１】
図１６に示す振り切れ検出処理のステップＳ２１１で、振り切れ検出部２３１が、サンプルのインデックスを示す変数ｋ、及び振り切れ区間のインデックスを示す変数ｊを０に設定する。また、振り切れ検出部２３１は、信号レベルが振幅上限閾値TH_MAXを超えたサンプルの連続数をカウントするための変数fmax、及びｊ番目の振り切れ区間の継続長を示すfdata[j]を０に設定する。
【０１０２】
次に、ステップＳ２１２で、振り切れ検出部２３１が、現フレームｔにおけるメインマイク信号のｋ番目のサンプルの信号レベルの絶対値｜main[t][k]｜が、予め定めた振幅上限閾値TH_MAXを超えているか否かを判定する。｜main[t][k]｜＞TH_MAXの場合には、処理はステップＳ２１３へ移行し、振り切れ検出部２３１が、fmaxを１インクリメントし、処理はステップＳ２１８へ移行する。
【０１０３】
一方、上記ステップＳ２１２で、｜main[t][k]｜≦TH_MAXと判定された場合には、処理はステップＳ２１４へ移行し、振り切れ検出部２３１が、fmaxが０より大きいか否かを判定する。fmax＞０の場合、すなわち振り切れ区間が検出されている場合には、処理はステップＳ２１５へ移行し、振り切れ検出部２３１が、fdata[j]にfmaxの値を設定する。次に、ステップＳ２１６で、振り切れ検出部２３１が、fmaxを０に戻し、次のステップＳ２１７で、ｊを１インクリメントして、処理はステップＳ２１８へ移行する。一方、fmax≦０の場合、すなわち、振り切れ区間が検出されていない場合、ステップＳ２１５〜Ｓ２１７の処理はスキップされ、処理はステップＳ２１８へ移行する。
【０１０４】
ステップＳ２１８では、振り切れ検出部２３１が、ｋを１インクリメントする。次に、ステップＳ２１９で、振り切れ検出部２３１が、ｋ＞Ｎ−１か否かを判定する。ｋ≦Ｎ−１の場合には、処理はステップＳ２１２に戻り、上述の処理を繰り返す。一方、ｋ＞Ｎ−１の場合には、処理はステップＳ２２０へ移行する。
【０１０５】
ステップＳ２２０では、振り切れ検出部２３１が、fmax＞０か否かを判定する。fmax＞０の場合には、処理はステップＳ２２１へ移行し、振り切れ検出部２３１が、fdata[j]にfmaxの値を設定し、処理はステップＳ２３０へ移行する。fmax≦０の場合には、ステップＳ２２１の処理はスキップされ、処理はステップＳ２３０へ移行する。
【０１０６】
ステップＳ２３０では、振り切れ検出部２３１が、図１７に詳細を示す振り切れ度算出処理を実行する。
【０１０７】
図１７に示す振り切れ度算出処理のステップＳ２３１で、振り切れ検出部２３１が、振り切れ区間のインデックスを示す変数ｊ、及び振り切れ区間の最長の継続長を探索するための変数max_fdataを０に設定する。
【０１０８】
次に、ステップＳ２３２で、振り切れ検出部２３１が、フレームｔから検出されたｊ番目の振り切れ区間の継続長fdata[j]が、max_fdataより大きいか否かを判定する。fdata[j]＞max_fdataの場合には、処理はステップＳ２３３へ移行し、振り切れ検出部２３１が、max_fdataにfdata[j]の値を設定し、処理はステップＳ２３４へ移行する。fdata[j] ≦max_fdataの場合には、ステップＳ２３３の処理はスキップされ、処理はステップＳ２３４へ移行する。
【０１０９】
ステップＳ２３４では、振り切れ検出部２３１が、ｊを１インクリメントする。次に、ステップＳ２３５で、振り切れ検出部２３１が、ｊ＞Ｊ−１か否かを判定することにより、フレームｔから検出された全ての振り切れ区間について処理が終了したか否かを判定する。なお、Ｊは、フレームｔから検出された振り切れ区間の数である。ｊ≦Ｊ−１の場合には、処理はステップＳ２３２に戻り、上述の処理を繰り返す。一方、ｊ＞Ｊ−１の場合には、処理はステップＳ２３６へ移行する。
【０１１０】
ステップＳ２３６では、振り切れ検出部２３１が、例えば、図１４に示すような最長の継続長max_fdataと振り切れ度frateとの予め定めた関係に基づいて、フレームｔの振り切れ度frateを算出する。そして、振り切れ度算出処理（図１７）及び振り切れ検出処理（図１６）は終了し、処理は音声処理（図１５）に戻る。
【０１１１】
次に、図１５に示す音声処理のステップＳ３０で、到来方向算出部３２が、音声の到来方向θを算出する。次に、ステップＳ５０で、補正特性学習部３３が、補正特性学習処理（図１１）を実行する。なお、ステップＳ５０の処理と、後段のステップＳ２７０及びＳ８０とは、いずれを先に実行してもよいし、また、両方の処理を並行して実行するようにしてもよい。
【０１１２】
次に、ステップＳ２７０で、振り切れ補正部３４が、詳細を図１８に示す振り切れ補正処理を実行する。
【０１１３】
図１８に示す振り切れ補正処理のステップＳ７１及びＳ７２で、第１実施形態における振り切れ補正処理と同様に、振り切れ補正部２３４が、推定メインマイク信号est_main[t][k]を算出する。
【０１１４】
次に、ステップＳ２７２で、振り切れ補正部２３４が、算出した推定メインマイク信号est_main[t][k]を、上記ステップＳ２３６（図１７）で算出した振り切れ度frateを用いて、例えば（１６）式に示すように補正する。
【０１１５】
次のステップＳ７３及びＳ７５の処理については、推定メインマイク信号est_main[t][k]の代わりに、補正された推定メインマイク信号mod_est_main[t][k]を用いる点を除いて、第１実施形態における振り切れ補正処理と同様である。
【０１１６】
以上説明したように、第２実施形態に係る携帯電話２１０によれば、携帯電話２１０には、音声処理装置２３０が搭載されている。音声処理装置２３０は、メインマイク信号に振り切れが生じている場合に、メインマイク信号よりゲインが小さいサブマイク信号から、メインマイク信号を推定する。そして、音声処理装置３０は、推定したメインマイク信号を用いて、振り切れが生じたメインマイク信号を補正する。このため、音圧が高いことに起因する音声劣化、すなわち振り切れを抑制することができる。
【０１１７】
また、音声処理装置２３０は、１フレームにおいて、振り切れがどの程度生じているかを示す振り切れ度が大きい場合には、推定したメインマイク信号の比率を高めた補正メインマイク信号を生成する。一方、振り切れ度が小さい場合には、本来のメインマイク信号の比率を高めた補正メインマイク信号を生成する。このように、本来のメインマイク信号より音質が劣化することが想定される推定メインマイク信号を、振り切れ度に応じて用いることで、推定したメインマイク信号を用いることによる音声劣化を抑制することができる。
【０１１８】
なお、上記各実施形態では、開示の技術に係る音声処理装置を携帯電話に搭載した例について説明したが、これに限定されない。例えば、マイクから入力した音声をスピーカから出力する場合や、インターネットを利用した会議システム等にも適用可能である。
【０１１９】
なお、上記では、音声処理プログラム５０、２５０が記憶部４３に予め記憶（インストール）されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記録媒体に記録された形態で提供することも可能である。
【０１２０】
以上の各実施形態に関し、更に以下の付記を開示する。
【０１２１】
（付記１）
第１のマイクを介して入力された第１音声信号に、音圧が高いことに起因する音声劣化が生じているか否かを検出する検出部と、
前記検出部により前記第１音声信号の音声劣化が検出された場合に、第２のマイクを介して入力され、かつ前記第１音声信号より音圧が低くなるようにゲイン調整された第２音声信号に基づいて、前記第１音声信号に音声劣化が生じていない場合の第３音声信号を推定し、該第３音声信号を用いて前記第１音声信号を補正する補正部と、
を含む音声処理装置。
【０１２２】
（付記２）
前記検出部は、所定数のサンプルを含むフレーム毎に、前記第１音声信号のレベルが所定値を超えている部分がある場合に、該フレームに前記音声劣化が生じていることを検出する付記１記載の音声処理装置。
【０１２３】
（付記３）
前記補正部は、前記第１音声信号と前記第３音声信号とを所定の比率で合成することにより、前記第１音声信号を補正する付記１又は付記２記載の音声処理装置。
【０１２４】
（付記４）
前記検出部は、所定数のサンプルを含むフレーム毎に、前記第１音声信号のレベルが所定値を超えている部分の長さに基づいて、前記音声劣化の度合いを算出し、
前記補正部は、前記検出部により算出された前記音声劣化の度合いに応じて、前記所定の比率を決定する
付記３記載の音声処理装置。
【０１２５】
（付記５）
前記補正部は、前記検出部により算出された前記音声劣化の度合いが大きいほど、前記第３音声信号の比率が高くなるように、前記所定の比率を決定する付記４記載の音声処理装置。
【０１２６】
（付記６）
前記補正部は、フレームの開始部分から徐々に前記第３音声信号の比率が高くなるように前記第１音声信号と合成すると共に、該フレームの終了部分に向けて徐々に前記第３音声信号の比率が低くなるように前記第１音声信号と合成する付記３〜付記５のいずれか１項記載の音声処理装置。
【０１２７】
（付記７）
前記補正部は、前記第３音声信号のレベルの最大値が、音声処理装置で表現可能なレベルの最大値となるように、前記第３音声信号のレベルを調整する付記１〜付記６のいずれか１項記載の音声処理装置。
【０１２８】
（付記８）
前記第１音声信号と前記第２音声信号との位相差から、前記第１のマイク及び前記第２のマイクに対する音声の到来方向を算出する到来方向算出部と、
前記到来方向算出部により算出された音声の到来方向毎に、前記第１音声信号と前記第２音声信号との比と、過去に学習された補正特性とに基づいて、前記第２音声信号から前記第３音声信号を推定するための補正特性を学習する学習部と、を含み、
前記補正部は、前記第２音声信号と、該第２音声信号について前記到来方向算出部により算出された音声の到来方向について学習された補正特性とに基づいて、前記第３音声信号を推定する
付記１〜付記７のいずれか１項記載の音声処理装置。
【０１２９】
（付記９）
前記第１のマイク、及び該第１のマイクから出力された音声信号をゲイン調整して、前記第１音声信号として出力する第１ゲイン調整部を含む第１音声信号出力部と、
前記第２のマイク、及び該第２のマイクから出力された音声信号を、前記第１ゲイン調整部より小さいゲインでゲイン調整して、前記第２音声信号として出力する第２ゲイン調整部を含む第２音声信号出力部と、
付記１〜付記８のいずれか１項記載の音声処理装置と、
前記補正部により補正された前記第１音声信号を送信する送信部と、
を含む通話装置。
【０１３０】
（付記１０）
コンピュータに、
第１のマイクを介して入力された第１音声信号に、音圧が高いことに起因する音声劣化が生じているか否かを検出し、
前記第１音声信号の音声劣化が検出された場合に、第２のマイクを介して入力され、かつ前記第１音声信号より音圧が低くなるようにゲイン調整された第２音声信号に基づいて、前記第１音声信号に音声劣化が生じていない場合の第３音声信号を推定し、該第３音声信号を用いて前記第１音声信号を補正する
ことを含む処理を実行させるための音声処理プログラム。
【０１３１】
（付記１１）
前記音声劣化を検出することは、所定数のサンプルを含むフレーム毎に、前記第１音声信号のレベルが所定値を超えている部分がある場合に、該フレームに前記音声劣化が生じていることを検出することである付記１０記載の音声処理プログラム。
【０１３２】
（付記１２）
前記第１音声信号を補正することは、前記第１音声信号と前記第３音声信号とを所定の比率で合成することを含む付記１０又は付記１１記載の音声処理プログラム。
【０１３３】
（付記１３）
前記音声劣化を検出する際に、所定数のサンプルを含むフレーム毎に、前記第１音声信号のレベルが所定値を超えている部分の長さに基づいて、前記音声劣化の度合いを算出し、
前記第１音声信号を補正することは、算出された前記音声劣化の度合いに応じて、前記所定の比率を決定することを含む
付記１２記載の音声処理プログラム。
【０１３４】
（付記１４）
前記所定の比率を、算出された前記音声劣化の度合いが大きいほど、前記第３音声信号の比率が高くなるように決定する付記１３記載の音声処理プログラム。
【０１３５】
（付記１５）
前記第１音声信号を補正することは、フレームの開始部分から徐々に前記第３音声信号の比率が高くなるように前記第１音声信号と合成すると共に、該フレームの終了部分に向けて徐々に前記第３音声信号の比率が低くなるように前記第１音声信号と合成することを含む付記１２〜付記１４のいずれか１項記載の音声処理プログラム。
【０１３６】
（付記１６）
前記第１音声信号を補正することは、前記第３音声信号のレベルの最大値が、音声処理プログラムで表現可能なレベルの最大値となるように、前記第３音声信号のレベルを調整することを含む付記１０〜付記１５のいずれか１項記載の音声処理プログラム。
【０１３７】
（付記１７）
前記コンピュータに、
前記第１音声信号と前記第２音声信号との位相差から、前記第１のマイク及び前記第２のマイクに対する音声の到来方向を算出し、
算出された音声の到来方向毎に、前記第１音声信号と前記第２音声信号との比と、過去に学習された補正特性とに基づいて、前記第２音声信号から前記第３音声信号を推定するための補正特性を学習することをさらに含む処理を実行させ、
前記第３音声信号を、前記第２音声信号と、該第２音声信号について算出された音声の到来方向について学習された補正特性とに基づいて推定する
付記１０〜付記１６のいずれか１項記載の音声処理プログラム。
【０１３８】
（付記１８）
コンピュータに、
第１のマイクを介して入力された第１音声信号に、音圧が高いことに起因する音声劣化が生じているか否かを検出し、
前記第１音声信号の音声劣化が検出された場合に、第２のマイクを介して入力され、かつ前記第１音声信号より音圧が低くなるようにゲイン調整された第２音声信号に基づいて、前記第１音声信号に音声劣化が生じていない場合の第３音声信号を推定し、該第３音声信号を用いて前記第１音声信号を補正する
ことを含む処理を実行させるための音声処理方法。
【０１３９】
（付記１９）
コンピュータに、
第１のマイクを介して入力された第１音声信号に、音圧が高いことに起因する音声劣化が生じているか否かを検出し、
前記第１音声信号の音声劣化が検出された場合に、第２のマイクを介して入力され、かつ前記第１音声信号より音圧が低くなるようにゲイン調整された第２音声信号に基づいて、前記第１音声信号に音声劣化が生じていない場合の第３音声信号を推定し、該第３音声信号を用いて前記第１音声信号を補正する
ことを含む処理を実行させるための音声処理プログラムを記憶した記憶媒体。
【符号の説明】
【０１４０】
１０、２１０  携帯電話
１１   アンテナ
１２   ＲＦ送受信部
１３   ＡＤ／ＤＡ変換部
１４   ベースバンド部
１５   ＤＡ変換部
１６、１９Ａ、１９Ｂ アンプ
１７   スピーカ
１８Ａ メインマイク
１８Ｂ サブマイク
２０Ａ、２０Ｂ       ＡＤ変換部
３０、２３０  音声処理装置
３１、２３１  振り切れ検出部
３２   到来方向算出部
３３   補正特性学習部
３４、２３４  振り切れ補正部
３５   補正特性データベース
４０   コンピュータ
４１   ＣＰＵ
４２   メモリ
４３   記憶部
４９   記録媒体
５０、２５０  音声処理プログラム
【図１】
2017011541.tif 000003
【図２】
2017011541.tif 000004
【図３】
2017011541.tif 000005
【図４】
2017011541.tif 000006
【図５】
2017011541.tif 000007
【図６】
2017011541.tif 000008
【図７】
2017011541.tif 000009
【図８】
2017011541.tif 000010
【図９】
2017011541.tif 000011
【図１０】
2017011541.tif 000012
【図１１】
2017011541.tif 000013
【図１２】
2017011541.tif 000014
【図１３】
2017011541.tif 000015
【図１４】
2017011541.tif 000016
【図１５】
2017011541.tif 000017
【図１６】
2017011541.tif 000018
【図１７】
2017011541.tif 000019
【図１８】
2017011541.tif 000020