(57)【要約】【課題】雑音エネルギが変動した場合でもその影響を排除して安定な雑音抑圧処理を行えるようにし、これにより雑音抑圧における音声歪みの発生を低減する。【解決手段】雑音最小値推定回路２９において各帯域の雑音パワーの最小値を求め、この雑音最小値のスペクトル形状を帯域別ゲイン決定部３３による帯域別ゲインの決定に用いるようにしたものである。【選択図】図２
2010160521.tif 000002
【特許請求の範囲】
【請求項１】
入力信号を一定時間長のフレームに分割すると共に、これらのフレームの信号をそれぞれ複数の周波数帯域に分け、これらの周波数帯域ごとに雑音の抑圧処理を行うノイズキャンセラにおいて、
前記周波数帯域ごとに信号のパワーを求め、この帯域パワーをもとに帯域別の雑音パワーを推定する雑音パワー推定手段と、
前記帯域パワー及び帯域別雑音パワーのうちの少なくとも一方について、複数のフレーム期間に渡りパワーの最小値を検出する最小値検出手段と、
前記周波数帯域ごとにその帯域パワーと前記最小値検出手段により検出された帯域別最小値との差を求め、この差をもとに周波数帯域別の雑音抑圧量を決定する抑圧量決定手段とを具備したことを特徴とするノイズキャンセラ。
【請求項２】
前記入力信号について音声区間と雑音区間との判定を行う手段をさらに具備し、
前記抑圧量決定手段は、音声区間及び雑音区間のうちの少なくとも音声区間において、前記帯域パワーと前記帯域別最小値との差に基づく帯域別の雑音抑圧量決定処理を行うことを特徴とする請求項１記載のノイズキャンセラ。
【請求項３】
前記抑圧量決定手段は、フレームごとに異なる帯域共通の調整値を生成する調整値生成手段をさらに有し、前記周波数帯域ごとに、その帯域パワーと、前記最小値検出手段により検出された帯域別最小値に前記調整値生成手段により生成された帯域共通の調整値を加えた値との差を求め、この差をもとに周波数帯域別の雑音抑圧量を決定することを特徴とする請求項１記載のノイズキャンセラ。
【請求項４】
前記調整値生成手段は、雑音区間においては、前記帯域別最小値間の平均値と前記帯域別雑音パワー間の平均値との差に基づいて帯域共通の調整値を決定し、一方音声区間においては、１フレームにおける複数の帯域パワーの中の最小値と複数の帯域別最小値の中の最大値との差に基づいて帯域共通の調整値を決定することを特徴とする請求項３記載のノイズキャンセラ。
【請求項５】
送話入力信号を音声符号化部で符号化して送信する通信装置において、
前記送話入力信号を一定時間長のフレームに分割すると共に、これらのフレームの信号をそれぞれ複数の周波数帯域に分け、これらの周波数帯域ごとに雑音の抑圧処理を行うノイズキャンセラを具備し、
前記ノイズキャンセラは、
前記周波数帯域ごとに信号のパワーを求め、この帯域パワーをもとに帯域別の雑音パワーを推定する雑音パワー推定手段と、
前記帯域パワー及び帯域別雑音パワーのうちの少なくとも一方について、複数のフレーム期間に渡りパワーの最小値を検出する最小値検出手段と、
前記周波数帯域ごとにその帯域パワーと前記最小値検出手段により検出された帯域別最小値との差を求め、この差をもとに周波数帯域別の雑音抑圧量を決定する抑圧量決定手段とを備えたことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディジタル自動車・携帯電話装置やディジタルコードレス電話機、ディジタル有線電話装置等のように音声信号を符号化して伝送する通信装置に設けられるノイズキャンセラおよびこのノイズキャンセラを備えた通信装置に関する。
【背景技術】
【０００２】
ディジタル携帯電話装置では、一般にＣＥＬＰ（Code Excited Linear Prediction）方式等の低ビットレートの音声符号化方式が使用されている。この種の符号化方式を使用すると、背景雑音が比較的大きい環境下でも良好な音声通話を行なうことが可能である。なお、ＣＥＬＰ方式の詳細については、M.R.Schroeder 氏とB.S.Atal氏の“Code-Excited Linear Prediction(ＣＥＬＰ):High-Quality Speech At Very Low Bit Rates”in Proc.ICASSP,1985.pp.937-939に述べられている。
【０００３】
しかし、鉄道のホームや幹線道路等のような高雑音環境下では、背景雑音は音声の明瞭感を著しく低下させる。このため、雑音を除去して音声のみを符号化に供するノイズキャンセラの研究が種々なされている。その一例として、米国で規格化された可変レート音声符号化方式においてオプションとして規定されたノイズキャンセラがある（例えば、非特許文献１を参照。）。
【０００４】
図９は、この非特許文献１に記載された規格において規定されたノイズキャンセラの機能ブロック図である。同図において、５１は高速フーリエ変換部（ＦＦＴ:fast Fourier transform ）であり、このＦＦＴ５１にはフレーム化された送話信号が入力される。なお、フレーム化送話信号は、Ａ／Ｄ変換された送話信号を例えば８０サンプルのフレームに分割したのち、オーバラップ分を含め１２８サンプルに整えることにより生成される。ＦＦＴ５１は、上記フレーム化送話信号に対し高速フーリエ変換処理を行い、これにより例えば１６帯域に周波数分割された変換係数が得られる。
【０００５】
ＦＦＴ５１により得られた１６帯域の変換係数は、帯域エネルギ推定部５２に入力される。帯域エネルギ推定部５２は、上記１６帯域の変換係数のエネルギを計算して、この帯域別エネルギの算出値を帯域ＳＮＲ推定部５３及び雑音推定部５４に入力する。雑音推定部５４は、上記帯域別エネルギの推定値をもとに雑音部分の帯域別エネルギを推定し、この推定した帯域別雑音エネルギを帯域ＳＮＲ推定部５３に与える。帯域ＳＮＲ推定部５３は、上記帯域別エネルギの算出値と上記帯域別雑音エネルギの推定値とをもとに、帯域別の信号エネルギと雑音エネルギとの対数値（ＳＮＲ）を計算する。そして、この帯域別ＳＮＲをボイスメトリック計算部５５に与える。ボイスメトリック計算部５５は、上記帯域別ＳＮＲにその大きさに応じた重み係数を掛けたのちその総和を求めるもので、その算出結果がボイスメトリック（Voice metric）である。
【０００６】
帯域ＳＮＲ修正部５６は、上記ボイスメトリックがしきい値より小さい場合には音声が含まれないと判断して帯域ＳＮＲを小さい値に修正し、帯域ゲイン計算部５７に与える。帯域ゲイン計算部５７は、上記修正されたＳＮＲをもとに各帯域の雑音抑圧量を決定し、乗算部６１に与える。この結果乗算部６１では、前記ＦＦＴ５１から出力された１６帯域の変換係数と上記帯域別の雑音抑圧量とが帯域別に乗算され、これにより帯域別に雑音抑圧された信号が出力される。そして、この帯域別に雑音抑圧された変換係数は、逆高速フーリエ変換部（ＩＦＦＴ）５８において逆高速フーリエ変換され、これにより時間領域の信号に戻されて出力される。
【０００７】
なお、上記雑音エネルギの更新は、スペクトル偏差推定部５９及び雑音更新判定部６０において更新の可否が判定された上で行われる。
すなわち、上記ノイズキセャンセラでは、帯域別ノイズ抑圧量を送話信号のＳＮＲ、つまり信号のエネルギと雑音エネルギとの比をもとに決定している。また、音声が含まれるかどうかを判断するために、各帯域別ＳＮＲを重み付け加算して求めた値であるボイスメトリックを用いている。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】”Enhanced Variable Rate Codec, Speech Service Option 3 for Wideband Spread Spectrum Digital Systems”（TIA IS127）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、雑音（Background Noise）は一般に定常と仮定されるが、屋外では変動する場合がある。特に、自動車が通り過ぎるときに発生する雑音のエネルギは自動車の接近とともに大きくなる。この状態で送話音声が入力されると、音声と雑音とのエネルギ差が小さいため、抑圧後の音声を歪ませることがある。また、雑音のスペクトル形状と音声のスペクトル形状が似ている場合も、雑音エネルギをもとに抑圧を行うと音声のスペクトルに干渉しやすくなるため、抑圧後の音声に歪みが発生する。
【００１０】
音声の検出に用いるボイスメトリックは、ＳＮＲに重み係数を掛けてその総和をとったものであるため、突発的な雑音が混入した場合には音声と見なされやすい。
【００１１】
この発明は上記事情に着目してなされたもので、その目的は、雑音エネルギが変動した場合でもその影響を排除して安定な雑音抑圧処理を行えるようにし、これにより雑音抑圧における音声歪みの発生を低減したノイズキャンセラとこのノイズキャンセラを備えた通信装置を提供することである。
【課題を解決するための手段】
【００１２】
上記目的を達成するためにこの発明の一つの観点は、入力信号を一定時間長のフレームに分割するとともに、これらのフレームの信号をそれぞれ複数の周波数帯域に分け、これらの周波数帯域ごとに雑音の抑圧処理を行うノイズキャンセラにおいて、上記周波数帯域ごとに信号のパワーを求め、この帯域パワーをもとに帯域別の雑音パワーを推定する雑音パワー推定手段と、上記帯域パワーおよび帯域別雑音パワーのうちの少なくとも一方について、複数のフレーム期間にわたりパワーの最小値を検出する最小値検出手段と、上記周波数帯域ごとにその帯域パワーと上記最小値検出手段により検出された帯域別最小値との差を求め、この差をもとに周波数帯域別の雑音抑圧量を決定する抑圧量決定手段とを具備したものである。
【００１３】
具体的には、上記抑圧量決定手段は、音声区間と雑音区間のうちの少なくとも音声区間において、上記帯域パワーと上記帯域別最小値との差に基づく帯域別の雑音抑圧量決定処理を行う。
【００１４】
したがってこの発明の一観点によれば、周波数帯域ごとにその帯域パワー又は帯域別雑音パワーの最小値が検出され、帯域パワーとこの最小値との差をもとに周波数帯域別の雑音抑圧量が決定される。このため、通話中に例えば自動車が通過して雑音エネルギが一時的に増加しても、雑音抑圧量はあくまでも帯域パワーと上記最小値との差をもとに決定されるため、抑圧量は安定に保持され、この結果常に安定な雑音抑圧処理が可能となる。
【００１５】
また、雑音のスペクトル形状と音声のスペクトル形状が似ている場合でも、帯域パワーと上記最小値との差をもとに抑圧処理が行われるため、雑音エネルギの影響を受け難くなり、この結果音声のスペクトルに対する干渉は減少されて音声歪みの発生は防止される。
【００１６】
またこの発明は、上記抑圧量決定手段において、フレームごとに異なる帯域共通の調整値を生成し、上記周波数帯域ごとに、その帯域パワーと、最小値検出手段により検出された帯域別最小値に上記帯域共通の調整値を加えた値との差を求め、この差をもとに周波数帯域別の雑音抑圧量を決定することも特徴とする。
【００１７】
具体的には、雑音区間においては前記帯域別最小値間の平均値と前記帯域別雑音パワー間の平均値との差に基づいて帯域共通の調整値を決定し、一方音声区間においては１フレームにおける複数の帯域パワーの中の最小値と複数の帯域別最小値の中の最大値との差に基づいて帯域共通の調整値を決定する。  
このようにすることで、音声区間及び雑音区間の各々についてより一層適切な雑音抑圧量を決定することが可能となる。
【発明の効果】
【００１８】
すなわちこの発明によれば、雑音エネルギが変動した場合でもその影響を排除して安定な雑音抑圧処理を行うことができ、これにより雑音抑圧における音声歪みの発生を低減したノイズキャンセラとこのノイズキャンセラを備えた通信装置を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】この発明に係わるノイズキャンセラを備えたディジタル携帯電話装置の一実施形態を示す回路ブロック図。
【図２】この発明に係わるノイズキャンセラの一実施形態を示す機能ブロック図。
【図３】図２に示したノイズキャンセラの有意値計算部における処理手順とその内容を示すフローチャート。
【図４】図２に示したノイズキャンセラの音声重み計算部における処理手順とその内容を示すフローチャート。
【図５】図２に示したノイズキャンセラの雑音最小値推定部における処理手順とその内容の前半部分を示すフローチャート。
【図６】図２に示したノイズキャンセラの雑音最小値推定部における処理手順とその内容の後半部分を示すフローチャート。
【図７】雑音区間における帯域パワーと雑音最小値及び調整後の雑音最小値との関係を示す図。
【図８】音声区間における帯域パワーと雑音最小値及び調整後の雑音最小値との関係を示す図。
【図９】従来のノイズキャンセラの構成の一例を示す図。
【発明を実施するための形態】
【００２０】
以下、図面を参照してこの発明に係わる実施形態を説明する。  
図１は、この発明に係わるノイズキャンセラを備えたディジタル携帯電話装置の一実施形態を示す回路ブロック図である。
同図において、図示しない基地局から無線チャネルを介して送られた無線搬送波信号は、アンテナ１で受信されたのちアンテナ共用器（ＤＵＰ）２を介して受信回路（ＲＸ）３に入力され、ここで周波数シンセサイザ（ＳＹＮ）４から出力された受信局部発振信号とミキシングされて中間周波信号に周波数変換される。そしてこの受信中間周波信号は、図示しないＡ／Ｄ変換器においてサンプリングされたのちディジタル復調器（ＤＥＭ）６に入力される。
【００２１】
ディジタル復調器６は、上記ディジタル受信中間周波信号に対するフレーム同期およびビット同期を確立したうえで、ディジタル復調処理を行なう。この復調処理により得られたベースバンドのディジタル復調信号は、時分割多元接続回路（ＴＤＭＡ）８に入力され、ここで各伝送フレームごとに自己宛てのタイムスロットが分離抽出される。なお、上記ディジタル復調器６において得られたフレーム同期及びビット同期に関する情報は制御回路１８に入力される。
【００２２】
上記ＴＤＭＡ回路８から出力されたディジタル復調信号は、続いて誤り訂正符号復号回路（ＣＨ−ＣＯＤ）９に入力され、ここで誤り訂正復号処理される。そして、この誤り訂正復号されたディジタル復調信号は、音声復号回路（ＤＥＣ）１０に入力されて音声復号処理され、これによりディジタル受話信号が再生される。このディジタル受話信号は、Ｄ／Ａ変換器１１でアナログ受話信号に戻されたのち図示しない音声増幅器を介してスピーカ１２に供給され、このスピーカ１２から拡声出力される。
【００２３】
一方、話者の送話音声は、マイクロホン１３で集音されて電気信号に変換されたのちＡ／Ｄ変換器１４に入力され、このＡ／Ｄ変換器１４で所定のサンプリング周期でサンプリングされてディジタル送話信号に変換される。このディジタル送話信号は、後述するノイズキャンセラ１７に通されたのち音声符号化回路（ＣＯＤ）１６に入力されて音声符号化される。
【００２４】
この音声符号化回路１６から出力された符号化音声データは、制御回路１８から出力された制御信号とともに誤り訂正符号復号回路（ＣＨ−ＣＯＤ）９に入力され、ここで誤り訂正符号化される。そして、この誤り訂正符号化されたディジタル送信信号はＴＤＭＡ回路８に入力される。このＴＤＭＡ回路８では、時分割多元接続（ＴＤＭＡ）方式に対応した伝送フレームが生成され、この伝送フレーム中の自装置に割り当てられたタイムスロットに上記ディジタル送信信号を挿入するための処理が行なわれる。このＴＤＭＡ回路８から出力されたディジタル送信信号は、続いてディジタル変調器（ＭＯＤ）７に入力される。
【００２５】
ディジタル変調器７では、上記ディジタル送信信号によりディジタル変調された送信中間周波信号が発生され、この送信中間周波信号は図示しないＤ／Ａ変換器によりアナログ信号に変換されたのち送信回路（ＴＸ）５に入力される。なお、ディジタル変調方式としては、例えばπ／４シフトＱＰＳＫ（π／４ shifted quadrature phase shift keying）方式が使用される。
【００２６】
送信回路５では、上記変調された送信中間周波信号がまず周波数シンセサイザ４から出力された送信局部発振信号とミキシングされ、これにより通話チャネルに対応する無線搬送波周波数に変換される。そして、この無線変調波信号は、送信電力増幅器において制御回路１８から制御信号ＴＣＳにより指示された所定の送信電力レベルに制御されたのち、アンテナ共用器２を介してアンテナ１から図示しない基地局へ向けて送信される。
【００２７】
なお、１９は操作パネル部であり、この操作パネル部１９には発信キー、終了キー、ダイヤルキー、および各種機能キーを有するキー入力部と、液晶表示器  （ＬＣＤ）や発光ダイオード（ＬＥＤ）を有する表示部とが配設されている。
ところで、ノイズキャンセラ１７は例えばＤＳＰ（Digital Signal Processor）により実現されるもので、その処理プログラムはノイズキャンセラ内のメモリ又は制御回路１８に付属するメモリに格納されている。図２はこの処理プログラムにより実現される機能の構成を示すブロック図である。
【００２８】
Ａ／Ｄ変換器１４から出力されたディジタル送話信号は、先ずフレーム分割部２１に入力される。フレーム分割部２１は、上記ディジタル送話信号を例えば８０サンプルのフレームに分割したのち、ウィンドウがけを行うことによりフレーム端をオーバラップさせ、これによりオーバラップ分を含め１２８サンプルに整えられたフレームを出力する。そして、このディジタル送話信号フレームを高速フーリエ変換部（ＦＦＴ）２２に入力する。
【００２９】
ＦＦＴ２２は、入力されたディジタル送話信号フレームに対し高速フーリエ変換処理を行い、これにより例えば低域から高域まで順に１６帯域に周波数分割された変換係数を得る。なお、各帯域ごとの変換係数の数は同一でなくてもよい。そして、この帯域分割された変換係数を、雑音抑圧処理用の乗算器２３に入力すると共に帯域パワー計算部２６に入力する。
【００３０】
帯域パワー計算部２６は、各帯域ごとにエネルギ（変換変数の二乗平均値）を求めて対数をとり、帯域パワーchannel_power(m,k)を出力する。ただし、ｍはフレーム番号、ｋは帯域番号（k=0,…,15）である。そして、この帯域パワーを、後述する雑音リーク積分値更新部３２及び帯域別ゲイン決定部３３にそれぞれ入力すると共に、有意値計算部２７に入力する。
【００３１】
有意値計算部２７は、各帯域ごとに、後述する雑音リーク積分値更新部３２から出力される雑音リーク積分値noise_power(m,k)と、上記帯域パワーchannel_power(m,k)との差tmp を求め、これらの帯域別の差tmp を所定のしきい値と比較する。そして、周波数順に配列された上記各帯域別の差tmp のうち隣接する複数の帯域の帯域別差tmp がしきい値を超えると判定された場合に、これらの帯域別差tmp に所定の重み付けを行った上で相互に加算する。そして、この重み付け後の値suby(m,k)と、このsubyの条件付総和を有意値ｙとして出力する。
【００３２】
図３は、この有意値計算部２７の処理手順とその内容を示すフローチャートである。  
同図において、有意値計算部２７は、先ずステップ３ａでフレーム番号ｍを０にリセットしたのち、ステップ３ｂでグループ番号ｍをインクリメントすると共に、有意値y 、帯域番号k 、及びしきい値を越える帯域別差tmp の連続数flagをそれぞれ０に初期設定する。
【００３３】
次に有意値計算部２７は、ステップ３ｃで帯域k=0 について、その帯域パワーと雑音リーク積分値との差tmp と、この帯域別差tmp に対し重み付けを行った値suby(m,k)とをそれぞれ以下のように計算する。  
tmp ＝channel_power(m,k)−noise_power(m,k)  
suby(m,k)＝{200-(k-1)2 }／100*(tmp-1)   
ただし、{200-(k-1)2 }は重み係数である。
【００３４】
そして、帯域k=0 における上記帯域別差tmp が算出されると、有意値計算部２７はステップ３ｄでこの帯域別差tmp をしきい値「１」と比較し、帯域別差tmp がしきい値「１」を越えていると、音声である可能性があると判断してステップ３ｅ及びステップ３ｇを経てステップ３ｉに移行し、ここで連続数flag＝１に設定する。そして、ステップ３ｋで帯域番号k をインクリメントしてk=1 としたのち、ステップ３ｃに戻って今度は帯域k=1 について同様の処理を実行する。
【００３５】
さて、この帯域k=1 においても、前記帯域k=0 に続き帯域別差tmp がしきい値「１」を越えたとする。そうすると有意値計算部２７は、既にflag＝１であるためステップ３ｅからステップ３ｆに移行して、ここで  
y ＝y ＋suby(m,k-1)  
なる演算を行う。すなわち、前記帯域k=0 におけるsuby(m,k-1)を有意値y とする。そして、連続数flag＝２としたのち、ステップ３ｇを経てステップ３ｈに移行し、ここで  
y ＝y ＋suby(m,k)  
なる演算を行い、これにより前記帯域k=0 におけるsuby(m,k-1)に、今回の帯域k=1 で求めたsuby(m,k)を加算する。そして、ステップ３ｋで帯域番号k をさらにインクリメントしてk=2 としたのち、ステップ３ｃに戻って帯域k=2 についての処理を実行する。
【００３６】
以後同様に、隣接する帯域k=2 ，k=3，k=4 ，…の帯域別差tmp がしきい値「１」を越えるごとに、その帯域のsuby(m,k)が一つ前の帯域までに得られた有意値y に順次加算され、これにより帯域別差tmp の重み付け加算値y が求められる。
【００３７】
なお、いずれかの帯域k=i において、帯域別差tmp がしきい値「１」以下になると、有意値計算部２７はステップ３ｄからステップ３ｊに移行してここでflagを０にリセットする。
そうして、１フレームを構成する１６個すべての帯域k=0〜k=15についての処理が終了すると、有意値計算部２７はステップ３ｍからステップ３ｎに移行して、ここで上記有意値y と、各帯域ごとに算出した重み付け後の帯域別差suby(m,k)(k=0,1,…,15)をそれぞれ出力する。
【００３８】
かくして、各フレームごとに、しきい値が「１」を越える連続する複数の帯域の帯域別差tmp の重み付け加算値y が求められ、この重み付け加算値y が後述する音声重み計算部２８における音声重みの計算、つまりそのフレームが音声フレームであるか雑音フレームであるか、さらにはその中間の過渡域フレームであるかの判定に供される。すなわち、ただ１つの帯域のみで帯域別差tmp がしきい値「１」を越えた場合には、これは雑音と見なされて排除され、上記音声重み計算部２８における音声／雑音／過渡域の判定には供されない。
【００３９】
上記有意値計算部２７から重み付け加算値y が供給されると、音声重み計算部２８では雑音抑圧ゲインの決定に用いる音声重みspの計算が行われる。音声重みspは、１フレーム中に音声が含まれる度合いを０≦sp≦６の範囲で表す数値であり、前記重み付け加算値y から計算される。なお、sp＝０は雑音区間、sp＝６は音声区間を表す。
【００４０】
図４は、この音声重み計算部２８における音声重みspの計算手順とその処理内容を示すフローチャートである。  
音声重み計算部２８は、先ずステップ４ａでフレーム番号ｍを０にリセットしたのち、ステップ４ｂでグループ番号ｍをインクリメントする。次に、ステップ４ｃで上記重み付け加算値y を任意のしきい値「１３」と比較し、y ＜１３であれば雑音フレームと判断してステップ４ｄに移行し、ここで音声重みspを  
sp(m)＝sp(m-1)−0.5  
に設定する。一方、y ≧１３だった場合には、ステップ４ｅに移行してここで  
z ＝(y−13)*1.5+1  
を計算する。すなわち、y をもとに音声重みz を１〜６の範囲で仮に設定する。
【００４１】
続いて音声重み計算部２８は、ステップ４ｆにおいてsp(m-1)≦0.5を判定する。すなわち、１フレーム前の音声重みsp(m-1)が雑音フレームだったかどうかを判定する。そして、雑音フレームだった場合にはステップ４ｇに移行し、ここで現フレームの音声重みsp(m) を上記z に設定する。これに対し、１フレーム前の音声重みsp(m-1)が雑音フレームではなかった場合には、ステップ４ｈに移行してここでz ＞sp(m-1)＋0.5を判定し、z ＞sp(m-1)＋0.5であればステップ４ｉで現フレームの音声重みsp(m) をsp(m-1)＋0.5に設定する。一方、z ＞sp(m-1)＋0.5でなければ、ステップ４ｊに移行してここでz ＞sp(m-1)−0.5を判定し、z ＞sp(m-1)−0.5であればステップ４ｋで現フレームの音声重みsp(m) をsp(m-1)−0.5に設定する。また、z ＞sp(m-1)−0.5でもない場合には、ステップ４ｍに移行してここで現フレームの音声重みをsp(m) ＝MIN(sp(m),6)又はsp(m) ＝MAX(sp(m),0)に設定する。
【００４２】
すなわち、上記ステップ４ｆからステップ４ｍにおいて、現フレームで算出した仮の音声重みz が、１つ前のフレームで設定した音声重みsp(m-1) を考慮して補正される。したがって、このように求めた音声重みsp(m) を使用することで、フレーム間の連続性を考慮した音声／雑音／過渡域の判定が可能となる。
【００４３】
上記音声重み計算部２８により求められた音声重みsp(m) は、ステップ４ｎにおいて出力され、雑音最小値推定部２９及び帯域別ゲイン決定部３３に入力される。
雑音最小値推定部２９は、上記音声重みがsp＝０となる１００フレームの期間ごとに、各帯域における雑音のリーク積分値noise_power(m,k)の最小値を調べる。そして、この最小値を次の１００フレームの期間において、雑音最小値noise_min(m,k)として使用する。またそれと共に、各帯域の雑音最小値の帯域間平均値min_allを求める。
【００４４】
図５及び図６は、この雑音最小値推定部２９において実行される最小値推定処理の手順と内容を示すフローチャートである。  
同図において、雑音最小値推定部２９は先ずステップ５ａで、フレーム番号ｍをｍ＝０にリセットすると共に、フレームカウンタの値をｆc ＝９６に、雑音最小値をnoise_min(k)＝３６に、帯域をk ＝0,…,15にそれぞれ初期設定し、さらにnoise_min(k)_h(k)＝MAX(noise_power(m,2k)，noise_power(m,2k+1))，k=0,…,7に、雑音最小値の帯域間平均min_allを  
7   
min_all＝Σ noise_min(k)_h(n)/8  
n=0  
にそれぞれ初期設定する。
【００４５】
次に雑音最小値推定部２９は、ステップ５ｂでフレーム番号ｍをインクリメントしたのち、ステップ５ｃで上記音声重みがsp＝０であるか否か、つまり雑音フレームであるか否かを判定する。そして、雑音フレームであれば、ステップ５ｂに戻ってフレーム番号ｍをインクリメントし、上記ステップ５ｃによる雑音フレームの判定を行う。すなわち、上記ステップ５ｂ及びステップ５ｃにより音声フレーム又は過渡域フレームの検出が行われる。
【００４６】
さて、音声フレーム又は過渡域フレームが検出されると、雑音最小値推定部２９はステップ５ｄに移行してここでフレームカウンタｆc をインクリメントすると共に、帯域k=0を選択する。そして、ステップ５ｅで  
x ＝MAX(noise_power(m,2k)，noise_power(m,2k+1))  
に設定したのち、ステップ５ｆに移行してnoise_min(k)_h(k)＞x であるか否か判定し、noise_min(k)_h(k)＞x であればステップ５ｇに移行してここで雑音最小値をnoise_min(k)_h(k)＝x に設定する。そして、ステップ５ｈに移行する。
【００４７】
これに対しnoise_min(k)_h(k)＞x でなければ、そのままステップ５ｈに移行して次の帯域k=1を選択し、帯域k=8に達するまでは上記ステップ５ｅ〜ステップ５ｇによる雑音最小値noise_min(k)_h(k)の設定処理を繰り返す。
【００４８】
そして、帯域k=8に達すると、雑音最小値推定部２９はステップ５ｊでフレームカウンタｆc が１００に達したか否かを判定する。そして、１００フレームに達するまではステップ５ｂに戻って次のフレームを選択し、この選択したフレームについて上記ステップ５ｃ〜ステップ５ｉによる処理を繰り返す。
【００４９】
一方、上記１００フレームに対する処理を終了すると、雑音最小値推定部２９は図６に示すステップ６ａに移行し、ここで雑音最小値の帯域間平均min_allを  
7   
min_all＝Σ noise_min(k)_h(n)/8  
n=0  
により求める。
【００５０】
またそれと共に、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)  
とすると共に、帯域をk=1とする。
【００５１】
さらに雑音最小値推定部２９は、ステップ６ｂに移行してここで、先に帯域k=0〜k=7について求めた８個の雑音最小値をもとに、残りの帯域k=8〜k=15について雑音最小値を  
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をもとに16個のmin_allを補間している。
そうして16個のmin_allを算出すると、雑音最小値推定部２９はステップ６ｆにおいて、フレームカウンタｆc を０にリセットすると共に、雑音最小値をnoise_min_h(k)=36に、また帯域をk=0,…,7に設定し直す。そして、ステップ６ｇにおいて、先に算出した雑音最小値の帯域間平均値min_all、及び雑音最小値noise_min(m,k),k=0,…,15を出力したのち、ステップ５ｂに戻って次のフレームm=m+1について同様の雑音最小値及びその帯域間平均値の算出処理を繰り返す。
【００５４】
また、更新判定部３１および雑音リーク積分値更新部３２では、雑音のリーク積分値noise_power(m,k)の更新処理が行われる。すなわち、更新判定部３１は、y ＜１５のときに更新可、それ以外のときには更新不可とする。更新可のとき雑音リーク積分値更新部３２は、雑音パワーnoise_powerを例えば、  
noise_power(m+1,k)＝noise_power(m,k)*0.9＋channel_power(m,k)*0.1,  k=0,…,15  
のように更新する。
【００５５】
帯域別ゲイン決定部３３は、前記帯域パワー計算部２６から出力された帯域パワーchannel_power(m,k)、雑音リーク積分値更新部３２から出力された雑音パワーnoise_power(m,k)、音声重み計算部２８から出力された音声重みsp(m,k)、及び雑音最小値推定部２９から出力された雑音最小値noise_min(m,k)をもとに、帯域別ゲインgain(m,k)を決定する。
【００５６】
先ず雑音リーク積分値noise_power(m,k)の帯域平均値noise_allを、  
15  
noise_all= Σ noise_power(m,k)/16  
k=0  
により求める。
【００５７】
続いて、帯域パワーchannel_power(m,k)の帯域最低値min_band、及び雑音最小値noise_min(m,k)の帯域最大値max_bandをそれぞれ、  
min_band=MIN (channel_power(m,k),k=2,…,11  
max_band=MAX(noise_power(m,k),k=0,…,15)  
により求める。
【００５８】
次に、帯域共通の調整値mdを  
md=(noise_all−min_all)*(1−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)と、調整値とから次のように決定される。すなわち、帯域k において、  
tmp=channel_power(m,k)−noise_min(m,k)−md−1.625  
gain(m,k)={sqrt(1.4+0.49*tmp2)＋0.7*tmp−9.5}*2  
をk=0,…,15についてそれぞれ独立に求める。  
なお、Sp=0のときは雑音であるので、上記の計算式に依らずすべての帯域でゲインを定数に、例えばgain(m,k)=−20に設定してもよい。
【００６１】
そして、以上のように求められた帯域別ゲインgain(m,k)は、乗算器２３において帯域ごとに変換係数に乗算され、これによりノイズキャンセルがなされる。そして、このノイズキャンセルされた各帯域ごとの変換係数は、ＩＦＦＴ２４において逆高速フーリエ変換されて時間軸上の信号フレームに戻されたのち、フレーム合成部２５においてフレーム合成されて音声符号化回路１６に供給される。
【００６２】
以上述べたようにこの実施形態によれば、雑音最小値推定回路２９において各帯域の雑音パワーの最小値を求め、この雑音最小値のスペクトル形状を帯域別ゲイン決定部３３による帯域別ゲインの決定に用いるようにしているため、例えば自動車の通過時のような雑音スペクトルの短期的な変化に影響されず、音声スペクトルを歪ませにくいノイズキャンセル処理を実現することができる。
【００６３】
またこの実施形態によれば、有意値計算部２７において、しきい値が「１」を越える連続する複数の帯域の帯域別差の重み付け加算値を求め、この重み付け加算値を音声重み計算部２８における音声重みの計算、つまりそのフレームが音声フレームであるか雑音フレームであるか、さらにはその中間の過渡域フレームであるかの判定に供している。このため、ただ１つの帯域のみで帯域別差がしきい値「１」を越えた場合には、これは雑音と見なして排除することができ、これにより音声／雑音／過渡域の判定を正確に行って、ノイズキャンセル性能を高めることができる。
【００６４】
なお、この発明は上記実施形態に限定されるものではない。例えば、前記実施形態ではＴＤＭＡ方式を採用したディジタル携帯電話装置を例にとって説明したが、ＣＤＭＡ方式を採用したディジタル携帯電話装置にもこの発明は適用可能である。
その他、ノイズキャンセラ内の各機能部の処理手順と処理内容、及びこの処理を実現するための回路構成又は処理プログラム等についても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。
【符号の説明】
【００６５】
１…アンテナ、２…アンテナ共用器（ＤＵＰ）、３…受信回路（ＲＸ）、４…周波数シンセサイザ（ＳＹＮ）、５…送信回路（ＴＸ）、６…ディジタル復調器（ＤＥＭ）、７…ディジタル変調器（ＭＯＤ）、８…時分割多元接続回路（ＴＤＭＡ）、９…誤り訂正符号復号回路（ＣＨ−ＣＯＤ）、１０…音声復号回路（ＤＥＣ）、１１…Ｄ／Ａ変換器、１２…スピーカ、１３…マイクロホン、１４…Ａ／Ｄ変換器、１６…音声符号化回路（ＣＯＤ）、１７…ノイズキャンセラ、１８…制御回路、１９…操作パネル部、２１…フレーム分割部、２２…高速フーリエ変換部（ＦＦＴ）、２３…乗算部、２４…逆高速フーリエ変換部（ＩＦＦＴ）、２５…フレーム合成部、２６…帯域パワー計算部、２７…有意値計算部、２８…音声重み計算部、２９…雑音最小値推定部、３１…更新判定部、３２…雑音リーク積分値更新部、３３…帯域別ゲイン決定部。
【図１】
2010160521.tif 000003
【図２】
2010160521.tif 000004
【図３】
2010160521.tif 000005
【図４】
2010160521.tif 000006
【図５】
2010160521.tif 000007
【図６】
2010160521.tif 000008
【図７】
2010160521.tif 000009
【図８】
2010160521.tif 000010
【図９】
2010160521.tif 000011