以下、図面を参照してこの発明の実施形態を説明する。
図1はこの発明に係わるボイススイッチを備えた携帯電話機の構成を示すブロック図であり、携帯電話機は以下のように構成される。
すなわち、図示しない基地局から送信された無線信号は、アンテナ1で受信されたのち無線ユニット2に入力される。無線ユニット2は、上記受信された無線信号を中間周波信号に周波数変換(ダウンコンバート)したのち直交復調して受信ベースバンド信号を生成し、この受信ベースバンド信号をCDMA信号処理ユニット3に供給する。
CDMA信号処理ユニット3はRAKE受信機を備える。RAKE受信機では、上記受信ベースバンド信号に含まれる複数のパスがそれぞれ拡散符号により逆拡散処理される。そして、この逆拡散処理された各パスの信号が位相を調停されたのち合成される。かくして、所定の伝送フォーマットの受信パケットデータが得られる。この受信パケットデータは圧縮伸長処理ユニット(以後コンパンダ(Compress or /Expander;Compander)と称する)4に入力される。
コンパンダ4は、上記CDMA信号処理ユニット3から出力された受信パケットデータを多重分離部によりメディアごとに分離する。そして、この分離されたメディアごとのデータに対しそれぞれ復号処理を行う。例えば、通話モードにおいては、受信パケットデータに含まれている受話データをスピーチコーデックにより復号する。またテレビジョン電話モードのように、受信パケットデータにビデオデータが含まれていれば、このビデオデータをビデオコーデックにより復号する。
上記スピーチコーデックにより復号されたディジタル受話信号は、後述する音声制御ユニット5を経た後ディジタル/アナログ変換器(D/A)6に入力され、ここでアナログ受話信号に変換される。そして、このアナログ受話信号はスピーカユニット7に入力され、このスピーカユニット7において受話信号として拡声出力される。このようにして音響空間に出力された信号は、送話信号と音響結合してマイクロホンユニット8において集音される。なお、上記コンパンダ4により復号されたディジタルビデオ信号は、制御ユニット10に入力される。制御ユニット10は、上記コンパンダ4から出力されたディジタルビデオ信号をディスプレイ13に表示する。
一方、通話モードにおいて、マイクロホンユニット8において入力された送話信号は、アナログ/ディジタル変換器(A/D)9によりディジタル送話信号に変換され、さらに音声制御ユニット5を介してコンパンダ4に入力される。また、テレビジョン電話モードにおいて、図示しないカメラから出力されるビデオ信号は、制御ユニット10によりディジタル化されてコンパンダ4に入力される。
コンパンダ4は、上記入力されたディジタル送話信号をスピーチコーデックで符号化して送話データを生成する。また、制御ユニット10から出力されたディジタルビデオ信号をビデオコーデックで符号化して送信ビデオデータを生成する。そして、これらの送話データ及び送信ビデオデータを多重分離部で所定の伝送フォーマットに従いパケット化し、この送信パケットをCDMA信号処理ユニット3に供給する。
CDMA信号処理ユニット3は、上記コンパンダ4から出力された送信パケットに対し、拡散符号を用いてスペクトラム拡散処理を施す。そして、その出力信号を無線ユニット2へ出力する。無線ユニット2は、上記スペクトラム拡散された信号を例えばQPSK(Quadrature Phase Shift Keying)方式を使用して変調する。そして、この変調により生成された送信信号を無線信号に周波数変換し、しかるのち制御ユニット10により指示される送信電力レベルとなるように高周波増幅する。この増幅された無線信号は、アンテナ1に供給され、このアンテナ1から基地局へ向けて送信される。
制御ユニット10は、例えばマイクロプロセッサ(MPU;Micro Processing Unit)を備えたもので、この発明に係わる制御機能として、後述するボイススイッチ52の制御機能を備えている。また、エコーキャンセラ53及びノイズキャンセラ54の制御機能を備えている。
記憶ユニット11は、例えばEEPROM又はハードディスクを記憶媒体として使用したもので、通信動作に必要な各種プログラムやデータを格納する。入力デバイス12はキーパッドやカーソルキー、ユーザボリューム入力手段121、モード入力手段122等を備えたもので、通信動作に必要な情報をユーザが入力するために使用される。ユーザボリューム入力手段121は、利用者が設定する受話信号の音量をキー入力又はボリュームつまみの操作等により受け付ける。そして、この受け付けたユーザボリュームの大きさを表現するボリューム情報を制御ユニット10から出力する。
モード入力手段122は、移動通信端末が備えた複数の通話モードの中から、利用者が希望するモードをキー入力又はスイッチつまみ操作により受け付ける。そして、この受け付けたモードを示すモード情報を制御ユニット10から出力する。上記通話モードとしては、例えばスルーモード(ボイススイッチ(VS)52、エコーキャンラ(EC)53、ノイズキャンセラ(NC)54の機能OFF)、ハンドセットモード(ハンドセット用スピーカを用いたハンドセット通話)、ハンズフリーモード(ハンズフリー用スピーカを用いたハンズフリー通話)、イヤホンモード(イヤホンを用いた通話)、外部機器接続モード(外部接続されたスピーカを用いた通話)がある。
電源回路14は、バッテリ15の電源出力をもとに所定の動作電源電圧Vccを生成して各回路ユニットに供給する。バッテリ15は図示しない充電回路により充電される。
ところで、上記音声制御ユニット5と、スピーカユニット7及びマイクロホンユニット8は次のように構成される。図2はその構成を示すブロック図である。
すなわち、音声制御ユニット5は、受話ユーザボリューム51と、ボイススイッチ(VS)52と、エコーキャンセラ(EC)53と、ノイズキャンセラ(NC)54とを備える。受話ユーザボリューム51は受話経路のコンパンダ4とボイススイッチ52との間に設けられる。
エコーキャンセラ53は、送話信号からエコー成分を抑圧するものであって、そのエコー抑圧後の信号を出力する。例えば、エコーキャンセラ53は、トランスバーサルフィルタ(Transversal Filter) で構成され学習同定法(NLMSアルゴリズム)などの適応アルゴリズムで動作するものとする。
ノイズキャンセラ54は、送話信号から雑音成分を抑圧するものであって、その雑音抑圧後の信号を出力する。例えば、ノイズキャンセラ54は、スペクトルサブトラクション (Spectral Subtraction) 法やMMSE−STSA(Minimum Mean-Square Error Short-Time Spectral Amplitude estimator )法などによって動作するものとする。
制御ユニット10は、ユーザボリューム入力手段121の操作に応じた上記ボリューム情報、及びモード入力手段122の操作に応じた上記モード情報をもとに、内蔵するテーブルデータを参照してユーザボリューム利得値を決定する。そして、このユーザボリューム利得値を上記受話ディジタルユーザボリューム51に与え、これにより上記受話ユーザボリューム51のゲインを制御する。
表1に、制御ユニット10が内蔵するテーブルデータの一例を示す。この例では、ユーザボリューム入力手段121により選択可能なボリューム値が1〜5の5段階あり、かつモード入力手段122により選択可能なモードがモード“0”、モード“1”、モード“2”の3モードある場合に、これらに対応付けられたユーザボリューム利得値をdB単位でデータテーブルに格納されている。なお、格納されているユーザボリューム利得値は、dB単位であっても、また利得の乗算係数単位であってもよい。
また、制御ユニット10は、上記ボリューム情報及び上記モード情報に基づいて、エコーキャンセラ53の機能のON/OFF切替、内部パラメータ変更及びノイズキャンセラ54の機能のON/OFF切替、雑音抑圧量の強弱切替等を制御する。
スピーカユニット7は、ハンドセットスピーカ71と、ハンズフリースピーカ72と、これらのスピーカ71,72をそれぞれ駆動するための受話増幅器73,74と、受話切替回路75とを備える。制御ユニット10は、モード入力手段122の操作に応じたモード情報により上記受話切替回路75を切替制御し、上記ハンドセットスピーカ71及びハンズフリースピーカ72の一方を受話経路に接続させる。
マイクロホンユニット8は、ハンドセットマイクロホン81と、ハンズフリーマイクロホン82と、これらのマイクロホン81,82から出力された送話信号をそれぞれ増幅するための送話増幅器83,84と、送話切替回路85とを備える。制御ユニット10は、上記モード情報をもとに上記送話切替回路85を切替制御することにより、上記ハンドセットマイクロホン81及びハンズフリーマイクロホン82の一方を送話経路に接続させる。
なお、スピーカユニット7及びマイクロホンユニット8のスピーカ71,72及びマイクロホン81,82を利用せずに、代わりに有線接続カーキット又は無線通信接続用のヘッドセットなどの外部機器を利用することも可能である。このような外部機器を用いる場合には、上記モード情報には上記外部機器接続モードが設定される。同様にイヤホンマイクを接続することを想定してもよい。この場合、上記モード情報には上記イヤホンモードが設定される。
上記ボイススイッチ52は次のように構成される。図3はその構成を示す機能ブロック図である。
すなわち、ボイススイッチ52は、受話経路に設けられた受話信号減衰手段52mと、送話経路に設けられた送話信号減衰手段52nと、受話制御ブロックと、送話制御ブロックと、主制御ブロックとを備える。
受話制御ブロックは、受話利得値格納手段(Rcv_Int)52aと、受話下限値格納手段(Rcv_Min )52bと、受話パワー算出手段(Rcv_Pow)52cと、受話検出値算出手段(Rcv_Det)52dと、受話検出値制御手段(Rcv_Control)52eとを有する。
受話利得値格納手段52aは、制御ユニット10から出力される各モード情報及び各ボリューム情報に基づいて、受話パワー値Rcv_Power(t) に対する利得である受話利得値φr を受話パワー算出手段52c及び受話検出値制御手段52eへ出力する。
表2に、受話利得値格納手段52aが内蔵するテーブルデータの一例を示す。このテーブルデータには、制御ユニット10から出力されるモード情報がモード“0”、モード“1”、モード“2”の3モードあり、かつ制御ユニット10から出力されるボリューム情報が1〜5の5段階ある場合に、これらに対応付けられた受話利得値φr がdB単位で格納されている。なお、格納されている受話利得値はdB単位であっても、また利得の乗算係数単位であってもよい。
上記受話利得値φr は、受話ユーザボリューム51と、アナログフロント/エンドのレベルダイヤグラムの設計に基づいて設定される。アナログフロント/エンドには、例えばディジタル/アナログ変換器6、受話切替回路75、受話増幅器73,74、スピーカ71,72、マイクロホン81,82、送話増幅器83,84、送話切替回路85、アナログ/ディジタル変換器9が含まれる。
このようにすると、受話ユーザボリューム51の設定値、受話増幅器の設定値又は送話増幅器の設定値がどのような値であっても、受話信号及び送話信号の信号パワーのバランスをとることができ、これによりボイススイッチを適切に切替制御することができる。また、ユーザボリューム設定操作或いはレベルダイヤグラムの設計に応じて送話パワーが受話パワーよりも大きくなった場合でも、通話開始当初において受話状態/送話状態が誤判定されないようにすることができる。さらに、他の通話装置や他のモード情報及び他のボリューム情報の場合に、一度バランスが取れた設定値を基準値として利用することができ、これにより調整を容易にすることができる。例えば、モード“0”でボリューム“5”の場合が基準であるとすると、モード“2”でボリューム“5”の場合にはユーザボリューム51の設定値が2[dB]大きくなり、これ伴い受話信号も2[dB]大きくなる。このため、受話利得値φr を2[dB]に設定している。
また、上記受話利得値φr は、通話開始前に外部から設定可能としてもよく、また入力デバイス12におけるユーザのキー操作により任意に設定可能としてもよい。このようにすると、外部から受話信号の優先度を変えることができる。この優先度の設定により例えば、受話信号の途切れ感を無くして送話信号にエコーを極力送らない設定と、送話信号を途切れなく送信することを優先とする設定とを選択することができる。すなわち、利用者の好みに応じたボイススイッチの切り替えを実現できる。
さらに、上記受話利得値φr は、制御ユニット10から出力されるモード情報及びボリューム情報に基づいた利得値に、一定値を加算(または減算)した時変値としてもよい。なお、上記一定値は、事前に決められた処理時間(例えばフレーム単位、スピーチコーデックの処理単位)ごとの受話信号と送話信号の相関に基づいて設定される。このようにすると、送話経路に入力された信号にエコーが多い場合、受話信号の優先度を高めることができ、エコーを遠端側に送ることを防止することができる。
受話下限値格納手段52bは、制御ユニット10から出力される各モード情報及び各ボリューム情報に基づいて、受話検出値Rcv_Detect(t) の下限値である受話検出下限値Rcv_Detect_Min を受話検出値制御手段52eへ出力する。表3に、受話下限値格納手段52bが内蔵するテーブルデータの一例を示す。このテーブルデータには、制御ユニット10から出力されるモード情報がモード“0”、モード“1”、モード“2”の3モードあり、かつ制御ユニット10から出力されるボリューム情報が1〜5の5段階である場合に、これらに対応付けられた受話検出下限値Rcv_Detect_Min がdB単位で格納されている。なお、格納されている受話検出下限値は、dB単位であっても、また乗算係数単位であっても良い。
また、上記受話検出下限値Rcv_Detect_Min は、遠端側の音響結合量及びレベルダイヤグラムに基づいて設定されてもよい。近端側送話信号は、遠端側受話路から出力されたのち遠端側送話路へ音響エコーとして回り込み、再び近端側受話から出力される。こうした遠端側を介して近端側に戻って来るであろうエコーのパワーレベルを、実測するか又は遠端側の音響結合量に基づいて想定し、そのエコーのパワーレベルより大きくなるように上記受話検出下限値Rcv_Detect_Min を設定する。
このようにすると、遠端側を介して近端受話側に戻ってくるであろうエコーによる送話ブロッキングを防止することができる。例えば、遠端側の受話ユーザボリュームのゲインが+10[dB]、遠端側の音響結合量が−53[dB]、遠端側の送話増幅器のゲインが+40[dB]であったとき、モード“2”でボリューム3の場合には近端側の受話ユーザボリューム51のゲインは+5[dB]となる。そして、標準的な音量である受話パワー値が78[dB]である近端側の送話信号に対して、遠端側を介して戻ってくる近端側の受話信号に含まれるエコーのパワーレベルは、87(=78+10+7−53+40+5)[dB]となる。このため、受話検出下限値Rcv_Detect_Min は87[dB]に設定する。
受話パワー算出手段52cは、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、上記受話利得値格納手段52aから読み出された受話利得値に基づいて、ボイススイッチ52へ入力された受話信号のパワーRcv_Power(t) を計算する。ある時刻tにおける受話パワー値は、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)に含まれるNサンプル分のサンプル値x(i) の2乗和をその処理時間ごとに計算することによって求められる。但し、通話初期時(時刻t = 0)における受話パワー値Rcv_Power(0) は0とする。
すなわち、時刻tにおける受話パワー値Rcv_Power(t) は、
なる計算を行うか、あるいはその2乗和に対数をとって10倍することによりdB単位で求められる。
なる計算を行うか、或いは連続する複数区間でのパワー値を平均化することにより求めてもよい。
このように計算された受話パワー値Rcv_Power(t) は、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、受話利得値格納手段52aから読み出された上記受話利得値φr を、次のように加算することによって更新される。
さらに、忘却係数λr (0≦λr ≦1、例えばλr =0.375〜0.999)を用いて
として算出し更新する。
すなわち、受話パワー値Rcv_Power(t) は、サンプル値の2乗和に対数をとって10倍することによりdB単位で表し、このdB単位の算出値に受話利得値格納手段52aから読み出された上記受話利得値φr を加算して、さらに忘却係数λr を反映させることにより計算される。
そして、このように計算された受話パワー値Rcv_Power(t) は、受話検出値算出手段52d、受話検出値制御手段52e、送話検出値制御手段2j及び状態判定手段2lに対し供給される。
受話検出値算出手段52dは、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、上記受話パワー算出手段52cにより算出された受話パワー値Rcv_Power(t) に基づいて、受話区間を検出するための受話検出値Rcv_Detect(t) を計算する。受話検出値Rcv_Detect(t) は、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、現時刻の受話パワー値Rcv_Power(t) と1処理時間前の時刻における受話検出値Rcv_Detect(t-1) とに基づいて以下のように適応的に更新される。一例として、αr ≒0.914、βr ≒0.086、γr ≒0.00002、ψr =10[dB]を用いる。
ここで、受話検出値算出時の定数項γr を、受話信号に含まれる雑音成分の振幅値の分散に基づいて設定してもよい。このようにすると、受話検出値Rcv_Detect(t) を受話信号に含まれる雑音の変動に頑健にすることができる。
このように計算した受話検出値Rcv_Detect(t) は、受話検出値制御手段52eへ出力される。
受話検出値制御手段52eは、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、上記受話検出値算出手段52dから出力された受話検出値Rcv_Detect(t) を制御する。
まず受話検出値制御手段52eは、受話検出値Rcv_Detect(t) が受話検出下限値Rcv_Detect_Min 未満に低下しないように以下のように制御する。すなわち、受話検出値Rcv_Detect(t) が受話下限値格納手段52bから読み出された受話検出下限値Rcv_Detect_Min 未満であるか判定する。この判定の結果、受話検出下限値Rcv_Detect_Min 未満であれば受話検出値Rcv_Detect(t) をRcv_Detect_Min に更新し、この更新された受話検出値Rcv_Detect(t) を状態判定手段52lへ出力する。
となる。
また、受話検出値制御手段52eは、上記受話検出値算出手段52dにおける受話検出値Rcv_Detect(t) の更新処理において、Rcv_Power(t) +ψr ≧ Rcv_Detect(t-1) となる場合には、受話検出値カウンタRcv_Detect_Count を1つずつ増加させる。そして、受話検出値カウンタRcv_Detect_Count の値があらかじめ設定された所定値θr に達した場合に、Rcv_Detect_Count =0とすると共に、所定値δr をRcv_Detect(t) に加える。この所定値δr は、受話信号に含まれる雑音成分の変動幅に十分に追従でき、受話信号の音声に反応しないように設定する。所定値θr と所定値δr は、1[sec]当たり更新量が0.1〜3.5[dB]程度となるような値に設定する。具体的には、θr =0.3[sec]、δr =0.5[dB]とした。こうすることによって、受話検出値が極端に小さな値になったり、雑音の長時間平均パワーが変動したりしたときに、一方の経路に損失が挿入される状態が不必要に長く継続されることを防止できる。
さらに、受話検出値制御手段52eは、通話初期時(時刻t=0)および状態判定手段2lから出力される状態情報(States(t) の値)に基づき、受話検出値Rcv_Detect(t) を初期化する。具体的には、状態判定手段2lにおいて判定された状態情報が「受話状態」から「送話状態」に切り替わる(States(t-1) =1かつStates(t) =0)ごとに受話検出値Rcv_Detect(t) を初期化し、また、状態判定手段52lにおいて判定された状態情報が「送話状態(States(t) =0)」でありかつ送話パワー値Snd_Power(t) と送話検出値Snd_Detect(t) との差の符号が変化するごとに、受話検出値Rcv_Detect(t) を初期化する。このようにすることによって、過敏なスイッチ切り替えを防止できる。また、状態判定を背景雑音の変化による影響を受けにくくすることができる。
ここで、初期化設定時に受話検出値Rcv_Detect(t) は、受話パワー値Rcv_Power(t) の最大値よりも大きな値ρに設定する。例えば、D/A6及びA/D9が取り扱うディジタル信号のビット数が16bit であれば、受話信号が16bit のディジタル信号となる。また、受話パワー値Rcv_Power(t) を算出するサンプル数NがN=80またはN=160である場合には、Rcv_Power(t) は110[dB]未満または113[dB]未満となるため、ρ=150[dB]のように設定する。なお、受話利得値格納手段52aから出力されたボリューム情報に基づく受話利得値φr をρに加算した値により受話検出値Rcv_Detect(t) を初期化してもよい。このようにすることによって、オーバーフロー時の影響を受けずに、受話区間の検出をすることができる。
また、初期設定時には受話信号のパワーの大きさに依存しないため、受話検出値Rcv_Detect(t) による受話区間の検出調整を容易にすることができる。さらに、受話パワー値が大きい区間を検出しやすくなるので、受話信号に含まれる遠端話者の音声が遠端側で回り込んだエコーよりわずかに大きいときでもエコーの影響を受けずに、受話区間の検出をすることができる。
つまり、受話検出値制御手段52eにおいて受話検出値Rcv_Detect(t) は以下のように初期化設定される。
となる。
送話制御ブロックは、送話利得値格納手段(Snd_Int)52fと、送話下限値格納手段(Snd_Min)52gと、送話パワー算出手段(Snd_Pow)52hと、送話検出値算出手段(Snd_Det)52iと、送話検出値制御手段(Snd_Control)52jとを有する。
送話利得値格納手段52fは、制御ユニット10から出力される各モード情報に基づいて、送話パワー値Snd_Power(t) に対する利得である送話利得値φs を送話パワー算出手段52h及び送話検出値制御手段52jへ出力する。表4に、送話利得値格納手段52fが内蔵するテーブルデータの一例を示す。この例では、制御ユニット10から出力されるモード情報がモード“0”、モード“1”、モード“2”の3モードであるときを示すもので、これらに対応づけた送話利得値φs をdB単位で格納している。なお、格納されている送話利得値は、dB単位であっても、利得の乗算係数単位であってもよい。
上記送話利得値φs は、受話ユーザボリューム51及びアナログフロント/エンドのレベルダイヤグラムの設計に基づいて設定される。アナログフロント/エンドには、ディジタル/アナログ変換器6、受話切替回路75、受話増幅器73,74、スピーカ71,72、マイクロホン81,82、送話増幅器83,84、送話切替回路85、及びアナログ/ディジタル変換器9が含まれる。
このようにすると、ユーザボリューム51の設定値、受話増幅器の設定値及び送話増幅器の設定値がどのような設定値であっても、受話信号及び送話信号間の信号パワーのバランスをとることができ、これによりボイススイッチを適切に切り替え制御することができる。また、ユーザボリュームの設定操作あるいはレベルダイヤグラムの設計により送話パワーが受話パワーよりも大きくなった場合でも、通話開始当初において受話状態/送話状態が誤判定されないようにすることができる。
さらに、他の通話装置や他のモード情報及び他のボリューム情報の場合に、一度バランスが取れた設定を基準として利用することができ、容易に調整することができる。例えば、モード“0”の場合が基準であるとして、モード“0”及びモード“2”において同一ゲインでかつ同一特性のマイクロホンを用いた場合に、モード“0”の送話増幅器のゲインは29[dB]、モード“2”の送話増幅器のゲインは40[dB]であり、ボイススイッチ52がパワー計算する送話信号として11[dB]大きいため、送話利得値φs を−11 [dB]としている。
また、上記送話利得値φs は、通話開始前に外部から事前に設定可能あるいは入力デバイス12におけるユーザのキー操作により任意に設定可能としてもよい。このようにすると、外部から送話信号の優先度を変えることができ、受話信号の途切れ感を無くし送話信号にエコーを極力送らない設定か、送話信号を途切れなく送信することを優先とする設定か選択することができ、利用者の好みに応じたボイススイッチの切り替えを実現することができる。
さらに、上記送話利得値φs は、制御ユニット10から出力されるモード情報に基づいた利得値に、一定値を加算した時変値としてもよい。一定値は、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとの受話信号と送話信号の相関に基づく値に設定される。このようにすると、送話経路に入力された信号にエコーが多い場合に、受話信号の優先度を高めることができ、エコーが遠端側に送られることを防止することができる。
送話下限値格納手段52gは、制御ユニット10から出力される各モード情報に基づいて、送話検出値Snd_Detect(t) の下限値である送話検出下限値Snd_Detect_Min を送話検出値制御手段52jへ出力する。表5に、送話下限値格納手段52gが内蔵するテーブルデータの一例を示す。このテーブルデータには、制御ユニット10から出力されるモード情報がモード“0”、モード“1”、モード“2”の3モードであるときに、これらのモードに対応付けられた送話検出下限値Snd_Detect_Min がdB単位で格納されている。なお、格納されている送話検出下限値は、dB単位であってもまた乗算係数単位であってもよい。
また、上記送話検出下限値Snd_Detect_Min は、近端側の音響結合量及びレベルダイヤグラムに基づいて設定されてもよい。近端側から出力された受話信号は近端側送話へ音響エコーとして回り込む。この近端側を介して近端送話側へ回り込むエコーのパワーレベルを実測するかあるいは近端側の音響結合量を実測し、そのエコーのパワーレベルより大きくなるように上記送話検出下限値Snd_Detect_Min を設定する。このようにすると、近端側を介して近端送話側に回り込むエコーによる受話ブロッキングの発生を防止することができる。
例えば、モード“2”でボリューム3の場合、近端側の受話ユーザボリューム51のゲインは+5[dB]、近端側の受話増幅器のゲインは+7[dB]、近端側の音響結合量は−53 [dB]、近端側の送話増幅器のゲインは+40[dB]である。そして、比較的小音量である受話パワー値が60[dB]である近端側の受話信号に対して、近端側の送話信号に含まれるエコーのパワーレベルは59(=60+5+7−53+40) [dB]であるため、送話検出下限値Snd_Detect_Min =59[dB]としている。
送話パワー算出手段52hは、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、上記送話利得値格納手段52fから読み出された送話利得値に基づいて、ボイススイッチ52へ入力された送話信号のパワーである送話パワー値Snd_Power(t) を計算する。ある時刻tにおける送話パワー値は、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)に含まれるNサンプル分のサンプル値y(i) の2乗和を、その処理時間ごとに計算することにより求められる。但し、通話初期時(時刻t=0)における送話パワー値Snd_Power(0) は0とする。
すなわち、時刻tにおける送話パワー値Snd_Power(t) は、
あるいは、連続する複数区間でのパワー値を平均化して、平滑化した信号パワーを求めてもよい。
このように計算した送話パワー値Snd_Power(t) は、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、送話利得値格納手段52fから読み出された上記受話利得値φs を加算することによって更新される。
以下、サンプル値の2乗和に対数をとり10倍することでdB単位として求めた値に送話利得値格納手段52fから読み出された上記送話利得値φs を加算し、さらに忘却係数λs を用いた送話パワー値Snd_Power(t) を用いて説明する。このように忘却係数λs を用いることで本来より長い区間に音声が含まれると判断し、遠端側を介して受話側に戻ってくるエコーの遅延時間に対応することできるため、送話ブロッキングを防止できる。
そして、このように計算した送話パワー値Snd_Power(t) は、送話検出値算出手段52iおよび送話検出値制御手段52jおよび受話検出値制御手段52eおよび状態判定手段52lへ出力される。
送話検出値算出手段52iは、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、送話パワー算出手段52hにより算出された送話パワー値Snd_Power(t) に基づいて、送話区間を検出するための送話検出値Snd_Detect(t) を計算する。送話検出値Snd_Detect(t) は、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、現時刻の送話パワー値Snd_Power(t) と1処理時間前の時刻における送話検出値Snd_Detect(t-1) とに基づいて以下のように適応的に更新される。例として、αs ≒0.914、βs ≒0.086、γ≒0.00002、ψs =10[dB]を用いる。
となる。
ここで、送話検出値算出時の定数項γs を、送話信号に含まれる雑音成分の振幅値の分散に基づいて設定してもよい。この送話信号に含まれる雑音成分の振幅値の分散はノイズキャンセラ54からの情報を用いることで代用してもよい。このようにすることで、送話検出値Snd_Detect(t) を送話信号に含まれる雑音の変動に頑健にすることができる。
このように計算した送話検出値Snd_Detect(t) は、送話検出値制御手段52jへ出力される。
送話検出値制御手段52jは、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、送話検出値算出手段52iから出力された送話検出値Snd_Detect(t) を制御する。
まず送話検出値制御手段52jは、送話検出値Snd_Detect(t) が送話検出下限値Snd_Detect_Min 未満に低下しないように以下の制御を行う。すなわち、送話検出値Snd_Detect(t) が送話下限値格納手段52gから読み出された送話検出下限値Snd_Detect_Min 未満であるか判定する。この判定の結果、送話検出下限値Snd_Detect_Min 未満であれば、送話検出値Snd_Detect(t) をSnd_Detect_Min に更新し、この更新された送話検出値Snd_Detect(t) を状態判定手段52lへ出力する。
なる制御を行う。
また、送話検出値制御手段52jは、上記送話検出値算出手段52iにおける送話検出値Snd_Detect(t) の更新処理において、Snd_Power(t) +ψs ≧ Snd_Detect(t-1) となる場合に送話検出値カウンタSnd_Detect_Countを1つずつ増加させる。そして、あらかじめ設定された所定値θs に達した場合、Snd_Detect_Count =0とすると共に、所定値δs をSnd_Detect(t) に加える。この所定値δs は、送話信号に含まれる雑音成分の変動幅に十分に追従でき、送話信号の音声に反応しないように設定する。所定値θs と所定値δs は、1[sec]当たり更新量が0.1〜3.5[dB]程度となるような値に設定する。具体的には、θs =0.2[sec]、δs =0.625[dB]とした。こうすることによって、送話検出値が極端に小さな値になったり、雑音の長時間平均パワーが変動したりしたときに、一方の経路に損失が挿入される状態が不必要に長く継続されることを防止できる。
さらに、送話検出値制御手段52jは、通話初期時(時刻t=0)および状態判定手段2lから出力される状態情報(State(t) の値)に基づき、送話検出値Snd_Detect(t) を初期化設定する。具体的には、状態判定手段2lにおいて判定された状態情報が「送話状態」から「受話状態」に切り替わる(States(t-1) =0かつStates(t) =1)ごとに送話検出値Snd_Detect(t) を初期化し、また、状態判定手段52lにおいて判定された状態情報が「受話状態(States(t) =1)」でありかつ受話パワー値Rcv_Power(t) と受話検出値Rcv_Detect(t) との差の符号が変化するごとに、送話検出値Snd_Detect(t) を初期化する。このようにすることによって、過敏なスイッチ切り替えを防止できる。また、状態判定を背景雑音の変化による影響を受けにくくすることができる。
ここで、初期化設定時に送話検出値Snd_Detect(t) は、送話パワー値Snd_Power(t) の最大値よりも大きな値ρに設定する。例えば、D/A6及びA/D9が取り扱うディジタル信号のビット数が16bit であれば送話信号は16bit ディジタル信号で、送話パワー値Snd_Power(t) を算出するサンプル数NがN=80またはN=160である場合Snd_Power(t) は110[dB]未満または113[dB]未満であり、ρ=150[dB]のように設定する。
なお、送話利得値格納手段52fから出力されたボリューム情報に基づく送話利得値φs をρに加算した値で送話検出値Snd_Detect(t) を初期化してもよい。このようにすることによって、オーバーフロー時の影響を受けずに、送話区間の検出をすることができる。また、初期設定時には送話信号のパワーの大きさに依存しないため、送話検出値Snd_Detect(t) による送話区間の検出調整を容易にすることができる。また、送話パワー値が大きい区間を検出しやすくなるので、送話信号に含まれる近端話者の音声が近端側で回り込んだエコーよりわずかに大きいときでもエコーの影響を受けずに、送話区間の検出をすることができる。
つまり、送話検出値制御手段52jにおいて送話検出値Snd_Detect(t) 検出値は、
のように初期化設定される。
主制御ブロックは、信号減衰値格納手段(Loss)52kと、状態判定手段(States)52lとを有する。
信号減衰値格納手段52kは、制御ユニット10から出力されるモード情報及びボリューム情報に基づいて、信号を減衰させる損失量である信号減衰値Vs_Lossを読み出し、状態判定手段52lへ出力する。表6に、信号減衰値格納手段52kが内蔵するテーブルデータの一例を示す。このテーブルデータには、制御ユニット10から出力されるモード情報がモード“0”、モード“1”、モード“2”の3モードあり、制御ユニット10から出力されるボリューム情報が1から5の5段階であるとき、これらに対応付けられた信号減衰値Vs_LossがdB単位で格納されている。なお、格納されている信号減衰値は、dB単位であってもまた乗算係数単位であってもよい。
状態判定手段52lは、信号減衰値格納手段52kから信号減衰値Vs_Lossを読み出し、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、状態情報(State(t) の値)を決定する。この状態情報(State(t) の値)の決定は、受話パワー算出手段52cから出力された受話パワー値Rcv_Power(t) と、受話検出値制御手段52eから出力された受話検出値Rcv_Detect(t) と、送話パワー算出手段52hから出力された送話パワー値Snd_Power(t) と、送話検出値制御手段52jから出力された送話検出値Snd_Detect(t) とに基づいて行われる。
またそれと共に状態判定手段52lは、受話信号減衰手段52mへの挿入損失量である受話信号減衰値Rcv_Loss(t) と、送話信号減衰手段52nへの挿入損失量である送話信号減衰値Snd_Loss(t) をそれぞれ決定する。そして、この決定結果に基づいて、受話信号減衰手段52m及び送話信号減衰手段52nの制御を行う。
また状態判定手段52lは、通話初期時(時刻t =0)には状態情報を「受話状態(States(0) =1)」とする。また通話初期時(時刻t =0)には状態情報を「送話状態(States(0) =0)」としてもよい。
さらに状態判定手段52lは、状態情報が「送話状態(States(t-1) =0)」であったとき、
Rcv_Power(t) >Rcv_Detect(t) かつRcv_Power(t) >Snd_Power(t) +ε
であれば、状態情報が「受話状態(States(t) =1)」に状態情報を切り替える。
これに対し、状態情報が「受話状態(States(t-1) =1)」であったとき、
Snd_Power(t) >Snd_Detect(t) かつSnd_Power(t) >Rcv_Power(t) +ζ
であれば、「送話状態(States(t) =0)」とするように状態情報を切り替える。
以上の状態情報の決定過程では、Delay を近端受話側から近端送話側へのエコーの遅延時間として、過去の受話信号Rcv_Detect(t-Delay) を用いてもよい。このようにすると、近端受話側を介して近端送話側に回り込むエコーによる受話ブロッキングを防止することができる。
またヒステリシスε、ζは具体的にはε=26[dB]、ζ=−4[dB]とする。ここで、ヒステリシスε、ζをボリューム情報、受話パワー値、送話パワー値、受話検出値、及び送話検出値に基づいて可変するようにしてもよい。例えば、受話パワー値と受話検出値との差が小さい場合には対応するヒステリシスを大きくしたり、また送話パワー値と送話検出値との差が小さいときは対応するヒステリシスを大きくしたり、さらにはボリューム情報に基づくボリュームが大きい場合はヒステリシスを大きくする。このようにすると、受話信号及び送話信号のパワーが共に小さい場合に状態が変化しにくいようにすることができる。また、受話信号と送話信号とのパワーの差が小さい場合にも、状態が変化しにくいようにすることができる。すなわち、過敏なスイッチ切替がなされないようにすることができる。
また、どれだけ同一の状態が継続したかをカウントするタイマーを設け、このタイマー時間をボリューム情報、受話パワー値、送話パワー値、受話検出値、送話検出値に基づいて可変に設定してもよい。例えば、受話パワー値と受話検出値の差が小さい場合はタイマー時間を長くしたり、ボリューム情報に基づくボリュームが大きい場合はタイマー時間を長くしたりしてもよい。このようにすると、受話信号・送話信号共にパワーが小さい場合に状態を変化しにくいようにでき、受話信号と送話信号のパワーの差が小さい場合に状態を変化しにくいようにでき、過敏なスイッチ切替を防止できる。
さらに、状態判定手段52lに所定時間カウントする信号減衰値カウンタVs_Countを設ける。そして、状態情報が「送話状態(States(t-1) =0)」から「受話状態(States(t) =1)」に切り換わった場合に、上記信号減衰値カウンタVs_Countにより、送話信号減衰値Snd_Loss(t) が0になるまで一定値κずつ段階的に減算させ、受話信号減衰値Rcv_Loss(t) を段階的に滑らかに増加させる。あるいは、状態情報が「受話状態(States(t-1) =1)」から「送話状態(States(t) =0)」に切り換わった場合にも同様に、信号減衰値カウンタVs_Countにより、受話信号減衰値Rcv_Loss(t) が0になるまで一定値κずつ段階的に減算させ、送話信号減衰値Snd_Loss(t) を段階的に滑らかに増加させる。
これらの処理を行うとき、受話信号減衰値Rcv_Loss(t) と送話信号減衰値Snd_Loss(t) の和は信号減衰値格納手段52kから読み出した信号減衰値Vs_Lossとなるようにする。このとき、κは信号減衰値格納手段52kから読み出された信号減衰値Vs_Lossに基づいて設定される値である。
このように受話信号減衰値と送話信号減衰値を段階的に滑らかに切り替えることで、語頭や語尾の断絶感を低減することができる。以下では、Vs_Count=0.1[sec]、κ=Vs_Loss÷3[dB]とすることによって、0.3[sec]掛けて受話信号減衰値と送話信号減衰値を段階的に切り替えるものとして説明する。
また、状態判定手段52lは、決定した状態情報を受話検出値制御手段52eおよび送話検出値制御手段52jへ出力し、受話検出値Rcv_Detect(t) および送話検出値Snd_Detect(t) の初期化および制御を促す。
受話信号減衰手段52mは、状態判定手段52lから出力された受話信号減衰値Rcv_Loss(t) に基づいて、受話信号に損失を挿入することによって信号を減衰させ、その減衰させた信号を出力する。
送話信号減衰手段52nは、状態判定手段52lから出力された送話信号減衰値Snd_Loss(t) に基づいて、送話信号に損失を挿入することによって信号を減衰させ、その減衰させた信号を出力する。
なお、以上述べたボイススイッチ52の各構成要素のうち、送話制御ブロック、受話制御ブロック及び主制御ブロックの各機能は、DSP(Digital Signal Processor)などにより実現される。
次に、以上のように構成されたボイススイッチ52の動作を説明する。図4乃至図15はその動作手順と動作内容を示すフローチャートである。
待ち受け状態において発呼又は着呼が発生すると、ボイススイッチ52は制御ユニット10の指示に従い先ずステップS1において以下のように初期設定処理を行う。図5はこの初期設定処理の内容を示すフローチャートである。
すなわち、先ずステップS101において、制御ユニット10から与えられるモード情報及びボリューム情報に応じて、当該モード及び当該ボリュームに対応する受話利得値φr を受話利得値格納手段52aから選択的に読み出す。またステップS102においては、上記与えられるモード情報に応じて、当該モードに対応する送話利得値φs を送話利得値格納手段52fから選択的に読み出す。
次に、ステップS103により、上記制御ユニット10から与えられるモード情報及びボリューム情報に応じて、当該モード及び当該ボリュームに対応する受話検出下限値Rcv_Detect_Min を受話下限値格納手段52bから選択的に読み出す。またステップS104では、上記与えられるモード情報に応じて、当該モードに対応する送話検出下限値Snd_Detect_Min を送話下限値格納手段52gから選択的に読み出す。
そして、ステップS105により、上記制御ユニット10から与えられるモード情報及びボリューム情報に応じて、当該モード及び当該ボリュームに対応する信号減衰値Vs_Lossを信号減衰値格納手段52kから選択的に読み出す。また、信号減衰値格納手段52kから読み出されたVs_Lossに基づいて、例えばκ=Vs_Loss÷3のようにκを設定する。
続いて、ステップS106及びステップS107においてそれぞれ、受話パワー算出手段52cの受話パワー値Rcv_Power(0) 、及び送話パワー算出手段52hの送話パワー値Snd_Power(0) を0で初期化する。
そして、ステップS108及びステップS109においてそれぞれ、受話検出値算出手段52dの受話検出値Rcv_Detect(0) 、及び送話検出値算出手段52iの送話検出値Snd_Detect(0) を初期化する。この初期化は、上記受話パワー値Rcv_Power(t) 及び送話パワー値Snd_Power(t) の理論最大値よりも大きい値に設定された値ρに、受話利得値格納手段52aに格納された受話利得値φr 、及び送話利得値格納手段52fに格納された送話利得値φs を加算することにより行われる。
また、ステップS110により、上記受話検出値制御手段52eにおいて受話検出値Rcv_Detect(t) が受話パワー値Rcv_Power(t) +ψr 以下である状態の継続時間を計時するための受話検出値カウンタRcv_Detect_Countを初期化する。またそれと共にステップS111により、送話検出値制御手段52jにおいて送話検出値Rcv_Detect(t) が送話パワー値Snd_Power(t) +ψs 以下である状態の継続時間を計時するための送話検出値カウンタSnd_Detect_Countを初期化する。そして、S112により、状態判定手段52lにおける初期状態を「受話状態」に、つまりStates(0) =1に設定する。
さらに、ステップS113及びステップS114においてそれぞれ、受話信号減衰手段52mの受話信号減衰値Rcv_Loss(0) を0で初期化し、及び送話信号減衰手段52nの送話信号減衰値Snd_Loss(0) を信号減衰値格納手段52kから読み出したVs_Lossで初期化する。最後に、ステップS115により、上記状態判定手段52lにおいて受話信号減衰値Rcv_Loss(t) と送話信号減衰値Snd_Loss(t) を滑らかに増減させるための変化時間を計時する信号減衰値カウンタVs_Countを0で初期化する。
以上の初期設定処理が終了して双方向通話が開始されると時刻t=0とし、そして事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)ごとに、ボイススイッチ52はステップS2によりモード情報の変化及びボリューム情報の変化を監視する。そして、モード情報の変化及びボリューム情報の変化が検出されるとステップS3に移行し、制御ユニット10から与えられるモード情報及びボリューム情報に応じて次のように変更設定処理を行う。図6はその処理手順と処理内容を示すフローチャートである。
すなわち、先ずステップS301において、制御ユニット10から与えられるモード情報及びボリューム情報に応じて、当該モード及び当該ボリュームに対応する受話利得値φr を受話利得値格納手段52aから選択的に読み出す。またステップS302においては、上記与えられるモード情報に応じて、当該モードに対応する送話利得値φs を送話利得値格納手段52fから選択的に読み出す。
次に、ステップS303により、上記制御ユニット10から与えられるモード情報及びボリューム情報に応じて、当該モード及び当該ボリュームに対応する受話検出下限値Rcv_Detect_Min を受話下限値格納手段52bから選択的に読み出す。またステップS304では、上記与えられるモード情報に応じて、当該モードに対応する送話検出下限値Snd_Detect_Min を送話下限値格納手段52gから選択的に読み出す。
そして、ステップS305により、上記制御ユニット10から与えられるモード情報及びボリューム情報に応じて、当該モード及び当該ボリュームに対応する信号減衰値Vs_Lossを信号減衰値格納手段52kから選択的に読み出す。また、信号減衰値格納手段52kから読み出されたVs_Lossに基づいて、例えばκ=Vs_Loss÷3のようにκを設定する。
続いて、ステップS306及びステップS307においてそれぞれ、受話パワー算出手段52cの受話パワー値Rcv_Power(t) 、及び送話パワー算出手段52hの送話パワー値Snd_Power(t) を0で初期化する。
そして、ステップS308及びステップS309においてそれぞれ、受話検出値算出手段52dの受話検出値Rcv_Detect(t) 、及び送話検出値算出手段52iの送話検出値Snd_Detect(t) を初期化する。この初期化は、上記受話パワー値Rcv_Power(t) 及び送話パワー値Snd_Power(t) の理論最大値よりも大きい値に設定された値ρに、受話利得値格納手段52aに格納された受話利得値φr 、及び送話利得値格納手段52fに格納された送話利得値φs を加算することにより行われる。
また、ステップS310により、上記受話検出値制御手段52eにおいて受話検出値Rcv_Detect(t) が受話パワー値Rcv_Power(t) +ψr 以下である状態の継続時間を計時するための受話検出値カウンタRcv_Detect_Countを初期化する。またそれと共にステップS311により、送話検出値制御手段52jにおいて送話検出値Rcv_Detect(t) が送話パワー値Snd_Power(t) +ψs 以下である状態の継続時間を計時するための送話検出値カウンタSnd_Detect_Countを初期化する。そして、S312により、状態判定手段52lにおける初期状態を「受話状態」に、つまりStates(t) =1に設定する。
さらに、ステップS313及びステップS314においてそれぞれ、受話信号減衰手段52mの受話信号減衰値Rcv_Loss(t) を0で、及び送話信号減衰手段52nの送話信号減衰値Snd_Loss(t) を信号減衰値格納手段52kから読み出したVs_Lossで初期化する。最後に、ステップS315により、上記状態判定手段52lにおいて受話信号減衰値Rcv_Loss(t) と送話信号減衰値Snd_Loss(t) を滑らかに増減させるための変化時間を計時する信号減衰値カウンタVs_Countを0で初期化する。
また、上記双方向通話中にボイススイッチ52はステップS4r及びステップS4sに移行し、受話パワー算出手段52c及び送話パワー算出手段52hによりそれぞれ受話パワー値Rcv_Power(t) 及び送話パワー値Snd_Power(t) を以下のように算出する。図7は受話パワー値Rcv_Power(t) の処理手順と処理内容を示すフローチャート、図8は送話パワー値Snd_Power(t) の処理手順と処理内容を示すフローチャートである。
すなわち、受話パワー値Rcv_Power(t) を算出する際には、先ずステップS401rにより現在の受話パワー値を算出する。この現在の受話パワー値の算出は、事前に決められた処理時間(例えば、フレーム単位、スピーチコーデックの処理単位など)に含まれるサンプル値の2乗和をその処理時間毎に計算することにより受話パワー値Rcv_Power(t) を求め、この受話パワー値Rcv_Power(t) に受話利得値格納手段52aから読み出される受話利得値φr を加算することにより、つまりRcv_Power(t) +φr を計算することによりなされる。次にステップS402rにより過去の受話パワーを算出する。この過去の受話パワー値は、忘却係数λr (0≦λr ≦1)を用いてλr ・Rcv_Power(t-1) として算出される。
そして、ステップS403rにより、上記算出された過去の受話パワー値λr ・Rcv_Power(t-1) と、現在の受話パワー値Rcv_Power(t) +φr とを比較し、λr ・Rcv_Power(t-1) >Rcv_Power(t) +φr であるか否か、つまり過去の受話パワー値の方が大きいか否かを判定する。この判定の結果、過去の受話パワー値の方が大きければ、ステップS404rにより過去の受話パワー値λr ・Rcv_Power(t-1) を選択する。これに対し過去の受話パワー値の方が小さければ、ステップS405rにより現在の受話パワー値Rcv_Power(t) +φr を選択する。すなわち、常に受話パワー値の大きい方が選択され、これにより受話パワー値のピーク検出が行われる。
一方、送話パワー値Snd_Power(t) を算出する際にも、上記受話パワー値の算出と同様に、ステップS401sにより現在の送話パワー値Snd_Power(t) +φs を算出したのち、ステップS402sで忘却係数λs (0≦λs ≦1)を用いて過去の送話パワー値λs ・Snd_Power(t-1) を算出する。そして、ステップS403sにより、上記算出された過去の送話パワー値λs ・Snd_Power(t-1) と、現在の送話パワー値Snd_Power(t) +φs とを比較し、過去の送話パワー値の方が大きいか否かを判定する。この判定の結果、過去の送話パワー値の方が大きければ、ステップS404sにより過去の送話パワー値λs ・Snd_Power(t-1) を選択する。これに対し過去の送話パワー値の方が小さければ、ステップS405sにより現在の現在の送話パワー値Snd_Power(t) +φs を選択する。すなわち、送話パワー値のピーク検出が行われる。
またボイススイッチ52は、上記受話パワー値Rcv_Power(t) 及び送話パワー値Snd_Power(t) が算出されると、続いてステップS5r及びステップS5sに移行し、受話検出値算出手段52d及び送話検出値算出手段52iによりそれぞれ受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) を以下のように算出する。図9及び図10はその処理手順と処理内容を示すフローチャートである。
すなわち、受話検出値を算出する際には、先ずステップS501rにより、受話検出値算出手段52dにおいて、上記算出された受話パワー値Rcv_Power(t) +ψr を過去の受話検出値Rcv_Detect(t-1) と比較し、これにより
Rcv_Power(t) +ψr < Rcv_Detect(t-1)
であるか否かを判定する。この判定の結果、Rcv_Power(t) +ψr < Rcv_Detect(t-1) であれば、ステップS502rに移行してここで上記受話パワー値Rcv_Power(t) と、過去の受話検出値Rcv_Detect(t-1) と、定数αr ,βr ,γr とにより新たな受話検出値Rcv_Detect(t) を算出する。この算出は、
なる計算により行われる。
これに対し、Rcv_Power(t) +ψr ≧ Rcv_Detect(t-1) であったとする。この場合にはステップS503rに移行して、受話検出値制御手段52eにおいて受話検出値カウンタをインクリメントする。つまり、Rcv_Detect_Count=Rcv_Detect_Count+1とする。そして、ステップS504rにより、受話検出値制御手段52eにおいて上記インクリメント後の受話検出値カウンタRcv_Detect_Count が一定値θr に達したか否かを判定する。この判定の結果、Rcv_Detect_Count >θr でなければ、ステップS507rに移行する。そして、新たな受話検出値Rcv_Detect(t) を過去の受話検出値Rcv_Detect(t-1) に設定する。
これに対し、上記ステップS504rにおいてRcv_Detect_Count >θr と判定されたとする。この場合受話検出値制御手段52eは、ステップS505rにより受話検出値カウンタを初期化(Rcv_Detect_Count=0)し、続いてステップS506rにより過去の受話検出値Rcv_Detect(t-1) と、正値の定数δr とにより新たな受話検出値Rcv_Detect(t) を算出する。新たな受話検出値は、
Rcv_Detect(t) =Rcv_Detect(t-1) +δr
なる計算により算出される。
一方、送話検出値を算出する際にも、上述した受話検出値の算出処理と同様に、ステップS501sにより、送話検出値算出手段52iにおいて、上記算出された送話パワー値Snd_Power(t) +ψs を過去の送話検出値Snd_Detect(t-1) と比較し、これによりSnd_Power(t) +ψs < Snd_Detect(t-1) であるか否かを判定する。この判定の結果、Snd_Power(t) +ψs < Snd_Detect(t-1) であれば、ステップS502sにより、定数αs ,βs ,γs により、
なる演算式により新たな受話検出値Snd_Detect(t) を算出する。
これに対し、Snd_Power(t) +ψs ≧ Snd_Detect(t-1) であったとする。この場合にはステップS503sに移行して、送話検出値制御手段52jにおいて送話検出値カウンタをインクリメントする。そして、ステップS504sにより、上記インクリメント後の送話検出値カウンタSnd_Detect_Count が一定値θs に達したか否かを判定する。
この判定の結果、Snd_Detect_Count >θs でなければ、ステップS507sに移行して、新たな送話検出値Snd_Detect(t) を過去の送話検出値Snd_Detect(t-1) に設定する。一方、上記ステップS504sにおいてSnd_Detect_Count >θs と判定された場合、送話検出値制御手段52jは、ステップS505sにより送話検出カウンタ値を初期化(Snd_Detect_Count=0)する。そしてステップS506sにより、送話検出値制御手段52jは、過去の送話検出値Snd_Detect(t-1) と、正値の定数δs とにより新たな送話検出値Snd_Detect(t) を算出する。新たな送話検出値は、
Snd_Detect(t) =Snd_Detect(t-1) +δs
なる演算により算出される。
またボイススイッチ52は、上記受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) が算出されると、続いてステップS6r及びステップS6sに移行し、受話検出値制御手段52e及び送話検出値制御手段52jによりそれぞれ受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) の制御処理を以下のように行う。図11は受話検出値制限手段52eでの処理手順と内容を示すフローチャート、図12は送話検出値制限手段52jでの処理手順と内容を示すフローチャートである。
すなわち、先ず受話検出値制御手段52eでは、先ずステップS601rにより、上記算出された受話検出値Rcv_Detect(t) を受話下限値格納手段52bから読み出される受話検出下限値Rev_Detect_Min と比較し、Rcv_Detect(t) < Rev_Detect_Min であるか否か、つまり上記算出された受話検出値Rcv_Detect(t) が受話検出下限値Rev_Detect_Min より小さいか否かを判定する。そして、この判定の結果、上記算出された受話検出値Rcv_Detect(t) が受話検出下限値Rev_Detect_Min より小さい場合には、ステップS602rにより受話検出値Rcv_Detect(t) を上記受話検出下限値Rev_Detect_Min に設定する。これに対し上記算出された受話検出値Rcv_Detect(t) が受話検出下限値Rev_Detect_Min 以上の場合には、受話検出値Rcv_Detect(t) をそのまま維持する。
一方、送話検出値制御手段52jにおける制御処理の場合にも、上記受話検出値制御手段52eでの制御処理と同様に、ステップS601sにより、上記算出された送話検出値Snd_Detect(t) を送話下限値格納手段52gから読み出される送話検出下限値Snd_Detect_Min と比較し、上記算出された送話検出値Snd_Detect(t) が送話検出下限値Snd_Detect_Min より小さいか否かを判定する。そして、この判定の結果上記算出された送話検出値Snd_Detect(t) が送話検出下限値Snd_Detect_Min より小さい場合には、ステップS602sにより送話検出値Snd_Detect(t) を上記送話検出下限値Snd_Detect_Min に設定する。一方、上記算出された送話検出値Snd_Detect(t) が送話検出下限値Snd_Detect_Min 以上の場合には、送話検出値Snd_Detect(t) をそのまま維持する。
さて、以上のように受話パワー値Rcv_Power(t) と受話検出値Rcv_Detect(t) 、及び送話パワー値Snd_Power(t) と送話検出値Snd_Detect(t) の算出が終了すると、ボイススイッチ52はステップS7に移行する。そして、状態判定手段52lにより現在の通話状態が受話状態にあるか送話状態にあるかを以下のように判定し状態情報を設定すると共に、その状態情報に従って受話検出値制御手段52e及び送話検出値制御手段52jにおいてそれぞれ受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) の制御処理を行う。図13はそれらの処理手順と処理内容を示すフローチャートである。
すなわち、先ずステップS701で状態判定手段52lにおいて、設定されている状態が「受話状態(States(t-1) =1)」であるか否かを判定する。そして、受話状態ではなく「送話状態(States(t-1) =0)」であればステップS702に移行し、状態判定手段52lにおいて、上記算出された現在の受話パワー値Rcv_Power(t) と、現在の送話パワー値Snd_Power(t) にオフセット値εを加算した値とを比較して、Rcv_Power(t) >Snd_Power(t) +εであるかどうかを判定する。なお、εは受話状態と送話状態の切替にヒステリシス特性を持たせるためのものである。またそれと共に、上記現在の受話パワー値Rcv_Power(t) と、現在の受話検出値Rcv_Detect(t) とを比較して、Rcv_Power(t) >Rcv_Detect(t) であるかどうかを判定する。この判定の結果、Rcv_Power(t) >Snd_Power(t) +εであり、かつRcv_Power(t) >Rcv_Detect(t) であれば、ステップS703により、状態判定手段52lにおいて、状態情報を「送話状態(States(t-1) =0)」から「受話状態(States(t) =1)」に変更する。またステップS704により、送話検出値制御手段52jにおいて、送話検出値Snd_Detect(t) を初期化する。この初期化は、先にステップS109で述べたようにSnd_Detect(t) =ρ+φs なる計算によりなされる。
これに対し上記ステップS702の判定において、Rcv_Power(t) >Snd_Power(t) +εと、Rcv_Power(t) >Rcv_Detect(t) の少なくとも一方を満たさなかったとする。この場合、ステップS705に移行し、状態判定手段52lにおいて「送話状態」を継続する(States(t) =0)。そして、ステップS706に移行し、受話検出値制御手段52eにおいて、
(Snd_Power(t-1) −Snd_Detect(t) )・(Snd_Power(t) −Snd_Detect(t) )≦0
を満たすか否かを判定する。この判定の結果条件を満たした場合には、ステップS707により、受話検出値制御手段52eにおいて、受話検出値Rcv_Detect(t) を初期化する。この初期化は、先にステップS108で述べたようにRcv_Detect(t) =ρ+φr なる計算によりなされる。なお、上記
(Snd_Power(t-1) −Snd_Detect(t) )・(Snd_Power(t) −Snd_Detect(t) )≦0
を満たさなかった場合には、状態判定処理を終了する。
一方、上記ステップS701による判定の結果、現在設定されている状態が「受話状態(States(t-1) =1)」だったとする。この場合、ステップS708に移行し、状態判定手段52lにおいて、上記算出された現在の送話パワー値Snd_Power(t) と、遅延要素を含む過去の受話パワー値Rcv_Power(t-Delay) にオフセット値ζを加算した値とを比較し、Snd_Power(t) >Rcv_Power(t-Delay) +ζであるかどうかを判定する。なお、Delayは受話経路から送話経路へ回り込むエコーを考慮した遅延時間を示し、またζは受話状態と送話状態の切替にヒステリシス特性を持たせるためのオフセット値を示す。
またそれと共に状態判定手段52lは、ステップS708において、上記現在の送話パワー値Snd_Power(t) と、現在の送話検出値Snd_Detect(t) とを比較し、Snd_Power(t) >Snd_Detect(t) であるかどうかを判定する。この判定の結果、Snd_Power(t) >Rcv_Power(t-Delay) +ζであり、かつSnd_Power(t) >Snd_Detect(t) であれば、ステップS709により、状態判定手段52lにおいて状態情報を「受話状態(States(t-1) =1)」から「送話状態(States(t) =0)」に変更する。またステップS710により、受話検出値制御手段52eにおいて、受話検出値Rcv_Detect(t) を初期化する。この初期化は、先にステップS108で述べたようにRcv_Detect(t) =ρ+φr の計算によりなされる。
これに対し上記ステップS708の判定において、Snd_Power(t) >Rcv_Power(t-Delay) +ζと、Snd_Power(t) >Snd_Detect(t) の少なくとも一方を満たさなかったとする。この場合、ステップS711に移行し、状態判定手段52lにおいて「受話状態」を継続する(States(t) =1)。そして、ステップS712に移行し、送話検出値制御手段52jにおいて、
(Rcv_Power(t-1) −Rcv_Detect(t) )・(Rcv_Power(t) −Rcv_Detect(t) )≦0
を満たすか否かを判定する。この判定の結果、条件を満たした場合には、ステップS713により、送話検出値制御手段52jにおいて、送話検出値Snd_Detect(t) を初期化する。この初期化は、先にステップS109で述べたようにSnd_Detect(t) =ρ+φs なる計算によりなされる。なお、上記
(Rcv_Power(t-1) −Rcv_Detect(t) )・(Rcv_Power(t) −Rcv_Detect(t) )≦0
を満たさなかった場合には、状態判定処理を終了する。
以上のように状態判定処理及び受話検出値制御処理及び送話検出値制御処理においては、状態情報が「送話状態」から「受話状態」に切り替わる(States(t-1) =0かつStates(t) =1)ごとに、送話検出値Snd_Detect(t) が初期化される。また、状態が「受話状態」から「送話状態」に切り替わる(States(t-1) =1かつStates(t) =0)ごとに、受話検出値Rcv_Detect(t) が初期化される。さらに、状態情報が「送話状態(States(t) =0)」で送話パワー値Snd_Power(t) と送話検出値Snd_Detect(t) との差の符号が変化するごとに、受話検出値Rcv_Detect(t) が初期化される。また、状態情報が「受話状態(States(t) =1)」で受話パワー値Rcv_Power(t) と受話検出値Rcv_Detect(t) との差の符号が変化するごとに、送話検出値Snd_Detect(t) が初期化される。このため、受話パワー値Rcv_Power(t) 及び送話パワー値Snd_Power(t) の変化に対し送話状態及び受話状態が過敏に変化しないようにすることが可能である。
以上のように状態判定が終了すると、状態判定手段52lは続いてステップS8に移行し、ここで受話信号減衰値Rcv_Loss(t) 及び送話信号減衰値Snd_Loss(t) の設定を行う。図14はその処理手順と処理内容を示すフローチャートである。
先ず、ステップS801において信号減衰値カウンタVs_Countが一定値ηに達したか否かを判定する。この判定の結果、Vs_Count > ηでなければ、ステップS815に移行して、信号減衰値カウンタVs_Countをインクリメントする。そして、ステップS816に移行して新たな受話信号減衰値Rcv_Loss(t) を過去の受話信号減衰値Rcv_Loss(t-1) に設定し、ステップS817に移行する。
一方、上記ステップS801においてVs_Count > ηと判定された場合、ステップS802において現在の状態が「受話状態(States(t) =1)」であるか「送話状態(States(t) =0)」であるかを判定する。そして、「送話状態(States(t) =0)」であればステップS803に移行し、受話信号減衰値Rcv_Loss(t-1) が信号減衰値格納手段52kから読み出された信号減衰値Vs_Lossに等しいか否かを判定する。この判定の結果、Rcv_Loss(t-1) = Vs_Lossであれば、ステップS804に移行して新たな受話信号減衰値Rcv_Loss(t) を過去の受話信号減衰値Rcv_Loss(t-1) に設定し、ステップS817に移行する。
一方、上記ステップS803においてRcv_Loss(t-1) ≠ Vs_Lossと判定された場合、ステップS805に移行して信号減衰値カウンタを初期化(Vs_Count =0)し、ステップS806に移行して受話信号減衰値Rcv_Loss(t) を過去の受話信号減衰値Rcv_Loss(t-1) からκ増加させる(Rcv_Loss(t) =Rcv_Loss(t-1) +κ)。なお、κは信号減衰値格納手段52kから読み出された信号減衰値Vs_Lossに応じて設定される正の値である。そして、ステップS807に移行してRcv_Loss(t) がVs_Lossを超えているか否かを判定する。Rcv_Loss(t) >Vs_Lossと判定された場合、ステップS808に移行し受話信号減衰値Rcv_Loss(t) をVs_Lossに設定し、ステップS817に移行する。一方、ステップS807でRcv_Loss(t) >Vs_Lossと判定されない場合も、ステップS817に移行する。
また、上記ステップS802において、「受話状態(States(t) =1)」であると判定された場合にはステップS809に移行し、受話信号減衰値Rcv_Loss(t-1) が0に等しいか否かを判定する。この判定の結果、Rcv_Loss(t-1) =0であれば、ステップS810に移行して新たな受話信号減衰値Rcv_Loss(t) を過去の受話信号減衰値Rcv_Loss(t-1) に設定し、ステップS817に移行する。
また、上記ステップS809においてRcv_Loss(t-1) ≠ 0と判定された場合には、ステップS811に移行して信号減衰値カウンタを初期化(Vs_Count =0)し、さらにステップS812に移行して受話信号減衰値Rcv_Loss(t) を過去の受話信号減衰値Rcv_Loss(t-1) からκ減少させる(Rcv_Loss(t) =Rcv_Loss(t-1) −κ)。そして、ステップS813に移行してRcv_Loss(t) が0未満であるか否かを判定する。Rcv_Loss(t) <0と判定された場合、ステップS814に移行し受話信号減衰値Rcv_Loss(t) を0に設定し、ステップS817に移行する。一方、ステップS813でRcv_Loss(t) <0と判定されない場合も、ステップS817に移行する。
最後にステップS817において信号減衰値格納手段52kから読み出された信号減衰値Vs_Lossから現在の受話信号減衰値Rcv_Loss(t) を減算し、送話信号減衰値Snd_Loss(t) を求め(Snd_Loss(t) =Vs_Loss−Rcv_Loss(t) )、信号減衰値設定処理が終了する。
以上のように信号減衰値設定処理が終了すると、続いてステップS9に移行し、ここで信号減衰処理を行う。図15はその処理手順と処理内容を示すフローチャートである。
すなわち、ステップS901において受話信号減衰値Rcv_Loss(t) が0であるかを判定する。そして受話信号減衰値Rcv_Loss(t) が0でない場合にはステップ902に移行し、受話信号減衰手段52mにおいて、受話信号減衰値Rcv_Loss(t) をもとに受話経路の受話信号を減衰させる。次に、ステップS903に移行し、送話信号減衰値Snd_Loss(t) が0であるかを判定する。そして送話信号減衰値Snd_Loss(t) が0でない場合にはステップ904に移行し、送話信号減衰手段52nにおいて、送話信号減衰値Snd_Loss(t) をもとに送話経路の送話信号を減衰させる。
そうして、信号減衰処理を終了すると、制御ユニット10はステップS10により終話したか否かを判定する。そして、通話が継続されている場合には、時刻t=t+1として、ボイススイッチ52はステップS2に戻って以上述べたステップS2〜S9までの処理を繰り返し実行する。一方、終話が検出された場合には一連の処理を終了する。
以上、ボイススイッチ52は時間領域型のパラメータで構成及び動作するものとして説明した。帯域分割フィルタ等を用いた帯域分割型やFFT等を用いた周波数領域型で実現する場合には、上記パラメータを周波数帯域毎または周波数帯域グループ毎に設定してもよい。
以上述べた構成及び動作から明らかなように、この実施形態のボイススイッチ52によれば以下のような作用効果が奏せられる。
(1)受話パワー値Rcv_Power(t) 及び送話パワー値Snd_Power(t) を算出する際に、忘却係数λr (0≦λr ≦1)及びλs (0≦λs ≦1)を用いて過去の受話パワー値λr ・Rcv_Power(t-1) 及び過去の送話パワー値λs ・Snd_Power(t-1) を算出するようにしている。このため、例えば図16に示すように音声区間にマージンが設定されて本来より長い区間が音声区間と見なされることになる。したがって、遠端側の端末を経由して戻ってくるエコーが引き起こす送話ブロッキングは防止される。
(2)さらに、受話検出値制御手段52e及び送話検出値制御手段52jにおいてそれぞれ、受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) に対し制御処理が行われ、これにより受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) はそれぞれ下限値Rev_Detect_Min 及びSnd_Detect_Min より小さくならないように設定される。したがって、例えば図20に示すように遠端側の端末から近端側の端末にエコーが戻ってきたとしても、そのエコーレベルよりも下限値を大きな値に設定しておくことで、送話ブロッキングは防止される。
(3)しかも、上記下限値Rev_Detect_Min 及びSnd_Detect_Min は、ユーザのボリューム操作に応じて可変設定される。このため、受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) は、常にユーザボリューム値が反映された値に設定されることになる。したがって、受話状態・送話状態の判定をユーザボリューム値に影響されることなく安定に行うことが可能となる。
(4)状態判定手段52lにおいて、現在の送話パワー値Snd_Power(t) と、受話エコーの遅延時間Delayを考慮した過去の受話パワー値Rcv_Power(t-Delay) にオフセット値ηを加算した値とを比較し、Snd_Power(t) >Rcv_Power(t-Delay) +ζであるかどうかを判定することにより、受話状態から送話状態への切替を検出するようにしている。このため、例えば図17に示すように音声区間にマージンが設けられることになり、これにより受話ブロッキングは防止される。
(5)例えば図18に示すように、双方向通話の開始前及び受話状態・送話状態の切替が行われるごとに、受話パワー値Rcv_Power(t) 及び送話パワー値Snd_Power(t) がそれぞれ、受話パワー及び送話パワーの理論最大値よりも大きい値に初期設定される。そして、これら受話パワー及び送話パワーの初期設定値をもとに、受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) が初期設定される。このため、ユーザボリュームが最大値に設定されても、また送話音量がオーバーフローしても、そのときの音声パワー値よりも常に大きい値に設定されることになる。このため、音声パワー値の大きい区間を検出しやすくなり、これにより送話信号レベルが受話信号のエコーレベルよりわずかに大きい場合でも音声区間を検出可能となる。
(6)例えば図18に示すように、受話パワー値Rcv_Power(t) が受話検出値Rcv_Detect(t) よりも低下した場合に送話検出値Snd_Detect(t) が最大値に初期化され、かつ送話パワー値Snd_Power(t) が送話検出値Snd_Detect(t) よりも低下した場合に受話検出値Rcv_Detect(t) が最大値に初期化される。このため、送話状態と受話状態との間の切り替えが過敏に行われないようにすることができる。また、受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) がともに高い値を維持し、背景雑音を送受話音声として誤検出し難くなるため、背景雑音の変化の影響を軽減できる。
(7)図18及び図19に示すように、受話検出値Rcv_Detect(t) を算出する場合に、受話パワー値Rcv_Power(t) が過去の受話検出値Rcv_Detect(t-1) より小さい状態が一定期間以上継続すると、受話検出値Rcv_Detect(t) は定数δr ずつ徐々に増加する。また、送話検出値Snd_Detect(t) を算出する場合にも、送話パワー値Snd_Power(t) が過去の送話検出値Snd_Detect(t-1) より小さい状態が一定期間以上継続すると、送話検出値Snd_Detect(t) は定数δs ずつ徐々に増加する。したがって、音声検出値が極端に小さい値になったり、背景雑音の長時間平均パワー値が変動したときにおいても、送話状態と受話状態の判定誤りが発生する確率を低減することができ、これにより送話状態又は受話状態が無用に長く維持される不具合を防止できる。
(8)受話パワー値Rcv_Power(t) 及び送話パワー値Snd_Power(t) を算出する際に、受話パワーの検出値及び送話パワーの検出値にそれぞれ受話利得値φr 及び送話利得値φs を加算するようにしている。このようにすると、ユーザボリューム設定操作あるいはレベルダイヤグラム設計により送話パワーが受話パワーよりも大きくなった場合でも、通話開始当初において受話状態・送話状態が誤判定されないようにすることができる。
(9)しかも、上記受話利得値φr 及び送話利得値φs は、入力デバイス12におけるユーザのキー操作により任意に設定可能となっている。これにより、受話状態の優先度、つまり受話音声の途切れ感を無くすことを優先するか、又は送話音声の途切れ感を無くすことを優先するかを、ユーザが好みに応じて任意に設定することが可能となる。
なお、この発明は上記実施形態に限定されるものではなく、以下のような種々変形が可能である。
受話パワー値Rcv_Power(t) 及び送話パワー値Snd_Power(t) を算出する際に使用する受話利得値φr 及び送話利得値φs は、同一値であってもまた異なる値であってもよい。また受話利得値φr 及び送話利得値φs は、ユーザボリューム値に応じて可変設定するようにしてもよい。さらに、受話パワー値及び送話パワー値を算出する場合には、検出された受話パワー値及び送話パワー値からそれぞれ上記受話利得値φr 及び送話利得値φs を減算するようにしてもよい。
受話状態・送話状態の切替にヒステリシス特性を持たせるためのオフセット値ε,ζはそれぞれ、受話パワー値又は受話検出値及び送話パワー値又は送話検出値に応じて可変設定するようにしてもよく、またユーザボリューム値に応じて可変設定するようにしてもよい。さらに、状態判定手段52lにおいて状態継続のためにハングオーバ時間を音声パワー値又は音声検出値をもとに可変設定するようにしてもよい。また、受話検出値Rcv_Detect(t) 及び送話検出値Snd_Detect(t) を算出する際に使用した定数項γr 及びγs は、雑音の分散に基づいて可変設定するようにしてもよい。
前記実施形態では、受話状態を初期状態とすると共に受話状態を優先するように設定したが、送話状態を初期状態とすると共に送話状態を優先するように設定してもよい。また、前記実施形態では送話経路及び受話経路の両方に損失を挿入するようにしたが、受話経路には損失を挿入しないようにしてもよい。
その他、通信端末の種類やその構成、ボイススイッチの機能構成及び処理手順と処理内容等についても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
1…アンテナ、2…無線ユニット、3…CDMA信号処理ユニット、4…コンパンダ、5…音声制御ユニット、6…ディジタル/アナログ変換器、7…スピーカユニット、8…マイクロホンユニット、9…アナログ/ディジタル変換器、10…制御ユニット、11…記憶ユニット、12…入力デバイス、13…ディスプレイ、14…電源回路、15…バッテリ、51…受話ユーザボリューム、52…ボイススイッチ、53…エコーキャンセラ、54…ノイズキャンセラ、121…ユーザボリューム入力手段、122…モード入力手段、52a…受話利得値格納手段(Rcv_Int)、52b…受話下限値格納手段(Rcv_Min )、52c…受話パワー算出手段(Rcv_Pow)、52d…受話検出値算出手段(Rcv_Det)、52e…受話検出値制御手段(Rcv_Control)、52f…送話利得値格納手段(Snd_Int)、52g…送話下限値格納手段(Snd_Min )、52h…送話パワー算出手段(Snd_Pow)、52i…送話検出値算出手段(Snd_Det)、52j…送話検出値制御手段(Snd_Control)、52k…信号減衰値格納手段(Loss)、52l…状態判定手段(States)、52m…受話信号減衰手段、52n…送話信号減衰手段。