(57)【要約】    【課題】本発明は、受信装置側だけで受信側サンプリング周波数の補正を行い、音質を高めることができる受信装置を提供することを目的とする。    【解決手段】受信手段が時刻Ｔｒ0〜Ｔｒ1の間にパケットＰ0〜Ｐ100を受信している。受信されたパケットＰ0〜Ｐ100のディジタルデータは、受信バッファに一時的に蓄積され、時刻Ｔｏ0からＴｏ1の間に受信バッファから読み出される。パケットＰ0とパケットＰ100との受信時刻の差から１つのパケット群を構成するパケット１００個を受信するのに要する時間として受信間隔ΔＴｒ1＝Ｔｒ1−Ｔｒ0を、ディジタルデータの読出時刻の差からパケット１００個に含まれるディジタルデータを読み出すのに要する時間として、読出間隔ΔＴｏ1＝Ｔｏ1−Ｔｏ0が算出される。補正手段は、受信間隔ΔＴｒ1と読出間隔ΔＴｏ1との差を検出し、この差が小さくなるように受信側サンプリング周波数ｆｒを補正する。【選択図】  図１
2005341203.tif 000002
【特許請求の範囲】
【請求項１】
送信装置に通信網を介して接続された受信装置であって、
前記通信網を介し、複数のパケットを前記送信装置から順次受信する受信手段と、
前記複数のパケットそれぞれに含まれるディジタルデータを一時的に蓄積する受信バッファと、
受信側サンプリング周波数ｆｒを生成する周波数生成手段と、
前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換手段と、
所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正手段と、
を備える受信装置。
【請求項２】
前記補正手段は、前記受信間隔ΔＴｒと前記読出間隔ΔＴｏとの差が小さくなるように、受信側サンプリング周波数ｆｒを補正する、請求項１に記載の受信装置。
【請求項３】
前記補正手段は、前記受信側サンプリング周波数ｆｒを、ｆｒ＝ｆｒ’×（ΔＴｏ÷ΔＴｒ）に基づいて算出する、請求項１に記載の受信装置
ここで、ｆｒ：補正後の受信側サンプリング周波数
ｆｒ’：補正前の受信側サンプリング周波数。
【請求項４】
前記周波数生成手段としてＶＣＯ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌ  Ｏｓｃｉｌｌａｔｏｒ）を用い、
前記補正手段は前記ＶＣＯへの印加電圧をさらに調整することにより、前記受信側サンプリング周波数ｆｒを補正する、請求項１に記載の受信装置。
【請求項５】
送信装置に通信網を介して接続された受信装置に用いられる受信再生方法であって、
前記通信網を介し、複数のパケットを前記送信装置から順次受信する受信ステップと、
前記複数のパケットそれぞれに含まれるディジタルデータを一時的に受信バッファに蓄積する蓄積ステップと、
受信側サンプリング周波数ｆｒを生成する周波数生成ステップと、
前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換ステップと、
前記受信ステップにおいて所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正ステップと、
を含む受信再生方法。
【請求項６】
送信装置に通信網を介して接続された受信装置に用いられる受信再生プログラムであって、
前記通信網を介し、複数のパケットを前記送信装置から順次受信する受信手段、
前記複数のパケットそれぞれに含まれるディジタルデータを一時的に蓄積する受信バッファ、
受信側サンプリング周波数ｆｒを生成する周波数生成手段、
前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換手段、及び
所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正手段、
としてコンピュータを機能させるための受信再生プログラム。
【請求項７】
送信装置に通信網を介して接続された受信装置に用いられる受信再生プログラムを記録した、コンピュータ読み取り可能な記録媒体であって、
前記通信網を介し、複数のパケットを前記送信装置から順次受信する受信ステップと、
前記複数のパケットそれぞれに含まれるディジタルデータを一時的に受信バッファに蓄積する蓄積ステップと、
受信側サンプリング周波数ｆｒを生成する周波数生成ステップと、
前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換ステップと、
前記受信ステップにおいて所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正ステップと、
を実行するための受信再生プログラムを記録した、コンピュータ読み取り可能な記録媒体。
【請求項８】
放送システムであって、
音声入力手段と、
前記音声入力手段に接続され、入力された音声を送信側サンプリング周波数ｆｓに基づいてサンプリングすることによりディジタル音声データに変換し、前記ディジタル音声データを含むパケットを順次伝送路に出力する音声送信手段と、
前記音声送信手段と前記伝送路を介して接続され、前記ディジタル音声データを受信側サンプリング周波数ｆｒに基づいてアナログ音声データに変換する音声受信手段と、
前記音声受信手段に接続され、前記アナログ音声データを出力する音声出力手段とを含み、
前記音声受信手段は、
複数のパケットを前記送信装置から順次受信する受信手段と、
前記複数のパケットそれぞれに含まれるディジタルデータを一時的に蓄積する受信バッファと、
受信側サンプリング周波数ｆｒを生成する周波数生成手段と、
前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換手段と、
所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正手段と、
を備えている放送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばビルの構内放送設備などに用いられるディジタルデータ通信システムに関する。
【背景技術】
【０００２】
ＬＡＮなどのネットワーク上でのディジタルデータ通信システムでは、テキストや静止画像だけでなく、音声や動画像などのデータをパケット化して通信を行う。ディジタル通信及び再生方式の１つに、データの最後までの受信を待たずに再生する「ストリーミング再生方式」がある。ストリーミング再生方式では、音声や動画像をリアルタイムに伝送する方式であり、送信装置及び受信装置にそれぞれ送信バッファ及び受信バッファが設けられる。この方式における送信装置及び受信装置の処理は、次のようになる。
【０００３】
例えば音声通信の場合、送信装置に入力されたアナログ音声信号は、アナログ／ディジタル変換器（ＡＤＣ）によりディジタル音声データに変換され、送信バッファに蓄積される。受信装置は、パケットを受信して分解し、ディジタル音声データを受信バッファに蓄積する。受信バッファのデータ蓄積量が一定以上になると、ディジタル音声データが受信バッファから読み出され、ディジタル／アナログ変換器（ＤＡＣ）でアナログ音声データに変換され、出力される。
【０００４】
この通信システムにおける音声や動画像の通信では、以下の２つのことが要求される。
１．受信装置は、連続したデータのパケットを、送信装置におけるパケットの送信間隔と同じ時間間隔で受信すること。
２．送信装置におけるサンプリング周波数（以下、送信側サンプリング周波数）ｆｓと受信装置におけるサンプリング周波数（以下、受信側サンプリング周波数）ｆｒとが一致すること。
【０００５】
しかし、ネットワークのトラフィックの状況によっては、パケットの伝送時間に揺らぎが生じる、衝突によりパケットが欠落したり順番通り到着しない、などの不具合が生じる。また、送信装置と受信装置とでは、別々の内部クロックに基づくサンプリング周波数を用いるため、送信側サンプリング周波数ｆｓと受信側サンプリング周波数ｆｒとに誤差が生じる。よって、同一時間当たりに送信されるパケットに含まれるデータ量と再生されるデータ量とにずれが生じる。そのため、再生中に受信バッファのデータ蓄積量がゼロになってしまい、再生が停止するアンダーフローが発生する場合がある。アンダーフローが生じると音切れが生じ、音声品質が劣化してしまう。逆に、受信したパケットを受信バッファに吸収しきれないオーバーフローが発生する場合もある。オーバーフローが生じると、受信したパケットは破棄されるため、音声データが不連続となりノイズの発生を招く。
【０００６】
そこで、音声などのデータの品質を高めるために、受信装置におけるサンプリング周波数を補正する補正手段を有する受信装置が特許文献１に記載されている。特許文献１に記載の受信装置は、ディジタルデータとともにパケット送信時刻を含む第１及び第２パケットを送信装置から順次受信し、パケットの送信時刻及びパケットを受信した受信時刻を取得する。ここで、パケット送信時刻とは、第１及び第２パケットが送信装置から受信装置へ送信される時刻である。そして、所定数のパケットを送信するのに要する時間として送信間隔を算出し、所定数のパケットを受信するのに要する時間として受信間隔を算出する。この送信間隔と受信間隔との差が小さくなるように受信側サンプリング周波数ｆｒを補正する。よって、送信装置及び受信装置でのサンプリング周波数の誤差に起因するアンダーフローやオーバーフローを抑制し、再生されるデータの品質を高めることができる。
【特許文献１】特開２００２−３７４３１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に記載の受信装置では、アンダーフローやオーバーフローを抑制することはできるものの、受信側サンプリング周波数ｆｒを調整するために、送信装置から受信装置へパケット送信時刻等の時刻情報を送信しなければならない。そのため、送信装置は、送信するパケットにパケット送信時刻等の時刻情報を組み込む必要がある。よって、送信装置と受信装置とが一体とならなければサンプリング周波数の誤差を補正できない。また、時刻情報を組み込むことでパケットのデータ量が増加し、伝送効率の低下や使用する帯域幅の増加を招く。
【０００８】
そこで、本発明は、送信装置側によらずに受信装置側だけで受信側サンプリング周波数の補正を行い、音質を高めることができる受信装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願第１発明は、上記の課題を解決するために、送信装置に通信網を介して接続された受信装置であって、前記通信網を介し、複数のパケットを前記送信装置から順次受信する受信手段と、前記複数のパケットそれぞれに含まれるディジタルデータを一時的に蓄積する受信バッファと、受信側サンプリング周波数ｆｒを生成する周波数生成手段と、前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換手段と、所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正手段とを備える受信装置を提供する。
【００１０】
例えば、受信手段が時刻Ｔｒ0〜Ｔｒ1の間に１００個のパケットを受信している。この受信手段で受信されたそれぞれのパケットに含まれるディジタルデータは、受信バッファに一時的に蓄積される。そして、１００個のパケットのディジタルデータが時刻Ｔｏ0からＴｏ1の間に受信バッファから読み出される。ここで、１００個のうち最初と最後のパケットの受信時刻から受信間隔ΔＴｒ＝Ｔｒ1−Ｔｒ0が算出される。また、１００個のうち最初と最後のパケットの読出時刻からディジタルデータの読出間隔ΔＴｏ＝Ｔｒ1−Ｔｒ0が算出される。補正手段は、算出された受信間隔ΔＴｒと読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する。ここで、受信間隔ΔＴｒは、送信装置から受信装置への両パケットの送信間隔に応答している。よって、受信側サンプリング周波数ｆｒを前記のように補正することで、送信側サンプリング周波数ｆｓと受信側サンプリング周波数ｆｒとを所定の関係にすることができる。以上の処理を行うことで、受信バッファの蓄積量を制御し、オーバーフローやアンダーフローを防止し、再生されるデータの品質を高めることができる。また、前述の受信側サンプリング周波数ｆｒの補正は、受信装置側で取得した受信時刻及び読出時刻に基づいて行われる。よって、送信装置側からパケット送信時刻、パケット送信間隔等の送信側サンプリング周波数ｆｓに関連する時刻情報を受信装置側に送信する必要がない。そのため、送信するパケットのパケット構成を簡略化し、パケットのデータ量を削減することで、パケットの伝送効率の向上や使用する帯域幅を減少することができる。なお、所定の関係とは、受信側サンプリング周波数ｆｒと送信側サンプリング周波数ｆｓが、ｆｒ：ｆｓ＝１：１、ｆｒ：ｆｓ＝１：２等になる関係であり、等倍速、所定の倍速の読み出しに対応することができる。
【００１１】
本願第２発明は、本願第１発明において、前記補正手段は、前記受信間隔ΔＴｒと前記読出間隔ΔＴｏとの差が小さくなるように、受信側サンプリング周波数ｆｒを補正する受信装置を提供する。
補正手段は、受信間隔ΔＴｒと読出間隔ΔＴｏとの差が小さくなるように受信側サンプリング周波数ｆｒを補正することで、送信側サンプリング周波数ｆｓと受信側サンプリング周波数ｆｒとの差を小さくすることができる。よって、送信装置と受信装置とのサンプリング周波数の誤差によるオーバーフローやアンダーフローを防止することができる。
【００１２】
本願第３発明は、本願第１発明において、前記補正手段は、前記受信側サンプリング周波数ｆｒを、ｆｒ＝ｆｒ’×（ΔＴｏ÷ΔＴｒ）に基づいて算出する受信装置を提供する。
ここで、ｆｒ：補正後の受信側サンプリング周波数
ｆｒ’：補正前の受信側サンプリング周波数である。
【００１３】
本願第４発明は、本願第１発明において、前記周波数生成手段としてＶＣＯ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌ  Ｏｓｃｉｌｌａｔｏｒ）を用い、前記補正手段は前記ＶＣＯへの印加電圧をさらに調整することにより、前記受信側サンプリング周波数ｆｒを補正する受信装置を提供する。
本願第５発明は、送信装置に通信網を介して接続された受信装置に用いられる受信再生方法であって、前記通信網を介し、複数のパケットを前記送信装置から順次受信する受信ステップと、前記複数のパケットそれぞれに含まれるディジタルデータを一時的に受信バッファに蓄積する蓄積ステップと、受信側サンプリング周波数ｆｒを生成する周波数生成ステップと、前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換ステップと、前記受信ステップにおいて所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正ステップとを含む受信再生方法を提供する。
【００１４】
本願第６発明は、送信装置に通信網を介して接続された受信装置に用いられる受信再生プログラムであって、前記通信網を介し、複数のパケットを前記送信装置から順次受信する受信手段、前記複数のパケットそれぞれに含まれるディジタルデータを一時的に蓄積する受信バッファ、受信側サンプリング周波数ｆｒを生成する周波数生成手段、前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換手段、及び所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正手段としてコンピュータを機能させるための受信再生プログラムを提供する。
【００１５】
本願第７発明は、送信装置に通信網を介して接続された受信装置に用いられる受信再生プログラムを記録した、コンピュータ読み取り可能な記録媒体であって、前記通信網を介し、複数のパケットを前記送信装置から順次受信する受信ステップと、前記複数のパケットそれぞれに含まれるディジタルデータを一時的に受信バッファに蓄積する蓄積ステップと、受信側サンプリング周波数ｆｒを生成する周波数生成ステップと、前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換ステップと、前記受信ステップにおいて所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正ステップとを実行するための受信再生プログラムを記録した、コンピュータ読み取り可能な記録媒体を提供する。
【００１６】
本願第８発明は、放送システムであって、音声入力手段と、前記音声入力手段に接続され、入力された音声を送信側サンプリング周波数ｆｓに基づいてサンプリングすることによりディジタル音声データに変換し、前記ディジタル音声データを含むパケットを順次伝送路に出力する音声送信手段と、前記音声送信手段と前記伝送路を介して接続され、前記ディジタル音声データを受信側サンプリング周波数ｆｒに基づいてアナログ音声データに変換する音声受信手段と、前記音声受信手段に接続され、前記アナログ音声データを出力する音声出力手段とを含む放送システムを提供する。ここで、前記音声受信手段は、複数のパケットを前記送信装置から順次受信する受信手段と、前記複数のパケットそれぞれに含まれるディジタルデータを一時的に蓄積する受信バッファと、受信側サンプリング周波数ｆｒを生成する周波数生成手段と、前記受信側サンプリング周波数ｆｒに従って前記受信バッファに蓄積されているディジタルデータを読み出し、アナログデータに変換する変換手段と、所定数ｋ（ｋ≧２）個のパケットを前記受信手段が受信するのに要した受信間隔ΔＴｒと、前記ｋ個のパケットそれぞれに含まれているディジタルデータを前記受信バッファから読み出すのに要した読出間隔ΔＴｏとが所定の関係になるように受信側サンプリング周波数ｆｒを補正する補正手段とを有する。
【発明の効果】
【００１７】
本発明を用いれば、送信装置側からパケット送信時刻、パケット送信間隔等の送信側サンプリング周波数ｆｓに関連する時刻情報を受信装置側に送信することなく、受信側サンプリング周波数ｆｒの補正を行うことができる。
【発明を実施するための最良の形態】
【００１８】
＜発明の概要＞
本発明では、送信装置から送信されるパケットが受信装置の受信部で受信されるときの受信間隔と、パケットに含まれるディジタルデータが受信バッファから読み出されるときの読出間隔とに基づいて受信側サンプリング周波数ｆｒを補正する。
図１は、本発明の概要を示す概念説明図である。ここでは、パケット１００個を１つのパケット群として受信間隔及び読出間隔を算出するものとする。受信装置の受信部が、時刻Ｔｒ0〜Ｔｒ1の間にパケットＰ0〜Ｐ100を順次受信する。受信部で受信されたパケットＰ0〜Ｐ100に含まれるディジタルデータは、受信バッファに一時的に蓄積され、時刻Ｔｏ0からＴｏ1の間に受信バッファから読み出される。ここで、パケットＰ0とパケットＰ100との受信時刻から１つのパケット群を構成するパケット１００個を受信するのに要する時間として、受信間隔ΔＴｒ1＝Ｔｒ1−Ｔｒ0が算出される。また、パケットＰ0とパケットＰ100とに含まれるディジタルデータの読出時刻からパケット１００個に含まれるディジタルデータを読み出すのに要する時間として、読出間隔ΔＴｏ1＝Ｔｏ1−Ｔｏ0が算出される。次に、受信間隔ΔＴｒ1と読出間隔ΔＴｏ1との差を検出し、この差が小さくなるように受信側サンプリング周波数ｆｒを補正する。同様に、次の１００個のパケットについても同様の処理を行う。ここで、次のパケット群の受信間隔ΔＴｒ2は、パケットＰ100とパケットＰ200との受信時刻の差からΔＴｒ2＝Ｔｒ2−Ｔｒ1として算出される。また、次のパケット群の読出間隔ΔＴｏ2は、パケットＰ100とパケットＰ200とに含まれるディジタルデータの読出時刻の差からΔＴｏ2＝Ｔｏ2−Ｔｏ1として算出される。そして、受信間隔ΔＴｒ1と読出間隔ΔＴｏ1との差が小さくなるように受信側サンプリング周波数ｆｒを補正する。以上のように、１００個のパケット単位で同様の処理を繰り返し行うことで、送信装置と受信装置とのサンプリング周波数の誤差による受信バッファのオーバーフローやアンダーフローを防止し、再生されるデータの品質を高めることができる。
【００１９】
上記のように、受信側サンプリング周波数ｆｒの補正は、送信装置からパケット送信間隔などの時刻情報を受信することなく、受信装置で取得した受信間隔及び読出間隔に基づいて行われる。よって、送信装置及び受信装置間で時刻情報を送受信する必要がなく、受信装置のみで受信側サンプリング周波数ｆｒの補正を行うことができる。
＜第１実施形態例＞
次に、本発明の受信装置を適用した音声通信システムについて、第１実施形態例を挙げて詳細に説明する。以下では、所定数ｋ（ｋは自然数でｋ≧２）個のパケットを１つのパケット群として受信間隔及び読出間隔を算出するものとする。
［構成］
図２は、第１実施形態例に係る音声通信システムの構成を示すブロック図である。音声通信システム１０は、送信装置１と受信装置２とがＬＡＮなどのネットワーク３により接続されて構成されている。なお、図２では、ネットワーク３に接続されている送信装置１及び受信装置２はそれぞれ１つしか示されていないが、通常は複数の送信装置１及び受信装置２がネットワーク３に接続される。また、送信装置１と受信装置２とは、一体に構成されていても良い。
【００２０】
送信装置１は、入力部１１、増幅器１３、ＡＤＣ１５、入力バッファ１７、符号化部１９、送信バッファ２１、送信部２３及びＶＣＯ２５を有している。マイクなどの入力部１１に入力された音声は、アナログ音声信号に変換される。このアナログ音声信号は、増幅器１３により増幅され、ＶＣＯ２５が発生するサンプリング周波数ｆｓに基づいてＡＤＣ１５によりディジタル音声データに変換され、入力バッファ１７に蓄積される。符号化部１９は、入力バッファ１７に蓄積されているディジタル音声データを圧縮音声符号化情報に符号化し、送信バッファ２１に蓄積する。なお、ＶＣＯ２５は、印加電圧により発生するサンプリング周波数ｆｓを変化させることができる。送信部２３は、送信バッファ２１の圧縮音声符号化情報をパケットに組み立て、一定の時間間隔でネットワーク３に送出する。
【００２１】
受信装置２は、受信部３１、受信時刻取得部３３、受信バッファ３５、受信バッファ監視部３７、読出部３９、復号化部４１、再生バッファ４３、読出時刻取得部４５、ＤＡＣ４７、増幅器４９、出力部５１、補正部５３及びＶＣＯ５５を有している。ネットワーク３に送出されたパケットは、受信部３１により受信され分解される。分解された圧縮音声符号化情報は、受信バッファ３５に格納される。読出部３９は、後述の読出時刻取得部４５が１パケット分のディジタル音声データをカウントする毎に起動し、１パケット分の圧縮音声符号化情報を受信バッファ３５から復号化部４１に出力する。そして、圧縮音声符号化情報は、復号化部４１により復号化及び伸長され、ディジタル音声データになる。このディジタル音声データは、再生バッファ４３に格納される。そして、読出時刻取得部４５は、受信側サンプリング周波数ｆｒで再生バッファ４３からディジタル音声データを読み出す。そして、読み出されたディジタル音声データは、ＤＡＣ４７により受信側サンプリング周波数ｆｒでアナログ音声信号に変換される。この受信側サンプリング周波数ｆｒは、ＶＣＯ５５により生成される。アナログ音声信号は、増幅器４９により増幅され、スピーカなどの出力部５１から空気中に拡声される。受信バッファ監視部３７は、受信バッファ３５内のデータ量を監視する。ここで、送信装置１側の符号化部１９が省略される場合、受信装置２の復号化部４１を省略することができる。スピーカなどの出力部５１は、受信装置２と独立に設けてもよい。
【００２２】
受信時刻取得部３３は、１つのパケット群を構成する所定数ｋ個（ｋは自然数でｋ≧２）のパケットが受信部３１において受信される毎に、つまり所定数ｋ個毎にパケットの受信時刻を取得する。そして、それぞれの受信時刻の差から１つのパケット群を構成する所定数ｋ個のパケットを受信するのに要する時間として受信間隔を算出する。
読出時刻取得部４５は、ＤＡＣ４７により再生バッファ４３から読み出されてアナログ変換された後、再生されるディジタル音声データ（以下、再生データ）の１パケット分をカウントする。再生データ量のカウントは、例えば、１パケット分のディジタル音声データが再生される毎に発生する割り込みをカウントすることにより行う。また、読出時刻取得部４５は、再生データを１パケット分カウントする毎に読出部３９を呼出し、読出部３９に次の１パケット分の圧縮音声符号化情報を受信バッファ３５から読み出させる。さらに、読出時刻取得部４５は、１つのパケット群を構成する所定数ｋ個のパケットに含まれる圧縮音声符号化情報が受信バッファ３５から読み出される毎に、つまり再生データを所定数ｋ個分カウントする毎に読出時刻を取得する。そして、取得した読出時刻の差から１つのパケット群を構成する所定数ｋ個のパケットに含まれる圧縮音声符号化情報を読み出すのに要する時間として読出間隔を算出する。
【００２３】
補正部５３は、受信時刻取得部３３及び読出時刻取得部４５から受信間隔及び読出間隔を取得し、受信間隔と読出間隔との誤差が小さくなるように受信側サンプリング周波数ｆｒを補正する。
上記の受信装置は、送信装置から受信装置へのパケットの送信間隔に応答してパケットを受信する。つまり、パケットの受信間隔は、パケットの送信間隔に応答している。また、送信側サンプリング周波数ｆｓはパケットの送信間隔と反比例する関係にある。同様に、受信側サンプリング周波数ｆｒは、パケットの読出間隔と反比例する関係にある。よって、受信間隔と読出間隔との誤差を小さくするように受信側サンプリング周波数ｆｒを補正することで、受信側サンプリング周波数ｆｒを送信側サンプリング周波数ｆｓに近づけることができる。そのため、送信側及び受信側でのサンプリング周波数の誤差に起因するアンダーフローやオーバーフローを抑制し、再生されるデータの品質を高めることができる。
【００２４】
また、補正部５３は、受信間隔と読出間隔とが所定の関係になるように受信側サンプリング周波数ｆｒを補正しても良い。つまり、受信間隔と読出間隔とが１：１の関係に限定されず、例えば１：２、１：３等の所定の関係になるように受信側サンプリング周波数ｆｒを補正する。このように補正することで、受信側サンプリング周波数ｆｒと送信側サンプリング周波数ｆｓとを所定の関係にすることができる。よって、例えば２倍速、３倍速などの読み出しに対応しつつ、アンダーフローやオーバーフローを抑制することができる。
【００２５】
以下に、受信間隔と読出間隔とが１：１の関係になるように受信側サンプリング周波数ｆｒを補正する場合を例に挙げ、受信間隔及び読出間隔の取得方法及び受信側サンプリング周波数ｆｒの補正についてより詳細に説明する。
（１）受信間隔及び読出間隔の算出方法
まず、受信間隔及び読出間隔の取得方法について図３を用いてより詳細に説明する。ここで、受信部３１は、最初のパケットＰ0から順次パケットＰ1、パケットＰ2…を受信しており、所定数ｋ個のパケットによりパケット群Ｇ1、パケット群Ｇ2…パケット群Ｇnが構成される。ここで、パケットＰの添字は、パケットの送信順を表す番号であり、パケット群Ｇnの添字は、パケット群の送信順を表す番号である。さらに、受信時刻Ｔｒn、読出間隔Ｔｏn、受信間隔ΔＴｒn、読出間隔ΔＴｏnの各添字は、パケット群Ｇnの添字に対応している。また、添字ｎは、０以上の自然数である。以下、各パケット群毎に受信時間及び読出時間の算出方法を説明する。
ａ）１番目のパケット群Ｇ1について
受信時刻取得部３３は、１番目のパケット群Ｇ1に含まれる最初のパケットＰ0の受信部３１での受信時刻Ｔｒ0を取得する。次に、最初のパケットＰ0からｋ個目のパケットＰkの受信部３１での受信時刻Ｔｒ1を取得する。そして、受信時刻取得部３３は、受信時刻Ｔｒ1とＴｒ0との差から１番目のパケット群Ｇ1を構成する所定数ｋ個のパケットを受信するのに要した時間として、受信間隔ΔＴｒ1＝Ｔｒ1−Ｔｒ0を算出する。
【００２６】
一方、読出時刻取得部４５は、最初のパケットＰ0に含まれる圧縮音声符号化情報が受信バッファ３５から読み出される読出時刻Ｔｏ0を取得する。次に、最初のパケットＰ0からｋ個目のパケットＰkに含まれる圧縮音声符号化情報の読出時刻Ｔｏ1を取得する。そして、読出時刻取得部４５は、読出時刻Ｔｏ1とＴｏ0との差から１番目のパケット群Ｇ1を構成する所定数ｋ個のパケットに含まれる圧縮音声符号化情報を読み出すのに要した時間として、読出間隔ΔＴｏ1＝Ｔｏ1−Ｔｏ0を算出する。
ｂ）２番目のパケット群について
２番目のパケット群Ｇ2に含まれる最初のパケットの受信時刻として、１番目のパケット群Ｇ1の最後のパケットＰkの受信時刻Ｔｒ1が用いられる。次に、受信時刻取得部３３は、パケットＰkからｋ個目のパケットＰ2kの受信部３１での受信時刻Ｔｒ2を取得する。そして、受信時刻取得部３３は、受信時刻Ｔｒ2とＴｒ1との差から２番目のパケット群Ｇ2の受信間隔ΔＴｒ2＝Ｔｒ2−Ｔｒ1を算出する。
【００２７】
同様に、読出時刻取得部４５は、パケットＰkに含まれる圧縮音声符号化情報の読出時刻Ｔｏ1と、パケットＰ2kに含まれる圧縮音声符号化情報の読出時刻Ｔｏ2との差から読出間隔ΔＴｏ2＝Ｔｏ2−Ｔｏ1を算出する。
ｃ）ｎ番目のパケット群について
受信時刻取得部３３は、ｎ番目のパケット群Ｇnに含まれる最初のパケットＰ(n-1)kの受信部３１での受信時刻Ｔｒ(n-1)を取得する。次に、最初のパケットＰ(n-1)kからｋ個目のパケットＰnkの受信部３１での受信時刻Ｔｒnを取得する。そして、受信時刻取得部３３は、受信時刻ＴｒnとＴｒ(n-1)との差からｎ番目のパケット群Ｇnを構成する所定数ｋ個のパケットを受信するのに要した時間として、受信間隔ΔＴｒn＝Ｔｒn−Ｔｒ(n-1)を算出する。ここで、Ｐ(n-1)kは、パケット群Ｇ(n-1)に含まれる最後のパケットである。
【００２８】
一方、読出時刻取得部４５は、読出時刻取得部４５は、パケットＰ(n-1)kに含まれる圧縮音声符号化情報の読出時刻Ｔｏ(n-1)と、パケットＰnkに含まれる圧縮音声符号化情報の読出時刻Ｔｏnとの差から読出間隔ΔＴｏn＝Ｔｏn−Ｔｏ(n-1)を算出する。
（２）受信側サンプリング周波数ｆｒの補正
補正部５３は、受信時刻取得部３３から取得した受信間隔と読出時刻取得部４５から取得した読出間隔との誤差が小さくなるように、次のように受信側サンプリング周波数ｆｒを補正する。
ａ）１番目のパケット群Ｇ1について
１番目のパケット群Ｇ1における補正後の受信側サンプリング周波数ｆｒ1は、次式のように算出される。
【００２９】
ｆｒ1＝ｆｒ0×（ΔＴｏ1÷ΔＴｒ1）
ここで、ｆｒ0：補正前の受信側サンプリング周波数である。
ｂ）２番目のパケット群Ｇ2について
２番目のパケット群Ｇ2における補正後の受信側サンプリング周波数ｆｒ2は、次式のように算出される。
【００３０】
ｆｒ2＝ｆｒ1×（ΔＴｏ2÷ΔＴｒ2）
ここで、ｆｒ1：１番目のパケット群Ｇ1における補正後の受信側サンプリング周波数である。
ｃ）ｎ番目のパケット群Ｇ2について
ｎ番目のパケット群Ｇnにおける補正後の受信側サンプリング周波数ｆｒnは、次式のように算出される。
【００３１】
ｆｒn＝ｆｒ(n-1)×（ΔＴｏn÷ΔＴｒn）
ここで、ｆｒ(n-1)：ｎ−１番目のパケット群Ｇ(n-1)における補正後の受信側サンプリング周波数である。
［パケット構成］
図４（ａ）に、送受信されるパケットの構成例を示す。パケットには、ＩＰヘッダ、ＵＤＰヘッダ及び音声ディジタルデータが含まれている。ＩＰヘッダには、送信元のＩＰアドレス、送信先のＩＰアドレスなどが記述されている。ＵＤＰヘッダには、送信元ポート番号、送信先ポート番号、メッセージ長などが記述されている。なお、ＩＰパケットのデータ部にＵＤＰパケットではなくＴＣＰパケットを用いることもでき、その場合にはＵＤＰヘッダに代えてＴＣＰヘッダが用いられる。
【００３２】
送受信されるパケットの別の構成例を図４（ｂ）に示す。図４（ｂ）に示すパケットには、さらにＲＴＰヘッダが含まれている。ＲＴＰヘッダには、例えば下記の情報が含まれている。
ａ）バージョン
ｂ）パディング
ｃ）ＣＳＲＣ：ＣＳＲＣ識別子を何個含んでいるかを示す。
【００３３】
ｄ）ペイロードタイプ
ｅ）シーケンシャル番号：パケットの順番を示す。
ｇ）ＳＳＲＣ：送信装置の識別子
ｈ）ＣＳＲＣ：元の送信者の識別子リスト。
図４（ｂ）のようにパケットが構成されている場合、受信時刻取得部３３及び読出時刻取得部４５は、シーケンシャル番号に基づいて受信時刻及び読出時刻を取得する。
［処理］
次に、前記構成を有する受信装置２が行う処理の流れについて詳細に説明する。受信装置２は、受信処理、再生処理、受信時刻取得処理、読出時刻取得処理及び補正処理の５つの処理を実行する。以下、これらの処理について、図面を参照しつつ具体的に説明する。
（１）受信処理
図５は、受信装置２が行う受信処理の流れの一例を示すフローチャートである。受信装置２は、送信装置１から通信の開始を示すコマンドを受信することにより、以下の処理を開始する。
【００３４】
ステップＳ１：受信部３１は、通信の終了を示すコマンドを送信装置１から受信するまで、以下のステップＳ２〜Ｓ６までの処理を行う。通信の終了を示すコマンドを受信すると、処理を終了する。
ステップＳ２：受信部３１は、パケットを待機しており、パケットを受信すると、ステップＳ３に移行する。
【００３５】
ステップＳ３、Ｓ４：受信バッファ監視部３７は、受信バッファ３５に新たな圧縮音声符号化情報を書き込む空きメモリがあるか否かを判断する（Ｓ３）。空きメモリがあれば、受信部３１は、受信したパケットを受信バッファ３５に格納する（Ｓ４）。
ステップＳ５、Ｓ６：受信バッファ３５に空きメモリがない場合、受信部３１は、受信バッファ３５内に蓄積されている古い圧縮音声符号化情報を破棄し（Ｓ５）、新たに受信したパケットの圧縮音声符号化情報を受信バッファ３５に書き込む（Ｓ６）。
【００３６】
以上の処理により、受信バッファ３５に次々に圧縮音声符号化情報を蓄積する。なお、上記ステップＳ１では、送信装置１から通信の終了を示すコマンドを受信する場合を記載したが、受信装置２内のコマンドに基づいて通信を終了しても良い。また、上記ステップＳ５及びＳ６においては、古い圧縮音声符号化情報を受信バッファ３５に保持しておき、新たに受信したパケットの圧縮音声符号化情報を破棄しても良い。
（２）再生処理
図６は、受信装置２が行う再生処理の流れの一例を示すフローチャートである。受信装置２は、送信装置１から通信の開始を示すコマンドを受信することにより、以下の処理を開始する。
【００３７】
ステップＳ１１：受信バッファ監視部３７は、再生開始条件が満たされたか否かを判断する。再生開始条件の一例としては、「受信バッファ３５に蓄積される圧縮音声符号化情報のデータ量≧しきい値Ｄ１」が挙げられる。しきい値Ｄ１としては、ネットワーク負荷や再生速度を考慮した上で、通信システムに適合する経験値を求める。
ステップＳ１２：受信バッファ監視部３７は、再生開始条件が満たされた場合は、読出部３９に再生開始信号を送信する。再生開始信号を受信した読出部３９は、音声の再生処理を開始させる。
【００３８】
ステップＳ１３：受信装置２が、通信の終了を示すコマンドを送信装置１から受信するまで、以下のステップＳ１４〜Ｓ１７までの再生処理を行う。通信の終了を示すコマンドを受信すると、再生処理を終了する。
ステップＳ１４：再生が継続している場合は、読出部３９は、読出時刻取得部４５の呼出に応答して、受信バッファ３５から圧縮音声符号化情報を１パケット分ずつ読み出す。ついで、復号化部４１は、１パケットに含まれている圧縮音声符号化情報を、順次伸長及び復号化し、再生バッファ４３に格納する。再生バッファ４３に格納されたディジタル音声データは、ＤＡＣ４７により補正後の受信側サンプリング周波数ｆｒに基いてアナログ音声信号に変換され、増幅器４９により増幅されて出力部５１から空気中に拡声される。１パケットに含まれる圧縮音声符号化情報を全てアナログデータに変換して出力するまで、再生を行う。
【００３９】
ステップＳ１５、Ｓ１６：１パケット分の再生が終了すると、受信バッファ監視部３７は、受信バッファ３５内に蓄積されている圧縮音声符号化情報があるか否かを判断する（Ｓ１５）。受信バッファ３５に圧縮音声符号化情報が蓄積されている場合は、読出部３９は、１パケット分の圧縮音声符号化情報を受信バッファ３５から読み出す（Ｓ１６）。
ステップＳ１７：受信バッファ３５に圧縮音声符号化情報が蓄積されていない場合は、読出部３９は、受信バッファ監視部３７からの指示により１パケット分の無音データを再生バッファ４３に挿入する。
【００４０】
なお、上記では、送信装置１から通信の開始又は通信終了を示すコマンドを受信する場合を記載したが、受信装置２内のコマンドに基づいて通信を開始又は終了しても良い。
（３）受信時刻取得処理
図７は、受信装置２が行う受信時刻取得処理の流れの一例を示すフローチャートである。受信時刻取得部３３は、前述の通り、１つのパケット群を構成する所定数ｋ個のパケット毎に受信部３１での受信時刻を取得する。
【００４１】
ステップＳ２１：パケット群の送信順を表すパケット群Ｇnの添字ｎの初期値として、ｎ＝０に設定する。
ステップＳ２２、Ｓ２３：受信部３１は、１番目のパケット群Ｇ1に含まれる最初のパケットＰ0を受信する（Ｓ２２）。そして、受信時刻取得部３３は、１番目のパケット群Ｇ1に含まれる最初のパケットＰ0の受信部３１での受信時刻Ｔｒ0を取得する（Ｓ２３）。
【００４２】
ステップＳ２４：ｎの値を加算する。
ステップＳ２５：受信装置２が、通信の終了を示すコマンドを送信装置１から受信するまで、ステップＳ２４〜Ｓ３０までの受信時刻取得処理を行う。通信の終了を示すコマンドを受信すると、受信時刻取得処理を終了する。
ステップＳ２６、Ｓ２７：受信部３１は、順次、パケットを受信する（Ｓ２６）。受信時刻取得部３３は、受信部３１がパケットを受信するたびにパケット数をカウントする（Ｓ２７）。
【００４３】
ステップＳ２８：受信時刻取得部３３は、１つのパケット群を構成するパケットの所定数ｋをカウントしたかどうかを判定する。所定数ｋをカウントしていなければ、ステップＳ２５に戻り、受信部３１によりさらにパケットを受信する。
ステップＳ２９：受信時刻取得部３３は、所定数ｋをカウントしていれば、所定数ｋをカウント後に受信部３１において受信されたパケットの受信時刻Ｔｒnを取得する。ここで、受信時刻取得部３３は、１番目のパケット群Ｇ1における所定数ｋカウント後の受信時刻としてＴｒ1を取得する。また、この受信時刻Ｔｒ1は、２番目のパケット群Ｇ2における最初のパケットの受信時刻となる。つまり、ｎ番目のパケット群Ｇ1における最初のパケットの受信時刻としてＴｒ(n-1)を取得し、所定数ｋカウント後の受信時刻としてＴｒnを取得する。
【００４４】
ステップＳ３０：受信時刻取得部３３は、最初のパケットの受信時刻と所定数ｋカウント後のパケットの受信時刻との差から受信間隔を算出する。ｎ番目のパケット群Ｇnにおける受信間隔としてΔＴｒn＝Ｔｒn−Ｔｒ(n-1)が算出される。
なお、上記では、送信装置１から通信開始又は通信終了を示すコマンドを受信する場合を記載したが、受信装置２内のコマンドに基づいて通信を開始又は終了しても良い。
（４）読出時刻取得処理
図８は、受信装置２が行う読出時刻取得処理の流れの一例を示すフローチャートである。読出時刻取得部４５は、受信時刻取得部３３と同様に、１つのパケット群を構成する所定数ｋ個のパケットに含まれる圧縮音声符号化情報を、受信バッファ３５から読み出すのに応答してその読出時刻を取得する。つまり、読出時刻取得部４５は、再生データを所定数ｋ個分カウントする毎に読出時刻を取得する。
【００４５】
ステップＳ３１：パケット群の送信順を表すパケット群Ｇnの添字ｎの初期値として、ｎ＝０に設定する。
ステップＳ３２、Ｓ３３：読出時刻取得部４５は、最初の再生データを１パケット分カウントすると、読出部３９を呼び出す。読出部３９は、その呼出に応答して１番目のパケット群Ｇ1に含まれる最初のパケットＰ0に含まれる圧縮音声符号化情報を受信バッファ３５から読み出す（Ｓ３２）。そして、読出時刻取得部４５は、１番目のパケット群Ｇ1に含まれる最初のパケットＰ0に含まれる圧縮音声符号化情報の読出時刻Ｔｒ0を取得する（Ｓ３３）。
【００４６】
ステップＳ３４：次に、ｎの値を加算する。
ステップＳ３５：受信装置２が、通信の終了を示すコマンドを送信装置１から受信するまで、ステップＳ３４〜Ｓ４０までの読出時刻取得処理を行う。通信の終了を示すコマンドを受信すると、読出時刻取得処理を終了する。
ステップＳ３６、Ｓ３７：読出時刻取得部４５は、ＤＡＣ４７により再生バッファ４３から読み出されてアナログ変換された後、再生される再生データをカウントする（Ｓ３６）。読出時刻取得部４５は、再生データを１パケット分カウントする毎に読出部３９を呼出し、読出部３９は、読出時刻取得部４５の呼出に応答して受信バッファ３５から順次、圧縮音声符号化情報を読み出す（Ｓ３７）。ここで、受信バッファ３５内に圧縮音声符号化情報が蓄積されていない場合は、再生バッファ４３には無音データが挿入されており、読出時刻取得部４５は、再生データのカウントと同様に無音データをカウントする。
【００４７】
ステップＳ３８：読出時刻取得部４５は、１つのパケット群を構成するパケットの所定数ｋ分だけ、再生データ量をカウントしたかどうかを判定する。所定数ｋをカウントしていなければ、ステップＳ３５に戻り、読出部４９によりさらに圧縮音声符号化情報を読み出す。
ステップＳ３９：読出時刻取得部４５は、所定数ｋをカウントしていれば、所定数ｋをカウント後に受信バッファから読み出された圧縮音声符号化情報の読出時刻Ｔｏnを取得する。なお、受信バッファ３５内に圧縮音声符号化情報が蓄積されておらず、無音データが再生バッファ４３に挿入されている場合は、読出部４９が無音データを挿入した時刻を圧縮音声符号化情報の読出時刻として取得する。あるいは、読出時刻取得部４５が読出部３９を呼び出した時刻を読出時刻として取得する。ここで、読出時刻取得部４５は、１番目のパケット群Ｇ1における所定数ｋカウント後の圧縮音声符号化情報の読出時刻としてＴｏ1を取得する。また、この読出時刻Ｔｏ1は、２番目のパケット群Ｇ2における最初のパケットに含まれる圧縮音声符号化情報の読出時刻となる。つまり、ｎ番目のパケット群Ｇ1における最初のパケットの読出時刻としてＴｏ(n-1)を取得し、所定数ｋカウント後の読出時刻としてＴｏnを取得する。
【００４８】
ステップＳ４０：読出時刻取得部４５は、最初のパケットに含まれる圧縮音声符号化情報の読出時刻と、所定数ｋカウント後のパケットに含まれる圧縮音声符号化情報の読出時刻との差から読出間隔を算出する。よって、ｎ番目のパケット群Ｇnにおける読出間隔としてΔＴｏn＝Ｔｏn−Ｔｏ(n-1)が算出される。
なお、上記では、送信装置１から通信開始又は通信終了を示すコマンドを受信する場合を記載したが、受信装置２内のコマンドに基づいて通信を開始又は終了しても良い。
（５）補正処理
図９は、補正処理の流れの一例を示すフローチャートである。
【００４９】
ステップＳ４１：補正部５３は、受信時刻取得部３３から受信間隔ΔＴｒnを、読出時刻取得部４５から読出間隔ΔＴｏnを取得したかどうかを判定する。
ステップＳ４２：受信間隔及び読出間隔を取得した場合は、受信間隔と読出間隔との誤差が小さくなるように受信側サンプリング周波数ｆｒを補正する。ここで、ｎ番目のパケット群Ｇnにおける補正後の受信側サンプリング周波数をｆｒnは、次式のように算出される。
【００５０】
ｆｒn＝ｆｒ(n-1)×（ΔＴｏn÷ΔＴｒn）
ここで、ｆｒ(n-1)：ｎ−１番目のパケット群Ｇ(n-1)における補正後の受信側サンプリング周波数である。
より具体的には、補正部５３は、ＶＣＯ５５に印加する電圧値Ｖｃを補正することにより受信側サンプリング周波数ｆｒnの補正を行っている。例えば、新たな電圧値Ｖｃは、以下のようにして算出することができる。
【００５１】
Ｖｃ（Ｖ）＝Ｖｃｐ＋Ｄ・Ｖｍａｘ／２Ｆ
ここで、Ｖｃｐ：補正前の電圧値
Ｖｍａｘ：ＶＣＯ制御電圧の上限
Ｆ：ＶＣＯ制御電圧の振幅（＋方向及び−方向）
Ｄ＝Ａ・（ΔＴｒn−ΔＴｏn）／ΔＴｏn
Ａ：変換係数
である。
【００５２】
そして、補正部５３は、算出した電圧値Ｖｃを、ＶＣＯ５５に出力する。これにより、新たな電圧Ｖｃに基づいて受信側サンプリング周波数ｆｒnが生成される。
ステップＳ４３：補正部５３は、通信終了の信号を受信していない場合は、次のパケット群についてステップＳ４１〜Ｓ４３の処理を行う。
ここで、受信側サンプリング周波数ｆｒnの補正は、次式のように係数ａを用いて行うことができる。
【００５３】
ｆｒn＝ｆｒ(n-1)＋
ａ×｛ｆｒ(n-1)×（ΔＴｏn÷ΔＴｒn）−ｆｒ(n-1)｝
このように係数ａを与えることで、補正による受信側サンプリング周波数ｆｒの変化を緩やかに設定する。例えば、数回の補正により徐々に受信側サンプリング周波数ｆｒを送信側サンプリング周波数ｆｓに近づける。よって、補正による音質の急激な変化を和らげ、音質の低下を低減することができる。また、測定誤差がある場合に、測定誤差にすぐに応答して受信側サンプリング周波数ｆｒが補正される場合等の誤動作を低減することができる。
【００５４】
また、前述したように、受信間隔と読出間隔とが１：１の関係になるように補正することに限定されず、例えば１：２等の所定の関係になるように受信側サンプリング周波数ｆｒを補正しても良い。
［効果］
上記の通り、受信装置２において取得した受信間隔及び読出間隔に基づいて受信側サンプリング周波数ｆｒを補正することができる。よって、受信バッファの蓄積量を制御し、オーバーフローやアンダーフローを防止し、再生されるデータの品質を高めることができる。また、受信時刻及び読出時刻は、受信装置側で取得される。よって、送信装置側からパケット送信時刻、パケット送信間隔に関連する時刻情報を受信装置側に送信する必要がない。そのため、送信するパケットのパケット構成を簡略化し、時刻情報のパケットへの組込時刻やパケットのデータ量を削減することで、パケットの伝送効率の向上や使用する帯域幅を減少することができる。
【００５５】
なお、送信装置１から一定間隔でパケットが送信されている必要はなく、不定の間隔でパケットが送信されている場合であっても第１実施形態例を適用可能である。ただし、送信装置１から一定間隔でパケットが送信されている場合は、受信側サンプリング周波数ｆｒを補正することにより個々のパケットの受信間隔と読出間隔とを一致させることができる。つまり、上記では受信側サンプリング周波数ｆｒの補正はパケット群毎に行われるため、パケット群を構成する個々のパケット毎の受信間隔と読出間隔との差の補正は困難である。しかし、送信装置１から一定間隔でパケットが送信されている場合は、受信側サンプリング周波数ｆｒを補正することで、個々のパケットの受信間隔とディジタルデータの読出間隔とを一致させることができる。よって、受信バッファ量が安定し、アンダーフローやオーバーフローの抑制をより細やかに行うことができる。
＜第２実施形態例＞
第２実施形態例では、アンダーフローやオーバーフローを抑制しつつパケットの欠落、パケットの受信装置への到達の遅れや揺らぎ等のネットワーク障害に対する対策を行う。
［構成］
第２実施形態例に係る音声通信システムの構成は、図２に示す第１実施形態例と同様であるので説明は省略する。また、送信されるパケットは、前記第１実施形態例の図４（ｂ）に示すＲＴＰヘッダを含む。よって、受信部３１は、受信したパケットからパケットのシーケンシャル番号ＳＮnを取得する。また、受信バッファ監視部３７は、パケットのシーケンシャル番号ＳＮnを監視している。さらに、パケットの欠落、パケットの受信装置への到達の遅れや揺らぎ等のネットワーク障害を検出するために、受信バッファ監視部３７は、受信バッファ３５内のデータの蓄積量を監視する。
【００５６】
以下では、所定数ｋ（ｋは自然数でｋ≧２）個のパケットを１つのパケット群として受信間隔及び読出間隔を算出するものとする。また、所定数ｋのパケットを受信するのに要する受信間隔の平均をΔＴｒａｖとする。
次に、受信装置２が行う処理の流れについて、ネットワーク障害に対する対策とともに詳細に説明する。まず、ネットワーク障害について説明する。
［ネットワーク障害］
ネットワーク障害により送信装置１から受信するパケットに損失が生じたり、受信パケットの到達時刻が遅延したりする。ネットワーク障害を、例えば（ａ）パケットロスト、（ｂ）バーストロスト、（ｃ）ゆらぎの３種類に分類し、図１０を用いて各々を説明する。図１０は、送信装置１から送信され、受信部３１において受信されるパケットを時刻の推移とともに示す説明図である。
ａ）パケットロスト
図１０（ａ）は、パケットロストの説明図である。シーケンシャル番号ＳＮ98、ＳＮ99のパケットＰ98、Ｐ99は、受信部３１において正常に受信される。しかし、送信装置１から送信されるパケットに損失が生じ、シーケンシャル番号ＳＮ100、ＳＮ101のパケットＰ100、Ｐ101が受信部３１において受信できていない。次に、受信部３１は、パケットＰ99の次にシーケンシャル番号ＳＮ102のパケットＰ102を受信する。よって、受信バッファ３５には、パケットＰ100、Ｐ101に含まれる有効な圧縮音声符号化情報は格納されず、パケットＰ100、Ｐ101に対応する無効な圧縮音声符号化情報が格納され、受信バッファ３５から再生バッファ４３へ読み出しが行われている。ここで、受信バッファ３５内のデータの蓄積量が“０”にならない場合をパケットロストと定義する。つまり、パケットロストの場合は、損失したパケットのデータ分は受信バッファ３５により吸収できる。
ｂ）バーストロスト
図１０（ｂ）は、バーストロストの説明図である。シーケンシャル番号ＳＮ11のパケットＰ11までは、受信部３１において正常に受信される。しかし、送信装置１から送信されるパケットに損失が生じ、シーケンシャル番号ＳＮ12〜ＳＮ51までのパケットＰ12〜パケットＰ51が受信部３１において受信できていない。そして、受信部３１は、パケットＰ11の次にシーケンシャル番号ＳＮ52のパケットＰ52を受信する。ここで、シーケンシャル番号ＳＮ12〜ＳＮ51までのパケットＰ12〜パケットＰ51が受信バッファ３５に格納されないことにより、受信バッファ３５内のデータの蓄積量が“０”になる場合をバーストロストと定義する。前述のパケットロストとは、パケットの損失が生じた場合に受信バッファ３５内のデータの蓄積量が“０”になる点で異なる。
【００５７】
バーストロストが生じた場合、バーストロスト後に受信するパケットが、ネットワーク障害がなければ本来受信される時刻に受信された時は、受信したパケットを受信バッファ３５に書き込む。例えば、シーケンシャル番号ＳＮ51のパケットＰ51までのパケットは損失したが、パケットＰ52が本来受信される時刻に受信された場合は、パケットＰ52は受信バッファ３５に書き込まれる。一方、本来と異なる時刻に受信された場合には、古いパケットが受信されたとして破棄する。
ｃ）ゆらぎ
図１０（ｃ）は、ゆらぎの説明図である。シーケンシャル番号ＳＮ11のパケットＰ11までは、受信部３１において正常に受信される。しかし、ネットワークのゆらぎなどによりシーケンシャル番号ＳＮ11の次のパケットＰ12が受信部３１において受信されるまでに遅延が生じている。ここで、パケットＰ12の受信部３１での受信に遅延が生じることにより、受信バッファ３５内のデータの蓄積量が“０”になる場合をゆらぎと定義する。
【００５８】
ゆらぎが生じた場合、ゆらぎ後に受信するパケットは、受信部３１で本来受信される時刻から遅れ、短い時間間隔で受信される。よって、ゆらぎ後に受信されるパケットが本来の受信時刻に受信されるまで、受信したパケットを破棄する。そして、本来の受信時刻に受信されるようになると、受信したパケットを受信バッファ３５に書き込む。
［処理］
次に、各部で行われる処理について説明する。
（１）状態判定処理
まず、パケットの損失や到達時刻の遅延がなくパケットを正常に受信しているか、あるいはネットワーク障害によりパケットロスト、バーストロスト、ゆらぎの状態にあるかについての状態判定処理を説明する。この状態判定処理は、後述の再生処理中に受信バッファ監視部３７により行われる。以下、受信したパケットには、図４（ｂ）に示すようにシーケンシャル番号ＳＮnが含まれていることとする。なお、受信バッファ監視部３７は、受信部３１において受信したパケットのシーケンシャル番号ＳＮnを監視するとともに、受信バッファ３５内の受信バッファ量を監視している。
ａ）パケットを送信順に遅延無く正常に受信しているか
パケットを送信順に受信しているかは、受信しているパケットのシーケンシャル番号ＳＮnを受信バッファ監視部３７により監視し、シーケンシャル番号ＳＮnの前後関係や抜けが無いか等を判定することにより行う。さらに、パケットの受信に遅れが生じていないかは、受信バッファ監視部３７により受信バッファ３５内の受信バッファ量を監視することにより行う。例えば、パケットを損失している場合やパケットの受信に遅れが生じている場合には、受信バッファ３５への圧縮音声符号化情報の格納がないまま圧縮音声符号化情報が読み出され、受信バッファ量が減少する。この減少が無いことを見ることで正常であることを判定する。
ｂ）パケットロストの状態であるか
パケットロストの状態であるかは、受信バッファ監視部３７によりシーケンシャル番号ＳＮnの抜けが無いかを判定することにより行う。ここで、パケットロストでは受信バッファ３５で吸収できる程度のパケットの損失であるため、受信バッファ３５内の受信バッファ量は減少するが受信バッファ量が“０”にはならない。
ｃ）バーストロスト又はゆらぎの状態であるか
バーストロスト又はゆらぎの状態であるかは、受信バッファ量が“０”であるかを判定することにより行う。この場合、受信バッファ３５で吸収できる以上のパケットを損失しているため、受信バッファ３５内の受信バッファ量が“０”になる。バーストロスト又はゆらぎの状態であると判定された場合は、受信バッファ監視部３７は、バーストロスト又はゆらぎの状態にあることを示す「ロストフラグ」を立てる。
【００５９】
さらに、バーストロストかゆらぎのいずれかであるかは、例えばシーケンシャル番号ＳＮnを比較することにより次のように行う。図１０（ｂ）及び（ｃ）に示すように、バーストロスト又はゆらぎが発生する直前に受信部３１が受信したパケットのシーケンシャル番号をＳＮlastとする。ここで、バーストロスト又はゆらぎが発生した場合は、受信バッファ監視部３７が受信バッファ３５の受信バッファ量が“０”となっていることを監視しており、受信バッファ監視部３７からの指示により再生バッファ４３には無音データが挿入される。この無音データの挿入回数をＣｓｄとして、バーストロスト又はゆらぎが発生していなければ現在受信するはずの受信パケットのシーケンシャル番号を推定する。推定される推定シーケンシャル番号ＳＮeは、ＳＮe＝ＳＮlast＋Ｃｓｄより算出できる。ここで、バーストロスト又はゆらぎが発生した直後に受信する受信パケットのシーケンシャル番号をＳＮaとする。このシーケンシャル番号ＳＮaと推定シーケンシャル番号ＳＮeとを比較する。推定シーケンシャル番号ＳＮeとシーケンシャル番号ＳＮaとの差が許容範囲内である場合はバーストロストであると判定する。つまり、推定シーケンシャル番号ＳＮeまでのパケットは損失しているが、その後に受信したパケットは本来受信される時刻に受信されている。一方、許容範囲内でない場合は、推定シーケンシャル番号ＳＮeとシーケンシャル番号ＳＮaとの間に開きがあり、パケットの受信時刻に遅延が発生しており、ゆらぎの状態であると判定する。
（２）受信処理
次に、受信処理について説明する。図１１は、受信装置２が行う受信処理の流れの一例を示すフローチャートである。受信装置２は、送信装置１から通信の開始を示すコマンドを受信することにより、以下の処理を開始する。
【００６０】
ステップＳ５１：受信部３１は、通信の終了を示すコマンドを送信装置１から受信するまで、以下のステップＳ５２〜Ｓ６１までの処理を行う。通信の終了を示すコマンドを受信すると、処理を終了する。
ステップＳ５２：受信部３１は、パケットを待機しており、パケットを受信すると、ステップＳ５３に移行する。
【００６１】
ステップＳ５３：受信バッファ監視部３７は、バーストロスト又はゆらぎの状態にあることを示す「ロストフラグ」が立っているかどうかを確認する。「ロストフラグ」は、後述の再生処理中で行われる状態判定処理の結果を示す。
ステップＳ５４：「ロストフラグ」が立っていない場合、つまり、パケットを正常に受信しているか、パケットロストの状態である場合は、受信バッファ３５への書き込みが可能かどうかを判定する。これは、パケットの受信に許容範囲以上の遅延が発生し、古いパケットを受信しているためである。書き込みが可能であると判定された場合は、ステップＳ５５に進み、書き込みが不可能であると判定された場合は、ステップＳ６１に進む。
【００６２】
ステップＳ５５：受信バッファ監視部３７は、受信バッファ３５に新たな圧縮音声符号化情報を書き込む空きメモリがあるか否かを判断する。
ステップＳ５６：空きメモリがあれば、受信部３１は、受信したパケットを受信バッファ３５に書き込む。
ステップＳ５７、Ｓ５８：受信バッファ３５に空きメモリがない場合、受信部３１は、受信バッファ３５内に蓄積されている古い圧縮音声符号化情報を破棄し（Ｓ５７）、新たに受信したパケットの圧縮音声符号化情報を受信バッファ３５に書き込む（Ｓ５８）。
【００６３】
ステップＳ５９：「ロストフラグ」が立っている場合、つまり、バーストロスト又はゆらぎの状態である場合は、受信バッファ３５への書き込みが可能かどうかを判定する。これは、バーストロストの場合は受信したパケットは本来受信される時刻に受信されているが、ゆらぎの場合はパケットの受信に許容範囲以上の遅延が発生し、古いパケットを受信しているためである。よって、ゆらぎの場合は、許容範囲以上の遅延後に受信された古いパケットを破棄する必要がある。そこで、受信バッファ監視部３７は、現在受信している受信パケットのシーケンシャル番号ＳＮaと推定シーケンシャル番号ＳＮeとの比較を行う。そして比較結果に基づいて、現在受信しているパケットに含まれる圧縮音声符号化情報を受信バッファ３５に書き込むかどうかを判定する。受信したパケットが、本来受信される時刻に受信されている場合は、書き込むと判定する。一方、受信したパケットが、本来受信される時刻よりも許容範囲以上の遅延後に受信されている場合は、書き込まないと判定する。
【００６４】
ステップＳ６０：ステップＳ５９において書き込むと判定された場合は、現在受信しているパケットに含まれる圧縮音声符号化情報を受信バッファ３５に書き込むことを示す「書き込み再開フラグ」を立てる。次に、ステップＳ５５に進み、受信バッファ３５への書き込みを行う。
ステップＳ６１：一方、ステップＳ５９において書き込まないと判定された場合は、現在受信しているパケットを破棄する。
【００６５】
以上の処理により、受信バッファ３５に次々に圧縮音声符号化情報を蓄積する。なお、上記ステップＳ５１では、送信装置１から通信の終了を示すコマンドを受信する場合を記載したが、受信装置２内のコマンドに基づいて通信を終了しても良い。また、上記ステップＳ５７及びＳ５８においては、古い圧縮音声符号化情報を受信バッファ３５に保持しておき、新たに受信したパケットの圧縮音声符号化情報を破棄しても良い。
（２）再生処理
次に、再生処理について説明する。図１２は、受信装置２が行う再生処理の流れの一例を示すフローチャートである。受信装置２は、送信装置１から通信の開始を示すコマンドを受信することにより、以下の処理を開始する。
【００６６】
ステップＳ６２、Ｓ６３：受信バッファ監視部３７は、再生開始条件が満たされたか否かを判断し、満たされた場合は読出部３９に再生開始信号を送信する（Ｓ６２）。再生開始信号を受信した読出部３９は、音声の再生処理を開始させる（Ｓ６３）。
ステップＳ６４：受信装置２が、通信の終了を示すコマンドを送信装置１から受信するまで、ステップＳ６４〜Ｓ７７までの再生処理を行う。通信の終了を示すコマンドを受信すると、再生処理を終了する。
【００６７】
ステップＳ６５：再生が継続している場合は、読出部３９は、読出時刻取得部４５の呼出に応答して、受信バッファ３５から圧縮音声符号化情報を１パケット分ずつ読み出す。ついで、復号化部４１、再生バッファ４３、読出時刻取得部４５、ＤＡＣ４７、増幅器４９及び出力部５１により、１パケットに含まれる圧縮音声符号化情報を全てアナログデータに変換して出力されるまで、再生が行われる。
【００６８】
ステップＳ６６：１パケット分の再生が終了すると、受信バッファ監視部３７は、バーストロスト又はゆらぎの状態にあることを示す「ロストフラグ」が立っているかどうかを確認する。このときの「ロストフラグ」は、ステップＳ６５で１パケットを再生する前の状態を示している。「ロストフラグ」が立っていない場合、つまり、ステップＳ６５の１パケット再生する前において、パケットを正常に受信しているか、パケットロストの状態にあった場合は、ステップＳ６７へ進む。一方、「ロストフラグ」が立っている場合、つまり、バーストロスト又はゆらぎの状態であった場合はステップＳ７４へ進む。
【００６９】
ステップＳ６７、Ｓ６８：パケットを正常に受信しているか、パケットロストの状態にあった場合は、受信バッファ監視部３７は、ステップＳ６５で１パケットを再生した後において、受信バッファ３５内に圧縮音声符号化情報が蓄積されているか否かを判断する（Ｓ６７）。受信バッファ３５に圧縮音声符号化情報が蓄積されている場合は、読出部３９は、１パケット分の圧縮音声符号化情報を受信バッファ３５から読み出す（Ｓ６８）。
【００７０】
ステップＳ６９：受信バッファ３５に圧縮音声符号化情報が蓄積されていない場合は、受信バッファ監視部３７は、ステップＳ６５で１パケットを再生した後における状態判定処理を行う。
ステップＳ７０、Ｓ７１：ステップＳ６９の状態判定処理の結果、バーストロストまたはゆらぎの状態ではないと判定された場合は、読出部３９は、受信バッファ監視部３７の指示により１パケット分の無音データを再生バッファ４３に挿入する。
【００７１】
ステップＳ７２、７３：ステップＳ７０において、バーストロストまたはゆらぎの状態にあると判定された場合は、受信バッファ監視部３７は、「ロストフラグ」を立てる（Ｓ７２）。このとき、受信部３１はパケットを正常に受信できていないため、受信時刻取得部３３においてパケットの受信時刻を取得できていない。そのため、受信時刻取得部３３は、１つのパケット群を構成する所定数ｋのパケットを受信するのに要する受信間隔の平均ΔＴｒａｖを、パケットを損失したパケット群の受信間隔と設定する（Ｓ７３）。その後、ステップＳ７１に進み、無音データを挿入する。
【００７２】
ステップＳ７４：ステップＳ６６において、ステップＳ６５で１パケットを再生する前の状態が、バーストロスト又はゆらぎの状態であったと判定された場合は、「書き込み再開フラグ」が立っているかどうかを判定する。「書き込み再開フラグ」は、受信処理のステップＳ６０において立てられるフラグであり、現在受信している受信パケットを受信バッファ３５に書き込むかどうかを示す。
【００７３】
ステップＳ７５、Ｓ７６：「書き込み再開フラグ」が立っている場合、つまり、現在受信している受信パケットを受信バッファ３５に書き込む場合は、「ロストフラグ」を終了する（Ｓ７５）。ここでは、現在受信しているパケットの受信バッファ３５への書き込みが再開され、バーストロスト又はゆらぎの状態から脱している。そして、読出部３９は、１パケット分の圧縮音声符号化情報を受信バッファ３５から読み出す（Ｓ７６）。
【００７４】
ステップＳ７７：「書き込み再開フラグ」が立っていない場合、つまり、現在受信しているパケットを破棄する場合は、読出部３９は、受信バッファ監視部３７の指示により１パケット分の無音データを再生バッファ４３に挿入する。
なお、上記では、送信装置１から通信開始又は通信終了を示すコマンドを受信する場合を記載したが、受信装置２内のコマンドに基づいて通信を開始又は終了しても良い。
（３）受信時刻取得処理
図１３は、受信装置２が行う受信時刻取得処理の流れの一例を示すフローチャートである。受信時刻取得部３３は、前述の通り、１つのパケット群を構成する所定数ｋ個のパケットが受信部３１において受信される毎に、つまり所定数ｋ個毎にパケットの受信時刻を取得する。
【００７５】
以下、パケットの損失や受信時刻の遅延を監視する基準となるシーケンシャル番号を基準シーケンシャル番号ＳＮnとする。ここで、基準シーケンシャル番号ＳＮnの添字ｎは、パケット群Ｇnに対応している。
ステップＳ８１：受信時間取得処理の開始にあたって、受信バッファ監視部３７は、基準シーケンシャル番号ＳＮnの初期値として、及びパケット群の送信順を表すパケット群Ｇnの添字ｎの初期値として、ｎ＝０に設定する。
【００７６】
ステップＳ８２、Ｓ８３：受信部３１は、１番目のパケット群Ｇ1に含まれる最初のパケットＰ0を受信する（Ｓ８２）。そして、受信バッファ監視部３７は、１番目のパケット群Ｇ1に含まれる最初のパケットＰ0のシーケンシャル番号ＳＮrをＲＴＰヘッダから取得する（Ｓ８３）。
ステップＳ８４：次に、受信バッファ監視部３７は、取得した最初のシーケンシャル番号ＳＮrを、最初のパケットＰ0の基準シーケンシャル番号ＳＮ0に設定（ＳＮ0＝ＳＮr）する。例えば、取得したパケットＰ0のシーケンシャル番号が“３”である場合は、ＳＮ0＝ＳＮ3となる。
【００７７】
ステップＳ８５：受信時刻取得部３３は、最初のパケットＰ0の受信部３１での受信時刻Ｔｒ0を取得する。
ステップＳ８６：次に、ｎを加算する。ｎが１加算されることにより、基準シーケンシャル番号はＳＮ1、ＳＮ2、ＳＮ3…となる。
ステップＳ８７：ステップＳ８６における加算前の基準シーケンシャル番号ＳＮn-1に、１つのパケット群を構成するパケットの個数である所定数ｋを加算し、基準シーケンシャル番号ＳＮnを算出する。例えば、基準シーケンシャル番号ＳＮ1＝ＳＮ0＋ｋ、ＳＮ2＝ＳＮ1＋ｋ、…となる。この基準シーケンシャル番号ＳＮnのパケットを受信した時刻に基づいて受信間隔が算出される。
【００７８】
ステップＳ８８：受信装置２が、通信の終了を示すコマンドを送信装置１から受信するまで受信時刻取得処理を行う。通信の終了を示すコマンドを受信すると、受信時刻取得処理を終了する。
ステップＳ８９、Ｓ９０：受信部３１は、順次、パケットを受信する（Ｓ８９）。受信バッファ監視部３７は、受信したパケットのシーケンシャル番号ＳＮrをＲＴＰヘッダから取得する（Ｓ９０）。
【００７９】
ステップＳ９１：受信バッファ監視部３７は、バーストロスト又はゆらぎの状態にあるかを判定する。
ステップＳ９２：バーストロスト又はゆらぎの状態でない場合は、ステップＳ９０で取得したパケットのシーケンシャル番号ＳＮrがステップＳ８７で算出した基準シーケンシャル番号ＳＮn以上（ＳＮr≧ＳＮn）であるか比較する。ＳＮr＜ＳＮnである場合は、ステップＳ８８に戻り、パケットを受信する。例えば、基準シーケンシャル番号ＳＮ0＝ＳＮ3である場合、ステップＳ８７において次の基準シーケンシャル番号ＳＮ1がＳＮ1＝ＳＮ(3+k)と算出される。よって、受信したパケットのシーケンシャル番号ＳＮrがＳＮr＝ＳＮ(3+k)になるまでステップＳ８８〜ステップＳ９２を繰り返す。
【００８０】
ステップＳ９３：ＳＮr≧ＳＮnである場合は、基準シーケンシャル番号ＳＮnと受信したパケットのシーケンシャル番号ＳＮrが等しい（ＳＮr＝ＳＮn）かどうかを判定する。
ステップＳ９４：ＳＮr＝ＳＮnである場合、つまりパケットの損失がなく正常にパケットを受信している場合、受信時刻取得部３３は、シーケンシャル番号ＳＮr（ＳＮr＝ＳＮn）のパケットの受信時刻をＴｒnを取得する。ここで、受信時刻取得部３３は、ＳＮr＝ＳＮ1である場合、１番目のパケット群Ｇ1における所定数ｋ個のパケットを受信した後の受信時刻としてＴｒ1を取得する。また、この受信時刻Ｔｒ1は、２番目のパケット群Ｇ2における最初のパケットの受信時刻となる。つまり、ｎ番目のパケット群Ｇ1における最初のパケットの受信時刻としてＴｒ(n-1)を取得し、所定数ｋ個のパケットを受信した後の受信時刻としてＴｒnを取得する。
【００８１】
ステップＳ９５：ステップＳ９３において、基準シーケンシャル番号ＳＮnとシーケンシャル番号ＳＮrが等しくないと判定された場合、つまりＳＮr＞ＳＮnでありパケットロストの状態である場合は、まず現在受信しているシーケンシャル番号ＳＮrのパケットの受信時刻Ｔｒｒを取得する。
ステップＳ９６：次に、パケットロストにより損失したパケットの欠落数ＬＣをＬＣ＝ＳＮr−ＳＮnより算出する。なお、パケット欠落数は、受信バッファ監視部３７により受信バッファ量を監視することによっても算出できる。つまり、パケットの損失により受信バッファ３５にはパケットが格納されないため、受信バッファ監視部３７により受信バッファ量の減少を監視することでパケット欠落数ＬＣを求めることができる。
【００８２】
ステップＳ９７：パケットを受信できなかった時刻Ｔｃをパケット欠落数ＬＣを用いて算出する。ここで、所定数ｋのパケットを受信するのに要する受信間隔の平均をΔＴｒａｖであり、パケット１個当たりの受信間隔をΔＴｒａｖ／ｋである。よって、パケットを受信できなかった時刻Ｔｃ＝ＬＣ×ΔＴｒａｖ／ｋと算出される。
ステップＳ９８：次に、１つのパケット群の最後のパケットについて、パケットを損失することなく受信した場合における受信時刻を推定する。推定受信時刻Ｔｅは、現在の受信時刻ＲＴｒから、パケットを受信できなかった時刻Ｔｃ＝ＬＣ×ΔＴｒａｖ／ｋを減算（Ｔｅ＝ＲＴｒ−Ｔｃ）することにより算出される。
【００８３】
図１０（ａ）を用いてより詳細に説明する。パケットの損失が無ければ受信部３１がシーケンシャル番号ＳＮ100のパケットＰ100を受信する。つまり、基準シーケンシャル番号がＳＮ100とされているとする。このとき、図１０（ａ）では、Ｐ100及び次のパケットＰ101のパケットを損失し、シーケンシャル番号ＳＮ100とＳＮ101を受信できていない。また、パケットロスト後にシーケンシャル番号ＳＮ102のパケットを受信しており、シーケンシャル番号がＲＳＮ102である。よって、パケットの欠落数ＬＣ＝ＳＮ102−ＳＮ100＝２と算出される。さらに、シーケンシャル番号ＲＳＮ102の受信時刻はＲＴｒ102である。よって、パケットを受信できなかった時刻Ｔｃ＝２×ΔＴｒａｖ／１００となり、推定受信時刻Ｔｅ＝ＲＴｒ102−２×ΔＴｒａｖ／１００と算出される。
【００８４】
ステップＳ９９：ステップＳ９４において受信時刻Ｔｒnを取得した場合には、受信時刻取得部３３は、ｎ番目のパケット群Ｇnにおける受信間隔としてΔＴｒn＝Ｔｒn−Ｔｒ(n-1)を算出する。また、ステップＳ９８において推定受信時刻Ｔｅを算出した場合には、ｎ番目のパケット群Ｇnにおける受信間隔としてΔＴｒn＝Ｔｅ−Ｔｒ(n-1)を算出する。
なお、ステップＳ９１において、バーストロスト又はゆらぎの状態であると判定された場合は、受信時刻取得部３３は、再生処理のステップＳ７２において設定された受信間隔の平均ΔＴｒａｖを受信間隔として取得する。
（４）読出時刻取得処理及び補正処理
読出時刻取得処理及び補正処理は、第１実施形態例と同様の処理であるので説明を省略する。
［効果］
上記の通り、ネットワーク障害が生じている場合であっても、受信装置２において取得した受信間隔ΔＴｒ及び読出間隔ΔＴｏに基づいて受信側サンプリング周波数ｆｒを補正することができる。よって、送信装置側からパケット送信時刻、パケット送信間隔等の送信側サンプリング周波数ｆｓに関連する時刻情報を受信装置側に送信することなく、受信側サンプリング周波数ｆｒの補正を行うことができる。
【００８５】
なお、送信装置１から一定間隔でパケットが送信されている必要はなく、不定の間隔でパケットが送信されている場合であっても第２実施形態例を適用可能である。一致の間隔でパケットが送信されている場合は、前述のΔＴｒａｖから推定受信時刻Ｔｅをより正確に算出することができる。
＜その他の実施形態例＞
（Ａ）前述の第１及び第２実施形態例では、音声通信システムについて説明したが、本発明に係る受信装置は、音声通信だけでなく、動画像通信にも好ましく用いられる。また、静止画像、テキストデータなどの受信装置としても好適である。
【００８６】
（Ｂ）コンピュータに前述の処理を実行させるプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明に含まれる。ここで記録媒体としては、コンピュータが読み書き可能なフレキシブルディスク、ハードディスク、半導体メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク（ＭＯ）、その他のものが挙げられる。
【産業上の利用可能性】
【００８７】
本発明を用いれば、ストリーム再生方式を採用した通信システムの受信装置で再生される音声の品質を高めることを期待できる。
【図面の簡単な説明】
【００８８】
【図１】本発明の概念説明図。
【図２】第１実施形態例に係る通信システムの構成を示すパケット図。
【図３】受信間隔及び読出間隔の取得方法の説明図。
【図４】（ａ）  第１実施形態例におけるパケット構成の一例を示す説明図。（ｂ）  第１実施形態例におけるパケット構成の別の一例を示す説明図。
【図５】第１実施形態例における受信処理の流れを示すフローチャート。
【図６】第１実施形態例における再生処理の流れを示すフローチャート。
【図７】第１実施形態例における受信時刻取得処理の流れを示すフローチャート。
【図８】第１実施形態例における読出時刻取得処理の流れを示すフローチャート。
【図９】第１実施形態例における補正処理の流れを示すフローチャート。
【図１０】（ａ）パケットロストの説明図。（ｂ）バーストロストの説明図。（ｃ）ゆらぎの説明図。
【図１１】第２実施形態例における受信処理の流れを示すフローチャート。
【図１２】第２実施形態例における再生処理の流れを示すフローチャート。
【図１３】第２実施形態例における受信時刻取得処理の流れを示すフローチャート。
【符号の説明】
【００８９】
１：送信装置
２：受信装置
３：ネットワーク
３１：受信部  
３３：受信時刻取得部  
３５：受信バッファ  
３７：受信バッファ監視部  
３９：読出部
４３：再生バッファ
４５：読出時刻取得部
５３：補正部
【図１】
2005341203.tif 000003
【図２】
2005341203.tif 000004
【図３】
2005341203.tif 000005
【図４】
2005341203.tif 000006
【図５】
2005341203.tif 000007
【図６】
2005341203.tif 000008
【図７】
2005341203.tif 000009
【図８】
2005341203.tif 000010
【図９】
2005341203.tif 000011
【図１０】
2005341203.tif 000012
【図１１】
2005341203.tif 000013
【図１２】
2005341203.tif 000014
【図１３】
2005341203.tif 000015