(57)【特許請求の範囲】
【請求項１】
送受信される音声信号を取得し、送信信号または受信信号の少なくとも一方への信号低減を行う電子機器であって、
送信信号または受信信号の音声検出結果に基づいて送信信号への第１の信号低減量を設定するボイススイッチと、
送信信号を取得し、前記ボイススイッチによって設定された第１の信号低減量以下の最終信号低減量で送信信号への信号低減を行うノイズキャンセラとを備えたことを特徴とする電子機器。
【請求項２】
送受信される音声信号を取得し、送信信号または受信信号の少なくとも一方への信号低減を行う電子機器であって、
送信信号または受信信号の音声検出結果に基づいて送信信号への第１の信号低減量を設定するボイススイッチと、
送信信号を取得し、送信信号に含まれるノイズを抑制するための第２の信号低減量を算定し、前記ボイススイッチで設定された送信信号への第１の信号低減量と前記第２の信号低減量とを比較して第１の信号低減量以下となるように調整された最終信号低減量で送信信号への信号低減を行うノイズキャンセラとを備えたことを特徴とする電子機器。
【請求項３】
送受信される音声信号を取得し、送信信号または受信信号の少なくとも一方への信号低減を行う電子機器であって、
送信信号または受信信号の音声検出結果に基づいて送信信号への第１の信号低減量を設定するボイススイッチと、
送信信号を取得し、送信信号に含まれるノイズを抑制するための第２の信号低減量を算定し、前記第２の信号低減量と前記ボイススイッチによって設定された第１の信号低減量のいずれか減衰量の大きい方を用いて前記送信信号の信号低減を行うことを特徴とするノイズキャンセラとを備えたことを特徴とする電子機器。
【請求項４】
前記ボイススイッチは、送信信号への第１の信号低減量を設定し、受信信号への信号低減量が設定された場合には、その受信信号への信号低減量を用いて受信信号の信号低減を行うことを特徴とする請求項１乃至請求項３に記載の電子機器。
【請求項５】
前記ノイズキャンセラは送信信号または受信信号から音声検出を行い、第２の信号低減量を算定し、前記ボイススイッチは、前記ノイズキャンセラにおける音声検出の結果を受け、送信信号への第１の信号低減量を設定することを特徴とする請求項２乃至請求項４に記載の電子機器。
【請求項６】
前記ノイズキャンセラは、前記第２の信号低減量を前記送信信号の周波数帯域ごとに設定することを特徴とする請求項２または請求項３に記載の電子機器。
【請求項７】
送受信される音声信号を取得し、送信信号または受信信号の少なくとも一方への信号低減を行う電子機器であって、
送信信号または受信信号の音声検出結果に基づいて少なくとも一方に対して所定の信号低減量を設定するボイススイッチと、
受信信号を取得し、前記ボイススイッチによって受信信号への信号低減量が設定された場合には、その信号低減量を用いて受信信号への信号低減を行う受信信号低減手段と、
送信信号を取得し、送信信号または受信信号から音声検出を行い、その音声検出結果に基づいて送信信号の周波数帯域ごとにノイズ抑制のための信号低減量を算出し、前記ボイススイッチによって送信信号への信号低減量が設定されていた場合には、前記ノイズ抑制のための信号低減量を前記ボイススイッチによって設定された信号低減量以下となるように調整した最終信号低減量で送信信号の信号低減を行い、前記ボイススイッチによって受信信号への信号低減量が設定された場合には、前記ノイズ抑制のための信号低減量を用いて送信信号の信号低減を行うノイズキャンセラとを備えたことを特徴とする電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声信号の送受を取り扱う携帯電話などの電子機器に関する。
【０００２】
【従来の技術】
携帯電話などの音声の送受を行う通信システムにおいては、ハウリングなどの防止のため、ボイススイッチが通信システムを構成する電子機器（携帯電話など）に搭載されている。
【０００３】
ボイススイッチは送受信の信号ループのなかに恒常的にＬＯＳＳを挿入するものであり、受信信号もしくは送信信号のどちらか一方に所定の信号低減量を課すものである。
【０００４】
一般的には、受話のみのときには送信信号に、送話のみのときには受信信号にＬＯＳＳを挿入するように設定されている。いわゆるダブルトークの際もしくは無話状態のときには、例えば、送話側にＬＯＳＳが挿入されるように設定されている。
【０００５】
また携帯電話など音声通信を行う電子機器では、ＣＥＬＰ(Code Excited Linear Prediction)方式などの音声符号化方式が用いられている。
【０００６】
このような機器を背景雑音の大きい環境下で使用すると、この背景雑音が取り込まれて符号化され音声の明瞭感が低下してしまう。そのため、背景雑音を除去もしくは抑制して音声のみの信号に近づけて音声符号化を行う技術（ノイズキャンセラ）が研究され、電子機器に搭載されてきている。
【０００７】
【発明が解決しようとする課題】
前述のごとく、ボイススイッチ及びノイズキャンセラはそれぞれ異なる目的を有するため、両者を備えた電子機器においては、それぞれ独自にその機能を発揮するように個別に動作している。
【０００８】
従って両者が同一の信号系（たとえば送話系）に信号低減をいれた場合はどちらの機能にとっても必要以上の信号低減が行われてしまうという問題点がある。
【０００９】
また、音声検出機能及び信号低減機能は共通の機能である。従って信号処理的には冗長な領域が存在していることになる。
【００１０】
本発明は以上の点を考慮してなされたものであり、ノイズキャンセラとボイススイッチとを有する際の音声信号処理が改善された電子機器の提供を目的とする。
【００１１】
【課題を解決するための手段】
本発明は、送受信される音声信号を取得し、送信信号または受信信号の少なくとも一方への信号低減を行う電子機器であって、
送信信号または受信信号の音声検出結果に基づいて送信信号への第１の信号低減量を設定するボイススイッチと、
送信信号を取得し、前記ボイススイッチによって設定された第１の信号低減量以下の最終信号低減量で送信信号への信号低減を行うノイズキャンセラとを備えたことを特徴とする電子機器である。
【００１２】
すなわちボイススイッチによる信号低減量（Ａ）とノイズキャンセラによる信号低減量（Ｂ）とを単純に加算することなく、両者を比較して適正な信号減衰量を決定するというものである。
【００１３】
一般的にノイズキャンセラの方がきめ細かいノイズ低減を行うように動作するので（信号減衰量の時間変化が細やか）、ノイズキャンセラの信号低減量（Ｂ）を基準に送信／受信系に挿入する信号低減量を決定することが好ましい。
【００１４】
しかしながらハウリング防止などの観点から一定量の信号低減は送信／受信系のいずれかには入れる必要がある。
【００１５】
従って、信号低減量の基準としてはノイズキャンセラの信号低減量（Ｂ）を採用し、信号低減量の上限（絶対値としては下限）をボイススイッチの信号低減量（Ａ）とすることが好ましい。
【００１６】
すなわち、ノイズキャンセラの信号低減量（Ｂ）がボイススイッチの信号低減量（Ａ）以下となるように調整することで達成できる。
【００１７】
またボイススイッチのＬＯＳＳは送信系，受信系のいずれかに挿入されるが、その判断は送信系／受信系のどちらに音声信号が存在するかの判断による。この判断手法は種々の方法があり特段限定するものではない。
【００１８】
しかしながら、ノイズキャンセラでも音声信号の有無の判断を行っているので、この結果を利用することでボイススイッチにおける独自の音声信号有無検出の処理を省略することができる。
【００２０】
本発明で用いるノイズキャンセラとしては時間領域におけるノイズ抑制方式，周波数領域におけるノイズ抑制方式など各種方式を採用することができる。
【００２１】
例えば特許２９９５７３７号公報には、入力信号を所定期間のフレームに分割し、フレーム毎に雑音／音声を判断し、雑音フレームと判断された場合には帯域別のゲイン値を最小に設定し、音声フレームと判断された場合にはそれを超えるゲイン値を設定し、ノイズ抑圧を行う方式が開示されており、これを用いることもできる。
【００２２】
また、入力信号を定められた時間単位のフレームに分割し、この分割されたフレームを所定の周波数帯域に分割し、この分割された帯域ごとに雑音の抑圧処理を行うノイズ抑制方法において：前記フレームが雑音フレームであるか音声フレームであるかの判定を行う音声フレーム判定ステップと；前記音声フレーム判定ステップの結果に基づき各フレームの帯域別ゲイン値を設定する帯域別ゲイン決定ステップと；前記帯域ゲイン決定ステップにより決定された帯域別ゲイン値を用いて帯域毎に雑音抑圧を行った後にフレームを再構成して雑音抑制された出力信号を生成する信号生成ステップとを具備し、前記帯域別ゲイン決定ステップでは、決定対象のフレームが音声フレームであると判定された場合の帯域別ゲイン値が、決定対象のフレームが雑音フレームであると判定された場合の帯域別ゲイン値より小さい値を取り得るように帯域別ゲイン値の設定が行われることを特徴とするノイズキャンセラを採用することもできる。
【００２３】
この方式では音声フレーム内での音声成分を含まない帯域のノイズ抑制が十分に行われ、良好なノイズ低減を行うことができる。すなわち、雑音抑圧を行う際の帯域別のゲイン値を音声フレームと雑音フレームとで区別して決定するだけではなく、雑音フレームの帯域別最小ゲイン値よりも音声フレームの帯域別最小ゲイン値の方が小さくなるように設定することで、ノイズ抑圧後の音声信号の聴感が改善されるている。
【００２４】
音声フレームと判断されたフレームでも全ての帯域に音声成分が含まれているとは限らない。音声フレームと判断されたフレーム内の音声成分が含まれない（若しくは音声成分が少ない）と推定される帯域に関しては、雑音フレームの帯域別ゲイン値より小さいゲインを設定し、音声フレーム内での音声成分の含まれる帯域を際立たせることで良好な聴感が得られるのである。
【００２５】
すなわち、決定対象フレームが音声フレームであると判定されたフレーム内の音声成分が含まれないと推定された帯域の帯域別ゲイン値を、決定対象のフレームが雑音フレームであると判定された場合の帯域別ゲイン値より小さい値を取るように帯域別ゲイン値の設定を行うことにより、音声フレーム内の音声成分を含む帯域をより際立たせることができ、結果として聴感の良好なノイズ抑圧された出力信号を得ることができる。
【００２６】
なお、雑音フレームにおいては、各帯域に関し一定値のゲイン値を設定する様にしても良いし、帯域別パワーと雑音パワーとの差に基づいて変化するように設定してもよい。
【００２７】
また、音声フレームに関しては帯域別パワーと雑音パワーの差に基づく指標が大きくなるにつれ帯域別ゲイン値が大きくなるように設定し、この指標が所定値以下の場合は一定値とする設定も可能である。連続的に減少する関数を採用することも構わない。
【００２８】
このようなノイズ抑制方法においては、前述の帯域別ゲインを決定する前段階として、雑音パワーの推定値の更新を行う段階がある。この雑音推定値は、所定の条件で更新され、例えば特表平１０−５１３０３０号に開示されたノイズ抑圧方法に開示された更新方法を採用することができる。
【００２９】
この更新方法は、各フレームの個々の帯域ごとのＳＮＲ（信号エネルギ／雑音エネルギの対数値）に重み付けを行ったものの合計であるボイスメトリックを用いるものであり、個々の帯域ごとの偏差（信号エネルギの対数値−過去の信号エネルギの平均値の対数値）の絶対値をとったものの合計であるスペクトル偏差を用いて雑音推定値を更新する技術であり、このスペクトル偏差がしきい値を一定時間（例えば１秒間）下回った場合は推定雑音値が更新される。
【００３０】
また、スペクトル偏差の値をそのまま判定に用いるのではなく、過去フレームとの間で、帯域パワーと雑音パワーとの差の偏差合計をその平均値で正規化し、この正規化値をもとに雑音区間の判定を行うことで、上記方法に比べフレーム間の変動の大きい雑音を雑音として認識することができる方法を採用することもできる。
【００３１】
すなわち、帯域別パワーと帯域別雑音パワー推定値との差に所定の重み付けを行った帯域別有意値(suby)の現フレームと前フレームとの差を合計した値(sum)を、その平均値(sum＿average)で正規化した比率(r)をもとに現フレームが雑音フレームであるか否かの判定を行う方法である。
【００３２】
このように過去フレームとの帯域別有意値(suby)の偏差を利用し、この偏差合計値の平均値で偏差を正規化した値を判定根拠に用いることでフレーム毎のばらつきを緩和することができるので、安定した雑音フレーム判定を行うことができる。従ってフレーム間のばらつきが大きい雑音に対しても雑音としての認識を良好に行うことができる。
【００３３】
より詳細に説明すると、送信入力信号を定められた時間単位のフレームに分割するフレーム分割ステップと；各々のフレームについて複数の周波数帯域に分割する周波数帯域分割ステップと；各々の周波数帯域について帯域別パワー(channel＿power)を算定する帯域別パワー算定ステップと；各々の周波数帯域について帯域別雑音パワー推定値(noise＿power)と前記帯域別パワー(chennel＿power)との差(tmp)を算定し、この差(tmp)に所定の重み付けを行って得た帯域別有意値(suby)を所定の条件にて加算した有意値(y)を算定する有意値算定ステップと；現フレームと前のフレームとの間で、各々の周波数帯域について帯域別有意値(suby)の差の絶対値和(sum)をとる帯域別有意値和算定ステップと；前記絶対値和(sum)の平均値(sum＿average)を算定し、前記絶対値和(sum)をこの絶対値和の平均値(sum＿average)で正規化した比率(r)を算定する有意値正規化ステップと；を有する。
【００３４】
雑音パワー推定値の更新は以下の２種類のステップを有する。
【００３５】
すなわち、前記有意値(y)が所定のしきい値を下回った場合に現フレームを雑音フレームと判断し、前記帯域別雑音パワー推定値(noise＿power)を更新する第1の雑音パワー推定値更新ステップと；前記比率(r)が所定のしきい値を所定の期間連続して下回った際に現フレームを雑音フレームと判断し、前記帯域別雑音パワー推定値(noise＿power)の更新を行う第2の雑音パワー推定値更新ステップとである。
【００３６】
上記第１の雑音パワー推定値更新ステップは、良好に雑音推定が行われて有意値判定により雑音フレームであると判定される場合であり、第２の雑音パワー推定値更新ステップは、有意値がフレーム間でばらついたりして有意値では良好な雑音フレーム判定ができない場合でも強制更新を可能とするものである。
【００３７】
なお正規化に用いる平均値は、前記絶対値和(sum)のリーク積分を用いての推定値を使用することができる。また、前記絶対値和(sum)の標準偏差のリーク積分を用いて得られた前記平均値(sum＿average)の推定値を用いることも可能である。
【００３８】
なお、前述の帯域別のゲイン設定に際しては、音声フレームの場合と雑音フレームの場合とで異なる関数を用いてその帯域別ゲイン値を決定すすことになるが、ゲイン値決定の変数は基本的には帯域別パワーと帯域別ノイズパワーとの差（対数では差：ＳＮＲ）をもとに算出される。すなわち音声フレームでＳＮＲが大きい帯域は音声成分を含んでいる帯域と推定されるので、その帯域のゲイン値は大きく設定され、ＳＮＲが小さい帯域は音声成分を含んでいないと推定され、そのゲイン値は小さく設定される。
【００３９】
ところで、雑音（Background Noise）は一般に定常と仮定されるが、屋外では変動する場合がある。特に、自動車が通り過ぎるときに発生する雑音のエネルギは自動車の接近とともに大きくなる。この状態で送話音声が入力されると、音声と雑音とのエネルギ差が小さいため、抑圧後の音声を歪ませることがある。また、雑音のスペクトル形状と音声のスペクトル形状が似ている場合も、雑音エネルギをもとに抑圧を行うと音声のスペクトルに干渉しやすくなるため、抑圧後の音声に歪みが発生する。雑音エネルギが変動した場合でもその影響を排除して安定な雑音抑圧処理を行えるように、ＳＮＲを基本としながら、ゲイン値決定の変数を調整することでそのような影響を抑えることも可能である。
【００４０】
このような調整は、前記帯域別ゲイン値の決定に際し、前記周波数帯域ごとに信号のパワーを求め、この帯域パワーをもとに帯域別の雑音パワーを推定する雑音パワー推定ステップと；前記帯域パワー及び帯域別雑音パワーのうちの少なくとも一方について、複数のフレーム期間に亘りパワーの最小値を検出する最小値検出ステップと；前記周波数帯域ごとにその帯域パワーと前記最小値検出ステップにより検出された帯域別最小値との差を求める帯域別最小値決定ステップから求められた差をもとに周波数帯域別の雑音抑圧量を決定することにより行うことができる。
【００４１】
さらに、フレームごとに異なる帯域共通の調整値を生成する調整値を用い、前記周波数帯域ごとに、前記帯域別最小値と前記調整値を加えた値とその帯域パワーとの差を求め、この差をもとに周波数帯域別の雑音抑圧量を決定することにより行うこともできる。
【００４２】
この調整値は、雑音区間においては、前記帯域別最小値間の平均値と前記帯域別雑音パワー間の平均値との差に基づいて帯域共通の調整値を決定し；音声区間においては、１フレームにおける複数の帯域パワーの中の最小値と複数の帯域別最小値の中の最大値との差に基づいて帯域共通の調整値を決定することで得ることができる。
【００４３】
なお、音声フレームと雑音フレームとの判定には：周波数帯域ごとに信号のパワーを求め、この帯域パワーをもとに帯域別の雑音パワーを推定する雑音パワー推定ステップと；前記周波数帯域ごとに帯域別雑音パワーと帯域パワーとの差を求め、これらの帯域別差を所定のしきい値と比較する比較ステップと；周波数順に配列された前記各帯域別差のうち隣接する複数の帯域の帯域別差がしきい値を超えると判定された場合に、これらの帯域別差を所定の重み付けを行った上で相互に加算する加算ステップと；この加算ステップにより得られた帯域別差の加算値に基づいて、前記入力信号について音声区間か雑音区間であるかを判定する判定ステップとからなる判定方法を採用することができる。
【００４４】
この加算ステップでは、各帯域別差に対し、周波数が高くなるに従い重みが小さくなるような重み付けを行うことができ、前記判定ステップでは、前記加算値に基づいて、前記入力信号について音声区間か、雑音区間か或いは両区間の中間領域である過渡区間かを判定することが可能である。
【００４５】
この様な本発明は、ＡＣＥＬＰ，ＥＶＲＣ，ＥＦＲ，ＡＭＲなどの各種音声符号化方式を用いたディジタル音声符号化方法を採用する携帯電話など電子機器に適応できる。すなわち、音声信号入力部（マイクなどの直接入力手段，電子ファイルなどからの信号送出でも構わない）と、音声符号化部とを有する電子機器において、音声信号入力部の音声信号を受け、上述のノイズ抑制方法によりノイズ抑制された信号を音声符号化部へ供給するノイズキャンセラと、前述のボイススイッチとを具備した電子機器である。
【００４６】
なおボイススイッチ，ノイズキャンセラは、例えば音声符号化などと同様にＤＳＰ内の信号処理により実行することが可能である。
【００４７】
【発明の実施の形態】
本発明の実施態様を説明する。
【００４８】
図１は本発明の実施態様を示す電子機器の概略ブロック図である。
【００４９】
受話信号（１）は受話信号増幅器（２）を介してスピーカなどの音声出力器（３）に供給される。またマイクなどの音声入力器（４）からの入力信号はノイズキャンセラＮＣ（５）を介して送話信号（９）として送り出される。
【００５０】
ボイススイッチＶＳ（６）は、受話信号から受話信号中の音声信号の有無を検出し、またノイズキャンセラＮＣ（５）から送話信号中の音声信号の有無を示す信号ｓｐ［音声検出フラグ］を受け取る。その結果からダブルトーク判定部ＤＴＤ（７）で送受話信号のどちらに音声信号が含まれているかを判断する。
【００５１】
この判断結果を受けてＬＯＳＳ決定部（８）では、設定に基づき送信系／受信系に挿入するＬＯＳＳを決定し、増幅器（２）にはＲ＿ｌｏｓｓを、ノイズキャンセラＮＣ（５）にはＳ＿ｌｏｓｓを通知する。
【００５２】
この設定としては、例えば、一定量のＶＳ＿ｌｏｓｓ（例えば−１２ｄＢ）を送話／受話のどちらか一方に挿入するものとする。
【００５３】
音声の有無により４個のケースがあり下記のように設定される。
（１）受話（音声なし）／送話（音声なし）：Ｓ＿ｌｏｓｓ＝ＶＳ＿ｌｏｓｓ
（２）受話（音声有り）／送話（音声なし）：Ｓ＿ｌｏｓｓ＝ＶＳ＿ｌｏｓｓ
（３）受話（音声なし）／送話（音声有り）：Ｒ＿ｌｏｓｓ＝ＶＳ＿ｌｏｓｓ
（４）受話（音声有り）／送話（音声有り）：Ｓ＿ｌｏｓｓ＝ＶＳ＿ｌｏｓｓ
ＶＳ＿ｌｏｓｓの挿入されなかった方の減衰量は“０”とする。
【００５４】
この設定は適宜変更することが可能である。例えば、ボイススイッチの切り替え時（ＶＳ＿ｌｏｓｓから“０”への切り替え）には急激に減衰量が変化するのでいわゆるスイッチ感がユーザーに感じられる。これを低減するため、切り替え時に減衰量に傾きをつけることも可能である。
【００５５】
このボイススイッチの決定する信号減衰量（Ａ）とノイズキャンセラの決定する信号減衰量（Ｂ）とから送話／受話信号の信号減衰量を決定する。
【００５６】
本実施例では、受話信号の信号減衰量はボイススイッチの信号減衰量（Ａ）となり、送話信号の信号低減量はボイススイッチの信号低減量（Ａ）で制御されたノイズキャンセラの最終信号減衰量（Ｃ）となる。
【００５７】
すなわち、ノイズキャンセラがノイズ低減のために算定した信号減衰量が、ボイススイッチが提供する信号減衰量より大きい場合はノイズキャンセラの信号減衰量を採用し、ボイススイッチが提供する信号減衰量よりノイズキャンセラの信号減衰量が小さい場合はボイススイッチが提供する信号減衰量を採用する。
【００５８】
従って、送話信号の最終信号低減量は、ボイススイッチの提供する信号減衰量を上限とした形で推移することになる。
【００５９】
送話側の音声信号の有無もボイススイッチで送話信号を取り込んで同様の処理を施すことで判定してもよいが、本実施形態では送話信号中の音声の有無はノイズキャンセラの判断を用いる設定にしている。
【００６０】
次にノイズキャンセラの動作について説明する。
【００６１】
ノイズキャンセラは例えばＤＳＰ（Digital Signal Processor）により実現されるものであり、その処理プログラムはノイズキャンセラ内のメモリまたは制御回路に付属するメモリに格納されている。図２はこの処理プログラムにより実現される機能構成を示すノイズキャンセラのブロック図である。
【００６２】
マイクなどの音声入力部からの音声信号がＡ／Ｄ変換されたデジタル音声信号は、まずフレーム分割部２１に入力される。フレーム分割部は、例えば１２８サンプルに整えられたフレームを出力する（フレーム分割ステップ）。このときディジタル送話信号を例えば８０サンプルのフレームに分割した後、ウインドウがけを行うことによりフレーム端をオーバーラップさせても構わない。このディジタル送話信号フレームを高速フーリエ変換部（ＦＦＴ）２２に入力する。
【００６３】
ＦＦＴ２２の出力はノイズキャンセラの最終信号低減量（Ｃ）を決定する最終低減量決定部３４からの出力に基づき乗算器２３にてノイズ抑制がなされ、ＩＦＦＴ部２４にて逆ＦＦＴをかけフレーム合成部２５にてフレームに戻し、送信信号として出力される。
【００６４】
また、ＦＦＴ２２の出力は帯域パワー計算部２６に入力され、その出力は有意値計算部２７及び帯域別ゲイン決定部３３に供給される。また更新判定部３１の判定結果により雑音リーク積分値更新部３２にもその出力が供給される。
【００６５】
有意値計算部２７の出力は更新判定部３１及び音声重み計算部２８に供給される。
【００６６】
雑音リーク積分値更新部３２の出力は、有意値計算部２７，音声重み計算部２８及び帯域別ゲイン決定部３３に供給される。
【００６７】
音声重み計算部２８の出力は雑音最小値推定部２９及び帯域別ゲイン決定部３３に供給されるとともに、ボイススイッチＶＳにＳＰ値（音声検出フラグ）として出力される。
【００６８】
帯域別ゲイン決定部３３は、雑音リーク積分値更新部３２，雑音最小値推定部２９及び音声重み計算部２８からの出力を入力とし、最終低減量決定部３４へ信号を出力する。
【００６９】
最終低減量決定部３４は、ボイススイッチＶＳからのＳ＿ｌｏｓｓと帯域別ゲイン決定部３３からの出力を入力とし、乗算器２３へゲインを出力する。
【００７０】
以下各ブロックにおける動作を説明する。
【００７１】
高速フーリエ変換部ＦＦＴ２２は、入力されたディジタル送話信号フレームに対し高速フーリエ変換処理を行い、低域から高域まで順に１６帯域（ｋ＝０，１，２，・・・１５）に周波数分割された変換係数を得る。この変換係数は各帯域において同じである必要はない。この帯域分割された変換係数を、帯域パワー計算部２６に出力する（周波数帯域分割ステップ）。
＜帯域パワー計算＞
帯域パワー計算部２６は、各帯域ごとにエネルギ（変換係数の二乗平均値）を求めて対数をとり、帯域パワーchannel＿power(m,k)、［mはフレーム番号，ｋは帯域番号（０〜１５）］を出力する（帯域別パワー算定ステップ）。この帯域パワーは有意値計算部２７に出力される。
＜有意値計算＞
有意値計算部２７では、後述する雑音リーク積分値更新部３２から出力される雑音リーク積分値noise＿power(m,k)と、上記帯域パワーchannel＿power(m,k)との差tmpをもとめ、帯域別の差tmpを所定のしきい値と比較する。周波数順に配列された上記帯域別の差tmpの内、隣接する複数の帯域の帯域別差tmpがしきい値を超えると判定された場合に、これらの帯域別差tmpに所定の重み付けを行った上で相互に加算する。この重み付け後の値suby(m,k)の条件付き総和（隣接する複数の帯域の帯域別差tmpがしきい値を超えると判定された場合）を有意値ｙとして出力する（有意値算定ステップ）。
【００７２】
また有意値ｙの平均値（y＿average：リーク積分による推定値で代用でき、例えば下記の式にて計算）も出力する。
【００７３】
ｙ(m)：有意値、suby(m,k)の条件付き総和
y＿average(m)=y＿average(m-1)×0.9＋y(m)×0.1
図３は有意値計算部２７の処理手順を示すフローチャートである。有意値ｙを出力するフローを図３に基づいて説明する。
【００７４】
ステップ３ａでフレーム番号ｍ＝０にリセット／初期値設定した後、ステップ３ｂでグループ番号ｍをインクリメントするとともに有意値ｙ，帯域番号ｋ及び連続数flag（しきい値を超える帯域別差tmpの連続数フラグ）を“０”に初期設定する。
【００７５】
次にステップ３ｃで帯域ｋ＝０について、帯域パワーと雑音リーク積分値との差tmpと、この帯域別差tmpに対して重み付けを行った値suby(m,k)とを下記のように計算する。
【００７６】
tmp＝chanel＿power(m,k)−noise＿power(m,k)
sub＿y(m,k)＝｛200−(k−1)2｝／100×（tmp−1）
ただし、｛200−(k−1)2｝は重み付け係数である。この場合、帯域の周波数が高くなるにつれ小さくなるように設定されているが、適宜変更可能である。
【００７７】
帯域ｋ＝０における帯域別差tmpが算出されると、有意値計算部２７はステップ３ｄで帯域別差tmpをしきい値（例えば１）と比較する。しきい値を超えていると音声である可能性があると判断してステップ３ｅ，ステップ３ｇを経てステップ３ｉに移行し、連続数flagを１に設定する。ついでステップ３ｋで帯域番号kをインクリメントしてｋ＝１とした後、ステップｃに戻って帯域ｋ＝１についても同様の処理を実行する。
【００７８】
ここで帯域ｋ＝１においても帯域ｋ＝０に引き続いて帯域別差tmpがしきい値を超えたとする。連続数flagは既に１なのでステップ３ｅからステップ３ｆに移行して、ここで
y＝y＋suby(m,k−1)
なる演算を実行する。そして連続数flagを２に設定し、ステップ３ｇを経てステップ３ｈに移行して、下記演算を実行する。
【００７９】
y＝y＋suby(m,k)
ついでステップ３ｋで帯域番号ｋを更にインクリメントしｋ＝２として、ステップ３ｃに戻り、帯域ｋ＝２についての処理を実行する。
【００８０】
以降同様に、隣接する帯域の帯域別差tmpが連続してしきい値を超える毎に、その帯域のsuby(m,k)が一つ前の帯域までに得られた有意値ｙに順次加算され、帯域別差tmpの重み付け加算値ｙが求められる。
【００８１】
なお、いずれかの帯域ｋ＝ｉにおいて、帯域別差tmpがしきい値以下になると、有意値計算部２７はステップ３ｄからステップ３ｊに移行し、連続数flagを０にリセットする。
【００８２】
こうして１フレームを構成する１６個の全ての帯域（ｋ＝０〜１５）について処理が完了すると、有意値計算部２７は、ステップ３ｍからステップ３ｎに移行し、有意値ｙと、帯域ごとに算出した重み付け後の帯域別差suby(m,k)（k＝0〜15）を夫々出力する。
【００８３】
このようにして各フレーム毎に有意値ｙが求められ、音声フレームであるか雑音フレームであるかの判定に供される。
【００８４】
また有意値計算部２７では雑音パワー強制更新を判定する有意区間のカウントをも行う。この処理を図４のフローチャートに基づいて説明する。
【００８５】
まず有意値ｙ(m)の平均値y＿average(m)を求める。
【００８６】
ステップ４ａでフレーム番号ｍ＝０，sum＿average(0)=0.1，y＿average(0)=10，counter(0)＝０に初期値設定した後、ステップ４ｂでグループ番号ｍをインクリメントするとともに有意値ｙ，sub(m,k)を入力する。
【００８７】
ついでステップ４ｃで有意値ｙの平均値を算出する。平均値はメモリ容量，計算量などの関係から適宜期間を設定することができるが（例えば０．１〜０．３秒くらいの平均をとれば十分であるので、過去２０フレーム分を加算して平均を求めるなど）、一般的にはリーク積分を用い下記のように推定算出する。平均値の求め方はリーク積分以外の手法を用いても良いことは言うまでもない。
【００８８】
y＿average(m)=y＿average(m-1)×0.9＋y(m)×0.1
次にステップ４ｄでsub(m,k)とsub(m-1,k)との差の絶対値和sumを求め（帯域別有意値和算定ステップ）、更にステップ４ｅにて、絶対和sumの平均値sum＿averageで割り、比率ｒを算出する（有意値正規化ステップ）。
【００８９】
sum(m)／sum＿average（ｍ−1）
この値を直接ｒとしても良いが、特異的な値を除去するため、r(m−1)に決められた減衰率（例えば０．９９）を乗じた値との大きさを比べ、大きい方をｒ（ｍ）として採用する。
【００９０】
この比率ｒは有意値区間算定のカウンタ加算の判定基準となるものであり、例えば上限は８に設定される。従って、ステップ４ｆでｒ（ｍ）が８を超えていると判定されるとステップ４ｇでｒ（ｍ）＝８に設定し直される。
【００９１】
ついでステップ４ｈでsum＿averageが更新される。この平均値もメモリ容量，計算量などの関係から適宜期間を設定することができるが（例えば０．１〜０．３秒くらいの平均をとれば十分であるので、過去２０フレーム分を加算して平均を求めるなど）、一般的にはリーク積分を用い下記のように推定算出することができる。平均値の求め方はリーク積分以外の手法を用いても良いことは言うまでもない。
【００９２】
sum＿average(m)＝sum＿average(m−1)×0.9＋sum(y)×0.1
なおsum＿averageは標準偏差の推定値を用いても良い。その場合も下記式のリーク積分を用いて推定値を得ることができ、この値で代用する。
【００９３】
sum＿average(m)＝sqrt(sum＿average(m−1)2×0.9＋sum(m)2×0.1)
続いて有意区間のカウンタcounter(m)を算出する。
【００９４】
ｙ＞１０かつcounter(m)＜１００かつr(m)≦ＴＨＲのとき、counter(m)に１が加算される。この条件を満たさない場合はcounter(m)=0にリセットされる。
【００９５】
ＴＨＲは固定値でも構わないし、y＿averageによって変化させることも可能である。本実施形態では、下記の式で変化するＴＨＲを採用している。
【００９６】
ＴＨＲ＝1.7＋（y＿average−40）／200    ただし 1.7≦ＴＨＲ≦2.0
y＿average＞100      ＴＨＲ＝2.0
y＿average≦ 40      ＴＨＲ＝1.7
40≦y＿average≦100  ＴＨＲ＝1.7＋（y＿average−40）／200
従ってステップ４ｉでy＿average(m)が１００を超えると判定された場合はステップ４ｊにてＴＨＲ＝２．０に設定され、ステップ４ｋでy＿average(m)が４０を超えると判定された場合はステップ４ｌでＴＨＲが上記式の可変値に設定される。その他の場合はステップ４ｍにてＴＨＲ＝１．７に設定される。
【００９７】
ステップ４ｎで有意値ｙが１０を超えていると判定され、ステップ４ｏでカウンタcounterが１００未満と判定され、ステップ４ｐで比率ｒがＴＨＲ以下と判定された場合は、ステップ４ｑでカウンタcounterが加算され、それ以外の場合はステップ４ｒにてカウンタcounterは０にリセットされる。
【００９８】
同様にステップ４ｎで有意値ｙが１０以下と判定された場合はステップ４ｓでカウンタcounter(m)は０にリセットされ、ステップ４ｏでcounterが１００以上（すなわち１００）の場合はステップ４ｔでcounter(m)＝counter(m−1)に据え置かれる。
【００９９】
以上の処理で各フレームｍに対して、counter(m)とy＿average(m)が出力されることになる（ステップ４ｕ）。
＜更新判定＞
これらの出力（counter(m),suby(m,k),y(m),y＿average(m)）を受け更新判定部３１で帯域別雑音パワー値noise＿power(m,k)の更新の有無を判定し、雑音リーク積分値更新部３２で帯域別雑音パワー値を更新する。
【０１００】
有意値ｙは通常の音声の場合は２０〜３０程度であり雑音推定が良好に実施されている場合はｙ＜１５程度となる。従ってｙ＜１５のときには例えば下記の式により実施する（第１の雑音パワー推定値更新ステップ）。
noise＿power(m＋1,k)＝noise＿power(m,k)×0.9＋channel＿power(m,k)×0.1
ｋ＝０，１，・・・，１５
またＩＳ１２７［米国規格の可変レート音声符号化方式："Enhanced Variable Rate Codec, Speech Service Option 3 for Wideband Spread Spectrum Digital Systems" (TIA IS127)］に規定されているような通常の雑音パワー更新を行ってもよい。
【０１０１】
何らかの理由でｙが正確に計算されない場合は、上記カウンタ値(counter)をもとに強制更新が実施される（第２の雑音パワー推定値更新ステップ）。たとえば、counter(m)≧１００かつy＜y＿average(m)＋５のときに、上記式に従って更新する。
【０１０２】
続いて帯域別ゲイン決定部３３において帯域別のゲインを決定する。このとき有意値計算部において算出された有意値(y)，帯域別有意値(suby)などを参照して、各帯域毎に設定される。
＜音声重み計算＞
上記有意値計算部にからの出力である有意値ｙを受け、音声重み計算部では雑音抑圧ゲインの決定に用いる音声重みｓｐの計算が行われる。音声重みｓｐは、１フレーム中に音声が含まれる度合いを０≦ｓｐ≦６の範囲で表す数値であり、ｓｐ＝０は雑音区間、ｓｐ＝６は音声区間を表す。なおこの数値，段階区切りなどは適宜設定可能である。
【０１０３】
このｓｐ値が前述のボイススイッチに供給され、ボイススイッチにおける送話信号中の音声の有無の判定に供される。例えば、ｓｐ＝０のときは音声なしと判断し、それ以外のときは音声有りと判断することができる。
【０１０４】
図５は、この音声重み計算部２８における音声重みｓｐの計算手順とその処理内容を示すフローチャートである。
【０１０５】
先ずステップ５ａでフレーム番号ｍを０にリセットしたのち、ステップ５ｂでグループ番号ｍをインクリメントする。次に、ステップ５ｃで上記重み付け加算値ｙを任意のしきい値「１３」と比較し、ｙ＜１３であれば雑音フレームと判断してステップ５ｄに移行し、ここで音声重みｓｐ（ｍ）を
ｓｐ（ｍ）＝ｓｐ（ｍ−１）−０．５
に設定する。後述の如くｓｐ（ｍ）は最終ステップで
ｓｐ（ｍ）＝ＭＡＸ（ｓｐ（ｍ），０））
と最小値が０となるように設定されるので、雑音フレームが連続すればｓｐ（ｍ）は０に収束する。
【０１０６】
一方、ｙ≧１３だった場合には、音声若しくは過渡期のフレームであり、ステップ５ｅに移行して仮の音声重みｚ
ｚ＝（ｙ−１３）×１．５＋１
を計算する。
【０１０７】
まず、ステップ５ｆにおいて
ｓｐ（ｍ−１）≦０．５
を判定する。すなわち、１フレーム前の音声重みｓｐ（ｍ−１）が０．５以下と十分小さいかどうかを判断し、雑音フレームだったかどうかを判定する。
【０１０８】
１フレーム前のフレームが雑音フレームと判断されていた場合、すなわちｓｐ（ｍ−１）が０．５以下の場合はステップ５ｇに移行し、ここで現フレームの音声重みｓｐ（ｍ）を上記仮の音声重みｚに設定する。
【０１０９】
このケースは、雑音から音声への切り替わりの時点であり、語頭が切れないように、雑音を抑制して音声をはっきりたち上げる必要がある。従って音声重みとして大きい値を取るように設定されることになる。
【０１１０】
これに対し、１フレーム前の音声重みｓｐ（ｍ−１）が雑音フレームではなかった場合（ｓｐ（ｍ−１）＞０．５）には、ステップ５ｈに移行して、
ｚ＞ｓｐ（ｍ−１）＋０．５
を判定する。ｚが（ｓｐ（ｍ−１）＋０．５）より大であればステップ５ｉで現フレームの音声重みｓｐ（ｍ）を（ｓｐ（ｍ−１）＋０．５）に設定する。
【０１１１】
このケースは、音声フレームの過渡期と判断されている時点であり、連続性を重視し、前フレームからｚの上昇を０．５に抑えていることになる。
【０１１２】
一方、ｚが（ｓｐ（ｍ−１）＋０．５）以下であればステップ５ｊに移行し、
ｚ＜ｓｐ（ｍ−１）−０．５
を判定し、ｚが（ｓｐ（ｍ−１）−０．５）より小であればステップ５ｋで現フレームの音声重みｓｐ（ｍ）を（ｓｐ（ｍ−１）−０．５）に設定する。
【０１１３】
このケースは、やはり音声フレームの過渡期と判断されている時点であり、連続性を重視し、前フレームからｚの下降を０．５に抑えていることになる。
【０１１４】
また、ｚが（ｓｐ（ｍ−１）−０．５）以下であればステップ５ｍに移行して現フレームの音声重みｓｐ（ｍ）＝ｚに設定する。
【０１１５】
以上のステップを経て、ｓｐ（ｍ）＝ｚ，ｓｐ（ｍ−１）±０．５の３種類の値のいずれかに設定され、最終的に
ｓｐ（ｍ）＝ＭＩＮ（ｓｐ（ｍ），６）
ｓｐ（ｍ）＝ＭＡＸ（ｓｐ（ｍ），０）
により、ｓｐ（ｍ）＝０〜６の値が決定される。
【０１１６】
すなわち上記ステップ５ｆからステップ５ｍにおいて、現フレームで算出した仮の音声重みｚが、１つ前のフレームで設定した音声重みｓｐ（ｍ−１）を考慮して補正され、ステップ５ｎでｓｐ（ｍ）として出力され、ステップ５ｂに戻り全てのｍに対してｓｐ（ｍ）が求められる。
【０１１７】
このように求めた音声重みｓｐ（ｍ）を使用することで、フレーム間の連続性を考慮した音声／雑音／過渡域の調整を行うことができる。
【０１１８】
上記音声重み計算部２８により求められた音声重みｓｐ（ｍ）は、雑音最小値推定部２９及び帯域別ゲイン決定部３３に入力される。
【０１１９】
なおこのｓｐ値は音声検出フラグとしてボイススイッチＶＳにも供給される。これをもとにＶＳ側で、例えばｓｐ＝０［音声なし］／ｓｐ＞０［音声あり］のような判断することになる。
＜雑音最小値推定＞
雑音最小値推定部２９は、上記音声重みｓｐがｓｐ＝０となる１００フレームの期間ごとに、各帯域における雑音のリーク積分値noise＿power(m,k)の最小値を調べる。そして、この最小値を次の１００フレームの期間において、雑音最小値noise＿min(m,k)として使用する。またそれと共に、各帯域の雑音最小値の帯域間平均値min＿allを求める。
【０１２０】
図６及び図７は、この雑音最小値推定部２９において実行される最小値推定処理の手順と内容を示すフローチャートである。
【０１２１】
同図において、雑音最小値推定部２９は先ずステップ６ａで、フレーム番号ｍをｍ＝０にリセットすると共に、フレームカウンタの値をｆｃ＝９６に、雑音最小値をnoise＿min(k)＝３６に、帯域をk ＝０，・・・,１５にそれぞれ初期設定する。
【０１２２】
さらに
noise＿min＿h(k)＝MAX(noise＿power(m,2k)，noise＿power(m,2k+1))，
ｋ＝０，・・・，７
雑音最小値の帯域間平均min＿allをnoise＿min＿h(n)：ｎ＝０，１，・・・，７の値の合計値の平均値である
min＿all＝Σ noise＿min＿h(n)/8    ｎ＝０〜７
にそれぞれ初期設定する。
【０１２３】
すなわち、隣接する帯域で大きいノイズパワーを有する値をとり、その平均値をmin＿allと設定する。
【０１２４】
次に雑音最小値推定部２９は、ステップ６ｂでフレーム番号ｍをインクリメントしたのち、ステップ６ｃで上記音声重みがｓｐ＝０であるか否か、つまり雑音フレームであるか否かを判定する。
【０１２５】
そして、雑音フレームであれば、ステップ６ｂに戻ってフレーム番号ｍをインクリメントし、上記ステップ６ｃによる雑音フレームの判定を行う。ｓｐ＝０ではないと判定された場合、すなわち、音声フレーム又は過渡域フレームが検出されると、雑音最小値推定部２９はステップ６ｄに移行してここでフレームカウンタｆｃをインクリメントすると共に、帯域ｋ＝０を選択する。
【０１２６】
そして、ステップ６ｅで
ｘ＝MAX(noise＿power(m,2k)，noise＿power(m,2k+1))
に設定したのち、ステップ６ｆに移行して
noise＿min＿h(k)＞ｘ
であるか否か判定する。
【０１２７】
noise＿min＿h(k)＞ｘであればステップ６ｇに移行してここで雑音最小値をnoise＿min＿h(k)＝ｘに設定する。そして、ステップ６ｈに移行する。
【０１２８】
これに対しnoise＿min＿h(k)≦ｘであれば、そのままステップ６ｈに移行して次の帯域ｋ＝１を選択し、帯域ｋ＝８に達するまでは上記ステップ６ｅ〜ステップ６ｇによる雑音最小値noise＿min＿h(k)の設定処理を繰り返す。
【０１２９】
そして、帯域ｋ＝８に達すると、雑音最小値推定部２９はステップ６ｊでフレームカウンタｆｃが１００に達したか否かを判定する。そして、１００フレームに達するまではステップ６ｂに戻って次のフレームを選択し、この選択したフレームについて上記ステップ６ｃ〜ステップ６ｉによる処理を繰り返す。
【０１３０】
一方、上記１００フレームに対する処理を終了すると、雑音最小値推定部２９はステップ７ａに移行し、ここで雑音最小値の帯域間平均(min＿all)をnoise＿min＿h(n)：ｎ＝０，１，・・・，７の値の合計値の平均値として下記のように算出する。
【０１３１】
min＿all＝Σ noise＿min＿h(n)/8  ｎ＝０〜７
またそれと共に、noise＿min(0)及びnoise＿min(1)をそれぞれ
noise＿min(0)＝noise＿min＿h(0)
noise＿min(1)＝0.75×noise＿min＿h(0)＋0.25×noise＿min＿h(1)
とすると共に、帯域をｋ＝１とする。
【０１３２】
さらに雑音最小値推定部２９は、ステップ７ｂに移行してここで、先に帯域ｋ＝０〜７について求めた８個の雑音最小値をもとに、残りの帯域ｋ＝８〜１５について雑音最小値を
noise＿min(2k)＝0.75×noise＿min＿h(k)＋0.25×noise＿min＿h(k-1)
noise＿min(2k+1)＝0.75×noise＿min＿h(k)＋0.25×noise＿min＿h(k+1)
のように算出する。
【０１３３】
そして、以上の演算が終了すると、雑音最小値推定部２９はステップ７ｄからステップ７ｅに移行し、ここで
noise＿min(14)＝0.75×noise＿min＿h(7)＋0.25×noise＿min＿h(6)
noise＿min(15)＝noise＿min＿h(7)
を算出する。
【０１３４】
すなわち、雑音最小値推定部２９は、上記ステップ７ａ〜ステップ７ｅにおいて８個のmin＿allをもとに１６個のmin＿allを補間している。
【０１３５】
そうして１６個のmin＿allを算出すると、雑音最小値推定部２９はステップ７ｆにおいて、フレームカウンタｆｃを０にリセットすると共に、雑音最小値をnoise＿min＿h(k)=36に、また帯域をｋ＝０，・・・，７に設定し直す。
【０１３６】
そして、ステップ７ｇにおいて、先に算出した雑音最小値の帯域間平均値min＿all、及び雑音最小値noise＿min(m,k)，ｋ＝０，・・・，１５を出力し、ステップ６ｂに戻って次のフレーム（ｍ＝ｍ＋１）について同様の雑音最小値及びその帯域間平均値の算出処理を繰り返す。
＜帯域別ゲイン決定＞
帯域別ゲイン決定部３３は、前記帯域パワー計算部２６から出力された帯域パワーchannel＿power(m,k)、雑音リーク積分値更新部３２から出力された雑音パワーnoise＿power(m,k)、音声重み計算部２８から出力された音声重みsp(m,k)、及び雑音最小値推定部２９から出力された雑音最小値noise＿min(m,k)をもとに、帯域別ゲインgain(m,k)を決定する。
【０１３７】
先ず雑音リーク積分値noise＿power(m,k)の帯域平均値noise＿allを、noise＿power(m,k)：ｋ＝０，１，・・・，１５ の値の合計値の平均値として
noise＿all= Σ noise＿power(m,k)/16  ｋ＝０〜１５
により求める。
【０１３８】
続いて、帯域パワーchannel＿power(m,k)の帯域最低値min＿band、及び雑音最小値noise＿min(m,k)の帯域最大値max＿bandをそれぞれ、
min＿band＝ＭＩＮ（channel＿power(m,k),ｋ＝２，・・・，１１）
max＿band＝ＭＡＸ（noise＿power(m,k)，ｋ＝０，・・・，１５）
により求める。
【０１３９】
次に、帯域共通の調整値ｍｄを
md＝（noise＿all−min＿all）×（１−sp/6）＋（min＿band−max＿band）×sp/6
により決定する。この式によると、
sp=0すなわち雑音区間のとき、md=noise＿all−min＿all
sp=6すなわち音声区間のとき、md=min＿band−max＿band
となり、過渡域はこれらの中間の値をとることがわかる。
【０１４０】
雑音フレームの場合、及び音声フレームの場合の周波数対パワー特性の一例を、それぞれ図８及び図９に示す。
【０１４１】
雑音フレームでは、図８に示すように、帯域パワーは雑音最小値に近くなる。雑音最小値に調整値を加えた値は、雑音最小値のスペクトル特性はそのままで平均値が雑音パワーの平均値noise＿allに変更されたものとなる。
【０１４２】
これに対し音声フレームの場合には、図９に示すように、雑音最小値に調整値を加えた値は、最小値のスペクトル特性はそのままで帯域の最大値が帯域パワーの最低値と一致するよう調整されることになる。
【０１４３】
帯域別ゲインgain(m,k)は、帯域パワーchannel＿power(m,k)と、雑音最小値noise＿min(m,k)と、調整値とから次のように決定される。
【０１４４】
まず、
tmp=channel＿power(m,k)−noise＿min(m,k)−md−1.625
と設定する。
【０１４５】
次いで、音声重みｓｐによりgain(m,k)（gain(m,K)≦0）決定の方式を変更する。
（１）ｓｐ＞０、すなわち、音声若しくは過渡フレームのとき、
gain(m,k)＝｛sqrt（1.4＋（0.7×tmp）2）＋0.7×tmp−10｝×２
（２）ｓｐ＝０、すなわち、雑音フレームのとき、
gain(m,k)＝[sqrt（1.4＋(0.03125×tmp)2）＋0.03125×tmp−10]×２
これをｋ＝，・・・，１５についてそれぞれ独立に求める。
【０１４６】
このｇａｉｎを決定する関数形は適宜設定可能である。ｔｍｐの値の小さい領域で音声フレームの方が雑音フレームより下回っていればよい。
【０１４７】
そして、以上のように求められた帯域別ゲインgain(m,k)は、乗算器２３において帯域ごとに変換係数に乗算され、これによりノイズキャンセルがなされる。
【０１４８】
図１０にｔｍｐ−ｇａｉｎの関係をグラフとして示す。実線で示したのが音声フレーム（ｓｐ＞０）の場合であり、点線が雑音フレーム（ｓｐ＝０）の場合である。
【０１４９】
ｔｍｐが０を下回った場合には音声フレームのゲインの方が雑音フレームのゲインを下回っている。これはｔｍｐが帯域のＳＮＲからｍｄと定数（上記例では１．６２５）を差引いたものと考えることができるため、調整値ｍｄの変動分はあるものの、帯域のＳＮＲが小さい場合には、音声区間の方が雑音区間より小さいゲイン値を採ることになる。
【０１５０】
これは音声区間における小さいＳＮＲを示す帯域（これは音声成分を含まないと推定できる帯域である）を積極的に抑圧（小ゲイン値）することで、音声フレーム中の音声成分を含む帯域を際立たせる結果となる。この効果は雑音フレームの帯域ゲイン値より小さく設定することで達成される。
【０１５１】
このようなゲイン値設定は上記双曲線的な関数に限らず種々の設定で行うことが可能である。
【０１５２】
たとえば図１１に示すように、
0004509413.tif 000002
のように設定することも可能である。
【０１５３】
このノイズキャンセルされた各帯域ごとの変換係数は、ＩＦＦＴ２４において逆高速フーリエ変換されて時間軸上の信号フレームに戻されたのち、フレーム合成部２５においてフレーム合成されて送話信号として、例えば音声符号化回路に供給される。
【０１５４】
以上述べたようにこの実施形態によれば、音声フレームと判断されたフレームでも、音声成分が含まれないと判断された帯域については、雑音フレームと判断されたフレームの帯域別ゲインより小さいゲインが設定されているので、音声フレームにおける音声成分（帯域）が強調されることになり、結果として聴覚的に良好なノイズ抑制出力信号を得ることができる。
【０１５５】
また、雑音最小値推定回路２９において各帯域の雑音パワーの最小値を求め、この雑音最小値のスペクトル形状を帯域別ゲイン決定部３３による帯域別ゲインの決定に用いるようにしているため、例えば自動車の通過時のような雑音スペクトルの短期的な変化に影響されず、音声スペクトルを歪ませにくいノイズキャンセル処理を実現することができる。
【０１５６】
また、各フレームの有意値ｙが大きく（通常は音声と判断される）が前フレームとの帯域別差の差分の変化が小さい（ただし平均値で正規化したもので判断）フレームが連続した場合（例えば１００フレーム）は雑音フレームと判断し、雑音パワー推定値を強制更新する。この強制更新の判定の際には、スペクトル偏差の平均値で正規化した値をもって連続区間をカウントしているため、スペクトル偏差がフレーム間でばらつくような雑音の場合でも実質的に連続区間としてカウントすることができる。従って、良好な雑音フレーム判定がなされないような有意値の変動があっても強制更新がかかることにより良好な雑音パワー推定値の更新が可能となり、もって良好なノイズ抑制が行われることになる。
【０１５７】
以上のようにしてノイズキャンセラの信号低減量（Ｂ）が決定された後、最終信号減衰量（Ｃ）を調整する最終低減量決定部３４において、ボイススイッチから供給されるＳ＿ｌｏｓｓとｇａｉｎをもとに送信信号の最終的な信号減衰量（ｌｇ）を決定する。
【０１５８】
この信号減衰量は例えば下記の様に決定される。
【０１５９】
ｌｇ（ｍ，ｋ）＝ＭＩＮ（Ｓ＿ｌｏｓｓ（ｍ），ｇａｉｎ（ｍ，ｋ））
Ｓ＿ｌｏｓｓとｇａｉｎ（ｍ，ｋ）の小さい方，すなわち信号減衰量の大きい方を採用することになる。
【０１６０】
図１２に送話信号及び受話信号のサンプルを、図１３にＳ＿ｌｏｓｓ及びｌｇのパワー推移をサンプルを提示する。
【０１６１】
ｌｇは必ずＳ＿ｌｏｓｓ以下であるので、通信系（送信−受信）には必ずＶＳ＿ｌｏｓｓ以下のＬＯＳＳが挿入される。また送話のみのときにはＳ＿ｌｏｓｓ＝０であるから、ノイズキャンセラ本来のノイズ抑圧が実現される。送話音声が終った時点において、上記例では、ｇａｉｎ＜Ｓ＿ｌｏｓｓとなるので、ボイススイッチによるスイッチ感（送受話系のＬＯＳＳの急激な切替えによる不自然に音が小さくなる現象）は低減される。
【０１６２】
次いでボイススイッチの動作に関して説明する。
【０１６３】
上述のノイズキャンセラを受話側にも設けて音声の有無の判断を行ってもよいが、本実施形態では受話信号中の音声の有無はダブルトーク判定部ＤＴＤで行う設定にしている。判定方法は各種方法が採用できるがその一例を図１４を用いて説明する。
【０１６４】
この例では、受話信号のフレーム毎のフレームパワーＰ（例えばＰ＝１０ｌｏｇ（サンプルの二乗平均値））を所定基準と比較し音声の有無を判定する。この判定の際に雑音レベル更新期間ＩＮＴＶＬ（例えば１秒間：５０フレーム相当）のフレームパワーＰの最低値ｍｉｎ，Ｐの長期平均ａｖｇ（例えばリーク積分値：ａｖｇ＝γａｖｇ＋（１−γ），γは適宜設定（例えば０．９９））を用いる。
【０１６５】
ステップ（２ａ）でｃｏｕｎｔｅｒ＝０とし計算を開始する。初期値は適宜設定可能であるが、例えば、ｍｉｎ＝ＭＡＸ＿ＮＯＩＳＥ，ｎｏｉｓｅ＝５，ａｖｇ＝５と設定する。ＭＡＸ＿ＮＯＩＳＥは雑音の最高値であり、例えば３６とする。
【０１６６】
ステップ（２ｂ）で対象フレームのフレームパワーＰを計算／入力する。
【０１６７】
ステップ（２ｃ）でｃｏｕｎｔｅｒを“１”増分し、ステップ（２ｄ）でフレームパワーＰとｍｉｎとの比較を行う。Ｐ＜ｍｉｎであればｍｉｎ＝Ｐと書き換え（ステップ２ｅ）、それ以外はｍｉｎの現状値を維持して次ステップ（２ｆ）に進む。
【０１６８】
ステップ（２ｆ）ではフレームパワーＰの長期平均ａｖｇを求める。例えば下式のようにリーク積分値を長期平均値として採用することができる。
【０１６９】
ａｖｇ＝γａｖｇ＋（１−γ），γは適宜設定（例えば０．９９）
ステップ（２ｇ）でｃｏｕｎｔｅｒ値をＩＮＴＶＬ値と比較する。両者が一致しなければステップ（２ｍ）に進み、測定対象フレームに対するｎｏｉｓｅ値を出力する。ｃｏｕｎｔｅｒ＝ＩＮＴＶＬの場合はｎｏｉｓｅ値の更新のため次ステップ（２ｈ）に進む。
【０１７０】
ステップ（２ｈ）ではｍｉｎ−ｎｏｉｓｅ＞−２を判定する。Ｙｅｓであればステップ（２ｉ）に進み、ｎｏｉｓｅ＝ｍｉｎと設定する。Ｎｏであれば次ステップ（２ｊ）に進み、ａｖｇ＜ｎｏｉｓｅ−１を判定する。Ｙｅｓであればステップ（２ｋ）に進み、ｎｏｉｓｅ＝ａｖｇと設定する。
【０１７１】
次いでステップ（２ｌ）に進み、ｃｏｕｎｔｅｒ＝０とリセットし、ｍｉｎ＝ＭＡＸ＿ＮＯＩＳＥに設定して次ステップ（２ｍ）に進み、更新されたｎｏｉｓｅ値を出力する。
【０１７２】
各フレーム毎のフレームパワーＰとｎｏｉｓｅ値を入力として受話信号中の音声の有無を判定する。
【０１７３】
ステップ（２ｏ）でフレームパワーＰとｎｏｉｓｅを入力し、次ステップ（２ｐ）でＰ＜ｎｏｉｓｅ＋ＴＨの判定を行う。ＴＨは閾値であり、例えば１８に設定される。Ｐ＜ｎｏｉｓｅ＋ＴＨであれば受話＝無［音声信号なし］（ステップ（２ｑ）），そうでなければ受話＝有［音声信号あり］（ステップ（２ｒ））と判断する。
【０１７４】
この結果を対象フレームの音声の有無として出力する（ステップ（２ｓ））。
【０１７５】
これを各フレーム毎に繰返すことで、受話信号中の音声の有無の検出を行うことができる。
【０１７６】
この結果を受け、音声有りの場合は受話側にＬＯＳＳを挿入するため、Ｒ＿ｌｏｓｓの信号低減率を増幅器で実行することになる。一方、送信側にはノイズキャンセラにおいてノイズキャンセラの信号減衰量（Ｂ）と比較調整のためＳ＿ｌｏｓｓ（信号減衰量（Ａ））が送られることになる。
【０１７７】
上述のボイススイッチのｌｏｓｓは“０”／ＶＳ＿ｌｏｓｓの２値であったが、この設定は適宜変更することが可能であり、例えば下記のように設定することもできる。
（１）受話（音声なし）／送話（音声なし）：
Ｒ＿ｌｏｓｓ＝ＶＳ＿ｌｏｓｓ−ｈ；Ｓ＿ｌｏｓｓ＝ｈ
（２）受話（音声有り）／送話（音声なし）：
Ｒ＿ｌｏｓｓ＝０；Ｓ＿ｌｏｓｓ＝ＶＳ＿ｌｏｓｓ
（３）受話（音声なし）／送話（音声有り）：
Ｒ＿ｌｏｓｓ＝ＶＳ＿ｌｏｓｓ；Ｓ＿ｌｏｓｓ＝０
（４）受話（音声有り）／送話（音声有り）：
Ｒ＿ｌｏｓｓ＝０；Ｓ＿ｌｏｓｓ＝ＶＳ＿ｌｏｓｓ
ただし、ｈ＝（ｓｐ＝０が続いたフレーム数）×（−０．１）
ＶＳ＿ｌｏｓｓ≦ｈ≦０
ｓｐ：ノイズキャンセラから受け取る音声／雑音の判断変数
上記実施形態に加えエコーキャンセラＥＣ（１０）を加えてもよい（図１５）。エコーキャンセラは音声出力部からの出力が音声入力部から入力された場合にその信号を除去／低減するものでありエコー検出の方式は各種の方式を採用することができる。
【０１７８】
エコーキャンセラＥＣ（１０）以外は図２の構成と同一であり説明を省略する。ＥＣにおいて、音声入力部からの入力信号と、音声出力部に入力される受信信号と、音声入力部の信号から受信信号を引いた信号とを比較し、入力信号に受信信号が重畳していないかを判断し、重畳していればその信号分を差引いてノイズキャンセラＮＣへの入力信号とするものでる。
【０１７９】
なお出力音声環境に応じエコーパスは変化するので音声出力部にて出力された音声が音声入力部にて受ける際の時間差を考慮する必要がある。
【０１８０】
上述の実施態様では、送話側にノイズキャンセラを挿入しているが、受話側にノイズキャンセラをいれてもよい。送受話双方にノイズキャンセラをいれた場合は、送受話ともノイズキャンセルを行うことも可能であり、この場合は、ボイススイッチ機能をノイズキャンセラに取り込んで、ノイズキャンセラの音声信号減衰量の制御でボイススイッチのＬＯＳＳ挿入機能を兼ねることも可能である。
【０１８１】
すなわち送受話どちらかに必ずボイススイッチ機能に必要なＬＯＳＳ量を入れるように両者の信号減衰量を制御すれば良い。
【０１８２】
本発明は携帯電話などの通信機器に限らず、音声処理を用いる電子機器（録音機器，携帯電子端末など）でればどのような機器にも使用することができる。
【０１８３】
なお、図２に示す各ブロックは機能説明を行うために便宜上区分して記載したものであり、各ブロックが個別の素子である必要はなく、１個またはそれ以上の機能、たとえばＣＰＵ，ＤＳＰ，モデム，音声符号化回路など、をまとめて１チップのＬＳＩとしても良いことは言うまでもない。
【０１８４】
【発明の効果】
以上説明したように本発明によれば、高音質の音声信号を供給することができる電子機器を提供することができ、産業上寄与するところ大なるものである。
【図面の簡単な説明】
【図１】  図１は本発明の実施形態を示す回路ブロック図。
【図２】  図２は本発明の実施形態のノイズキャンセラ示すブロック図。
【図３】  図３は本発明の実施形態の有意値計算部の処理手順を示すフローチャート。
【図４】  図４は本発明の実施形態の雑音パワー強制更新を判定する有意区間のカウントの処理手順を示すフローチャート。
【図５】  図５は本発明の実施携帯の音声重みｓｐの処理手順を示すフローチャート。
【図６】  図６は本発明の実施形態のの雑音最小値推定部の処理手順を示すフローチャート。
【図７】  図７は本発明の実施形態のの雑音最小値推定部の処理手順を示すフローチャート。
【図８】  図８は雑音フレームの場合の周波数対パワー特性の一例を示す図。
【図９】  図９は音声フレームの場合の周波数対パワー特性の一例を示す図。
【図１０】  図１０は本発明の実施形態のｔｍｐ−ｇａｉｎの関係図。
【図１１】  図１１は本発明の実施形態のｔｍｐ−ｇａｉｎの関係図。
【図１２】  図１２は送話信号及び受話信号のサンプル示す図。
【図１３】  図１３はＳ＿ｌｏｓｓ及びｌｇのパワー推移をサンプルを示す図。
【図１４】  図１４は本発明の実施形態のボイススイッチの処理手順を示すフローチャート。
【図１５】  図１５は本発明の実施形態のブロック図。
【符号の説明】
ＮＣ・・・ノイズキャンセラ；ＶＳ・・・ボイススイッチ
【図１】
0004509413.tif 000003
【図２】
0004509413.tif 000004
【図３】
0004509413.tif 000005
【図４】
0004509413.tif 000006
【図５】
0004509413.tif 000007
【図６】
0004509413.tif 000008
【図７】
0004509413.tif 000009
【図８】
0004509413.tif 000010
【図９】
0004509413.tif 000011
【図１０】
0004509413.tif 000012
【図１１】
0004509413.tif 000013
【図１２】
0004509413.tif 000014
【図１３】
0004509413.tif 000015
【図１４】
0004509413.tif 000016
【図１５】
0004509413.tif 000017