(57)【要約】【課題】非音声区間における小さな残留雑音と音声区間における小さな出力歪を両立し、高音質な強調音声を出力することのできる雑音抑圧の方法、装置、及びプログラムを提供することである。【解決手段】推定雑音と仮出力を受け、音声存在確率を計算する音声存在確率計算部と、音声存在確率に基づいて抑圧係数を補正する抑圧係数補正部とを備えていることを特徴とする。【選択図】  図１
2008216721.tif 000002
【特許請求の範囲】
【請求項１】
入力信号を周波数領域信号に変換し、
該周波数領域信号を用いて推定雑音を求め、
該推定雑音と前記周波数領域信号を用いて抑圧係数を定め、
音声らしい区間では歪が少なくなるように、
非音声らしい区間では残留雑音が少なくなるように、
前記抑圧係数を補正して補正抑圧係数を求め、
該補正抑圧係数で前記周波数領域信号を重みづけすることによって、雑音を抑圧する
ことを特徴とする雑音抑圧の方法。
【請求項２】
前記音声らしい区間の平均パワーと前記非音声らしい区間の平均パワーの比を求め、
該比の値が大きいときに前記非音声らしい区間の残留雑音が小さくなるように、前記補正抑圧係数を求める
ことを特徴とする請求項１に記載の雑音抑圧の方法。
【請求項３】
入力信号を周波数領域信号に変換する変換部と、
該周波数領域信号を用いて推定雑音を求める雑音推定部と、
該推定雑音と前記周波数領域信号を用いて抑圧係数を定める雑音抑圧係数生成部と、
前記推定雑音と前記周波数領域信号と前記抑圧係数を用いて、補正抑圧係数を求める抑圧係数補正部と、
該補正抑圧係数で前記周波数領域信号を重みづけする乗算器と
を具備し、
前記抑圧係数補正部は、
音声らしい区間では歪が少なくなるように、
非音声らしい区間では残留雑音が少なくなるように、
前記抑圧係数を補正する
ことを特徴とする雑音抑圧の装置。
【請求項４】
前記抑圧係数補正部は、
前記音声らしい区間の平均パワーと前記非音声らしい区間の平均パワーの比を求め、
該比の値が大きいときに前記非音声らしい区間の残留雑音が小さくなるように、前記抑圧係数を補正する
ことを特徴とする請求項３に記載の雑音抑圧の装置。
【請求項５】
コンピュータに、
入力信号を周波数領域信号に変換する処理と、
該周波数領域信号を用いて推定雑音を求める処理と、
該推定雑音と前記周波数領域信号を用いて抑圧係数を定める処理と、
音声らしい区間では歪が少なくなるように、非音声らしい区間では残留雑音が少なくなるように、前記抑圧係数を補正して補正抑圧係数を求める処理と、
該補正抑圧係数で前記周波数領域信号を重みづけすることによって、雑音を抑圧する処理と
を実行させるための雑音抑圧プログラム。
【請求項６】
コンピュータに、
前記音声らしい区間の平均パワーと前記非音声らしい区間の平均パワーの比を求め、該比の値が大きいときに前記非音声らしい区間の残留雑音が小さくなるように、前記抑圧係数を補正する処理を
実行させるための請求項５に記載の雑音抑圧プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所望の音声信号に重畳されている雑音を抑圧する雑音抑圧の方法、装置及びプログラムに関する。
【背景技術】
【０００２】
ノイズサプレッサ（雑音抑圧システム）は、所望の音声信号に重畳されている雑音(ノイズ)を抑圧するシステムであり、一般的に、周波数領域に変換した入力信号を用いて雑音成分のパワースペクトルを推定し、この推定パワースペクトルを入力信号から差し引くことにより、所望の音声信号に混在する雑音を抑圧するように動作する。雑音成分のパワースペクトルを継続的に推定することにより、非定常な雑音の抑圧にも適用することができる。ノイズサプレッサとしては、例えば、特許文献１に記載されている方式がある。
【０００３】
さらに、演算量を削減した実現として、非特許文献１に記載されている方式がある。
【０００４】
これらいずれの方式も、基本的な動作は等しい。すなわち、入力信号を線形変換で周波数領域に変換し、振幅成分を取り出して周波数成分毎に抑圧係数を計算する。その抑圧係数と各周波数成分における振幅の積と各周波数成分の位相を組み合わせて逆変換して雑音抑圧された出力を得る。このとき、抑圧係数はゼロと１の間の値であり、ゼロなら完全抑圧で出力はゼロ、1なら抑圧なしで入力がそのまま出力される。
【０００５】
特許文献１に開示されたノイズサプレッサの構成を、図15に示す。図15の入力端子１にサンプル値系列として供給された劣化音声信号(所望音声信号と雑音の混在する信号)は、変換部２においてフーリエ変換などの変換を施して複数の周波数成分に分割され、振幅値を用いて求めたパワースペクトルを多重化して、雑音推定部300、雑音抑圧係数生成部600及び乗算器５へ供給される。位相は、逆変換部３に伝達される。雑音推定部300は、劣化音声パワースペクトルを用いて、その中に含まれる雑音のパワースペクトルを複数の周波数成分それぞれに対して推定し雑音抑圧係数生成部600に伝達する。雑音推定の方式の一例としては、過去の信号対雑音比で劣化音声を重み付けて雑音成分とする方式があり、その詳細は特許文献１に記載されている。推定された雑音パワースペクトルの数は、周波数成分の数と等しい。雑音抑圧係数生成部600は、供給された劣化音声パワースペクトルと推定雑音パワースペクトルを用いて、劣化音声に乗算することによって雑音が抑圧された強調音声を求めるための抑圧係数を生成し、これを出力する。抑圧係数は周波数成分毎に求めるので、雑音抑圧係数生成部600の出力は、周波数成分の数と等しい抑圧係数である。雑音抑圧係数生成の一例としては、強調音声の平均二乗パワーを最小化する最小平均二乗短時間スペクトル振幅法が広く用いられており、その詳細は特許文献１に記載されている。周波数別に生成された抑圧係数は、抑圧係数補正部650に供給される。一方、雑音抑圧係数生成部600では、抑圧係数生成のために先天的SNRを周波数別に推定している。推定先天的SNRは、抑圧係数生成に用いられると同時に、抑圧係数補正部650に供給される。抑圧係数補正部650は、推定先天的SNRと抑圧係数を用いて補正抑圧係数を求め、これを乗算器５に供給すると同時に雑音抑圧係数生成部600に帰還する。乗算器５は、変換部２から供給された劣化音声と雑音抑圧係数生成部600から供給された抑圧係数を、各周波数で乗算し、その積を強調音声のパワースペクトルとして逆変換部３に伝達する。逆変換部３は、乗算器５から供給された強調音声パワースペクトルと変換部２から供給された劣化音声の位相を合わせて逆変換を行い、強調音声信号サンプルとして、出力端子４に供給する。これまでの処理ではパワースペクトルを用いた例を説明したが、代わりにその平方根に相当する振幅値を用いることができることは、広く知られている。
【０００６】
図16は、図15に含まれる雑音抑圧係数生成部600の構成を示すブロック図である。雑音抑圧係数生成部600は、後天的SNR計算部610、推定先天的SNR計算部620、雑音抑圧係数計算部630、音声非存在確率記憶部640を有する。後天的SNR計算部610は、入力された劣化音声パワースペクトルと推定雑音パワースペクトルを用いて周波数別に後天的SNRを計算し、推定先天的SNR計算部620と雑音抑圧係数計算部630に供給する。推定先天的SNR計算部620は、入力された後天的SNR、及び抑圧係数補正部650から供給された補正抑圧係数を用いて先天的SNRを推定し、推定先天的SNRとして、雑音抑圧係数計算部630に伝達すると同時に出力する。雑音抑圧係数計算部630は、入力として供給された後天的SNR、推定先天的SNR及び音声非存在確率記憶部640から供給される音声非存在確率を用いて雑音抑圧係数を生成し、これを出力する。
【０００７】
図17は、図16に含まれる抑圧係数補正部650の構成例を示すブロック図である。抑圧係数補正部650は、最大値選択部6501、抑圧係数下限値記憶部6502、閾値記憶部6503、比較部6504、スイッチ6505、修正値記憶部6506及び乗算器6507を有する。比較部6504は、閾値記憶部6503から供給される閾値と、図10の推定先天的SNR計算部620から供給される推定先天的SNR を比較し、推定先天的SNRが閾値よりも大きければ``0''を、小さければ``1''をスイッチ6505に供給する。スイッチ6505は、図10の雑音抑圧係数計算部630から供給される抑圧係数を、比較部6504の出力値が``1''のときに乗算器6507に出力し、``0''のときに最大値選択部6501に出力する。すなわち、推定先天的SNRが閾値よりも小さいときに、抑圧係数の補正が行われる。乗算器6507は、スイッチ6505の出力値と修正値記憶部6506の出力値との積を計算し、最大値選択部6501に伝達する。
【０００８】
一方、抑圧係数下限値記憶部6502は、記憶している抑圧係数の下限値を、最大値選択部6501に供給する。最大値選択部6501は、図10の雑音抑圧係数計算部630から供給される抑圧係数、又は乗算器6507で計算された積と、抑圧係数下限値記憶部6502から供給される抑圧係数下限値とを比較し、大きい方の値を出力する。すなわち、抑圧係数は抑圧係数下限値記憶部6502が記憶する下限値よりも必ず大きい値になる。
【特許文献１】特開２００２−２０４１７５号公報
【非特許文献１】2006 年5 月、プロシーディングス・オブ・アイ・シー・エイ・エス・エス・ピー、(PROCEEDINGS OF ICASSP, VOL.I, PP.473-476, MAY, 2006)、473 〜476 ページ
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、図15を用いて説明した従来の構成では、残留雑音と出力歪が一般的にトレードオフの関係にあり、小さな残留雑音と小さな出力歪を両立することはできない。このため、過剰な抑圧による出力信号歪の増加を避けるためにある程度の残留雑音を許容するか、反対に、十分小さな残留雑音のために過剰な抑圧による出力歪を許容するかのどちらかを受け入れる必要があった。
【００１０】
そこで、本発明は上記課題に鑑みて発明されたものであって、その目的は、非音声区間における小さな残留雑音と音声区間における小さな出力歪を両立し、高音質な強調音声を出力することのできる雑音抑圧の方法、装置、及びプログラムを提供することである。
【課題を解決するための手段】
【００１１】
本発明の雑音抑圧の方法、装置、及びプログラムでは、推定雑音と仮出力から計算した音声存在確率に基づいて、音声区間では低歪を優先した抑圧を、非音声区間では低残留雑音を優先した抑圧を行うことを特徴とする。
【００１２】
より具体的には、推定雑音と仮出力を受け、音声存在確率を計算する音声存在確率計算部と、音声存在確率に基づいて抑圧係数を補正する抑圧係数補正部とを備えていることを特徴とする。
【００１３】
また、本発明の雑音抑圧の方法、装置、及びプログラムでは、推定雑音と音声区間の仮出力から求めた仮出力SNRに基づいて、音声区間と非音声区間の残留雑音レベルに不連続が生じないように抑圧係数を設定することを特徴とする。
【００１４】
より具体的には、推定雑音と仮出力と音声存在確率を受け、仮出力SNRを計算する仮出力SNR計算部をさらに備えていることを特徴とする。
【発明の効果】
【００１５】
本発明では、音声区間では低歪を優先した抑圧を、非音声区間では低残留雑音を優先した抑圧を行い、さらに音声区間と非音声区間の残留雑音レベルに不連続が生じないように、抑圧係数を設定する。
【００１６】
このため、非音声区間における小さな残留雑音と音声区間における小さな出力歪を両立し、さらに両者の境界において不連続が生じない、高音質な強調音声を出力することができる。
【発明を実施するための最良の形態】
【００１７】
図1は、本発明の最良の実施の形態を示すブロック図である。図1と従来例である図15との相違点は、雑音抑圧係数生成部600と抑圧係数補正部650が抑圧係数生成部601と抑圧係数補正部651に置換されたこと、及び乗算器660、音声存在確率670、並びに仮出力SNR計算部680が追加されたことである。
【００１８】
入力端子１に供給された劣化音声は、変換部２においてフーリエ変換などの変換を施して複数の周波数成分に分割され、雑音推定部300、雑音抑圧係数生成部601、乗算器660及び乗算器５へ供給される。位相は、逆変換部３に伝達される。雑音推定部300は、劣化音声パワースペクトルの中に含まれる雑音のパワースペクトルを複数の周波数成分それぞれに対して推定し、雑音抑圧係数生成部601、音声存在確率計算部670、仮出力SNR計算部680に伝達する。雑音抑圧係数生成部601は、劣化音声パワースペクトルと推定雑音パワースペクトルを用いて抑圧係数を生成し、乗算器660と抑圧係数補正部651に供給する。乗算器660は、劣化音声パワースペクトルと抑圧係数の積を仮出力として求め、音声存在確率計算部670と仮出力SNR計算部680に供給する。
【００１９】
音声存在確率計算部670は、仮出力と推定雑音から音声存在確率Vnを求めて、仮出力SNR計算部680と抑圧係数補正部651に供給する。音声存在確率の一例として、仮出力信号と推定雑音の比を用いることができる。この比が大きいときには音声存在確率が高く、小さいときには音声存在確率が低い。仮出力SNR計算部680は、音声存在確率Vnを用いて、仮出力と推定雑音から仮出力SNRξnL(k)を求め、抑圧係数補正部651に供給する。仮出力SNRの一例として、仮出力の長時間平均と推定雑音パワースペクトルによる長時間出力SNRを用いることができる。仮出力の長時間平均は、音声存在確率計算部670から供給された音声存在確率Vnの大きさに応じて更新する。抑圧係数補正部651は、仮出力SNRξnL(k)、音声存在確率Vnを用いて抑圧係数Gn(k)バーを補正し、補正抑圧係数Gn(k)ハットとして乗算器５に供給すると同時に雑音抑圧係数生成部601に帰還する。乗算器５は、変換部２から供給された劣化音声と抑圧係数補正部651から供給された補正抑圧係数を各周波数で乗算し、その積を強調音声のパワースペクトルとして逆変換部３に伝達する。逆変換部３は、乗算器５から供給された強調音声パワースペクトルと変換部２から供給された劣化音声の位相を合わせて逆変換を行い、強調音声信号サンプルとして、出力端子４に供給する。
【００２０】
図２は、変換部２の構成を示すブロック図である。変換部２はフレーム分割部21、窓がけ処理部22、及びフーリエ変換部23から構成されている。劣化音声信号サンプルは、フレーム分割部21に供給され、K/2サンプル毎のフレームに分割される。ここに、Kは偶数とする。フレームに分割された劣化音声信号サンプルは、窓がけ処理部22に供給され、窓関数w(t)との乗算が行なわれる。第nフレームの入力信号yn(t)(t=0, 1, ..., K/2-1) に対するw(t)で窓がけされた信号yn(t)バーは、次式で与えられる。
【００２１】
【数１】
2008216721.tif 000003
また、連続する2フレームの一部を重ね合わせ(オーバラップ)して窓がけすることも広く行なわれている。オーバラップ長としてフレーム長の50%を仮定すれば、t=0, 1, ..., K/2-1 に対して、
【００２２】
【数２】
2008216721.tif 000004
で得られるyn(t)バー (t=0, 1, ..., K-1)が、窓がけ処理部22の出力となる。実数信号に対しては、左右対称窓関数が用いられる。また、窓関数は、抑圧係数を1に設定したときの入力信号と出力信号が計算誤差を除いて一致するように設計される。これは、w(t)+w(t+K/2)=1 となることを意味する。
【００２３】
以後、連続する2フレームの50%をオーバラップして窓がけする場合を例として説明を続ける。w(t)としては、例えば次式に示すハニング窓を用いることができる。
【００２４】
【数３】
2008216721.tif 000005
このほかにも、ハミング窓、ケイザー窓、ブラックマン窓など、様々な窓関数が知られている。窓がけされた出力yn(t)バーはフーリエ変換部23に供給され、劣化音声スペクトルYn(k)に変換される。劣化音声スペクトルYn(k)は位相と振幅に分離され、劣化音声位相スペクトル arg Yn(k)は逆変換部３に、劣化音声パワースペクトル|Yn(k)|2は、乗算器５、雑音推定部300、及び雑音抑圧係数生成部601に供給される。
【００２５】
図３は、逆変換部３の構成を示すブロック図である。逆変換部３は逆フーリエ変換部33、窓がけ処理部32、及びフレーム合成部31から構成されている。逆フーリエ変換部33は、乗算器５から供給された強調音声パワースペクトル|Xn(k)|2バーを用いて求めた強調音声振幅スペクトル|Xn(k)|バーをと変換部２から供給された劣化音声位相スペクトル arg Yn(k)を乗算して、強調音声Xn(k)バーを求める。すなわち、
【００２６】
【数４】
2008216721.tif 000006
を実行する。
【００２７】
得られた強調音声Xn(k)バーに逆フーリエ変換を施し、1フレームがKサンプルから構成される時間領域サンプル値系列xn(t)バー (t=0, 1, ..., K-1)として、窓がけ処理部32に供給し、窓関数w(t)との乗算を行う。第nフレームの入力信号xn(t) (t=0, 1, ..., K/2-1) に対するw(t)で窓がけされた信号xn(t)バーは、次式で与えられる。
【００２８】
【数５】
2008216721.tif 000007
また、連続する2フレームの一部を重ね合わせ(オーバラップ)して窓がけすることも広く行なわれている。オーバラップ長としてフレーム長の50%を仮定すれば、t=0, 1, ..., K/2-1 に対して、
【００２９】
【数６】
2008216721.tif 000008
で得られるyn(t)バー (t=0, 1, ..., K-1)が、窓がけ処理部32の出力となり、フレーム合成部31に伝達される。フレーム合成部31は、xn(t)バーの隣接する2フレームからK/2サンプルずつを取り出して重ね合わせ、
【００３０】
【数７】
2008216721.tif 000009
によって、 強調音声xn(t)ハットを得る。 得られた強調音声xn(t)ハット (t=0, 1, ..., K-1)が、フレーム合成部31の出力として、出力端子４に伝達される。図２と図３において、変換部と逆変換部で適用する変換をフーリエ変換として説明したが、フーリエ変換に代えて、コサイン変換、アダマール変換、ハール変換、ウェーブレット変換など、他の変換も用いることができることは広く知られている。
【００３１】
図４は、図１の雑音推定部300の構成を示すブロック図である。雑音推定部300は、推定雑音計算部310、重み付き劣化音声計算部320、及びカウンタ330から構成される。雑音推定部300に供給された劣化音声パワースペクトルは、推定雑音計算部310、及び重み付き劣化音声計算部320に伝達される。重み付き劣化音声計算部320は、供給された劣化音声パワースペクトルと推定雑音パワースペクトルを用いて重み付き劣化音声パワースペクトルを計算し、推定雑音計算部310に伝達する。推定雑音計算部310は、劣化音声パワースペクトル、重み付き劣化音声パワースペクトル、及びカウンタ330から供給されるカウント値を用いて雑音のパワースペクトルを推定し、推定雑音パワースペクトルとして出力すると同時に、重み付き劣化音声計算部320に帰還する。
【００３２】
図５は、図４に含まれる推定雑音計算部310の構成を示すブロック図である。更新判定部400、レジスタ長記憶部410、推定雑音記憶部420、スイッチ430、シフトレジスタ440、加算器450、最小値選択部460、除算部470、カウンタ480を有する。スイッチ430には、重み付き劣化音声パワースペクトルが供給されている。スイッチ430が回路を閉じたときに、重み付き劣化音声パワースペクトルは、シフトレジスタ440に伝達される。シフトレジスタ440は、更新判定部400から供給される制御信号に応じて、内部レジスタの記憶値を隣接レジスタにシフトする。シフトレジスタ長は、後述するレジスタ長記憶部410に記憶されている値に等しい。シフトレジスタ440の全レジスタ出力は、加算器450に供給される。加算器450は、供給された全レジスタ出力を加算して、加算結果を除算部470に伝達する。
【００３３】
一方、更新判定部400には、カウント値、周波数別劣化音声パワースペクトル及び周波数別推定雑音パワースペクトルが供給されている。更新判定部400は、カウント値が予め設定された値に到達するまでは常に``1''を、到達した後は入力された劣化音声信号が雑音であると判定されたときに``1''を、それ以外のときに``0''を出力し、カウンタ480、スイッチ430、及びシフトレジスタ440に伝達する。スイッチ430は、更新判定部から供給された信号が``1''のときに回路を閉じ、``0''のときに開く。カウンタ480は、更新判定部から供給された信号が``1''のときにカウント値を増加し、``0''のときには変更しない。シフトレジスタ440は、更新判定部から供給された信号が``1''のときにスイッチ430から供給される信号サンプルを1サンプル取り込むと同時に、内部レジスタの記憶値を隣接レジスタにシフトする。最小値選択部460には、カウンタ480の出力とレジスタ長記憶部410の出力が供給されている。
【００３４】
最小値選択部460は、供給されたカウント値とレジスタ長のうち、小さい方を選択して、除算部470に伝達する。除算部470は、加算器450から供給された劣化音声パワースペクトルの加算値をカウント値又はレジスタ長の小さい方の値で除算し、商を周波数別推定雑音パワースペクトルλn(k)として出力する。Bn(k) (n=0, 1, ..., N-1)をシフトレジスタ440に保存されている劣化音声パワースペクトルのサンプル値とすると、λn(k)は、
【００３５】
【数８】
2008216721.tif 000010
で与えられる。ただし、Nはカウント値とレジスタ長のうち、小さい方の値である。カウント値はゼロから始まって単調に増加するので、最初はカウント値で除算が行なわれ、後にはレジスタ長で除算が行なわれる。レジスタ長で除算が行なわれることは、シフトレジスタに格納された値の平均値を求めることになる。最初は、シフトレジスタ440に十分多くの値が記憶されていないために、実際に値が記憶されているレジスタの数で除算する。実際に値が記憶されているレジスタの数は、カウント値がレジスタ長より小さいときはカウント値に等しく、カウント値がレジスタ長より大きくなると、レジスタ長と等しくなる。
【００３６】
図６は、図５に含まれる更新判定部400の構成を示すブロック図である。更新判定部400は、論理和計算部4001、比較部4004、4002、閾値記憶部4005、4003、閾値計算部4006を有する。図４のカウンタ330から供給されるカウント値は、比較部4002に伝達される。閾値記憶部4003の出力である閾値も、比較部4002に伝達される。比較部4002は、供給されたカウント値と閾値を比較し、カウント値が閾値より小さいときに``1''を、カウント値が閾値より大きいときに``0''を、論理和計算部4001に伝達する。一方、閾値計算部4006は、図５の推定雑音記憶部420から供給される推定雑音パワースペクトルに応じた値を計算し、閾値として閾値記憶部4005に出力する。最も簡単な閾値の計算方法は、推定雑音パワースペクトルの定数倍である。その他に、高次多項式や非線形関数を用いて閾値を計算することも可能である。閾値記憶部4005は、閾値計算部4006から出力された閾値を記憶し、1フレーム前に記憶された閾値を比較部4004へ出力する。比較部4004は、閾値記憶部4005から供給される閾値と図１の変換部２から供給される劣化音声パワースペクトルを比較し、劣化音声パワースペクトルが閾値よりも小さければ``1''を、大きければ``0''を論理和計算部4001に出力する。すなわち、推定雑音パワースペクトルの大きさをもとに、劣化音声信号が雑音であるか否かを判別している。論理和計算部4001は、比較部4202の出力値と比較部4204の出力値との論理和を計算し、計算結果を図５のスイッチ430、シフトレジスタ440及びカウンタ480に出力する。このように、初期状態や無音区間だけでなく、有音区間でも劣化音声パワーが小さい場合には、更新判定部400は``1''を出力する。すなわち、推定雑音の更新が行われる。閾値の計算は各周波数で行われるため、各周波数で推定雑音の更新を行うことができる。
【００３７】
図７は、重み付き劣化音声計算部320の構成を示すブロック図である。重み付き劣化音声計算部320は、推定雑音記憶部3201、周波数別SNR計算部3202、非線形処理部3204、及び乗算器3203を有する。推定雑音記憶部3201は、図４の推定雑音計算部310から供給される推定雑音パワースペクトルを記憶し、1フレーム前に記憶された推定雑音パワースペクトルを周波数別SNR計算部3202へ出力する。周波数別SNR計算部3202は、推定雑音記憶部3201から供給される推定雑音パワースペクトルと図１の変換部２から供給される劣化音声パワースペクトルを用いてSNRを周波数帯域毎に求め、非線形処理部3204に出力する。具体的には、次式に従って、供給された劣化音声パワースペクトルを推定雑音パワースペクトルで除算して周波数別SNRγn(k)ハットを求める。
【００３８】
【数９】
2008216721.tif 000011
ここに、λn-1(k)は1フレーム前に記憶された推定雑音パワースペクトルである。
【００３９】
非線形処理部3204は、周波数別SNR計算部3202から供給されるSNRを用いて重み係数ベクトルを計算し、重み係数ベクトルを乗算器3203に出力する。乗算器3203は、図１の変換部２から供給される劣化音声パワースペクトルと、非線形処理部3204から供給される重み係数ベクトルの積を周波数帯域毎に計算し、重み付き劣化音声パワースペクトルを図４の推定雑音計算部310に出力する。
【００４０】
非線形処理部3204は、多重化された入力値それぞれに応じた実数値を出力する、非線形関数を有する。図８に、非線形関数の例を示す。f1 を入力値としたとき、図８に示される非線形関数の出力値 f2は、
【００４１】
【数１０】
2008216721.tif 000012
で与えられる。但し、a と b は任意の実数である。
【００４２】
非線形処理部3204は、周波数別SNR計算部3202から供給される周波数帯域別SNRを、非線形関数によって処理して重み係数を求め、乗算器3203に伝達する。すなわち、非線形処理部3204は SNR に応じた1 から 0 までの重み係数を出力する。SNRが小さい時は 1 を、大きい時は 0 を出力する。
【００４３】
図７の乗算器3203で劣化音声パワースペクトルと乗算される重み係数は、 SNR に応じた値になっており、SNR が大きい程、すなわち劣化音声に含まれる音声成分が大きい程、重み係数の値は小さくなる。推定雑音の更新には一般に劣化音声パワースペクトルが用いられるが、推定雑音の更新に用いる劣化音声パワースペクトルに対して、SNR に応じた重みづけを行うことで、劣化音声パワースペクトルに含まれる音声成分の影響を小さくすることができ、より精度の高い雑音推定を行うことができる。なお、重み係数の計算に非線形関数を用いた例を示したが、非線形関数以外にも線形関数や高次多項式など、他の形で表されるSNRの関数を用いる事も可能である。
【００４４】
図９は、図１に含まれる雑音抑圧係数生成部601の構成を示すブロック図である。図16に示した雑音抑圧係数生成部600の構成と比較すると、推定先天的SNR計算部620の出力である推定先天的SNRが出力されない点が異なる。すなわち、雑音抑圧係数生成部601の出力は、抑圧係数だけである。
【００４５】
図10は、図９に含まれる推定先天的SNR計算部620の構成を示すブロック図である。推定先天的SNR計算部620は、値域限定処理部6201、後天的SNR記憶部6202、抑圧係数記憶部6203、乗算器6204、6205、重み記憶部6206、重み付き加算部6207、加算器6208を有する。図９の後天的SNR計算部610から供給される後天的SNRγn(k) (k=0, 1, ..., M-1)は、後天的SNR記憶部6202と加算器6208に伝達される。後天的SNR記憶部6205は、第nフレームにおける後天的SNRγn(k)を記憶すると共に、第n-1フレームにおける後天的SNRγn-1(k)を乗算器6205に伝達する。図１の抑圧係数補正部651から供給される補正抑圧係数Gn(k)バー (k=0, 1, ..., M-1)は、抑圧係数記憶部6203に伝達される。抑圧係数記憶部6203は、第nフレームにおける補正抑圧係数Gn(k)バーを記憶すると共に、第n-1フレームにおける補正抑圧係数Gn-1(k)バーを乗算器6204に伝達する。乗算器6204は、供給されたGn(k)バーを2乗してG2n-1(k)バーを求め、乗算器6205に伝達する。乗算器6205は、G2n-1(k)バーとγn-1(k)をk=0, 1, ..., M-1に対して乗算してG2n-1(k)バーγn-1 (k)を求め、結果を重み付き加算部6207に過去の推定SNR 922として伝達する。
【００４６】
加算器6208の他方の端子には−１が供給されており、加算結果γn(k)-1が値域限定処理部6201に伝達される。値域限定処理部6201は、加算器6208から供給された加算結果γn(k)-1に値域限定演算子P[・]による演算を施し、結果であるP[γn(k)-1]を重み付き加算部6207に瞬時推定SNR 921として伝達する。ただし、P[x]は次式で定められる。
【００４７】
【数１１】
2008216721.tif 000013
重み付き加算部6207には、また、重み記憶部6206から重み923が供給されている。重み付き加算部6207は、これらの供給された瞬時推定SNR 921、過去の推定SNR 922、重み923を用いて推定先天的SNR 924を求める。重み923をαとし、ξn(k)ハットを推定先天的SNR とすると、ξn(k)ハットは、次式によって計算される。
【００４８】
【数１２】
2008216721.tif 000014
ここに、G2-1(k)γ-1(k)バー=1とする。
【００４９】
図11は、図10に含まれる重み付き加算部6207の構成を示すブロック図である。重み付き加算部6207は、乗算器6901、6903、定数乗算器6905、加算器6902、6904を有する。図10の値域限定処理部6201から周波数帯域別瞬時推定SNRが、図10の乗算器6205から過去の周波数帯域別SNRが、図10の重み記憶部6206から重みが、それぞれ入力として供給される。値αを有する重みは、定数乗算器6905と乗算器6903に伝達される。定数乗算器6905は入力信号を−１倍して得られた−αを、加算器6904に伝達する。加算器6904のもう一方の入力としては１が供給されており、加算器6904の出力は両者の和である１−αとなる。１−αは乗算器6901に供給されて、もう一方の入力である周波数帯域別瞬時推定SNR P[γn(k)−１] と乗算され、積である(１−α)P[γn(k)−１]が加算器6902に伝達される。一方、乗算器6903では、重みとして供給されたαと過去の推定SNRが乗算され、積であるαG2n-1(k)バーγn-1(k)が加算器6902に伝達される。加算器6902は、(１−α)P[γn(k)−１]とαG2n-1(k)バーγn-1(k)の和を、周波数帯域別推定先天的SNRとして、出力する。
【００５０】
図12は、図９に含まれる雑音抑圧係数生成部630を示すブロック図である。雑音抑圧係数生成部630は、MMSE STSA ゲイン関数値計算部6301、一般化尤度比計算部6302、及び抑圧係数計算部6303を有する。以下、非特許文献２（非特許文献２：  1984 年12月、アイ・イー・イー・イー・トランザクションズ・オン・アクースティクス・スピーチ・アンド・シグナル・プロセシング、第32巻、第6号(IEEE TRANSACTIONS ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING,VOL.32, NO.6, PP.1109-1121, DEC, 1984)、1109〜1121ページ）に記載されている計算式をもとに、抑圧係数の計算方法を説明する。
【００５１】
フレーム番号をn、周波数番号をkとし、γn(k) を図９の後天的SNR 計算部610から供給される周波数別後天的SNR、ξn(k)ハットを図９の推定先天的SNR計算部620から供給される周波数別推定先天的SNR、q を図９の音声非存在確率記憶部640から供給される音声非存在確率とする。また、ηn(k) = ξn(k)ハット/ (1-q)、
vn(k) = (ηn(k)γn(k))/(1+ηn(k))  とする。MMSE STSA ゲイン関数値計算部6301は、図９の後天的SNR計算部610から供給される後天的SNR γn(k)、図９の推定先天的SNR計算部620から供給される推定先天的SNR ξn(k)ハット及び図９の音声非存在確率記憶部640から供給される音声非存在確率 qをもとに、周波数帯域毎にMMSE STSAゲイン関数値を計算し、抑圧係数計算部6303に出力する。周波数帯域毎のMMSE STSAゲイン関数値 Gn(k) は、
【００５２】
【数１３】
2008216721.tif 000015
で与えられる。ここに、I0(z) は0次変形ベッセル関数、I1(z) は1次変形ベッセル関数である。変形ベッセル関数については、非特許文献３（非特許文献３：  1985年、数学辞典、岩波書店、374.Gページ）に記載されている。
【００５３】
一般化尤度比計算部6302は、図９の後天的SNR計算部610から供給される後天的SNR γn(k)、図９の推定先天的SNR計算部620から供給される推定先天的SNR ξn(k) ハット及び図９の音声非存在確率記憶部640から供給される音声非存在確率qをもとに、周波数帯域毎に一般化尤度比を計算し、抑圧係数計算部6303に伝達する。周波数帯域毎の一般化尤度比Λn(k) は、
【００５４】
【数１４】
2008216721.tif 000016
で与えられる。
【００５５】
抑圧係数計算部6303は、MMSE STSA ゲイン関数値計算部6301から供給される MMSE STSA ゲイン関数値Gn(k)と一般化尤度比計算部6302から供給される一般化尤度比Λn(k)から周波数帯域毎に抑圧係数を計算し、図１の抑圧係数補正部651へ出力する。周波数帯域毎の抑圧係数Gn(k)バーは、
【００５６】
【数１５】
2008216721.tif 000017
で与えられる。周波数帯域別にSNRを計算する代わりに、複数の周波数帯域から構成される広い帯域に共通なSNRを求めて、これを用いることも可能である。
【００５７】
図13に、抑圧係数補正部651の構成例を示す。抑圧係数補正部651は、抑圧係数下限値計算部6512と最大値選択部6511を含む。抑圧係数下限値計算部6512には、仮出力SNRξnL(k)と音声存在確率Vnが供給されている。抑圧係数下限値計算部6512は、次式に基づいて、関数A(ξnL(k))と音声区間に対応した抑圧係数最小値fsを用いて、抑圧係数の下限値A(Vn, ξnL(k))を計算し、最大値選択部6511に伝達する。
【００５８】
【数１６】
2008216721.tif 000018
関数A(ξnL(k))は基本的に、大きなSNRに対して小さな値をとるような形状を有する。A(ξnL(k))が仮出力SNRξnL(k)に対応してこのような形状をとる関数であることは、仮出力SNRが高いほど、非音声区間に対応する抑圧係数の下限値が小さくなることを意味する。これは、残留雑音が小さくなることに対応し、音声区間と非音声区間の音質不連続性を低減する効果がある。なお、関数A(ξnL(k))は全ての周波数成分に対して異なっていてもよいし、複数の周波数成分に対して共有されていてもよい。また、時間と共にその形状が変化することも可能である。
【００５９】
最大値計算部6511は、雑音抑圧係数計算部630から受けた抑圧係数Gn(k)バーと抑圧係数下限値計算部6512を比較して、大きいほうの値を補正抑圧係数Gn(k)ハットとして出力する。この処理は、次式で表すことができる。
【００６０】
【数１７】
2008216721.tif 000019
すなわち、完全に音声区間と思われる場合はfsが、完全に非音声区間と思われる場合は仮出力SNRξnL(k)に応じて単調減少関数で定められる値が、抑圧係数最小値となる。両者の中間と思われる状況では、これらの値が適切に混合される。A(ξnL(k))の単調減少性によって、低SNR時の大きな抑圧係数最小値が保証され、消し残し雑音の多い直前の音声区間からの連続性が保たれる。高SNRでは、抑圧係数最小値が小さくなり、残留雑音が小さくなるように制御される。これは、音声区間の残留雑音が無視できる程度に小さいので、非音声区間の残留雑音が小さいときも、連続性が保たれるためである。また、fsをA(ξnL(k))よりも大きく設定することによって、音声区間あるいはその可能性が高い場合に雑音抑圧が軽度になり、音声に生じる歪を低減することができる。これは、符号化・復号によって生じる歪の混入した音声において雑音推定精度が十分に高くできない場合に、特に有効である。
【００６１】
なお、これまでの実施の形態では、特許文献１に従って、各周波数成分に対して独立に、抑圧係数を計算し、それを用いて雑音抑圧を行う例について説明してきた。しかし、演算量を削減するために、非特許文献１に開示されているように、複数の周波数成分に対して共通の抑圧係数を計算し、それを用いて雑音抑圧を行うこともできる。その場合は、図１の変換部２と雑音推定部300及び雑音抑圧係数生成部601の間に帯域統合部を具備する構成となる。
【００６２】
さらに、非特許文献１にあるように、図１の変換部２の前にオフセット消去部を、変換部２の直後に振幅補正部と位相補正部を具備することにより、周波数領域で高域通過フィルタを形成することもでき、演算量を削減することができる。また、複数の周波数成分に対して共通の抑圧係数を計算する際に、特定の周波数帯域に対応した雑音推定値を補正することもできる。
【００６３】
図14は、本発明の第２の実施の形態に基づく信号処理装置のブロック図である。本発明の第２の実施形態は、プログラム制御により動作するコンピュータ（中央処理装置；プロセッサ；データ処理装置）1000と、入力端子１及び出力端子４とから構成されている。コンピュータ1000は、変換部２、乗算器５、逆変換部３、雑音推定部300、雑音抑圧係数生成部601、乗算器660、音声存在確率計算部670、仮出力SNR計算部680、抑圧係数補正部651を含む。
【００６４】
入力端子１に供給された劣化音声は、コンピュータ1000内の変換部２においてフーリエ変換などの変換を施して複数の周波数成分に分割され、雑音推定部300、雑音抑圧係数生成部601、乗算器660及び乗算器５へ供給される。位相は、逆変換部３に伝達される。雑音推定部300は、劣化音声パワースペクトルの中に含まれる雑音のパワースペクトルを複数の周波数成分それぞれに対して推定し、雑音抑圧係数生成部601、音声存在確率計算部670、仮出力SNR計算部680に伝達する。雑音抑圧係数生成部601は、劣化音声パワースペクトルと推定雑音パワースペクトルを用いて抑圧係数を生成し、乗算器660と抑圧係数補正部651に供給する。乗算器660は、劣化音声パワースペクトルと抑圧係数の積を仮出力として求め、音声存在確率計算部670と仮出力SNR計算部680に供給する。音声存在確率計算部670は、仮出力と推定雑音から音声存在確率を求めて、仮出力SNR計算部680と抑圧係数補正部651に供給する。仮出力SNR計算部680は、音声存在確率を用いて、仮出力と推定雑音から仮出力SNRを求め、抑圧係数補正部651に供給する。抑圧係数補正部651は、仮出力SNR、音声存在確率、及び抑圧係数を用いて補正抑圧係数を求め、これを乗算器５に供給すると同時に雑音抑圧係数生成部601に帰還する。乗算器５は、変換部２から供給された劣化音声と抑圧係数補正部651から供給された補正抑圧係数を各周波数で乗算し、その積を強調音声のパワースペクトルとして逆変換部３に伝達する。逆変換部３は、乗算器５から供給された強調音声パワースペクトルと変換部２から供給された劣化音声の位相を合わせて逆変換を行い、強調音声信号サンプルとして、出力端子４に供給する。
【００６５】
このような構成で動作させることによって、本発明では、音声区間では低歪を優先した抑圧を、非音声区間では低残留雑音を優先した抑圧を行い、さらに音声区間と非音声区間の残留雑音レベルに不連続が生じないように、抑圧係数を設定することができる。このため、非音声区間における小さな残留雑音と音声区間における小さな出力歪を両立し、さらに両者の境界において不連続が生じない、高音質な強調音声を出力することができる。
【００６６】
これまで説明した全ての実施の形態では、雑音抑圧の方式として、最小平均2乗誤差短時間スペクトル振幅法を仮定してきたが、その他の方法にも適用することができる。このような方法の例として、非特許文献４（非特許文献４：  1979 年12 月、プロシーディングス・オブ・ザ・アイ・イー・イー・イー、第67 巻、第12 号 (PROCEEDINGS OF THE IEEE, VOL.67, NO.12, PP.1586-1604, DEC, 1979)、1586 〜1604 ページ）に開示されているウィーナーフィルタ法や、非特許文献５（非特許文献５：  1979 年4 月、アイ・イー・イー・イー・トランザクションズ・オン・アクースティクス・スピーチ・アンド・シグナル・プロセシング、第27巻、第2号(IEEE TRANSACTIONS ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, VOL.27, NO.2, PP.113-120, APR, 1979)、113〜120 ページ）に開示されているスペクトル減算法などがあるが、これらの詳細な構成例については説明を省略する。
【図面の簡単な説明】
【００６７】
【図１】本発明の最良の実施の形態を示すブロック図。
【図２】図１に含まれる変換部の構成を示すブロック図。
【図３】図１に含まれる逆変換部の構成を示すブロック図。
【図４】図１に含まれる雑音推定部の構成を示すブロック図。
【図５】図４に含まれる推定雑音計算部の構成を示すブロック図。
【図６】図５に含まれる更新判定部の構成を示すブロック図。
【図７】図４に含まれる重み付き劣化音声計算部の構成を示すブロック図。
【図８】図７に含まれる非線形処理部における非線形関数の一例を示す図。
【図９】図１に含まれる雑音抑圧係数生成部の構成を示すブロック図。
【図１０】図９に含まれる推定先天的SNR計算部の構成を示すブロック図。
【図１１】図10に含まれる重み付き加算部の構成を示すブロック図。
【図１２】図９に含まれる雑音抑圧係数計算部の構成を示すブロック図。
【図１３】図１に含まれる抑圧係数補正部の構成を示すブロック図。
【図１４】本発明の第２の実施の形態を示すブロック図。
【図１５】従来の雑音抑圧装置の構成例を示すブロック図。
【図１６】図15に含まれる雑音抑圧係数生成部の構成を示すブロック図。
【図１７】図15に含まれる抑圧係数補正部の構成を示すブロック図。
【符号の説明】
【００６８】
１  入力端子
２  変換部
３  逆変換部
４  出力端子
５, 660, 3203, 6204, 6205, 6901, 6903, 6507  乗算器
21  フレーム分割部
22, 32  窓がけ処理部
23  フーリエ変換部
31  フレーム合成部
33  逆フーリエ変換部
300  雑音推定部
310  推定雑音計算部
320  重み付き劣化音声計算部
330, 480  カウンタ
400  更新判定部
410  レジスタ長記憶部
420, 3201  推定雑音記憶部
430, 6505  スイッチ
440  シフトレジスタ
450, 6208, 6902, 6904  加算器
460  最小値選択部
470  除算部
600, 601  雑音抑圧係数生成部
610  後天的SNR計算部
620  推定先天的SNR計算部
630  雑音抑圧係数計算部
640  音声非存在確率記憶部
650, 651  抑圧係数補正部
670  音声存在確率計算部
680  仮出力SNR計算部
1000  コンピュータ
3202  周波数別SNR計算部
3204  非線形処理部
4001  論理和計算部
4002, 4004, 6504  比較部
4003, 4005, 6503  閾値記憶部
4006  閾値計算部
6201  値域限定処理部
6202  後天的SNR記憶部
6203  抑圧係数記憶部
6206  重み記憶部
6207  重み付き加算部
6301  MMSE STSA ゲイン関数値計算部
6302  一般化尤度比計算部
6303  抑圧係数計算部
6501  最大値選択部
6502  抑圧係数下限値記憶部
6506  修正値記憶部
6511  最大値選択部
6512  抑圧係数下限値計算部
6905  定数乗算器
【図１】
2008216721.tif 000020
【図２】
2008216721.tif 000021
【図３】
2008216721.tif 000022
【図４】
2008216721.tif 000023
【図５】
2008216721.tif 000024
【図６】
2008216721.tif 000025
【図７】
2008216721.tif 000026
【図８】
2008216721.tif 000027
【図９】
2008216721.tif 000028
【図１０】
2008216721.tif 000029
【図１１】
2008216721.tif 000030
【図１２】
2008216721.tif 000031
【図１３】
2008216721.tif 000032
【図１４】
2008216721.tif 000033
【図１５】
2008216721.tif 000034
【図１６】
2008216721.tif 000035
【図１７】
2008216721.tif 000036