(実施形態1)
図2は、本実施形態の外線転送装置Eを含む集合住宅用インターホンシステムのシステム構成例を示している。この集合住宅用インターホンシステムは、集合住宅の各住戸に設置される複数台(図示は1台のみ)の住戸通話装置A、集合住宅の共用玄関に設置される共用部通話装置(図示せず)、幹線制御装置B、管理室通話装置Cなどで構成されている。
各住戸通話装置Aは、住戸別線L2並びに分岐器Dを介して幹線L1に分岐接続されている。幹線L1は幹線制御装置Bに接続され、この幹線L1に複数(図示は1つのみ)の分岐器Dが設けられている。また、幹線制御装置Bには信号線L3を介して管理室通話装置Cが接続されている。管理室通話装置Cは集合住宅の管理室に設置されており、管理人が各住戸の住人と通話する際に使用される。
本実施形態における集合住宅用インターホンシステムでは、ディジタル変調された音声情報(音声データ)、映像情報(映像データ)、制御情報(制御データ)が伝送路(幹線L1,住戸別線L2,信号線L3,L4)を介してパケット伝送される。例えば、共用部通話装置(ロビーインターホン)では、来訪者がテンキースイッチ又はタッチパネルを操作して何れかの住戸の住戸番号の操作入力を受け付けると、データフィールドに当該住戸番号を格納したパケット、並びに撮像装置で撮像した来訪者の映像(映像データ)をデータフィールドに格納したパケットを信号線を介して幹線制御装置Bのアドレス宛に送信(パケット伝送)する。幹線制御装置Bは、ロビーインターホンからの呼出を通知するための呼出コマンドをデータフィールドに格納した制御パケット並びに前記映像データをデータフィールドに格納した映像パケットを幹線L1に送出する。前記住戸番号の住戸に設置されている住戸通話装置Aでは、幹線L1及び住戸別線L2を介して制御パケット及び映像パケットを受信すると、制御パケットのデータフィールドに格納されている呼出コマンド(制御信号)に応じてスピーカから呼出音を鳴動させる。また、映像パケットのデータフィールドに格納されている映像データを処理して液晶ディスプレイなどの表示デバイスに来訪者の映像を表示させる。そして、呼出音を聞いた住人が住戸通話装置Aの応答釦(図示せず)を操作すると、マイクロホンから出力される音声信号(送話音声信号)が住戸別線L2を介してパケット伝送される。同様に、ロビーインターホンにおいてもマイクロホンから出力される音声信号(送話音声信号)が幹線制御装置Bを経由して住戸通話装置Aにパケット伝送される。その結果、住戸の住人と来訪者が住戸通話装置A及びロビーインターホンを用いてインターホン通話することができる。
また、住戸通話装置Aから管理室通話装置Cを呼び出し、住人と管理人が住戸通話装置A及び管理室通話装置Cを用いて通話することもできる。この場合、住戸通話装置Aから管理室通話装置Cを呼び出すための制御データを含むパケットが送信され、当該パケットが幹線制御装置Bを経由して管理室通話装置Cに伝送される。そして、管理室通話装置Cの送受話器(ハンドセット)がオフフック(あるいは通話釦が操作)されると、ロビーインターホンの場合と同様に住戸通話装置Aと管理室通話装置Cとの間で音声データが相互にパケット伝送される。但し、上述した住戸通話装置A、幹線制御装置B、ロビーインターホン、管理室通話装置Cは従来周知の技術を利用して実現可能であるから、詳細な構成の図示並びに説明は省略する。
ここで、管理人の留守中に住戸通話装置Aから管理室通話装置Cに呼出があった場合、管理人が所持する携帯電話機や管理会社の受付センターに住戸通話装置Aの呼出が転送され、転送先の携帯電話機や受付センターの電話機(以下、これらを外部通話装置Fと呼ぶ。)と住戸通話装置Aとの間で音声を伝送して通話可能とすることが望ましい。そのために本実施形態における集合住宅用インターホンシステムでは、住戸通話装置Aと外部通話装置Fとの間で音声を相互に転送する外線転送装置Eを備えている。
外線転送装置Eは、図1に示すように自動音量補正部1、伝送処理部2、2線4線変換部3、受話アンプ4、送話アンプ5、A/D変換器6、D/A変換器7などを備える。伝送処理部2は信号線L4を介して幹線制御装置Bに接続されており、幹線制御装置Bを経由して住戸通話装置Aとの間でパケット伝送を行う。
伝送処理部2は、自動音量補正部1から出力される音声信号(受話音声データ)を分割してパケットを作成し、当該パケット(音声パケット)を符号化するとともに符号化されたビット列を電気信号に変換(変調)して信号線L4に送出する。また伝送処理部2は、信号線L4に伝送される電気信号をビット列に変換(復調)し、復調されたビット列から音声パケットを復号化するとともに復号化された音声信号(送話音声データ)をD/A変換器7に出力する。そして、D/A変換器7でアナログ信号に変換された音声信号が送話アンプ5で増幅された後に2線4線変換部3に出力される。2線4線変換部3は局線(電話線)Lxによって公衆電話網Nに接続されており、送話アンプ5で増幅された音声信号(送話音声信号)を電話線Lxに送出するとともに、電話線Lxを伝送されてくる音声信号(受話音声信号)を受話アンプ4へ出力する。受話アンプ4で増幅された受話音声信号は、A/D変換器6でディジタル信号(受話音声データ)に変換されて自動音量補正部1に入力される。
自動音量補正部1は、ディジタル・シグナル・プロセッサ(DSP)またはマイクロコンピュータ(CPU)で専用のソフトウェアを実行することによって実現される、信号出力部10、時間平均値算出部11、設定部12、選択部13、雑音検出部14を有している。但し、これらの各部10〜14が独立した回路部品で構成されても構わない。また、以下の説明では音声信号、及び音声以外の音を含む信号を総称して音響信号と呼ぶ。
信号出力部10は、A/D変換器6から出力される音響信号(音響データ)の信号レベルを調整して伝送処理部2に出力する。ここで、「信号レベル」とは音響データにおいて音量(音の大きさ)を示すデータであり、信号出力部10では、後述するように設定部12が設定する調整量に応じて前記データを変更することによって信号レベルを調整する。なお、以下の説明では「調整量」を「利得」と呼び、「利得」が大きいほど、信号レベルが高く(音量が大きく)なるものとする。
時間平均値算出部11は、入力信号(A/D変換器6から出力される音響信号。以下、同じ。)の比較的長い時間における時間平均値(長時間平均値PL)と、入力信号の比較的短い時間における時間平均値(短時間平均値PS)と、長時間平均値PLと短時間平均値PSの中間の時間における時間平均値(中時間平均値Pn)とを算出する。ここで、時間平均値算出部11では、例えば16ミリ秒程度の短い時間(バッファ時間)に入力された入力信号を記憶し、バッファ時間分の入力信号レベルの算術平均値を短時間平均値PSとし、バッファ時間の定倍(例えば、16倍)の入力信号レベルの算術平均値を長時間平均値PLとし、バッファ時間の数倍(例えば、7〜8倍)の入力信号レベルの算術平均値を中時間平均値Pnとしている。但し、時間平均値算出部11は、短時間平均値PSの変化の傾きが音響信号波形(図4(a)参照)の上昇時における包絡線の傾きに略一致するように短時間平均値PSを算出するときの時間幅を設定することが好ましい。同様に、時間平均値算出部11は、長時間平均値PLの変化の傾きが音響信号波形の下降時における包絡線の傾きに略一致するように長時間平均値PLを算出するときの時間幅を設定することが好ましい。
選択部13は、時間平均値算出部11で算出される長時間平均値PLと短時間平均値PSとを比較し、PS≧PLのときは短時間平均値PSを選択し、PS<PLのときは長時間平均値PLを選択して設定部12に出力する。
一般に、短時間平均値は主に入力信号(音響信号)に含まれる音声成分によってそのレベルが決まると考えられ、中時間平均値は主に入力信号に含まれる雑音成分(音声以外の音成分)によってそのレベルが決まると考えられる。故に雑音検出部14では、時間平均値算出部11で算出される短時間平均値PSと中時間平均値Pnとの比PS/Pnが1以上(PS/Pn≧1)であれば雑音が少ない(S/N比が高い)と検出(推定)し、比PS/Pnが1未満(PS/Pn<1)であれば雑音が多い(S/N比が低い)と検出(推定)する。そして、雑音検出部14は、雑音が少ないと検出すれば「1」を、雑音が多いと検出すれば「0」を、それぞれ設定部12に出力する。
設定部12は、選択部13から出力される時間平均値(長時間平均値PL又は短時間平均値PS)に応じて、3段階の利得G1,G2,G3(G1>G2>G3)のいずれかを信号レベルの調整量に設定して信号出力部10に出力する。そして、信号出力部10では入力信号の信号レベルに設定部12で設定される利得を乗じることにより、信号レベルが調整された音響信号を伝送処理部2に出力する。
図3は、自動音量補正部1における音量補正特性を示しており、横軸が入力信号の信号レベル、縦軸が音量補正後の出力信号の信号レベルを表している。設定部12は、図3に示すように入力信号の信号レベルがしきい値Th1以下のときは利得をG1に設定して音量を増大させ、入力信号の信号レベルがしきい値Th1よりも大きく且つしきい値Th2(>Th1)以下のときは利得をG2に設定して音量をほとんど調整しない。また、入力信号の信号レベルがしきい値Th2よりも大きいとき、設定部12は、利得をG3(=0)に設定して音量を減少させる。ここで、自動音量補正部1は、外部通話装置Fから送信されてくる音響信号の音量レベル(出力信号の信号レベル)を、システム内の通話装置(例えば、管理室通話装置C)から送信されてくる音響信号の音量レベルに近付けるように補正している。例えば、管理室通話装置Cのマイクロホンから標準音量で入力されて信号線L3に送出される音響信号の音量レベルをLYとし、外線転送装置Eから信号線L4に送出される音響信号の音量レベルをLXとしたとき、自動音量補正部1では、LX≒LYとなるように利得G1,G2,G3の値が設定されている。
したがって、相手の通話装置が管理室通話装置Cと外部通話装置Fの何れであっても、住戸通話装置Aのスピーカから鳴動される通話音声の音量が常に同程度になるので、外部通話装置の種類(固定電話機や携帯電話機)や製造元(メーカ)あるいは機種による通話音声の音量のばらつきを抑えることができる。
図4(a)は実際の音響信号の波形を示し、同図(b)は同図(a)の音響信号を入力信号としたときの短時間平均値PSの包絡線(実線X1)及び選択部13から出力される時間平均値f(PL,PS)の包絡線(実線X2)を示している。例えば、図4(b)に実線X1で示した短時間平均値PSに応じて利得(調整量)が設定されると、信号レベルの急激な変化に短時間で追従して利得が次々と変化するため、音響信号が抑揚(音量が増減)してしまう虞がある。反対に、短時間平均値PSに応じて利得(調整量)が設定されると、音響信号の抑揚は抑えられるものの、信号レベルの急激な立ち上がりを抑制できずに音量が大きくなり過ぎてしまう虞がある。
一方、本実施形態においては、入力信号の信号レベル上昇中は選択部13で選択される短時間平均値PSに応じて設定部12が利得を設定し、入力信号の信号レベル下降中は選択部13で選択される長時間平均値PLに応じて設定部12が利得を設定するので、利得の変動幅を少なくして音響信号の抑揚を低減するとともに音量のピークを適正な範囲内に収めることができる。つまり、本実施形態における自動音量補正部1によれば、音響信号の抑揚を抑えて聞き取り易い音量に自動的に補正することができる。
ところで、信号レベルの上昇時と下降時とで設定部12が利得Gi(i=1,2,3)の設定を変える条件(しきい値Th1,Th2)が同じであると、信号レベルがしきい値Th1,Th2の近辺で変動した場合に利得Giが頻繁に変更されることで音量が増減する可能性がある。そこで、設定部12では、しきい値Th1,Th2にヒステリシスを持たせ、信号レベルの上昇時と下降時とでしきい値Th11,Th12,Th21,Th22を異ならせることが好ましい。例えば、図5に示すように信号レベルの下降時におけるしきい値Th12,Th22を、信号レベルの上昇時におけるしきい値Th11,Th21よりも小さく(低く)すればよい。このようにすれば、信号レベルがしきい値の近辺で変動した場合でも音量の急激な増減(音響信号の抑揚)を抑えることができる。
ここで、信号レベルの下降中には長時間平均値PLに応じて利得が調整されるのであるが、長時間平均値PLの算出時間よりも遙かに短い時間で利得がG2からG1に変更されると、音量が必要以上に増大されて音響信号が抑揚してしまう虞がある。そこで、設定部12が信号レベルを増大する向きに利得を変える際、図6に示すように緩やかに利得を変化させれば、音量が必要以上に増大されて音響信号が抑揚してしまうことが防止できる。
一方、信号レベルの上昇中には短時間平均値PSに応じて利得が調整されるため、短時間平均値PSの算出時間よりも長い時間をかけて利得がG2からG3へゆっくりと変更されると、音量の増減に追随できずに音響信号を抑揚させてしまう虞がある。そこで、設定部12が信号レベルを減少する向きに利得を変える際、図7に示すように急速に利得を変化させれば、音量の増減に追随できずに音響信号を抑揚させてしまうことが防止できる。
ところで、入力信号の信号レベルが調整されると当該入力信号に含まれる雑音成分(周囲騒音)の信号レベルも同時に調整されるので、目的とする音声が周囲騒音に邪魔されて聴き取り難くなってしまう可能性がある。そこで本実施形態では、雑音検出部14で雑音が多いと推定されているときは設定部12が利得の設定を行わずに入力信号をそのまま出力(スルー)させ、雑音検出部14で雑音が少ないと推定されているときにだけ、設定部12が利得の設定を行うようにしている。つまり、設定部12は雑音検出部14の出力信号が「0」のときは利得の設定を行わず、雑音検出部14の出力信号が「1」のときにだけ利得の設定を行っている。これにより、目的とする音声が周囲騒音に邪魔されて聴き取り難くなってしまうという音量補正の弊害を抑制することができる。
ここで、図8に示すように、入力信号に含まれる音声以外の雑音(周囲騒音)を抑制する雑音抑制部(ノイズサプレッサ)15を設けてもよい。ノイズサプレッサ15は従来周知であって、通話音声と周囲騒音とが混在する入力信号から周囲騒音の信号成分のみを抑圧して出力するものである。したがって、ノイズサプレッサ15が入力信号から周囲騒音の信号成分のみを抑圧することにより、後段の自動音量補正部1における音声信号レベル算出などの演算精度の向上およびS/N比改善による音質の向上が図れる。
さらに、図9に示すように電話線Lxを介して生じる回線エコーを抑圧するエコーキャンセラ8を設けてもよい。このエコーキャンセラ8は適応フィルタ80と減算器81からなる従来周知の構成を有している。適応フィルタ80は、インピーダンスの不整合による反射及び外部通話装置Fにおけるスピーカ−マイクロホン間の音響結合とにより形成される帰還経路(回線エコー経路)のインパルス応答を適応的に同定する。そして、減算器81は、適応フィルタ80によって推定されるエコー成分(回線エコー)を受話音声信号から減算する。
(実施形態2)
本実施形態の外線転送装置Eは、図10に示すように音声データ欠落補償処理部VCと揺らぎ吸収処理部JAを備える点に特徴がある。但し、その他の構成については、図9に示した実施形態1の構成と共通であるから、共通の構成要素には同一の符号を付して図示並びに説明を適宜省略する。
図12は、音声データ欠落補償処理(以下、「補償処理」と略す。)の基本原理を説明するための音声信号の波形図である。図12において縦軸は伝送処理部2から出力される受話音声信号の強度を示し、横軸は時間を示している。音声パケットの受信に失敗し、パケットロス(音声データの欠落)が発生すると、音声データ欠落補償処理部VCは、パケットロスが発生する直前の所定期間の受話音声信号を基準信号(テンプレート)として設定する。
次に、このテンプレートを受話音声信号に対してパケットロスが発生した時点から過去に向けてスライドさせるとともに、テンプレートと受話音声信号との相関演算を実行し、パケットロスが発生する直前の受話音声信号の基本周期(ピッチ)を検出する。そして、パケットロスが発生してから過去に遡って、1ピッチ分の受話音声信号を取り出し、その受話音声信号をロス期間に繰り返し当てはめることでロス期間(音声データが欠落している期間。以下、同じ。)を補償する。ここで、1ピッチ分の受話音声信号でロス期間を補償するのは、話者が例えば「あ」という音声を発した場合、この「あ」の音声は、20msec程度に区切られて(パケット化されて)1つの音声パケットにのせて送信されるため、ロス期間ではパケットロスが発生する直前の1ピッチ分の受話音声信号が繰り返されている可能性が高いからである。
音声データ欠落補償処理部VCは、図11に示すように遅延揺らぎ吸収バッファ(ジッタバッファ)20、タイマ21、パケットロス検出部22、検出処理部23、補償処理部24を備えている。但し、これらの各部は、自動音量補正部1と同様にDSPで音声データ欠落補償処理プログラムを実行することによって実現されている。
ここで、音声パケットのヘッダには、元の音声信号を分割(パケット化)する際に順番に割り当てられる番号(シーケンス番号)が格納されており、音声パケットの音声データ(受話音声信号)をシーケンス番号の順番通りにつなぎ合わせることで元の音声信号を復元することができる。そして、伝送処理部2はシーケンス番号に従って、受信した受話音声信号(受話音声データ)を時系列順にジッタバッファ20に出力する。なお、音声パケットのヘッダにはシーケンス番号の他にタイムスタンプが含まれている。シーケンス番号は音声パケットの送信順序を示し、タイムスタンプは、元の音声波形における音声信号の相対的な位置を示している。
ジッタバッファ20は、伝送処理部2から出力された受話音声データを一旦保持し、所定時間遅延させて検出処理部23に出力することで音声パケットの遅延ゆらぎを吸収する。
タイマ21は、パケットロス検出部22がパケットロスを検出する際に用いられる。パケットロス検出部22は、ジッタバッファ20が検出処理部23に受話音声データを出力した時点でタイマ21の計時を開始させ、ジッタバッファ20が次の受話音声データを出力する前に、タイマ21による計時時間がパケットロスが発生したと想定される所定時間を超えた場合、パケットロスが発生したと判定する。
検出処理部23は、パケットロス検出部22によりパケットロスが検出された場合、ジッタバッファ20から出力された受話音声データに対して基本周期(ピッチ)の検出処理を行い、パケットロス検出部22によりパケットロスが検出されなかった場合、受話音声データに対して何も行わない。なお、検出処理部23は、過去一定期間の受話音声データを保持している。
ここで、検出処理部23は、テンプレート設定部23a及びピッチ検出部23bを備えている。テンプレート設定部23aは、パケットロスが発生したロス発生時点から過去に向けて所定時間幅の受話音声データをテンプレートとして設定する。ここで、テンプレート設定部23aは、ピッチ検出部23bがテンプレートのスライド量を増大させるにつれてテンプレートの前記時間幅を増大させる。
ピッチ検出部23bは、テンプレート設定部23aにより設定されたテンプレートを受話音声データに対してロス発生時点から過去に向けてスライドさせ、テンプレートと受話音声データとの相互相関を求め、テンプレートと受話音声データとの相関ピークが最も強く現れたときのスライド量からロス発生時点の直前の受話音声信号のピッチを検出する。
図13は、テンプレート設定部23a及びピッチ検出部23bの処理を説明するための受話音声信号の波形図である。なお、図13に示す縦軸は受話音声信号の強度を示し、横軸は時間をサンプル数で示したものである。また、図13に示すテンプレートTJは従来の補償処理に使用されていたテンプレートを示している。
パケットロスが発生すると、従来では、例えば、ロス発生時点RTから過去の所定期間分の受話音声信号をテンプレートTJとして設定する。そして、このテンプレートTJを受話音声信号に対してロス発生時点RTから過去に向けてスライドさせることで、受話音声信号とテンプレートTJの相互相関を求め、最も強い相関ピークが得られたときのテンプレートTJのスライド量から受話音声信号のピッチを検出していた。
図14は、従来のテンプレートTJを用いたときのテンプレートTJと受話音声信号との相関値の演算結果を示したグラフである。なお、図14においては、従来周知である平均振幅差関数(Average Magnitude Difference Function)を用いて相関値が算出されている。また、図14において、縦軸は相関値を示し、横軸はロス発生時点RTを0としたときの時間をサンプル数で示したものである。また、図14はAMDFによる相関値であるため、値が小さいほど受話音声信号とテンプレートTJとの相関が強い。
図14では、まず、37サンプルの時点で下に凸の相関ピークPK1が現れ、次に、47サンプルの時点で下に凸の相関ピークPK2が現れ、以後、およそ37サンプルの周期で下に凸の相関ピークが繰り返し現れている。そして、相関ピークPK1の方が相関ピークPK2よりも小さく現れている。そのため、従来の手法では37サンプルが受話音声信号のピッチとして検出されてしまう。
一方、図13に示すようにロス発生時点RTの直前の受話音声信号のピッチは、47サンプルである。そのため、従来の手法では、ロス発生時点RTの直前の受話音声信号のピッチが精度良く検出されていないことが分かる。
これは、テンプレートTJの時間幅が47サンプルより遙かに大きく、テンプレートTJには検出対象となるピッチが47サンプルの受話音声信号は1周期分しか含まれていないが、検出対象でないピッチが37サンプルの受話音声信号は3周期分も含まれているため、37サンプルで強い相関ピークが現れたことが原因と考えられる。
この場合、ロス発生時点RTから過去に遡って37サンプル分の受話音声信号を取り出し、この受話音声信号をロス期間に繰り返し当てはめることで、補償処理が行われる。
そのため、ロス期間の波形とロス期間以外の波形とを滑らかに繋ぐことが困難となり、補償処理を精度良く行うことが困難となってしまう。
一方、テンプレートの時間幅が47サンプルより小さい場合、47サンプルのピッチを検出することはできない。
そこで、本実施形態における検出処理部23では、図13に示すようにテンプレートTMのスライド量を増大するにつれて、テンプレートTMの時間幅を増大している。
そのため、例えば図13の3段目に示すテンプレートTMのように、ある程度テンプレートTMをスライドさせたとき、そのテンプレートには、ほぼ検出対象となる47サンプルの受話音声信号のみが含まれるようになる。一方、図13の4段目のテンプレートTMにおいては、ピッチが47サンプルの受話音声信号に加えて、ピッチが37サンプルの受話音声信号も含まれている。そのため、3段目のテンプレートTMと受話音声信号との相関の方が、4段目のテンプレートTMと受話音声信号との相関よりも強く表れ、ロス発生時点RTの直前の受話音声信号のピッチを精度良く検出することが可能となる。
ここで、ピッチ検出部23bは、相関演算として、例えば式(1)に示すAMDFを採用することが好ましい。
但し、φ(τ)は相関値、NはテンプレートTMの時間幅、x(j)はテンプレートTM、x(j-τ)は受話音声信号、k+1はテンプレートTMの開始点、aは予め定められた係数、τはテンプレートTMのスライド量、jは受話音声信号の各サンプリング点のサンプリング番号をそれぞれ示している。
また、テンプレート設定部23aは、テンプレートTMのスライド量が所定のスライド基準値になるまで、テンプレートTMの時間幅を所定の初期時間幅に設定することが好ましい。
こうすることで、テンプレートTMのスライド量が比較的小さい場合は、テンプレートTMの時間幅が初期時間幅に設定され、スライド量が小さい場合であってもテンプレートTMの時間幅を一定の大きさ以上確保することが可能となり、テンプレートTMと受話音声信号(入力信号)の間の相関をより精度良く求めることができる。
更に、テンプレートTMのスライド量がスライド基準値になるまで、テンプレートTMの時間幅は初期時間幅に設定されるが、この初期時間幅を比較的短くすることで、計算量を少なくすることができる。
なお、初期時間幅としては、想定される受話音声信号のピッチの最小値程度を採用することが好ましい。また、スライド基準値としては、例えば初期時間幅を採用すればよい。
図15は、テンプレート設定部23a及びピッチ検出部23bの処理を説明する図である。図15に示す直線上の各点は受話音声信号のサンプリング点を示している。また、右端のサンプリング点はロス発生時点RTを示し、各サンプリング点は、左に向かうにつれて過去のサンプリング点を示している。また、ロス発生時点RTを0番目のサンプリング点とする。受話音声信号のピッチは、短い場合で3msec程度であり、サンプリング周波数が8kHzとすると、24サンプルに相当する。したがって、初期時間幅として、例えば24サンプルとすればよいが、図15では、説明の便宜上、テンプレートTMの初期時間幅を4とし、a=1とし、スライド基準値を5とする。
まず、パケットロスが発生すると、ピッチ検出部23bは、τ=0に設定し、テンプレートTMの初期時間幅が4であるため、ロス発生時点RTから左に4番目のサンプリング点を基準サンプリング点kとして設定し、kからロス発生時点RTに向かうにつれて、1ずつ増えるように各サンプリング点にサンプリング番号を付与し、kから過去に向かうにつれて、1ずつ減少するように各サンプリング点にサンプリング番号を付与する。
そして、テンプレート設定部23aは、受話音声信号x(k+1)〜x(k+4)をテンプレートTM0として設定する。
そして、ピッチ検出部23bは、式(1)を用いて、テンプレートTM0と受話音声信号x(j-0)との相関値φ(0)を算出する。この場合テンプレートTM0は、音声信号x(k+1)〜x(k+4)に当てはめられる。
次に、ピッチ検出部23bは、τ=1に設定し、τ=0と同様にして、式(1)を用いて、テンプレートTM0と音声信号x(j-1)との相関値φ(1)を算出する。この場合、テンプレートTM0は、音声信号x(k)〜x(k+3)に当てはめられる。
以下、τ=4になるまで、テンプレートTM0が受話音声信号に対して過去に向けてスライドされ、式(1)を用いてφ(2),φ(3),φ(4)が算出される。
次に、ピッチ検出部23bは、τ=5に設定すると、τ≧スライド基準値(=5)であるため、ロス発生時点RTから左に5番目のサンプリング点を基準サンプリング点kとして設定する。そして、テンプレート設定部23aは、音声信号x(k+1)〜x(k+5)をテンプレートTM5として設定する。そして、ピッチ検出部23bは、式(1)を用いてテンプレートTM5と音声信号x(j-5)との相関値φ(5)を求める。この場合、テンプレートTM5は、音声信号x(k-4)〜x(k)に当てはめられる。
次に、ピッチ検出部23bは、τ=6に設定し、ロス発生時点RTから左に6番目のサンプリング点を基準サンプリング点kとして設定する。そして、テンプレート設定部23aは、受話音声信号x(k+1)〜x(k+6)をテンプレートTM6として設定する。そして、ピッチ検出部23bは、式(1)を用いてテンプレートTM6と受話音声信号x(j-6)との相関値φ(6)を求める。この場合、テンプレートTM6は、音声信号x(k-5)〜x(k)に当てはめられる。
以後、ピッチ検出部23bは、τが最大スライド量であるτmaxになるまで、上記処理を繰り返し、φ(τ)を求める。これにより、テンプレートTMは、スライド量が増大するにつれて、時間幅が増大されることになる。
図16は、図13に示す受話音声信号に対して本実施形態による手法を用いて相関値φ(τ)を求めたときの相関値φ(τ)のグラフを示している。なお、図13において、縦軸は相関値φ(τ)を示し、横軸は時間をサンプル数で示したものである。また、図13においては、AMDFにより相関値φ(τ)が算出されている。したがって、図14と同様、相関値の低い相関ピークほど受話音声信号とテンプレートTMとの相関が強い。
図16においては、ロス発生時点RT(=0)からおよそ47サンプル経過したときに下に凸の相関ピークPK1が現れ、次に、相関ピークPK1が現れてからおよそ37サンプル経過したときに下に凸の相関ピークPK2が現れ、以後、およそ37サンプル経過する毎に下に凸の相関ピークが現れている。また、相関ピークは時間が経過するにつれて値が大きくなっており、テンプレートTMと受話音声信号との相関が弱くなっている。なお、サンプリング周波数を8kHzとすると、37サンプルは、37×0.125msec=4.625msecに相当し、47サンプルは、47×0.125=5.875msecに相当する。
つまり、図16に示す相関ピークのうち、テンプレートTMを47サンプル分ずらしたときの相関ピークPK1が最小となっている。
そのため、ピッチ検出部23bは、最小の相関ピークPK1が現れた時刻である47サンプルをロス発生時点RTの直前の受話音声信号のピッチとして検出する。したがって、ピッチ検出部23bは、図13に示すロス発生時点RTの直前の受話音声信号のピッチである47サンプルを検出できていることが分かる。
補償処理部24は、ロス発生時点RTから過去に向けてピッチ検出部23bにより検出された1ピッチ分の受話音声信号を取り出し、取り出した受話音声信号でパケットロスが発生したロス期間を補償する補償処理を行う。
ここで、補償処理部24は、例えば、図13に示す受話音声信号が入力され、ピッチ検出部23bがピッチとして47サンプルを検出したとすると、ロス発生時点RTから過去に向けて47サンプルの受話音声信号を取り出し、取り出された受話音声信号をロス期間の最後まで繰り返し当てはめてロス期間を補償する。
図17は、音声データ欠落補償処理部VCの動作(音声データ欠落補償処理)の手順を示すフローチャートである。なお、図17のフローチャートでは、説明の便宜上、a=1としている。まず、ステップS1において、パケットロス検出部22が、パケットロスを検出すると(ステップS1)、ピッチ検出部23bは、τ=0に設定する(ステップS2)。
次に、テンプレート設定部23aは、τの値に応じた時間幅のテンプレートTMを受話音声信号から設定する(ステップS3)。このとき、テンプレート設定部23aは、τ<スライド基準値の場合は、テンプレートTMの時間幅を初期時間幅に設定し、τ≧スライド基準値の場合、テンプレートTMの時間幅をN=τに設定する。
次に、ピッチ検出部23bは、k+1がテンプレートTMの開始点となるように、基準サンプリング点kを設定し、各サンプリング点にサンプリング番号を付与する(ステップS4)。
次に、ピッチ検出部23bは、式(1)を用いてテンプレートTMと受話音声信号との相関値を算出する(ステップS5)。
次に、ピッチ検出部23bは、τ=τ+1とする(ステップS6)。次に、ピッチ検出部23bは、τ≧スライド基準値の場合(ステップS7)、すなわち、テンプレートTMのスライド量がスライド基準値を超えた場合、処理をステップS8に進め、τ<スライド基準値の場合(ステップS7)、処理をステップS5に戻す。ステップS5〜S7の処理が繰り返されることで、初期時間幅のテンプレートTMは、スライド基準値となるまで、受話音声信号に対して過去に向けてスライドされる。
ステップS8において、τ<τmaxである場合(ステップS8)、処理がステップS3に戻され、τ≧τmaxとなるまで、ステップS3〜S8の処理が繰り返される。これにより、テンプレートTMは、スライド量であるτが増大するにつれて時間幅が増大される。
ステップS8において、τ≧τmaxとなった場合(ステップS8)、ピッチ検出部23bは、ステップS5で算出した相関値から相関ピークを検出し、検出した相関ピークのうち、テンプレートTMと受話音声信号との相関が最も強い相関ピークのスライド量を特定し、特定したスライド量からピッチを検出する(ステップS9)。ここで、式(1)を採用した場合、相関値が最小の値を示す相関ピークがテンプレートTMと受話音声信号との最も強い相関を示す。
また、ピッチ検出部23bは、特定したスライド量に音声信号のサンプリング周期を乗じることで、ピッチを算出すればよい。
次に、補償処理部24は、ステップS9で検出されたピッチに従って受話音声信号を取り出し、取り出した受話音声信号を用いてロス期間を補償する(ステップS10)。
なお、図15の説明では、テンプレート設定部23aは、a=1に設定したが、これに限定されず、テンプレートTMのスライド量が所定の変更基準値を超えるまで、aを1≦a<2の範囲内の所定の固定値に設定し、スライド量が変更基準値を超えると、スライド量が最大スライド量(τmax)に近づくにつれて、1に近づくようにaの値を漸次減少させてもよい。変更基準値としては、例えば上記のスライド基準値を採用することができる。
これにより、スライド量が小さい場合、テンプレートTMの時間幅をスライド量に対して大きめに設定することができ、スライド量が大きい場合、テンプレートTMの時間幅をスライド量程度の値に設定することができる。そのため、スライド量が小さい場合において、テンプレートTMの時間幅が小さくなりすぎることによる相関演算精度の低下を防止することができる。
また、相関演算としては、式(1)に示すAMDFに代えて、従来周知である相互相関や平均自乗差関数(Average Squre Difference Function)等の手法を採用してもよい。
このように、本実施形態における音声データ欠落補償処理部VCによれば、パケットロスの発生時点RTから過去に向けてある時間幅の受話音声信号がテンプレートTMとして設定される。そして、設定されたテンプレートTMが受話音声信号に対して現時点から過去に向けてスライドされる。そして、テンプレートTMと受話音声信号との相関が求められ、受話音声信号のピッチが検出される。
ここで、テンプレートTMはスライド量が増大するにつれて時間幅が増大される。したがって、スライド量が小さい比較的初期の段階において、現時点のほぼ直前の1ピッチ分の受話音声信号がテンプレートTMとされるタイミングが発生する。このとき、テンプレートTMと受話音声信号との間で強い相関ピークが現れる。一方、スライド量が大きくなると、それに応じてテンプレートTMの時間幅も増大され、テンプレートTMには複数の周波数成分が含まれるようになる。そのため、上記のタイミングで得られる相関ピークほど強い相関ピークを得ることはできなくなる。よって、現時点のほぼ直前の受話音声信号のピッチを精度良く検出することが可能となる。
揺らぎ吸収処理部JAは、図18に示すようにジッタバッファ30、カウント部31、バッファサイズ変更部32、受信時刻記録部33、基準値記憶部34、隠蔽処理部35、出力部36、観測履歴保持部37を備えている。但し、これらの各部は、音声データ欠落補償処理部VCと同様にDSPが揺らぎ吸収処理プログラムを実行することで実現される。また、ジッタバッファ30は音声データ欠落補償処理部VCのジッタバッファ20と共用される。
受信時刻記録部33は、伝送処理部2が音声パケット(受話音声パケット)を受信した時刻(タイムスタンプ)を、受信したパケットのシーケンス番号に対応付けて記録する。
ジッタバッファ30は、例えばリングバッファにより構成され、伝送処理部2により受信されたパケットを時系列順で蓄積する。これにより、幹線L1を介して伝送される音声パケットの伝送遅延の揺らぎが吸収される。なお、ジッタバッファ30のサイズとしては、後述する基準値よりも大きなサイズが採用されている。
カウント部31は、音声がパケット化される周期(パケット化周期)以下の所定周期(カウント周期)で、ジッタバッファ30に蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出する。そして、カウント部31が算出したパケットカウント値は観測履歴保持部37に保持される。観測履歴保持部37は、例えば、揮発性の半導体メモリにより構成され、カウント部31により算出された過去N(Nは正の整数)回のパケットカウント値を保持する。
図19は、カウント部31によるパケットカウント値の算出処理の説明図である。図19に示すように、カウント部31は、カウント周期Tbでパケットカウント値を算出している。
ここで、カウント部31は、パケットカウント値の算出タイミングである算出時刻Tkから、過去、パケット化周期Ta内に受信したパケットPSについては、カウント値をΔT/Taにより得られる値に設定し、算出時刻Tkから、過去、パケット化周期Ta以前に受信したパケットPLについては、カウント値を1に設定することでパケットカウント値を算出する。つまり、パケットPSのパケットカウント値は、受信時刻が算出時刻Tkに近づくにつれて差分ΔTが小さくなるため、値が小さくなる。
ここで、パケットPSについては、パケットカウント値を算出するにあたって受信時刻が用いられているため、受信時刻を保持しておく必要がある。一方、パケットPLについては、パケットカウント値を算出するにあたって受信時刻が不要であるため、受信時刻を記録しておく必要はない。
そこで、カウント部31は、パケットカウント値の算出処理が終了すると、算出時刻Tkから、過去、パケット化周期Taとカウント周期Tbとの差分(=Ta-Tb)以前に受信したパケットについては、受信時刻を受信時刻記録部33から削除する。
これにより、パケットカウント値の次の算出時刻である時刻Tk+1において、過去、パケット化周期Taに受信したパケットの受信時刻が受信時刻記録部33に保持されている結果、カウント部31は、時刻Tk+1において、過去、パケット化周期Taに受信したパケットの受信時刻を取得することができる。こうすることで、受信時刻記録部33の容量を節約することが可能となる。
バッファサイズ変更部32は、カウント部31により算出されたパケットカウント値の過去のN回のパケットカウント値を観測履歴保持部37から読み出し、読み出したN回のパケットカウント値から、n番目に小さいパケットカウント値をパケットカウント値の代表値として算出し、算出した代表値が所定の基準値より大きければ、ジッタバッファ30に蓄積されているパケットを削除し、代表値が基準値より小さければ、ジッタバッファ30にパケットを挿入する。なお、基準値は基準値記憶部34に記憶されている。
ここで、バッファサイズ変更部32は、代表値が基準値より小さい場合は、代表値が、基準値以上かつ基準値+1未満となるように、ジッタバッファ30にパケットを挿入すればよい。例えば、代表値が2.1、基準値が4の場合、代表値が4.1となるように2つのパケットがジッタバッファ30に挿入される。また、バッファサイズ変更部32は、代表値が基準値より大きい場合は、代表値が基準値以上かつ基準値+1未満となるように、ジッタバッファ30からパケットを削除すればよい。例えば、代表値が4.2、基準値が2の場合、代表値が2.2となるように2つのパケットがジッタバッファ30から削除される。
なお、nとしては、N×αにより整数値に丸め込んだ値を採用することが好ましい。また、基準値としては、集合住宅用インターホンシステムがインターホン通話(パケット伝送方式による通話)において許容する通話遅延時間に基づいて予め定められた値が採用されている。つまり、ジッタバッファ30の蓄積パケット数が基準値よりも大きければ、ジッタバッファ30において、出力待ちのパケット数が増大するため、通話遅延が発生する。そこで、上述のようにn番目のパケットカウント値である代表値が基準値よりも大きい場合は、ジッタバッファ30からパケットを削除することにより、通話遅延を防止することができる。
一方、n番目のパケットカウント値である代表値が基準値よりも小さい場合は、ジッタバッファ30にパケットを挿入している。これにより、蓄積パケット数が基準値以下になる確率を、α(=n/N)%にすることができる。
隠蔽処理部35は、ジッタバッファ30に挿入された無効パケット(音声が含まれないパケット。以下、同じ。)に対して、パケットロス隠蔽処理を行うとともに、ジッタバッファ30においてパケットが枯渇した場合にパケットロス隠蔽処理を行う。ここで、パケットロス隠蔽処理としては、例えば、無効パケットより過去の受話音声信号から受話音声信号のピッチを検出し、無効パケットの直前の有効パケット(音声が含まれるパケット。以下、同じ。)の受話音声信号において、終端から1ピッチ分前の区間の音声波形を取り出し、この音声波形をパケット化周期(例えば、20msec)の期間、繰り返すことで得られる音声波形を無効パケットの受話音声信号として生成する手法を採用すればよい。なお、ピッチの検出については、上述した音声データ欠落補償処理におけるピッチ検出処理と共通の手法を採用すればよい。
出力部36は、ジッタバッファ30の蓄積パケット数が基準値以上となった場合、ジッタバッファ30からパケット化周期Taに同期してパケット(受話音声データ)を時系列順に読み出して受話音声信号の信号経路に出力する。ここで、出力部36は、ジッタバッファ30から取り出したパケットが音声を含まない無効パケットである場合、隠蔽処理部35にパケットロス隠蔽処理を実行させ、実行処理後の音声データを出力する。
観測履歴保持部37は、例えば不揮発性の半導体メモリにより構成され、カウント部31により算出された過去N回のパケットカウント値を保持する。
図20は、ジッタバッファ30の役割を説明するための図である。図20に示すように、受話音声信号を含むパケットは、パケット化周期(図示例では20msec)で住戸通話装置Aから送信される。図20では、1〜8の番号(シーケンス番号)が付された8個のパケットが20msecの間隔で送信されている状況を表している。
住戸通話装置Aから送信されたパケットは幹線L1を介して外線転送装置Eで受信されることになる。ここで、多数のパケット(音声パケット、映像パケット、制御パケット)が幹線L1を介して多重伝送されるため、住戸通話装置Aからパケット化周期で送信される音声パケットが外線転送装置Eに到達するまでの時間(伝送遅延)は、個々の音声パケット毎に大きく相違し、いわゆる伝送遅延の揺らぎが発生する。よって、外線転送装置Eによる音声パケットの受信間隔は不等間隔になる。
そこで、この伝送遅延の揺らぎを吸収するためにジッタバッファ30が設けられている。図20においては、ジッタバッファ30のバッファサイズはパケット3個分とされている。また、出力部36は、1番目のパケットを受信してから、遅延時間Tdが経過した時刻T1において、1番目のパケットに復号化処理及びD/A変換処理を施して出力を開始している。
図20の場合、時刻T1から20msec経過後の2番目のパケットの出力時刻である時刻T2において、ジッタバッファ30は、2番目のパケットを蓄積している。よって、出力部36は、時刻T2において2番目のパケットを出力することができる。
一方、3番目のパケットは、伝送遅延が極端に大きいため、時刻T3において、外線転送装置Eに到達しておらず、ジッタバッファ30において、パケットの枯渇が生じている。そのため、出力部36は、時刻T3において3番目のパケットを出力することができず、音抜け(音声データの欠落)が発生する。
また、3〜7番目のパケットは輻輳解消後に短時間で連続して外線転送装置Eに到達しており、7番目のパケットが外線転送装置Eに到達したとき、ジッタバッファ30には、5、6番目のパケットが存在するが、ジッタバッファ30に空きがあるため、7番目のパケットは破棄されず、ジッタバッファ30に格納される。よって、時刻T7において、7番目のパケットが出力部36から出力される。
このように、伝送遅延の揺らぎの特性は動的に変化するため、ジッタバッファ30のバッファサイズを固定サイズにすると、想定される伝送遅延の揺らぎよりも充分に長くせざるを得ない。また、ジッタバッファ30のバッファサイズを充分に長くし、かつ、遅延時間Tdを充分に長くすれば、音抜けの発生は防止できるが、遅延時間Tdが長いと、ジッタバッファ30において、出力待ちのパケットが増大し、通話遅延が発生してしまう。
図21は、伝送遅延と伝送遅延の発生頻度との関係を示す伝送遅延特性のグラフの一例を示している。なお、図21において、縦軸は、発生頻度を示し、横軸は伝送遅延を示している。また、図22は、ジッタバッファ30の最適なバッファサイズを説明するための図である。図21において、dminは最小の伝送遅延を示し、dmaxは最大の伝送遅延を示している。図22では、k-1番目のパケットの伝送遅延はdminであり、k番目のパケットの伝送遅延はdであり、k+1番目のパケットの伝送遅延はdmaxである。
この場合、出力部36による最適な出力の待ち時間は下記のようになる。i)dmaxで届いたパケットは直ちに出力する。ii)dminで届いたパケットは、dmax-dmin待ってから出力する。iii)dで届いたパケットはdmax-d待ってから出力する。
よって、ジッタバッファ30におけるパケットの枯渇を回避するためには、ジッタバッファ30のバッファサイズbufをbuf≧dmax−dminとすればよいが、伝送遅延特性のdmaxが極端に大きくなると、つまり、図21のグラフの右端の尾が極端に長くなると、バッファサイズbufの値が大きくなってしまう。また、図21のグラフに示すように、伝送遅延が増大するにつれて発生頻度が低下しているため、真のdmaxを観測するには、膨大な数のパケットの伝送遅延を観測する必要がある。そのため、図21のグラフでは、真のdmaxではなく、伝送特性の分布の上位数%を切り捨てる値がdmaxとみなされている。この場合、dmaxとみなす値以上の伝送遅延が発生するとパケットの枯渇が発生する。
したがって、パケットの枯渇を防止するためには、dmaxとみなす値を大きく設定することが好ましいが、逆にdmaxとみなす値が大きすぎるとバッファサイズbufが増大し、ジッタバッファ30において、出力待ちの待ちパケットが増大する結果、出力遅延が生じてしまう。このような出力遅延は、パケット伝送方式のインターホン通話においては通話遅延となって現れるため、極力低く抑える方が好ましい。そこで、上述の処理を実行することで、パケットの枯渇を防止すると同時に、通話遅延の防止を図っているのである。
図23は、揺らぎ吸収処理部JAの揺らぎ吸収処理を示すフローチャートである。まず、ステップS1において、カウント部31は、前回、パケットカウント値の算出タイミングを算出してから、カウント周期Tbが経過して、パケットカウント値の算出タイミングとなったか否かを判定する。そして、カウント部31は、パケットカウント値の算出タイミングになったと判定すると(ステップS1でYES)、現在、ジッタバッファ30に蓄積されているパケット数である蓄積パケット数をカウントする(ステップS2)。一方、カウント部31は、パケットカウント値の算出タイミングになっていないと判定すると(ステップS1でNO)、処理をステップS1に戻す。
次に、カウント部31は、パケットカウント値の算出処理を実行して、パケットカウント値を算出する(ステップS3)。
図24は、パケットカウント値の算出処理の詳細を示すフローチャートである。まず、カウント部31は、現在時刻をパケットカウント値の算出時刻として特定する(ステップS21)。
次に、カウント部31は、ジッタバッファ30に蓄積されているパケットのうち、図19に示すように算出時刻Tkから、過去、パケット化周期Ta内に受信された各パケットの受信時刻を特定する(ステップS22)。この場合、カウント部31は、受信時刻記録部33に記録された受信時刻に対応付けられたシーケンス番号を特定することで、各パケットの受信時刻を特定する。
次に、カウント部31は、算出時刻Tkから、過去、パケット化周期Ta内に受信された各パケットについて、算出時刻Tkと受信時刻との差分ΔTを算出する(ステップS23)。次に、カウント部31は、過去、パケット化周期Ta内に受信された各パケットについて、ΔT/Taを算出し、このΔT/Taを、各パケットのカウント値として設定する(ステップS24)。
次に、カウント部31は、ジッタバッファ30に蓄積されているパケットのうち、算出時刻Tkから、過去、パケット化周期Ta以前に受信されたパケットについては、カウント値を1として設定する(ステップS25)。
次に、カウント部31は、ステップS24,S25で設定したカウント値を用いて、ジッタバッファ30の蓄積パケット数をカウントすることで、パケットカウント値を算出する(ステップS26)。例えば、算出時刻Tkから、過去、パケット化周期Ta以前に受信されたパケット数が1個、算出時刻Tkから、過去、パケット化周期Ta内に受信されたパケット数が2個であり、この2個のパケットの受信時刻がTi,Tjとすると、パケットカウント値は、1+(Tk-Ti)/Ta+(Tk-Tj)/Taとなる。
次に、カウント部31は、算出時刻Tkから、過去、Ta-Tb以前に受信したパケットについては、受信時刻記録部33から受信時刻を削除する(ステップS27)。
図23のフローチャートに戻り、ステップS4において、カウント部31は、算出時刻Tkにおけるパケットカウント値を観測履歴保持部37に保持させる。この場合、カウント部31は、観測履歴保持部37に保持されているパケットカウント値の個数がN個となるように、最古のパケットカウント値を観測履歴保持部37から削除する。
次に、バッファサイズ変更部32は、観測履歴保持部37に記憶されているN個のパケットカウント値のうち、n番目に小さいパケットカウント値を代表値として特定する(ステップS5)。
図25は、パケットカウント値と、パケットカウント値の算出時刻との関係を示した模式図であり、縦軸がパケットカウント値を示し、横軸がパケットカウント値の算出時刻を示している。図25では、N=9,n=3とされている。したがって、バッファサイズ変更部32は、図25で示す左端から2番目の時刻Tk-7のパケットカウント値が、3番目に小さいため、時刻Tk-7のパケットカウント値を代表値として特定する。
次に、バッファサイズ変更部32は、代表値が基準値より大きいか否かを判定し、代表値≧基準値+1の場合(ステップS6でYES)、代表値が基準値以上かつ基準値+1未満となる個数のパケットをジッタバッファ30から削除する(ステップS7)。
次に、バッファサイズ変更部32は、観測履歴保持部37に保持されているN個のパケットカウント値のそれぞれから、ステップS7で削除したパケット数を差し引き、N個のパケットカウント値を更新し、観測履歴を更新する(ステップS8)。例えば、削除したパケット数が1個であるとすると、N個のパケットカウント値の全てから1が減算される。これにより、ジッタバッファ30からパケットを削除した事実が観測履歴に反映される。
一方、ステップS6において、代表値が基準値+1未満であり(ステップS6でNO)、かつ、代表値が基準値以上(ステップS9でNO)の場合、バッファサイズ変更部32は、ジッタバッファ30に対してパケットの削除及び挿入を行わない(ステップS10)。
一方、代表値<基準値の場合(ステップS9でYES)、バッファサイズ変更部32は、代表値が基準値以上かつ基準値+1未満となる個数のパケットをジッタバッファ30に挿入する(ステップS11)。
次に、バッファサイズ変更部32は、観測履歴保持部37に保持されているN個のパケットカウント値のそれぞれに対し、ステップS11で挿入したパケット数を加算し、N個のパケットカウント値を更新し、観測履歴を更新する(ステップS12)。例えば、挿入したパケット数が1個であるとすると、N個のパケットカウント値の全てに1が加算される。これにより、ジッタバッファ30にパケットを挿入した事実が観測履歴に反映される。
そして、ステップS8,S10又はS12の処理が終了すると、処理がステップS1に戻され、次のパケットカウント値の算出時刻が到来すると、ステップS2以降の処理が実行される。
図26(a)はバッファサイズ変更部32によるパケット挿入時の処理を示した模式図であり、図26(b)はバッファサイズ変更部32によるパケット削除時の処理を示した模式図である。図26(a)の例では、バッファサイズ変更部32は、有効パケットである4番目のパケットと5番目のパケットとの間に無効パケットを挿入している。図26(b)の例では、バッファサイズ変更部32は、有効パケットである4番目のパケットと5番目のパケットとをオーバーラップ加算して2つのパケット長を1つのパケット長にすることで、1つのパケットを削除している。
このように揺らぎ吸収処理部JAでは、ジッタバッファ30の蓄積パケット数からパケットカウント値が算出され、過去N回のパケットカウント値のうち、n番目に小さいパケットカウント値が代表値として特定される。そして、特定した代表値が基準値よりも大きければジッタバッファ30からパケットが削除される。そのため、パケットカウント値の過去の履歴からジッタバッファ30の蓄積パケット数が基準値と比べて大きい傾向にあり、出力遅延が生じる場合は、ジッタバッファ30からパケットが削除されるため、出力遅延が低減される。一方、パケットカウント値の過去の履歴からジッタバッファ30の蓄積パケット数が基準値に比べて小さい傾向にあり、パケットの枯渇が発生する可能性が高い場合は、ジッタバッファ30にパケットが挿入されるため、パケットの枯渇を防止することができる。
次に、揺らぎ吸収処理におけるパケットカウント値の別の算出方法について説明する。ここで、受信時刻記録部33には、最新のパケットの受信時刻のみが記録される。
カウント部31は、最新のパケットについては、カウント値を、算出時刻Tkと最新のパケットの受信時刻との差分ΔT/Taにより得られる値に設定し、それ以外のパケットはカウント値を1に設定してパケットカウント値を算出する。
図27に示すように、カウント部31は、ジッタバッファ30において、算出時刻Tkから、過去、パケット化周期Ta内に受信されたパケットが蓄積されている場合、パケット化周期Ta内に受信されたパケットの中から受信時刻が最新のパケットPSを特定し、最新のパケットPSのカウント値をΔT/Taに設定する。一方、カウント部31は、ジッタバッファ30に蓄積されたパケットのうち、最新のパケットPS以外のパケットPL1,PL2については、カウント値を一律に1に設定する。この場合、カウント部31は、算出時刻Tkから、過去、パケット化周期Ta内に受信されたパケットであって、最新のパケットPSの受信時刻のみが分かればよいので、パケットカウント値の算出処理が終了した後、受信時刻記録部33に記録されている受信記録を削除する。
上記パケットカウント値の算出処理を、図28のフローチャートを参照して詳細に説明する。図28におけるステップS31,S33,S34,S36は、図24におけるステップS21,S23,S24,S26と同一であるため、説明を省く。図28におけるステップS32では、カウント部31は、ジッタバッファ30において、算出時刻Tkから、過去、パケット化周期Ta内に受信したパケットのうち最新のパケットの受信時刻を特定する。また、カウント部31は、算出時刻Tkから、最新のパケット以外のパケットについては、カウント値を一律に1に設定する(ステップS35)。そして、ステップS37において、カウント部31は、最新のパケットの受信時刻を受信時刻記録部33から削除する。
上述した方法でパケットカウント値を算出すれば、最新のパケットについてのみ、受信時刻を記録しておけばよいため、受信時刻記録部33の容量を更に節約することができる。
ところで、パケット伝送方式による音声伝送においては、伝送路でパケットの滞留が突然起こることによるスパイク性遅延変動(スパイク遅延)により、500msec以上の音切れが発生することがある。したがって、揺らぎ吸収処理部JAにおいて、スパイク遅延の発生の有無を判定し、スパイク遅延が発生している場合は、参照する過去のパケットカウント値のウインドウ幅を短くし、短くしたウインドウ幅内のパケットカウント値から代表値を算出することが好ましい。
そこで、カウント部31は、算出したパケットカウント値を、各パケットカウント値の時系列順序を示すためのインデックスと対応づけて観測履歴保持部37に保持させる。具体的には、観測履歴保持部37は過去N回のパケットカウント値を保持するため、カウント部31は、最新のパケットカウント値のインデックスがN、最古のパケットカウント値のインデックスが1となるように、算出時刻が新しくなるにつれてインデックスが増大するように過去N回のパケットカウント値にインデックスを付す。また、カウント部31は、観測履歴保持部37に保持された過去N回のパケットカウント値に基づいて、スパイク遅延の有無を判定し、スパイク遅延が発生していると判定した場合は、過去N回のパケットカウント値のうち、過去M(M<N)回のパケットカウント値を抽出する。
ここで、カウント部31は、下記のようにしてスパイク遅延の有無を判定する。図29は、スパイク遅延の有無の判定処理を説明するためのグラフである。図29において、縦軸はパケットカウント値を示し、横軸はインデックスを示している。また、N=100としている。
まず、カウント部31は、基準値以下のパケットカウント値を特定する。図29の例では点PP1〜PP6のパケットカウント値が基準値以下となっている。次に、カウント部31は、基準値以下のパケットカウント値のうち、インデックスが最小、つまり最古の点と、インデックスが最大、つまり最新の点とを特定する。図29の例では、カウント部31は、点PP1と点PP6とを特定する。
次に、カウント部31は、最小のインデックスと最大のインデックスとの差分ΔIを求める。そして、カウント部31は、この差分ΔIが予め定められた閾値より小さければ、スパイク遅延が発生したと判定し、この差分ΔIが閾値より大きければスパイク遅延が発生していないと判定する。
図30は、スパイク遅延が発生している場合のパケットカウント値とインデックスとの関係を示すグラフである。図30において縦軸はパケットカウント値を示し、横軸はインデックスを示している。図30の例では、点PP1〜点PP5のパケットカウント値が基準値以下である。そして、点PP1はインデックスが最小であり、点PP5はインデックスが最大である。そして、点PP1のインデックスと点PP5のインデックスとの差分ΔIが閾値より小さい。そのため、カウント部31は、スパイク遅延が発生していると判定する。
そして、カウント部31は、図30に示すように、スパイク遅延が発生していると判定すると、算出時刻Tkから過去M個のパケットカウント値を抽出する。ここで、Mとしては、ΔIに所定の係数β(0<β≦1)を乗じた値(=β・ΔI)を、整数で丸め込んだ値を採用することができる。
そして、バッファサイズ変更部32は、過去M個のパケットカウント値のうち、m番目に小さなパケットカウント値を代表値として算出する。以下、バッファサイズ変更部32は、代表値を基準値と比較して、ジッタバッファ30にパケットを挿入又は削除する。ここで、mとしては、M×αを整数で丸め込んだ値を採用することができる。
このように、スパイク遅延が発生した場合、参照する過去のパケットカウント値のウインドウ幅が狭められてジッタバッファ30にパケットの挿入又は削除が行われる。そのため、稀にしか発生しないスパイク遅延が排除されるようにして、代表値を算出することができる。
また、揺らぎ吸収処理部JAにおいては、0の蓄積パケット数が連続して発生した場合、以下のようにパケットカウント値を算出することが好ましい。
具体的には、カウント部31は、0の蓄積パケット数が連続して発生した場合、0の蓄積パケット数が連続した回数が増大するにつれて絶対値が増大する負の値を前記パケットカウント値として算出する。
図31は、上記カウント部31の処理を説明する図である。図31(a)においては、カウント周期Tbの各区間において、パケットカウント値の算出時刻Tk-4〜Tkの直後にパケットが受信されている。また、出力部36は、各区間において、パケットを受信してから、次のパケットカウント値の算出時刻Tk-4〜Tkが経過するまでに、ジッタバッファ30からパケット(受話音声データ)を読み出している。そのため、各算出時刻Tk-4〜Tkにおいて、ジッタバッファ30における蓄積パケット数は0となっている。そのため、カウント部31は、算出時刻Tk-4〜Tkのそれぞれにおいてパケットカウント値を0と算出してしまう。
一方、図31(b)においては、算出時刻Tk-4の少し前に1つのパケットを受信してから以降、パケットは受信されていない。この場合においても、各算出時刻Tk-3〜Tkにおける蓄積パケット数は0となっているため、カウント部31は、算出時刻Tk-3〜Tkのそれぞれにおいてパケットカウント値を0と算出してしまう。
しかしながら、図31(a)と(b)とでは、幹線L1の状況が大きく異なっている。すなわち、図31(a)においては、パケットは定期的に住戸通話装置Aに到達しており、出力部36は連続して出力することが可能となるが、図31(b)においては、パケットは定期的に住戸通話装置Aに到達していないため、出力部36は連続して出力することができない。
これを区別するため、カウント部31は、下記の処理を行う。つまり、図31(b)に示すように、算出時刻Tk-3で蓄積パケット数が0であり、算出時刻Tk-2でも蓄積パケット数が0となっており、算出時刻Tk-2において、0の蓄積パケット数の連続回数が1回となっている。この場合、カウント部31は、0を算出時刻Tk-2におけるパケットカウント値として算出する。
また、算出時刻Tk-1においては、0の蓄積パケット数の連続回数が2回となっている。そこで、カウント部31は、連続回数である2回から1を差し引いた値に-1を乗じた値である-1を、算出時刻Tk-1におけるパケットカウント値として算出する。算出時刻Tkにおいて、0の蓄積パケット数の連続回数は3であるため、カウント部23は、連続回数である3回から1を差し引いた値に-1を乗じた値である-2を算出時刻Tkにおけるパケットカウント値として算出する。ゆえに、カウント部31は、(連続回数-1)・(-1)をパケットカウント値として算出する。
これにより、図31(a)のように、パケットは定期的に受信できているものの、算出時刻において、蓄積パケット数がたまたま0になっている場合と、図31(b)のように、パケットを定期的に受信できていない場合との差を考慮してパケットカウント値を算出することが可能となる。したがって、図31(b)の場合は、図31(a)の場合よりもジッタバッファ30からパケットが削除され難くなる。
次に、ジッタバッファ30にパケットを挿入又は削除を行う処理を具体的に説明する。バッファサイズ変更部32は、ジッタバッファ30から1つのパケットを削除する場合、音声を含む有効パケットが連続して2つ以上存在すれば、これら連続する有効パケットのうち、中間に位置する連続する2つの有効パケットをオーバーラップ加算して削除する。
図32は、バッファサイズ変更部32がオーバーラップ加算により1つのパケットを削除する処理の説明図であり、(a)は削除前のジッタバッファ30を示し、(b)は削除後のジッタバッファ30を示している。
図32に示すリードポインタRPは、リングバッファ構造を有するジッタバッファ30の開始アドレスを示し、ライトポインタWPは、ジッタバッファ30の終了アドレスを示している。また、図32において、各升は1つのパケットを示しており、升内の数字はパケットの時系列の順序を示している。また、内部が白色の升は無効パケットを示し、内部がグレーの升は有効パケットを示している。
図32(a)の場合、1番目〜2番目の有効パケットの区間ではなく、4番目〜7番目の有効パケットの区間に位置する5番目と6番目との有効パケットが、図32(b)に示すようにオーバーラップ加算により1つのパケットに纏められ、1つのパケットが削除されている。
ここで、図32(a)に示す1番目〜2番目の有効パケットの区間でオーバーラップ加算を行うと、オーバーラップ加算により生成された1つのパケットの次に無効パケットが存在することになるため、パケットロス隠蔽処理を行った場合の音声劣化が大きくなる可能性がある。一方、5番目の有効パケットと6番目の有効パケットとをオーバーラップ加算すると、オーバーラップ加算により生成された1つのパケットの前後のパケットは有効パケットであるため、パケットロス隠蔽処理による音声劣化を小さくすることができる。
つまり、有効パケットが2つ以上連続していれば、オーバーラップ加算により1つのパケットを削除することができるが、有効パケットの連続数が多い区間でオーバーラップ加算した方がパケットロス隠蔽処理を行ったときの音声劣化を少なくすることができる。
よって、ジッタバッファ30において、有効パケットが連続する区間が複数存在する場合、有効パケットの連続数が多い区間の中間の有効パケットを用いてオーバーラップ加算を行うようにしている。
ここで、オーバーラップ加算としては、図32(c)に示すように、三角窓関数RF1,RF2を用いたオーバーラップ加算を採用することができる。具体的には、バッファサイズ変更部32は、5番目のパケットの音声信号に対して、三角窓関数RF1を用いた窓関数処理を行い、6番目のパケットの音声信号に対しては、三角窓関数RF2を用いた窓関数処理を行い、窓関数処理後の両音声信号を加算して1つの音声信号を生成し、これを1つにパケット化することで、オーバーラップ加算を行えばよい。
ここで、三角窓関数RF1としては、時間幅が20msec、最大値が1、最小値が0であり、時間が経過するにつれて値が減少する一次関数を採用することができる。また、三角窓関数RF2としては、時間幅が20msec、最大値が1、最小値が0であり、時間が経過するにつれて値が増大する一次関数を採用することができる。
また、バッファサイズ変更部32は、ジッタバッファ30からパケットを削除する場合、過去に挿入した無効パケットがあれば、当該無効パケットを削除する。
図33は、バッファサイズ変更部32が1つの無効パケットを削除する処理の説明図であり、(a)は削除前のジッタバッファ30を示し、(b)は削除後のジッタバッファ30を示している。
図33(a)においては、3番目と4番目とのパケットが無効パケットである。そのため、バッファサイズ変更部32は、3番目又は4番目のパケットのいずれかを削除することで、1つのパケットを削除する。ここで、ジッタバッファ30に複数の無効パケットが存在する場合は、例えば、ランダムに1つの無効パケットを選択し、選択した無効パケットを削除するようにしてもよい。あるいは、バッファサイズ変更部32は、無効パケットが2つ以上連続して存在する場合は、連続している領域の無効パケットを優先して抽出し、抽出した無効パケットのうち、ランダムに1つの無効パケットを選択して削除するようにしてもよい。
また、バッファサイズ変更部32は、ジッタバッファ30にパケットを挿入する場合、連続する2つの有効パケットが存在すれば、これら2つの有効パケットの間に無効パケットを挿入する。
図34は、バッファサイズ変更部32が1つのパケットを挿入する処理の説明図であり、(a)は挿入前のジッタバッファ30を示し、(b)は挿入後のジッタバッファ30を示している。
図34(a)、(b)に示すように、5番目の有効パケットと6番目の有効パケットとの間に1つの無効パケットが挿入されている。これは、5番目の有効パケットと6番目の有効パケットとの間に1つの無効パケットを挿入するのが、連続する有効パケットの個数がより多くなるためである。
例えば、1番目の有効パケットと2番目の有効パケットとの間に無効パケットを挿入したとしても、挿入した無効パケットの前後に有効パケットが存在するため、パケット隠蔽処理を行うことは可能である。
しかしながら、2番目の有効パケットの前後が無効パケットとなってしまうため、有効パケットの連続数が小さくなってしまう。一方、5番目の有効パケットと6番目の有効パケットとの間に、無効パケットを挿入すると、全ての有効パケットが連続することになる。ここで、パケットロス隠蔽処理を行う場合、有効パケットの連続数が多い方が音声劣化を小さくすることができる。そこで、バッファサイズ変更部32は、ジッタバッファ30において有効パケットが連続する区間が複数存在する場合、有効パケットの連続数が多い区間の中間に無効パケットを挿入している。
また、バッファサイズ変更部32は、一度に挿入又は削除することができるパケット数の上限値が予め定められている。
図35は、ジッタバッファ30に5つのパケットを一度に挿入する場合の処理を説明するための図であり、(a)は挿入前のジッタバッファ30を示し、(b)は挿入後のジッタバッファ30を示している。図35(a)、(b)においては、1番目の有効パケットと2番目の有効パケットとの間に5つの無効パケットが挿入されている。この場合、無効パケットが連続して存在しているため、音声劣化が増大する虞がある。そこで、無効パケットの挿入個数に上限値が設けられている。ここで、「一度に」とは、上述したカウント周期Tbが到達した時に実行される1回の処理を指している。
例えば、図35(a)において、上限値=3に設定されていたとすると、5つの無効パケットを挿入する必要がある場合であっても、3個の無効パケットしか挿入されなくなる。
これにより、無効パケットの連続数が一定個数以上になることが防止され、パケットロス隠蔽処理による音声劣化を小さくすることができる。
また、バッファサイズ変更部32は、無効パケットを削除した場合において、削除した無効パケットに対応する有効パケットを後から受信した場合、削除した無効パケットの他に無効パケットが存在すれば、他の無効パケットと受信した有効パケットとを入れ換える。
図36は、無効パケットを削除した後に、削除した無効パケットに対応する有効パケットを受信した場合の処理を説明する図であり、(a)は削除前のジッタバッファ30を示し、(b)は削除後のジッタバッファ30を示し、(c)は入れ換え後のジッタバッファ30を示している。
図36(a)、(b)に示すように3番目の無効パケットが削除されている。その後、図36(c)に示すように3番目の無効パケットに対応する3番目の有効パケットが受信されている。
この場合、バッファサイズ変更部32は、3番目の無効パケットの次の4番目のパケットが無効パケットであるため、この4番目の無効パケットを受信した3番目の有効パケットに入れ換える。これにより、3番目の有効パケットを復活させることができ、音声劣化を低減させることができる。
ここで、バッファサイズ変更部32は、ジッタバッファ30にパケットが蓄積されると蓄積されたパケットに対応する無効パケットがジッタバッファ30に蓄積されているか否かを判定する。そして、バッファサイズ変更部32は、対応する無効パケットがジッタバッファ30に蓄積されている場合は、当該無効パケットの次に無効パケットが格納されているか否かを判定し、無効パケットが格納されている場合は、次の無効パケットを削除し、削除した箇所に受信した有効パケットを挿入することで、次の無効パケットと受信した有効パケットとを入れ換えればよい。
一方、バッファサイズ変更部32は、ジッタバッファ30に蓄積されたパケットに対応する無効パケットがジッタバッファ30に蓄積されていない場合、あるいは、対応する無効パケットの次に無効パケットが格納されていない場合、上記の入れ換えを行わない。なお、バッファサイズ変更部32は、無効パケットのシーケンス番号と同じシーケンス番号を有するパケットがジッタバッファ30に蓄積された場合、無効パケットに対応する有効パケットが受信されたと判断すればよい。
また、バッファサイズ変更部32は、連続する2つの有効パケットの間にパケットを挿入する場合、隠蔽処理部35に対して、前に位置する有効パケットを用いてパケットロス隠蔽処理を実行させ、隠蔽処理されたパケットを生成させ、このパケットをジッタバッファ30に挿入するようにしてもよい。
図37は、バッファサイズ変更部32が無効パケットに代えて隠蔽処理されたパケットをジッタバッファ30に挿入させる場合の処理を説明する図であり、(a)は挿入前のジッタバッファ30を示し、(b)は挿入後のジッタバッファ30を示している。
図37(a)、(b)に示すように、3番目の有効パケットと4番目の有効パケットとの間に隠蔽処理されたパケットが挿入されている。
これにより、出力部36がジッタバッファ30からパケット(音声データ)を読み出す際に、パケットロス隠蔽処理を実行する必要がなくなり、出力時におけるパケットロス隠蔽処理の処理遅延を低減することができる。
なお、バッファサイズ変更部32は、無効パケットを挿入する場合、母音の音声を含む連続する2つのパケットの間に、無効パケットを挿入することが好ましい。これにより、挿入した無効パケットに対してパケットロス隠蔽処理を実行することで生成された音声が、前後のパケットに含まれる音声と連続的に繋げられ、音声劣化を低減させることができる。
図38は、バッファサイズ変更部32による削除処理を示したフローチャートである。
まず、ステップS51において、バッファサイズ変更部32は、パケットの削除要求数が予め定められたパケット最大削除数(上限値)以下であるか否かを判定し、削除要求数が上限値以下である場合(ステップS51でYES)、削除カウント値DNを削除要求数に設定する(ステップS52)。一方、削除要求数が上限値より大きい場合(ステップS51でNO)、削除カウント値DNを上限値に設定する(ステップS53)。
次に、バッファサイズ変更部32は、ジッタバッファ30において、連続する有効パケットの最大連続数が2以上の場合(ステップS54で2以上)、最大連続数が削除カウント値DNの2倍以上であるか否かを判定する(ステップS55)。ここで、最大連続数が削除カウント値DNの2倍であるか否かを判定するのは、1つのパケットを削除する場合は、2つのパケットがオーバーラップ加算されるため、有効パケットが削除カウント値DNの2倍必要になるからである。
そして、バッファサイズ変更部32は、最大連続数が削除カウント値DNの2倍以上であると判定すると(ステップS55でYES)、オーバーラップ加算により削除カウント値DN分のパケットを削除し、削除カウント値DNから削除したパケット数を減じ、削除カウント値DNを更新する(ステップS58)。
一方、ステップS55において、最大連続数が削除カウント値DNの2倍未満である場合(ステップS55でNO)、バッファサイズ変更部32は、削除可能なパケットをオーバーラップ加算によって削除し、削除カウント値DNから削除したパケット数を減じ、削除カウント値DNを更新し(ステップS56)、処理をステップS54に戻す。
例えば、最大連続数が7、削除カウント値DN(=4)×2が8の場合、連続する7個の有効パケットのうち、6個の有効パケットを2個ずつオーバーラップ加算して、3個のパケットを削除する。そして、削除カウント値DNを、DN=1(=4-3)に更新する。
一方、ステップS54において、連続する有効パケットの最大連続数が1以下である場合(ステップS54で1以下)、無効パケットを削除し、削除カウント値DNから削除したパケット数を減じ、削除カウント値DNを更新する(ステップS57)。
例えば、削除カウント値DNが4、無効パケットの個数が3とすると、3個の無効パケットが削除され、DN=1(=4-3)に更新される。
ステップS59において、バッファサイズ変更部32は、削除カウント値DNが0となったか否かを判定し、削除カウント値DNが0である場合(ステップS59でYES)、処理を終了する。
一方、ステップS59において、バッファサイズ変更部32は、削除カウント値DNが0になっていない場合(ステップS59でNO)、有効パケットがあれば(ステップS60でYES)、有効パケットを削除して処理を終了する(ステップS61)。この場合、削除される有効パケットは他の有効パケットと連続していないため、オーバーラップ加算によらず、単純に削除される。一方、有効パケットが無ければ(ステップS60でNO)、そのまま処理が終了される。
図39は、バッファサイズ変更部32による挿入処理を示したフローチャートである。
まず、ステップS71において、バッファサイズ変更部32は、パケットの挿入要求数が予め定められたパケット最大挿入数(上限値)以下であるか否かを判定し、削除要求数が最大挿入数以下である場合(ステップS71でYES)、挿入数を挿入要求数に設定する(ステップS72)。一方、挿入要求数が最大挿入数より大きい場合(ステップS71でNO)、挿入数を最大挿入数に設定する(ステップS73)。
次に、バッファサイズ変更部32は、ジッタバッファ30において、連続する有効パケットの最大連続数が0の場合(ステップS74で0)、ジッタバッファ30の先頭から挿入数分の無効パケットを挿入し(ステップS75)、処理を終了する。
また、バッファサイズ変更部32は、ジッタバッファ30において、連続する有効パケットの最大連続数が2以上の場合(ステップS74で2以上)、連続する有効パケットの区間の真ん中に挿入数分、無効パケットを挿入し(ステップS76)、処理を終了する。
また、バッファサイズ変更部32は、ジッタバッファ30において、連続する有効パケットの最大連続数が1の場合(ステップS74で1)、有効パケットの直後に挿入数分、無効パケットを挿入し(ステップS77)、処理を終了する。
このように、ジッタバッファ30から1つのパケットを削除する場合、有効パケットが2つ以上連続する区間の真ん中に位置する2つのパケットをオーバーラップ加算して1つのパケットを生成することにより1つのパケットを削除しているため、音声の品質劣化を低減させることができる。
また、ジッタバッファ30にパケットを挿入する場合、連続する2つの有効パケットが存在すれば、これら2つの有効パケットの間に無効パケットが挿入されるため、無効パケットは、2つの有効パケットの間に挟まれることになり、この無効パケットに対してパケットロス隠蔽処理を実行した場合、前後の有効パケットから無効パケットが隠蔽でき、音声の連続性が保たれ、音声を滑らかに再生することができる。
なお、揺らぎ吸収処理部JAの隠蔽処理部35が行うパケットロス隠蔽処理は、上述した音声データ欠落補償処理部VCによる音声データ欠落補償処理で代用することができる。
(実施形態3)
実施形態1,2における集合住宅用インターホンシステムは、ディジタル変調された音声情報(音声データ)、映像情報(映像データ)、制御情報(制御データ)をパケット伝送するものであった。これに対して本実施形態における集合住宅用インターホンシステムは、アナログの音声信号(音響信号)、映像信号、制御信号を適宜アナログ変調(例えば、周波数変調)して伝送する点に特徴がある。
本実施形態における集合住宅用インターホンシステムのシステム構成は実施形態1とほぼ共通である(図2参照)。ただし、本実施形態における幹線制御装置は実施形態1における幹線制御装置Bと異なり、幹線L1を複数系統に分配するためのものである。なお、アナログ伝送方式の集合住宅用インターホンシステムについては従来周知であるから、システム構成の詳細な説明及び図示は省略する。
図40は本実施形態の外線転送装置Eを示している。ただし、図9に示した実施形態1の外線転送装置Eと共通の構成要素には同一の符号を付して説明を省略する。本実施形態の外線転送装置Eは、パケット伝送のための伝送処理部2に代えて、エコーキャンセラ100、D/A変換器105、受話アンプ106、2線4線変換部107、送話アンプ108、A/D変換器109を備えている。エコーキャンセラ100は適応フィルタ101と減算器102からなる従来周知の構成を有し、伝送路(幹線L1,住戸別線L2,信号線L4)を介して生じる回線エコーを抑圧する。
而して、アナログ伝送方式の集合住宅用インターホンシステムにおいても、外線転送装置Eの自動音量補正部1が自動的に音量を補正するので、外部通話装置の種類(固定電話機や携帯電話機)や製造元(メーカ)あるいは機種による通話音声の音量のばらつきを抑えることができる。
ところで、従来の集合住宅用インターホンシステムには、一部又は全部の住戸通話装置Aに対して一斉に音声を放送する一斉放送装置を備えたものがあった。本実施形態の集合住宅用インターホンシステムにおいても、管理室通話装置C又は外部通話装置Fから一部又は全部の住戸通話装置Aに対して一斉放送を行うことが可能である。なお、外部通話装置Fから一斉放送が行われる場合、システム内においては外線転送装置Eから一部又は全部の住戸通話装置Aに対して一斉放送が行われることになる。
ここで、集合住宅の規模によっては外線転送装置Eから各住戸通話装置Aまでの伝送路の配線長が数百メートルから数キロメートルにも及ぶ場合がある。また住戸通話装置Aの接続台数も集合住宅の規模によって異なるため、配線並びに住戸通話装置A等のインピーダンスに起因した伝送路の伝送ロスが悪化して住戸通話装置Aにおける一斉放送の音量が低下してしまい、住戸通話装置A間に音量のばらつきが生じる虞がある。なお、音量の低下に対しては一斉放送用の音響信号を増幅することで対処可能であるが、個々の住戸通話装置A間における音量のばらつきを抑えることはできない。ここで、「伝送ロス」とは、伝送系の2地点間(外線転送装置Eと各住戸通話装置Aの間)において、送信信号に対する受信信号の振幅や位相の変化及びその変化量と定義される。
これに対して本出願人は、伝送路の伝送ロスを推定するとともに推定した伝送ロスを補償して一斉放送の音量が所定範囲の値となるように補正する音量補正手段を各住戸通話装置Aに備えた集合住宅用インターホンシステムを既に提案している(例えば、特開2006-270877号公報参照)。故に、本実施形態における集合住宅用インターホンシステムにも当該技術を適用し、複数の住戸通話装置A間における一斉放送の音量のばらつきを抑えることが望ましい。
そこで本実施形態の外線転送装置Eには、図40に示すようにトレーニング信号生成部120、第1切換部104、第2切換部110、可変利得アンプ103、一斉放送用アンプ111が設けられている。トレーニング信号生成部120は、単一周波数のトーン信号からなるトレーニング信号を生成して出力する。第1切換部104は、D/A変換器105の入力端をエコーキャンセラ100及び自動音量補正部1に接続する状態とトレーニング信号生成部120に接続する状態とに択一的に切り換える。第2切換部110は、D/A変換器105の出力端を受話アンプ106に接続する状態と一斉放送用アンプ111に接続する状態とに択一的に切り換える。そして、トレーニング信号生成部120から出力されるトレーニング信号は、第1切換部104からD/A変換器105及び第2切換部110を経て一斉放送用アンプ111で増幅された後に伝送路を介して各住戸通話装置Aに伝送される。
一方、各住戸通話装置Aは、伝送路を介して受信したトレーニング信号に基づいて外線転送装置Eから住戸通話装置Aに至るまでの伝送路の伝送ロスを推定する伝送ロス推定手段と、一斉放送用の音響信号に対して伝送ロス推定手段で推定した伝送ロスを補償する伝送ロス補償手段とを備える。ただし、伝送ロス推定手段並びに伝送ロス補償手段の詳細な構成並びに動作については、既に周知であるから省略する(例えば、特開2006-270877号公報等参照)。
次に、本実施形態において外部通話装置Fより外線転送装置Eを介して複数台の住戸通話装置Aに対して一斉放送を行う際の外線転送装置Eの動作を説明する。まず、外部通話装置Fより外線転送装置Eの外線番号(電話番号)に発呼されて電話線Lxが閉結された後、外部通話装置Fから外線転送装置Eに特定のPB信号(一斉放送の開始を通知するための信号)が伝送される。当該PB信号を受け取った外線転送装置Eでは、伝送路を介して各住戸通話装置Aに一斉放送の開始を通知するための制御信号が送信され、第1切換部104がトレーニング信号生成部120の側へ切り換えられるとともに第2切換部110が一斉放送用アンプ111の側に切り換えられる。その後、トレーニング信号生成部120からトレーニング信号が出力され、当該トレーニング信号が第1切換部104、D/A変換器105、第2切換部110、一斉放送用アンプ111を介して伝送路に送出される。このとき、伝送路に対して不要な通話ノイズが出力されないように、受話アンプ106がミュート(停止)されていることが望ましい。
外線転送装置Eから送信された制御信号には一斉放送開始コマンドが含まれており、当該一斉放送開始コマンドが一斉放送の対象である全ての住戸通話装置Aで受信される。各住戸通話装置Aでは一斉放送開始コマンドに応じて一斉放送開始のための準備を行う。すなわち、外線転送装置Eから送信されるトレーニング信号に基づいて、伝送ロス推定手段が外線転送装置Eから住戸通話装置Aに至るまでの伝送路の伝送ロスを推定する。そして、伝送ロス補償手段が、伝送ロス推定手段で推定された伝送ロスを補償するために必要な補正量(利得)を演算し、当該補正量を図示しない受話アンプのゲインに設定する。
外線転送装置Eでは、送信開始から所定時間経過後にトレーニング信号生成部120によるトレーニング信号の生成(出力)が停止される。さらに、第1切換部104がトレーニング信号生成部120からエコーキャンセラ100の側へ切り換えられる。そして、外部通話装置Fから伝送されてくる一斉放送の音響信号(一斉放送用音響信号)が伝送路を介して各住戸通話装置Aに転送される。このとき、外線転送装置EではA/D変換器109からD/A変換器7に至る経路に挿入されている可変利得アンプ103の利得がゼロに設定されて、外部通話装置Fには音響信号が送信されないようになっている。あるいは、送話アンプ108がミュートされ、且つエコーキャンセラ100において適応フィルタ101からの出力信号が強制的にゼロにされてもよい。このような処理により、外部通話装置Fの話者(一斉放送を行う者)に対して不快なエコーや通話ノイズが伝送されることが防止できる。
そして、外線転送装置Eから伝送路を介して伝送される一斉放送用音響信号は、各住戸通話装置Aの伝送ロス補償手段で伝送ロスが補償されるため、住戸通話装置Aのスピーカから適切な音量で一斉放送の音声が鳴動されることになる。
なお、外部通話装置Fでオンフックされて電話線Lxが開放されると、外線転送装置Eでは、一斉放送の終了を指示する制御信号(一斉放送終了コマンド)が各住戸通話装置Aに伝送される。その後、第1切換部104がエコーキャンセラ100の側へ切り換えられるとともに第2切換部110が受話アンプ106の側へ切り換えられる。
上述のように本実施形態によれば、外部通話装置Fから外線転送装置Eを介して一斉放送が行われる場合においても、複数の住戸通話装置A間における一斉放送の音量のばらつきを抑えることができる。