しかしながら、上述の各従来の音声データ補間装置では、20msec程度までの短い遅延による遮断について、通話から音切れが目立たないように隠蔽することが可能であるが、スパイク遅延のように400msec以上の長い遅延が通話中に発生した場合には、少なくとも1音以上の音韻がこの間に含まれるので、前後の音声パケットからの波形補間が困難であり、遅延による遮断を隠蔽できず、また、会話の内容が正確に伝達されないとい問題が生じていた。
例えば、「わたしは、あした、しんじゅくえきでまっています。」という会話において、「しん」と「じゅく」を連続して伝える音声パケットの間で、スパイク遅延により「じゅく」を伝える音声パケットが400msec以上遅延したとして、遅れて受信される音声パケットを破棄すると、「わたしは、あした、しん−−えきでまっています。」と再生され、また、遅れて受信される音声パケットを破棄しない処理を行ったとしても、「わたしは、あした、しん−−じゅくえきでまっています。」と再生され、いずれの場合にも遅延による遮断が目立つばかりでなく、「しんじゅくえき」という伝達内容が分断され、会話内容が正確に伝達されなかった。
本発明は、このような従来の問題点を考慮してなされたものであり、400msec以上のスパイク遅延が会話中に発生しても、遅延による音切れを隠蔽し、会話内容を正確に伝達できる音声データ補間装置と音声データ補間方法を提供することを目的とする。
上述の目的を達成するため、請求項1の音声データ補間装置は、送信装置により送信順にパケットシーケンス番号が付与された音声パケットをネットワークを介して受信するネットワーク接続部と、ネットワーク接続部で受信した音声パケットをパケットシーケンス番号から送信順に一時記憶するプレイアウトバッファーと、プレイアウトバッファーの先頭に記憶される音声パケットを読み出し、音声データにデコードする音声復号化回路と、音声復号化回路から出力される音声データが音声を含む場合の特徴を数値化した特徴量を、所定の閾値と比較し、有音声の音声データを判定する有音声判定部と、有音声の音声データが連続する期間から、会話期間と推定するトークスパート期間を判定するトークスパート検出部と、トークスパート検出部でトークスパート期間の開始を検出する毎にリセットされ、新たに音声復号化回路から出力されるトークスパート期間の音声データを連続して一時記憶するトークスパート保持バッファーと、音声データから音声を再生する音声再生部と、音声復号化回路の出力と、トークスパート保持バッファーの出力を、選択的に音声再生部の入力へ切り替える切り替え制御部と、プレイアウトバッファーでの音声パケットの記憶状態から、ネットワーク障害による音声パケットのスパイク遅延を検出する遅延検出部とを備え、
トークスパート期間中に遅延検出部でスパイク遅延を検出した際に、スパイク遅延により遅れて受信される音声パケットが音声データにデコードされ音声再生部へ出力される前に、切り替え制御部は、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声データが出力される間、音声復号化回路の出力に切り替えられている音声再生部の入力を、トークスパート保持バッファーの出力へ切り替え、音声再生部で、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声データに連続して、スパイク遅延により遅れて受信される音声パケットの音声データから、音声を再生することを特徴とする。
遅延検出部でトークスパート期間中のスパイク遅延を検出した際に、トークスパート保持バッファーには、スパイク遅延が発生するまでのトークスパート期間のデコードした音声データが記憶されている。スパイク遅延により遅れて受信される音声パケットが音声データにデコードされ音声再生部へ出力される前に、音声再生部の入力を、トークスパート保持バッファーの出力へ切り替えることにより、遅延により分断される前のトークスパート期間の音声データと、分断された後のトークスパート期間の音声データが一つのトークスパート期間中の連続した音声として再生される。
トークスパート期間は、無音部分で区切られた会話期間の単位と推定されるので、少なくとも単語の単位より長い会話期間で音声が連続再生される。
請求項2の音声データ補間装置は、切り替え制御部は、スパイク遅延による遅延予想時間が経過する時に、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声データが全て出力されるように、音声復号化回路の出力と、トークスパート保持バッファーの出力を、音声再生部の入力へ切り替えることを特徴とする。
スパイク遅延による遅延時間は、ネットワーク環境によりある程度予想可能な一定時間である。従って、遅延予想時間が経過する時に、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声データを全て出力すれば、その後、スパイク遅延により遅れて受信される音声パケットの音声データが出力され、連続した音声として再生される。
請求項3の音声データ補間装置は、切り替え制御部が、スパイク遅延により遅れて受信される音声パケットが、プレイアウトバッファーに一時記憶されることを条件に、音声復号化回路の出力に切り替えられている音声再生部の入力を、トークスパート保持バッファーの出力へ切り替え、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声データが全て音声再生部へ出力された後、トークスパート保持バッファーの出力に切り替えられている音声再生部の入力を、音声復号化回路の出力に切り替え、プレイアウトバッファーに一時記憶されている音声パケットからデコードされた音声データが、音声再生部へ出力されることを特徴とする。
スパイク遅延による遅延時間が予想できない場合であっても、遅れて受信される音声パケットがプレイアウトバッファーに一時記憶されることを条件に、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声データを出力するので、確実にその後にスパイク遅延により遅れて受信される音声パケットの音声データを出力することができ、連続した音声として再生できる。
請求項4の音声データ補間装置は、送信装置により送信順にパケットシーケンス番号が付与された音声パケットをネットワークを介して受信するネットワーク接続部と、ネットワーク接続部で受信した音声パケットをパケットシーケンス番号から送信順に一時記憶するプレイアウトバッファーと、音声パケットを音声データにデコードする音声復号化回路と、音声復号化回路から出力される音声データが音声を含む場合の特徴を数値化した特徴量を、所定の閾値と比較し、有音声の音声データを判定する有音声判定部と、有音声の音声データが連続する期間から、会話期間と推定するトークスパート期間を判定するトークスパート検出部と、音声復号化回路から出力される音声データより音声を再生する音声再生部と、トークスパート検出部でトークスパート期間の開始を検出する毎にリセットされ、新たにプレイアウトバッファーの先頭から読み出されるトークスパート期間の音声パケットを連続して一時記憶するトークスパート保持バッファーと、プレイアウトバッファーの出力と、トークスパート保持バッファーの出力を、選択的に音声復号化回路の入力へ切り替える切り替え制御部と、プレイアウトバッファーでの音声パケットの記憶状態から、ネットワーク障害による音声パケットのスパイク遅延を検出する遅延検出部とを備え、
トークスパート期間中に遅延検出部でスパイク遅延を検出した際に、スパイク遅延により遅れて受信される音声パケットが音声復号化回路へ出力される前に、切り替え制御部は、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声パケットが出力される間、プレイアウトバッファーの出力に切り替えられている音声復号化回路の入力を、トークスパート保持バッファーの出力へ切り替え、音声復号化回路で、トークスパート保持バッファーから出力されるトークスパート期間の音声パケットに連続して、スパイク遅延により遅れて受信される音声パケットを音声データにデコードし、音声再生部で音声データから音声を再生することを特徴とする。
遅延検出部でトークスパート期間中のスパイク遅延を検出した際に、トークスパート保持バッファーには、スパイク遅延が発生するまでのトークスパート期間の音声パケットが記憶されている。スパイク遅延により遅れて受信される音声パケットが音声復号化回路へ出力される前に、音声復号化回路の入力を、トークスパート保持バッファーの出力へ切り替えることにより、遅延により分断される前のトークスパート期間の音声データと、分断された後のトークスパート期間の音声データが一つのトークスパート期間中の連続した音声として再生される。
トークスパート期間は、無音部分で区切られた会話期間の単位と推定されるので、少なくとも単語の単位より長い会話期間で音声が連続再生される。
請求項5の音声データ補間装置は、切り替え制御部が、スパイク遅延による遅延予想時間が経過する時に、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声パケットが全て出力されるように、プレイアウトバッファーの出力と、トークスパート保持バッファーの出力を、音声復号化回路の入力へ切り替えることを特徴とする。
スパイク遅延による遅延時間は、ネットワーク環境によりある程度予想可能な一定時間である。従って、遅延予想時間が経過する時に、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声パケットを全て出力すれば、その後、スパイク遅延により遅れて受信される音声パケットが出力され、連続した音声として再生される。
請求項6の音声データ補間装置は、切り替え制御部は、スパイク遅延により遅れて受信される音声パケットが、プレイアウトバッファーに一時記憶されることを条件に、プレイアウトバッファーの出力に切り替えられている音声復号化回路の入力を、トークスパート保持バッファーの出力へ切り替え、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声バケットを全て音声復号化回路でデコードした後、トークスパート保持バッファーの出力に切り替えられている音声復号化回路の入力を、プレイアウトバッファーの出力に切り替え、プレイアウトバッファーに一時記憶されている音声パケットを音声復号化回路でデコードすることを特徴とする。
スパイク遅延による遅延時間が予想できない場合であっても、遅れて受信される音声パケットがプレイアウトバッファーに一時記憶されることを条件に、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声パケットを出力するので、確実にその後にスパイク遅延により遅れて受信される音声パケットを出力することができ、連続した音声として再生できる。
請求項7の音声データ補間方法は、ネットワークから受信する音声パケットを送信装置の送信順に音声データにデコードし、デコードした音声データから音声を再生するとともに、有音声を含む音声データが連続する期間から、会話期間と推定するトークスパート期間を判定し、トークスパート期間の開始から、新たにトークスパート期間中に受信される音声パケット若しくは音声パケットからデコードされる音声データを連続してトークスパート保持バッファーに一時記憶し、トークスパート期間の開始毎にリセットして一時記憶を繰り返し、音声パケットのスパイク遅延がトークスパート期間中に発生した際に、トークスパート保持バッフアーに一時記憶したトークスパート期間の音声パケット若しくは音声データから音声を再生した後、スパイク遅延により遅れて受信される音声パケットの音声データから音声を連続して再生することを特徴とする。
音声パケットのスパイク遅延がトークスパート期間中に発生した際に、トークスパート保持バッファーには、スパイク遅延が発生するまでのトークスパート期間の音声パケット若しくは音声パケットからデコードされる音声データが記憶されている。スパイク遅延により遅れて受信される音声パケットの音声データから音声を再生する直前に、トークスパート保持バッファーに一時記憶されている音声パケット若しくは音声データから音声を再生すれば、両者が連続して再生される。
トークスパート期間は、有音声が連続する会話期間の単位と推定されるので、スパイク遅延によりトークスパート期間の再生が分断されたとしても、分断される前後のトークスパート期間の音声が連続し、少なくとも単語の単位より長い会話期間で音声が連続して再生される。
請求項8の音声データ補間方法は、スパイク遅延後に受信れさる音声パケットを送信装置の送信順に話速変換を行って再生し、スパイク遅延を解消することを特徴とする。
話速変換は、通話中の無音期間を短縮させ、若しくは音声の再生速度を目立たない程度に増して遅延を吸収するので、通話者が気付かないように通話を継続させ、スパイク遅延による遅れを解消される。
請求項9の音声データ補間方法は、トークスパート期間外の無音声期間の音声パケット若しくは音声パケットからデコードされる音声データを一時記憶し、スパイク遅延を検出した後、一時記憶したトークスパート期間の音声パケット若しくは音声データから音声を再生する前に、無音期間の音声パケット若しくは音声データから再生する周囲雑音を再生することを特徴とする。
トークスパート期間を判定する際に、その間の無音声期間から、無音声期間の音声パケット若しくは音声パケットからデコードされる音声データを一時記憶することができる。無音声期間の音声パケット若しくは音声パケットからデコードされる音声データは、通話中の息継ぎや、会話と会話の間から生じるものであるので、通話者の周囲の雑音を含んでいる。従ってこれらの音声パケット若しくは音声データから、通話者の周囲雑音が再生される。
請求項1と請求項4と請求項7の発明によれば、スパイク遅延によりトークスパート期間の音声が分断されても、遅延発生までのトークスパート期間の音声と、遅れて受信される音声パケットから再生されるトークスパート期間の音声が連続して再生され、無音部分で区切られた会話期間の単位で再生される。従って、スパイク遅延が発生しても、会話の一区切り単位で再生され、少なくとも単語の再生中に分断されることはないので、会話内容が正確に伝達される。
スパイク遅延が発生するまでのトークスパート期間の音声は、一度再生された後スパイク遅延により中断し、遅れて受信される音声パケットの音声を再生する前に、トークスパート保持バッファーから出力されることにより再びトークスパート期間の先頭から再生されるが、400msec乃至1secのスパイク遅延時間内に繰り返して再生される音声は、会話中に言い直したように聞こえる。言い直しは、日常会話で頻繁に起こることであり、人間の耳にはこれに慣れているため、自然の会話として認識され、スパイク遅延による音切れが生じたことが隠蔽される。
請求項2と請求項5の発明によれば、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声パケット若しくは音声データは、スパイク遅延による遅延時間中に音声として再生されるので、繰り返し再生のために再生時間に遅れが発生することがなく、また、遅延時間中に音声が途切れる時間が短縮される。
請求項3と請求項6の発明によれば、スパイク遅延により遅れる音声パケットが受信されない場合であっても、トークスパート保持バッファーに一時記憶されるトークスパート期間の音声パケット若しくは音声データの音声のみが繰り返して再生されることがなく、確実にトークスパート期間で連続する音声を再生できる。
請求項8の発明によれば、スパイク遅延が発生した際に、通話者には、単に会話中の言い直しと聞こえ、その後は話速変換によって遅延が通話者に気付かないように解消されるので、スパイク遅延による障害を通話者に全く気付かせることなく、自然な会話中に障害を解消させることができる。
請求項9の発明によれば、有音声を含む音声パケットの特徴から生成する補間信号や無音信号から再生する再生音が人為的な音であるのに対し、無音声期間の音声パケット若しくは音声パケットからデコードされる音声データから再生される周囲雑音は、あたかも通話相手が息継ぎを行ったり、会話と会話に間をもたせて話しているように聞こえる。従って、トークスパート保持バッファーから音声を再生する前のスパイク遅延によって生じる音切れ期間に、無音声期間の音声パケット若しくは音声データから周囲雑音を再生することにより、通話者に気付かれることなく、音切れを解消できる。
以下、本発明に係る音声データ補間装置1と音声データ補間方法を、図1乃至図11を用いて説明する。図1は、音声データ補間装置1のブロック図であり、IPネットワーク(インターネットプロトコルにより通信を行う通信網)を介して双方向の通話を行う機能のうち、主として相手側の音声を再生する受話機能に関する構成を示している。
音声データ補間装置1は、LANインターフェース部を有するネットワーク接続部2において、ここではインターネットであるIPネットワーク3に接続し、図示しない送信装置側で、音声を音声コーデックエンコーダにより圧縮し、ある通話時間分(例えば10msec乃至80msec)の音声データを1塊とした音声パケットを、インターネット3を介して受信可能としている。
送信装置は、音声パケットの送信元である送信装置のIPアドレスと送信先である音声データ補間装置1のIPアドレスと音声パケットの送信順を表すパケットシーケンス番号を含めたIPヘッダーを音声パケットに付けてインターネット3に送出し、インターネット3の各ルーターは、この送信先のIPアドレスをもとに音声パケットをネットワーク接続部2まで転送する。
ネットワーク接続部2で受信した音声パケットは、IPアドレスが分離された後に、その出力側に接続されたプレイアウトバッファー4に入力される。プレイアウトバッファー4は、基本的にはFIFO構造となっており、ネットワーク接続部2から先に入力された音声パケットが先に出力されるようになっている。従って、通常はパケットシーケンス番号順に出力されることとなるが、ネットワークの状況などでシーケンス番号順に受信されず入れ替わって入力された場合は、それをシーケンス番号順、すなわち送信装置からの送信順にソートする機能も有している。
また、プレイアウトバッファー4の記憶容量、すなわち一時記憶される音声パケット数は、ネットワークのゆらぎ遅延がわずかな時間内であれば、ゆらぎ遅延を吸収する量とすることが好ましいが、最大ゆらぎ遅延の時間まで全ての音声パケットを一時記憶しようとすると、一時記憶する音声パケット数が大きくなり、再生全体の遅延が大きくなってしまうので、ゆらぎ遅延の遅延量変化に一時記憶する音声パケット数を追従させ、一定の割合で遅れて受信される音声パケットを破棄するプレイアウトバッファを用いてもよい。このようなプレイアウトバッファーは、平成11年7月発行の情報処理学会論文誌の「LAN環境における負荷適応制御を用いた低遅延リアルタイム音声通信システム」に掲載されている。
プレイアウトバッファー4の出力側には、音声コーデックデコーダ5が接続されている。音声コーデックデコーダ5は、後述するD/A出力バッファー7に記憶される音声データが枯渇しそうになった時に、プレイアウトバッファー4の先頭に記憶されている音声パケットを読み出してデコードし、その音声パケットに圧縮された実音声時間分の音声データとする。プレイアウトバッファー4からの音声パケットの読み出しは、プレイアウトバッファー4に記憶される音声パケットが枯渇しない限り、D/A出力バッファー7に記憶される音声データが枯渇しそうになる毎に1音声パケット単位で読み出され、直前に読み出された音声パケットからデコードされた音声データに連続する音声データとして、音声コーデックデコーダ5より出力される。
また、プレイアウトバッファー4には、プレイアウトバッファー4の先頭に記憶される音声パケットのパケットシーケンス番号を監視するパケット損失検出部6が接続されている。パケット損失検出部6は、音声コーデックデコーダ5によって読み出された直前の音声パケットのパケットシーケンス番号と、新たに先頭に記憶されるパケットシーケンス番号が送信順に連続してない場合に、欠落したパケットシーケンス番号から損失した音声パケットを、補間制御部8へ通知する。
音声コーデックデコーダ5の出力は、補間波形生成部9と第1切換スイッチ10の第1切換端子10Aに接続される。補間波形生成部9は、音声コーデックデコーダ5から出力される音声データの特徴から、この音声データから再生される音声の波形に連続し、音声の波形に類似する補間波形を生成して、20msec乃至40msec程度までの短い遅延による再生音声の瞬断を補うものである。例えば、補間の直前の音声波形のピッチを検出し、そのピッチと同じピッチを持ち、かつ補間直前の音声波形とスムーズに連続するように位相も合わせた補間波形を生成する。また、後述するように、補間波形の出力後の波形が既知である場合には、その後の波形のピッチと位相に合わせ、補間直後の波形ともスムーズに連続する補間波形を生成する。補間波形生成部9の出力は、補間制御部8によって切換制御される第1切換スイッチ10の第2切換端子10Bに接続し、補間波形の音声データを出力する際には、第1切換スイッチ10のコモン出力端子10Cを第2切換端子10B側へ切り換えて出力するようにしている。
音声データが出力される第1切換スイッチ10のコモン出力端子10Cは、第2切換スイッチ11の第1切換端子11A、音声判定部12、トークスパート保持バッファー13、及び入力スイッチ14を介して周囲雑音保持バッファー15のそれぞれに接続している。
音声判定部12は、音声データが音声を含む場合の特徴を数値化した特徴量で表し、所定の閾値と比較することにより、音声コーデックデコーダ5から出力される音声データが有音声を含むものであるかどうかを判定する。ここでは、無音声に比べて音声を含む場合には信号レベルが上昇すると仮定し、図2に示すように、5msec毎に音声データの信号レベルを、その間の二乗平均値から求めて信号パワーとし、所定値としたスレッシホールドレベルと比較し、スレッシホールドレベル以上である場合に、有音声の音声データと、スレッシホールド未満である場合に、周囲雑音のみの無音声の音声データとしている。
信号パワーは、周囲雑音レベルの増減により変化するので、スレッシホールドレベルも比較する信号パワーの変化に追従させる。ここでは、図3に示すようにスレッシホールドレベルを、5msec毎に求めた信号パワーの最小値に一定値αを足した値とし、信号パワーの最小値が、例えば30msec更新されない場合に(図中t1から30msec経過したt2)最小値を引き上げ、スレッシホールドレベルを信号パワーに追従させて、周囲雑音レベルが増加しても有音声を判定できるようにしている。
音声判定部12の判定結果は、トークスパート検出部20に出力される。トークスパート検出部20は、図4に示すように、音声判定部12で判定した有音声の音声データが連続する期間をトークスパート期間と判定する。しかしながら、有音声の会話中であっても音韻間に瞬間の無音時間(TS)が発生するので、有音声の音声データが連続する期間であっても、最大無音期間(MaxTS)までの無音期間は無視し、トークスパート期間とする。最大無音期間(MaxTS)は100msecを標準とするが、これは通話者の会話の特徴によっても異なるので、一定時間トークスパート検出部20の動作を監視し、例えば、数秒経過してもトークスパートの開始が検知されない場合は、最大無音期間(MaxTS)を短縮する。
従って、トークスパート期間中に無音声の音声データが連続するようになっても、最大無音期間(MaxTS)が経過するまでは直ちにトークスパート期間終了と判定せず、最大無音期間(MaxTS)を越えて無音声の音声データが連続することで、トークスパート期間の終了と判定する。
一方、トークスパート期間以外の期間、すなわち無音声の音声データが連続する期間を無音声期間とするが、この期間内にノイズなどの発生により短い有音時間した場合には、無視せずトークスパート期間の開始と判定する。これは、仮にノイズによって、後述する繰り返しトークスパートの音声データの記憶が開始されても、実際の会話によるトークスパート期間の開始で記憶されたノイズの音声データがリセットされるので問題はなく、逆に、実際の会話によるトークスパート期間開始の判定を、ノイズであるかどうかを判定せずに速やかに行うためである。
トークスパート検出部20は、トークスパート期間の継続期間中、トークスパート期間信号を補間制御部8と入力スイッチ14へ出力するとともに、無音期間からトークスパート期間を判定した際に、トークスパートスタート信号をトークスパート保持バッファー13へ出力する。
トークスパート保持バッファー13は、音声データが出力される第1切換スイッチ10のコモン出力端子10Cに接続するので、音声として再生される音声データを常時記憶している。このトークスパート保持バッファー13に記憶される音声データは、トークスパート検出部20から入力されるトークスパートスタート信号をリセット信号として、トークスパート期間が開始する毎に全て消去される。従って、トークスパート保持バッファー13には、その時点で、再生中のトークスパート期間の開始部分からの音声に相当する音声データ(以下、繰り返しトークスパートの音声データという)が先頭アドレスより順に記憶されていることになる。トークスパート保持バッファー13の出力は、補間制御部8の制御により第1切換端子11Aとの間で切り換えられる第2切換スイッチ11の第2切換端子11Bに接続し、これにより補間制御部8の制御による後述のタイミングで、トークスパート保持バッファー13に記憶される繰り返しトークスパートの音声データがコモン出力端子11Cへ出力される。
入力スイッチ14は、トークスパート検出部20からトークスパート期間信号が入力されない間、すなわち無音期間中、音声データが出力される第1切換スイッチ10のコモン出力端子10Cを周囲雑音保持バッファー15へ接続する。従って、周囲雑音保持バッファー15には、音声として再生される音声データのうち、会話が途切れた間の無音声の音声データが入力される。周囲雑音保持バッファー15は、リングバッファー構造となっていて、記憶されていた最も古い音声データを新たに入力される無音声の音声データに書き換える。会話が途切れたときに聞こえる周囲雑音は、特定言語を伝達する機能を持たず、複雑な波形であるので、自然な雑音に似せた波形を生成することが比較的困難であり、また、長時間再生可能な補間波形を生成することが比較的困難であり、仮にスパイク遅延などで発生する1秒以上の音切れに生成した補間波形を使用とする場合、短周期の補間波形が繰り返して再生され、ブザーのような耳障りな雑音となって再生される。
本実施の形態では、トークスパート期間を検出する過程で、トークスパート期間以外の周囲雑音のみからなる無音声期間も容易に検出できることを利用し、無音声期間の音声データを周囲雑音保持バッファー15へ一時記憶することにより、擬似的な波形を生成することなく、長時間の音切れ期間に周囲雑音を再生して補間し、あたかも相手側通話者の会話が途切れたように、音切れを隠蔽するものである。
周囲雑音保持バッファー15に記憶される無音声期間の音声データは、補間制御部8の制御による後述するタイミングで出力され、出力された音声データは、補間制御部8から所定の増加率若しくは減衰率が乗算処理された後、第2切換スイッチ11のコモン出力端子11Cから出力される音声データに加えられる。
コモン出力端子11Cと周囲雑音保持バッファー15の出力を加算する加算器16と、その出力側のD/A出力バッファー7との間には、両者を直接接続するか、話速高速化部17を経由して接続するかを選択する話速変換スイッチ18が配置される。話速変換スイッチ18の切り換えも補間制御部8により制御され、通常は直接接続に、遅延を解消する必要が生じる後述する期間に話速高速化部17を経由するように切り換えられる。
D/A出力バッファー7は、FIFO構造となっていて、出力側に接続されたD/Aコンバータ19は、D/A出力バッファー7に一時記憶される音声データを入力順に連続して読み出される。音声データは、D/Aコンバータ19において一定サンプリングレートでD/A変換され、図示しないスピーカーなどから音声として再生される。
補間制御部8は、プレイアウトバッファー4に記憶される音声パケットの記憶状況を監視しながら、上述の各回路部の動作を制御するもので、以下、インターネット3に発生する遅延の状況に応じて異なる音声データ補間装置1の作用を、補間制御部8の動作を中心に説明する。以下に説明する各例では、「しんじゅくえきで、まって」という通話相手の会話があり、この会話がパケット0からパケット10までの音声パケットとして、通話相手の送信装置からインターネット3を介して音声データ補間装置1へ送出されたものと仮定する。すなわち、パケット0は、無音声の音声データ、パケット1乃至パケット3は、「しん」の有音声を含む音声データ、パケット4乃至6は、「じゅくえきで」の有音声を含む音声データ、パケット7とパケット8は、「しんじゅくえきで」と「まって」を区切る会話から生じる間である無音声の音声データ、パケット9、パケット10は、「まって」の有音声を含む音声データが、それぞれエンコードされたものとする。
(1)第1例(遅延が発生しない例、図5参照)
始めに、送信装置から送信された音声パケットがインターネット3での遅延がなく正常に受信されたとすると、ネットワーク接続部2を介して受信される音声パケットは、送信装置からの送信順、すなわちパケット0からパケット10にプレイアウトバッファー4に記憶され、順次音声コーデックデコーダ5により音声データにデコードされる。
通常、音声パケットが遅延なく受信されている間、第1切換スイッチ10のコモン出力端子10Cと第2切換スイッチ11のコモン端子11Cは、いずれも第1切換端子10A、11A側に切り換えられ、話速変換スイッチ18は、加算器16とD/A出力バッファー7とを直接接続する側へ切り換えられているので、デコードされた音声データは、そのままD/A出力バッファー7で一時記憶され、D/Aコンバータ19でD/A変換された後、図5に示す音声波形で再生される。以下、プレイアウトバッファー4に記憶される音声パケットが通常音声として再生される出力経路はこの第1例と同一であるので、特に説明しない限り、第1切換スイッチ10、第2切換スイッチ11及び話速変換スイッチ18の切り換え位置は、第1例と同一であるものとしてその説明を省略する。
このとき、第1切換スイッチ10のコモン出力端子10Cから出力される音声コーデックデコーダ5によりデコードされた音声データは、音声判定部12へも入力され、有音声の音声データであるか否かが判定され、その結果がトークスパート検出部20へ出力される。パケット0とパケット7からデコードした音声データは、無音声の音声データであるので、これらの音声データがD/A出力バッファー7へ出力され再生される間は無音声期間であり、トークスパート検出部20からトークスパート期間信号が出力されない。従って、入力スイッチ14が閉じて、コモン出力端子10Cから出力されるパケット0とパケット7からデコードした音声データが、周囲雑音保持バッファー15に記憶される。しかしながら、この例では、比較的長い遅延が発生しないので、周囲雑音保持バッファー15に記憶された音声データは、出力されない。
一方、パケット1乃至パケット6からデコードした音声データは、有音声の音声データであるので、これらの音声データがD/A出力バッファー7へ出力され再生される間、トークスパート検出部20からトークスパート期間信号が補間制御部8へ出力される。また、無音声期間からトークスパート期間と判定された際、つまりパケット1からデコードした音声データが出力される際に、トークスパートスタート信号がトークスパート保持バッファー13へ出力される。トークスパート保持バッファー13は、トークスパートスタート信号が入力されたときにリセットされ、新たにコモン出力端子10Cから出力される音声データの記憶を開始するので、その先頭アドレスから順に「しんじゅくえきで」と再生される音声データが記憶される。しかしながら、トークスパート保持バッファー13に記憶される音声データについても、この例では、比較的長いスパイク遅延が発生しないので、出力されないまま、次のトークスパート期間のパケット9の音声データが出力される際にリセットされる。
(2)第2例(無音声期間に遅延が発生した例、図6参照)
パケット8以下の音声パケットが遅延し、無音声期間であるパケット7とパケット8間に遅延が発生したものとして説明する。音声パケットの遅延は、補間制御部8がプレイアウトバッファー4に記憶される音声パケットの記憶状況を監視して検出するもので、D/A出力バッファー7に記憶される音声データが枯渇しそうになり、プレイアウトバッファー4の先頭に記憶されている音声パケットを読み出そうとしたときに、読み出す音声パケットが記憶されていないことから、遅延の発生を検出する。
パケット0からパケット7までは、第1例と同様に遅延なく音声を再生したものとし、パケット7をデコードした音声データがD/A出力バッファー7から出力される際に、パケット8の受信が遅延するので、プレイアウトバッファー4にはまだ記憶されない。補間制御部8は、遅延を検出すると、検出時にトークスパート検出部20からトークスパート期間信号が入力されているか否かによって、遅延がトークスパート期間中か無音声期間中に発生したものかを判別する。この例では、遅延発生の直前にコモン出力端子10Cから出力された音声データは、パケット7をデコードした無音声の音声データであるので、トークスパート期間信号は出力されず、無音声期間中と判別される。
補間制御部8は、遅延が無音声期間中に発生したものと判別すると、周囲雑音保持バッファー15にこれまでの無音声期間から記憶した無音声の音声データ(例えば、第1例のパケット0とパケット7からデコードした音声データ)を、加算器16へ出力し、パケット7をデコードした音声データに連続させてD/A出力バッファー7へ出力する。このとき話速変換スイッチ18は、加算器16とD/A出力バッファー7を直接接続する側に切り換えられる。周囲雑音保持バッファー15は、リングバッファー構造となっているので、この出力は、プレイアウトバッファ4に遅れて受信されるパケット8が記憶されるまで、繰り返される。従って、遅延による音切れが発生する間に、周囲雑音が繰り返して再生され、しかも周囲雑音が補間されるのは、会話「しんじゅくえきで」と会話「まって」の無音声期間であるので、通話者には会話中の単なる間に聞こえ、比較的長い遅延が発生しても気付かれない。
遅れて受信され、プレイアウトバッファー4に記憶されたパケット8以下の音声パケットは、直ちにパケットシーケンス番号順に音声コーデックデコーダ5で音声データにデコードされ、D/A出力バッファー7へ出力される。このとき、周囲雑音の音声データを再生した時間、再生に遅延が発生しているので、話速変換スイッチ18は、話速高速化部17を経由する側に切り換えられ、遅れたパケット8以下の音声データは、話速高速化部17を経てD/A出力バッファー7へ出力される。話速高速化部17は、入力された音声データを目立たない程度に高速再生されるようにデータ変換するもので、例えば、無音声の音声データであるパケット8をデコードした音声データは、削除され、パケット9以下からデコードした有音声の音声データは、再生時間が圧縮された音声データに変換される。話速変換スイッチ18は、プレイアウトバッファ4に新たに記憶される音声パケットのパケットシーケンス番号から再生の遅延が解消したと判定されるまで、話速高速化部17を経由する側に切り換えられる。
(3)第3例(トークスパート期間に短い遅延が発生した例、図7参照)
パケット4以下の音声パケットが遅延し、トークスパート期間であるパケット3とパケット4間に40msecまでの短い遅延が発生したものとして説明する。パケット0からパケット3まで、第1例と同様に遅延なく音声が再生されるが、パケット3をデコードした音声データがD/A出力バッファー7から出力される際には、パケット4の受信が遅延しているので、プレイアウトバッファー4に記憶されない。従って、遅延発生の直前にコモン出力端子10Cから出力された音声データは、パケット3をデコードした有音声の音声データであるので、トークスパート期間信号が出力され、補間制御部8は、遅延検出時にトークスパート期間信号の入力されていることからトークスパート期間中に遅延が発生したものと判別する。
補間制御部8は、遅延がトークスパート期間中に発生したものと判別すると、始めに第1切換スイッチ10のコモン端子10Cを第1切換端子10Aから第2切換端子10Bへ切り換え、補間波形生成部9で生成された補間波形の音声データを出力する。従って、コモン端子10Cに出力される補間波形の音声データは、直接D/A出力バッファー7に出力され、補間波形の音声で再生される。
補間波形は、前述の通り、直前に音声コーデックデコーダ5から出力される音声データ、すなわちパケット3をデコードした音声データの波形のピッチと位相に連続し、この音声データの波形に類似する波形となるように生成される。通話者が気付かない程度に補間波形で補間する時間には限界があるので、ここでは最大波形補間可能時間(WCT)を40msecとし、補間波形の音声データが再生される時間は、この最大波形補間可能時間(WCT)以内とする。
補間波形の音声データを再生している間、すなわち補間制御部8が遅延を検出してから最大波形補間可能時間(WCT)以内に、遅延していたパケット4が受信され、プレイアウトバッファ4にパケット4を先頭に所定数の音声パケットがバケットシーケンス番号順記憶されると、補間制御部8は、短時間の遅延が解消したものと判断する。短時間の遅延解消と判断した場合には、直ちに遅れて受信された音声パケット4から音声コーデックデコーダ5に読み出して出力することなく、補間波形の音声データが再生される時間に再生されるはずであった音声パケット(この例ではパケット4)をプレイアウトバッファ4から削除し、その後の音声パケット5から読み出す。これは、遅れて受信される音声パケットからそのまま音声を再生すると、補間波形による音声と同様の音声が繰り返して再生され、再生音声が間延びすることと、補間波形の再生時間分再生に遅延が発生している為である。
従って、バケットシーケンス番号順で削除された後のパケット5から、音声コーデックデコーダ5に読み出されて音声データにデコードされる。パケット5からデコードした音声データは、補間波形生成部9で生成し再生中の補間波形の音声データに連続するものとなるため、補間波形の後方は、パケット5の音声波形に近似し、ピッチと位相を連続させた波形とする。これにより、補間波形の音声データからは、前後のパケット3、5の波形から「じゅ」に近似する音韻が再生される。
デコードされたパケット5からの音声データは、第1切換スイッチ10のコモン出力端子10Cを、第1切換端子10Aへ切り換えて、パケットシーケンス番号順にD/A出力バッファー7に一時記憶され、音声として再生される。このとき、バケット4を削除しているので、再生の遅延はなく、従って話速高速化部17は経由させない。このように、トークスパート期間中に遅延が発生しても、その遅延が短い遅延であれば、図7に示すように、「しんじゅくえきで」と本来の通話内容とほぼ同一の会話が再生される。
(4)第4例(トークスパート期間に長い遅延が発生し、スパイク遅延による遅延予想時間(SPT)以内に遅れた音声パケットが受信される例、図8参照)
パケット4以下の音声パケットが遅延し、トークスパート期間であるパケット3とパケット4間に最大波形補間可能時間(WCT)である40msec以上の長い遅延が発生したものとして説明する。遅延を検出してから、最大波形補間可能時間(WCT)まで補間波形生成部9で生成した補間波形の音声データを出力して再生するのは、第3例と同一である。
最大波形補間可能時間(WCT)を越えても遅れた音声パケットが受信されない場合には、以下の遅延処理シーケンスを実行する。遅延処理シーケンスに要する時間は、図8に示すように、スパイク遅延による遅延予想時間(SPT)内に、可能な限り最大波形補間可能時間(WCT)を含む全ての遅延処理シーケンスが完了するように設定されるが、繰り返しトークスパート再生時間が予想以上に長い場合には、遅延予想時間(SPT)をわずかに越えるものとなってもよい。スパイク遅延による遅延予想時間(SPT)は、スパイク遅延がパケット損失を伴うことがあるので、損失した音声パケットの再送要求を行い、遅延した全ての音声パケットがパケットシーケンス番号順にプレイアウトバッファ4に記憶されるまでの時間とし、ここでは1秒とする。遅延処理シーケンスに含まれる繰り返しトークスパート再生時間は、少なくとも遅延処理シーケンスを実行している間、トークスパート保持バッファー13に記憶される音声データ量から得られる固定時間なので、周囲雑音の再生による周囲雑音補間時間で遅延処理シーケンスに要する時間を調整する。
遅延を検出した後、最大波形補間可能時間(WCT)が経過すると、補間波形生成部9から出力される補間波形の音声データを、補間波形が徐々に減衰するように新たな補間波形の音声データを生成するとともに、周囲雑音保持バッファー15に無音声期間から記憶した無音声の音声データを、周囲雑音波形が0から徐々に増加するように所定の加算処理を行って出力し、両者を加算器16で加算することにより、図8に示すように最大波形補間可能時間(WCT)が経過する時点で、補間波形の音声データのみであった加算器16の出力を、フィードアウト時間が経過した時点で、無音声の音声データの出力のみとする。
このように序序に減衰させた補間波形と補間波形にも含まれる周囲雑音成分の減衰分を補うために、周囲雑音波形による音声を0から序序に大きくしていくことにより、急激なゲイン変動を避け、補間波形から周囲雑音波形への切り換え時の不自然感を緩和させる。
フィードアウト時間が経過した後は、上述の通り、スパイク遅延の遅延予想時間(SPT)から、最大波形補間可能時間(WCT)とフィードアウト時間と繰り返しトークスパート再生時間を差し引いた残りの時間、リングバッファー構造の周囲雑音保持バッファー15に記憶されている周囲雑音の音声データを繰り返して出力し、周囲雑音を再生する。
続いて、補間制御部8の制御により第2切換スイッチ11のコモン出力端子11Cを、第1切換端子11Aから第2切換端子11Bへ切り換えて、トークスパート保持バッファー13に記憶されている繰り返しトークスパートの音声データを出力する。このときに出力される繰り返しトークスパートの音声データは、パケット1乃至パケット3からデコードした音声データであり、「しん」という音韻を再生させる音声データである。
この第4例では、遅延予想時間(SPT)内に遅延した音声パケットが受信されるものとしているので、周囲雑音の再生時間若しくは続く繰り返しトークスパート再生時間に、遅れて受信される音声パケットがプレイアウトバッファ4に記憶される。パケット損失検出部6が、遅れてプレイアウトバッファ4の先頭に記憶される音声パケットのパケットシーケンス番号から、スパイク遅延に伴う音声パケットの損失を検出した場合には、補間制御部8がネットワーク接続部2から送信側の送信装置へ損失したパケットの再送要求を行うパケットを送出し、再送要求した音声パケットが受信され、プレイアウトバッファ4に記憶された時点で、スパイク遅延が解消したものとする。この例では、図11に示すように、スパイク遅延が発生した後、最初にプレイアウトバッファ4の先頭に記憶される音声パケットのパケットシーケンス番号はパケット7であるため、パケット4、5、6が損失されたものとし、これらのパケットを再送要求しているが、通常、再送要求した音声パケットは再送要求後100msec前後で受信されるので、スパイク遅延予想時間(SPT)内に全ての遅延した音声パケットが得られる。
従って、スパイク遅延予想時間(SPT)が経過した直後、すなわち図8に示すように、繰り返しトークスパートの音声データを再生した直後に、遅延したパケット4以下の音声パケットが送信順にプレイアウトバッファ4に記憶され、順次音声コーデックデコーダ5でデコードされた音声データが出力されて音声として再生される。すなわち、この例では、「しん」と再生された後、スパイク遅延の間補間波形と周囲雑音が再生され、その後「しんじゅくで」と再生されるので、相手の通話者が「しん、しんじゅくで」と言い直したように聞き取られ、単語である「しんじゅく」を再生する間に長い遅延が発生しても、単語の意味が正確に伝達され、また、通話者に長い遅延が発生したことを気付かせない。
尚、スパイク遅延が発生している間、遅延処理シーケンスを実行して再生に遅延が発生しているので、遅れて受信された音声パケット(パケット4以下)をデコードした音声データは、話速変換スイッチ18を、話速高速化部17を経由する側に切り換え、再生の遅延が解消したと判定されるまで、図11に示すように話速高速化部17を用いて話速変換を行って再生する。
(5)第5例(トークスパート期間に長い遅延が発生し、スパイク遅延による遅延予想時間(SPT)後に遅れた音声パケットが受信される例、図9参照)
第4例では、スパイク遅延による遅延予想時間(SPT)内に遅延した全ての音声パケットが受信されたが、第5例は、遅延予想時間(SPT)内に遅延した音声パケットが受信されない場合である。
従って、一連の遅延処理シーケンスを実行し、繰り返しトークスパート再生時間が経過するまでは、第4例と同一であるので、その間の説明は省略する。遅延予想時間(SPT)が経過すると、繰り返しトークスパートの音声データの最後の音声のピッチと位相に合わせた補間波形の音声データを補間波形生成部9で生成し、補間波形が徐々に減衰するように新たな補間波形の音声データを生成するとともに、周囲雑音保持バッファー15に無音声期間から記憶した無音声の音声データを、周囲雑音波形が0から徐々に増加するように所定の加算処理を行って出力し、両者を加算器16で加算することにより、図9に示すように遅延予想時間(SPT)が経過する時点で、補間波形の音声データのみであった加算器16の出力を、フィードアウト時間が経過した時点で、無音声の音声データの出力のみとする。この処理は、波形補間の音声データを周囲雑音へ移行させる第4例で説明した処理と同様であり、補間波形の音声データを自然に周囲雑音へ移行させるものである。フィードアウト時間が経過した後は、第4例と同一方法で周囲雑音の音声データのみを繰り返し出力し、周囲雑音を再生する。
この第5例では、遅延した音声パケットが受信されず、繰り返しトークスパートの音声のみが再び再生されないように、遅延した音声パケットの受信を条件に、繰り返しトークスパートを再生するものである。従って、図9に示す周囲雑音を再生する周囲雑音補間時間は未定であり、この間に遅延する音声パケットの受信を検出したときに、すなわち、プレイアウトバッファ4に音声パケットが記憶されたときに、第2切換スイッチ11のコモン出力端子11Cを、第1切換端子11Aから第2切換端子11Bへ切り換えて、トークスパート保持バッファー13に記憶されている繰り返しトークスパートの音声データを出力する。
このときプレイアウトバッファ4の先頭に記憶される音声パケットは、パケット損失を伴う場合に、必ずしも遅延後の音声パケットがすべて受信された状態とはならないが、遅延後にいずれかの音声パケットが受信されたことから、スパイク遅延が解消されたものと推定できる。従って、第4例と同様に損失パケット再送要求を行うことにより、損失パケットを含めて全ての遅延した音声パケットは、繰り返しトークスパート再生期間中にプレイアウトバッファ4に記憶される。
尚、より確実に繰り返しトークスパートの音声データに、遅延した音声パケットの音声データを連続させる場合には、損失パケット再送要求を行い遅延後の音声パケットが全て受信されたことを検出した後、繰り返しトークスパートの音声データを出力するようにしてもよい。
いずれの場合であっても、第4例で説明したと同様の処理を行い、繰り返しトークスパートの音声データに連続して、遅延した音声パケットの音声データを出力し、両者を連続して再生できる。この第5例では、相手の通話者が「しん、しん−−しんじゅくで」と会話したように聞き取られ、単語である「しんじゅく」を再生する間に長い遅延が発生しても、単語の意味が正確に伝達される。
(5)第6例(トークスパート期間に長い遅延が発生し、そのまま遅延する音声パケットが受信されない例、図10参照)
第5例は、遅延予想時間(SPT)経過後に遅延した音声パケットが受信される場合であるが、第6例は、ネットワーク障害などに起因し、周囲雑音を再生しながら待機しても結局遅延した音声パケットが受信されない例である。
従って、図10に示すように、第4例で示す一連の遅延処理シーケンスを実行した後、第5例で示す周囲雑音の音声データを再生するまでは、第4例、第5例と同一であり、その間の説明は省略する。
補間制御部8は、遅延を検出した時点からの経過時間をオフ時間としてカウントし、オフ時間が許容待機時間を超えたときに、第1切換スイッチ10のコモン端子10Cを第2切換端子10Bへ切り換え、補間波形生成部9で生成する無音の音声データを出力し、また、トークスパート保持バッファー13に記憶されている音声データを消去する。許容待機時間は、通常の遅延と区別して機器の故障など容易に復旧されない障害の発生を通話者へ通知させる目的で設定するもので、ここでは、少なくとも繰り返しトークスパートを再生した後、周囲雑音の再生を開始するまでの時間より長い時間とし、5秒とする。従って、遅延する音声パケットが受信されず、オフ時間が5秒を経過すると、周囲雑音が無音となり、操作者は遅延以外の故障を知ることができる。
尚、上述の第4例では、遅延予想時間(SPT)を経過した後、遅延する音声パケットの受信を待たずに、繰り返しトークスパートの音声データを出力し再生したが、遅延を検出した当初から、第5例で説明したように、遅延する音声パケットの受信を条件に、繰り返しトークスパートの音声データを出力し再生してもよい。
また、上述の実施の形態では、トークスパート保持バッファー13と周囲雑音保持バッファー15に、それぞれ音声パケットをデコードした音声データを記憶させたが、いずれか一方、若しくは双方には、デコードする前の音声パケットの状態で記憶させてもよい。
図12は、トークスパート保持バッファーと周囲雑音保持バッファーに音声パケットを記憶させた他の実施の形態に係る音声データ補間装置30のブロック図である。第1の実施の形態に係る音声データ補間装置1と同一、若しくは同様に作用する構成については、同一番号を付してその説明を省略する。
音声データ補間装置30では、補間制御部8により切り換え制御される第3切換スイッチ31のコモン端子31Dが図に示すように、音声コーデックデコーダ5の入力に接続し、第1切換端子31A、第2切換端子31B、第3切換端子31Cを、それぞれ周囲雑音保持バッファー33、トークスパート保持バッファー32、プレイアウトバッファー4の出力に接続させることによって、音声コーデックデコーダ5に各バッファーから出力される音声パケットを選択的に入力するようにしている。
トークスパート保持バッファー32は、プレイアウトバッファー4の出力に接続するので、プレイアウトバッファー4から音声コーデックデコーダ5へ出力される音声バケットを常時記憶している。このトークスパート保持バッファー32に記憶される音声パケットは、トークスパート検出部20から入力されるトークスパートスタート信号をリセット信号として、トークスパート期間が開始する毎に全て消去される。従って、トークスパート保持バッファー32には、トークスパート期間中であれば、そのトークスパート期間の開始部分から出力される音声パケット(以下、繰り返しトークスパートの音声パケットという)が先頭アドレスより順に記憶されていることになる。繰り返しトークスパートの音声パケットは、第1実施の形態で繰り返しトークスパートの音声データが出力されるのと同じタイミングで、コモン端子31Dを第2切換端子31Bへ切り換えることにより、音声コーデックデコーダ5でデコードされ、繰り返しトークスパートの音声データとして出力される。
周囲雑音保持バッファー33には、プレイアウトバッファー4から出力される音声パケットのうち、会話が途切れた間の無音声期間に出力される音声パケットが入力される。周囲雑音保持バッファー33も、リングバッファー構造となっていて、記憶されていた最も古い音声パケットを新たに入力される無音声期間の音声パケットに書き換える。周囲雑音保持バッファー33は、第1実施の形態の周囲雑音保持バッファー15に相当するものであり、第1実施の形態において周囲雑音保持バッファー15に記憶された無音声の音声データが出力すれるのと同じタイミングで、コモン端子31Dを第1切換端子31Aへ切り換えられ、音声コーデックデコーダ5で無音声の音声データにデコードされ、周囲雑音として再生される。
音声データ補間装置30の作用は、繰り返しトークスパートの音声パケットを繰り返しトークスパートの音声データとして、無音声期間の音声パケットを無音声の音声データに置き換えて、音声データ補間装置1について説明した作用と同様であり、この他の実施の形態に係る音声データ補間装置30によっても、繰り返しトークスパートの音声パケットに連続して遅れて受信される音声パケットが、音声コーデックデコーダ5へ出力され、連続した音声が再生される。
上述の各実施の形態では、IPネットワークの一例としてインターネットとしたが、IPアドレスをもとにルーターで音声パケットが転送されるネットワークであれば、LANなどのネットワークでもよい。また、IPネットワークを介して相手側の送信装置と通話する通話システムであれば、携帯電話など他の電話機を通信装置とした通信システムにも適用できる。