(57)【要約】【課題】受信装置で生じる音声の乱れを解消又は軽減し、音声出力の遅延をも短縮する。【解決手段】送信装置は、音声データを受け付ける音声データ受付部と、音声データを構成する２以上のパケットを順次送信するパケット送信部と、パケット識別子を有する再送要求を受信装置から受信する再送要求受信部と、再送要求が有するパケット識別子に対応するパケットを、再送要求を送信した受信装置に、ユニキャストで送信するパケット再送部とを具備し、受信装置は、パケット格納部と、送信装置からパケットを受信し、パケット格納部に蓄積するパケット受信部と、次に出力するパケットをパケット格納部から取得するパケット取得部と、パケット取得部が次に出力するパケットを取得した場合に、次に出力するパケットを出力する音声出力部と、パケット受信部が第一の期限までに次に出力するパケットを受信しない場合に、再送要求を送信する再送要求送信部とを具備する。【選択図】図１
2018007192.tif 000002
【特許請求の範囲】
【請求項１】
音声データを送信する送信装置と音声データを受信し出力する２以上の受信装置とを具備する音声通信システムであって、
前記送信装置は、
音声データを受け付ける音声データ受付部と、
前記音声データを構成する２以上のパケットであり、パケットを識別するパケット識別子に対応する２以上のパケットを、順次送信するパケット送信部と、
パケット識別子を有する再送要求を前記受信装置から受信する再送要求受信部と、
前記再送要求が有するパケット識別子に対応するパケットを、前記再送要求を送信した受信装置に、ユニキャストで送信するパケット再送部とを具備し、
前記受信装置は、
パケットを格納するパケット格納部と、
前記送信装置からパケットを受信し、前記パケット格納部に蓄積するパケット受信部と、
前記パケット格納部に格納されているパケットであり、パケットに対応するパケット識別子を用いて、次に出力するパケットを取得するパケット取得部と、
前記パケット取得部が次に出力するパケットを取得した場合に、前記次に出力するパケットを出力する音声出力部と、
前記パケット受信部が第一の期限までに次に出力するパケットを受信しない場合に、再送要求を前記送信装置に送信する再送要求送信部とを具備する音声通信システム。
【請求項２】
前記受信装置は、
前記パケット受信部が第一の期限までに次に出力するパケットを受信したか否かを、パケットに対応するパケット識別子を用いて判断する判断部をさらに具備し、
前記再送要求送信部は、
前記判断部が、前記パケット受信部が第一の期限までに次に出力するパケットを受信しなかったと判断した場合に、再送要求を前記送信装置に送信する請求項１記載の音声通信システム。
【請求項３】
前記再送要求送信部は、
前記パケット受信部が第Ｎの期限までに次に出力するパケットを受信しない場合に、Ｎ（Ｎは２以上の自然数）回目の再送要求を前記送信装置に送信する請求項１または請求項２記載の音声通信システム。
【請求項４】
前記受信装置は、
送信装置と受信装置との間の通信に関する情報である通信関連情報を取得する通信関連情報取得部と、
前記パケット格納部の容量、前記再送要求送信部が再送要求を送信可能な回数Ｎ、前記第一の期限から前記回数Ｎに対応する第Ｎの期限までのＮ個の期限のうちの１種類以上の情報である通信パラメータを、前記通信関連情報に応じて、変更する通信パラメータ変更部とをさらに具備する請求項１から請求項３いずれか一項に記載の音声通信システム。
【請求項５】
前記通信関連情報は、
パケットを受信する受信装置の数である端末数、または前記パケット受信部が次に出力するパケットを受信できないことに関するエラー率情報、または前記パケット受信部が次に出力するパケットを受信できたこと関する正常率情報のうちのいずれかの情報を含む請求項４記載の音声通信システム。
【請求項６】
前記送信装置は、
パケットを受信する受信装置の数に関する端末数情報を取得する端末数情報取得部と、
前記端末数情報に応じて、パケットを送信する方式として、マルチキャストまたはブロードキャストを採用するか、ユニキャストを採用するかを決定する方式決定部とをさらに具備し、
前記パケット送信部は、
前記方式決定部が決定した方式に基づいて、パケットを送信する請求項１から請求項５いずれか一項に記載の音声通信システム。
【請求項７】
前記送信装置は、
前記受信装置が受信できなかったパケットを構成するためのパケットであるチェックサムパケットを、前記パケット送信部が送信する２以上のパケットを用いて生成するチェックサムパケット生成部をさらに具備し、
前記パケット送信部は、
前記チェックサムパケットを含む３以上のパケットを送信し、
前記パケット受信部は、
前記チェックサムパケットを含む３以上のパケットを受信し、
前記受信装置は、
前記パケット取得部が次に出力するパケットを取得できなかった場合、前記チェックサムパケットを含む２以上のパケットを用いて、前記次に出力するパケットを生成するパケット生成部をさらに具備する請求項１から請求項６いずれか一項に記載の音声通信システム。
【請求項８】
前記音声データ受付部は、
アナログの音声を受け付ける音声受付手段と、
前記音声をデジタル変換し、音声データを取得するＡＤ変換手段とを具備し、
前記音声出力部は、
前記パケットをアナログ変換し、音声を取得するＤＡ変換手段と、
前記音声を出力する音声出力手段とを具備し、
前記受信装置は、
前記パケット受信部がパケットを受信する速度に関する第一速度情報を取得する第一速度情報取得部と、
当該受信装置の処理速度に関する第二速度情報を取得する第二速度情報取得部と、
前記第一速度情報と前記第二速度情報とから取得される情報であり、送信装置と受信装置とのクロック周波数の誤差に関するずれ情報に基づいて、当該クロック周波数の誤差を補完する処理であるずれ補完処理を行う補完処理部とをさらに具備する請求項１から請求項７いずれか一項に記載の音声通信システム。
【請求項９】
音声データを２以上の受信装置に送信する送信装置であって、
音声データを受け付ける音声データ受付部と、
前記音声データを構成する２以上のパケットであり、パケットを識別するパケット識別子に対応する２以上のパケットを、順次送信するパケット送信部と、
パケット識別子を有し、第一の期限までに次に出力するパケットを受信しない場合に送信された再送要求を前記受信装置から受信する再送要求受信部と、
前記再送要求が有するパケット識別子に対応するパケットを、前記再送要求を送信した受信装置に、ユニキャストで送信するパケット再送部とを具備する送信装置。
【請求項１０】
請求項９記載の送信装置から音声データを受信し出力する受信装置であって、
パケットを格納するパケット格納部と、
前記送信装置からパケットを受信し、前記パケット格納部に蓄積するパケット受信部と、
前記パケット格納部に格納されているパケットであり、パケットに対応するパケット識別子を用いて、次に出力するパケットを取得するパケット取得部と、
前記パケット取得部が次に出力するパケットを取得した場合に、前記次に出力するパケットを出力する音声出力部と、
前記パケット受信部が第一の期限までに次に出力するパケットを受信しない場合に、再送要求を前記送信装置に送信する再送要求送信部とを具備する受信装置。
【請求項１１】
音声データを２以上の受信装置に送信する送信装置が具備する音声データ受付部、パケット送信部、再送要求受信部、およびパケット再送部によって行われる送信方法であって、
前記音声データ受付部が、音声データを受け付ける音声データ受付ステップと、
前記パケット送信部が、前記音声データを構成する２以上のパケットであり、パケットを識別するパケット識別子に対応する２以上のパケットを、順次送信するパケット送信ステップと、
前記再送要求受信部が、パケット識別子を有し、第一の期限までに次に出力するパケットを受信しない場合に送信された再送要求を前記受信装置から受信する再送要求受信ステップと、
前記パケット再送部が、前記再送要求が有するパケット識別子に対応するパケットを、前記再送要求を送信した受信装置に、ユニキャストで送信するパケット再送ステップとを含む送信方法。
【請求項１２】
請求項１１記載の送信装置から音声データを受信し出力する受信装置が具備するパケット受信部、パケット取得部、音声出力部、および再送要求送信部によって行われる受信方法であって、
記録媒体は、
パケットを格納するパケット格納部を格納しており、
前記パケット受信部が、前記送信装置からパケットを受信し、前記パケット格納部に蓄積するパケット受信ステップと、
前記パケット取得部が、前記パケット格納部に格納されているパケットであり、パケットに対応するパケット識別子を用いて、次に出力するパケットを取得するパケット取得ステップと、
前記音声出力部が、前記パケット取得部が次に出力するパケットを取得した場合に、前記次に出力するパケットを出力する音声出力ステップと、
前記再送要求送信部が、前記パケット受信部が第一の期限までに次に出力するパケットを受信しない場合に、再送要求を前記送信装置に送信する再送要求送信ステップとを含む受信方法。
【請求項１３】
音声データを２以上の受信装置に送信する送信装置のコンピュータによって実行されるプログラムであって、
前記コンピュータを、
音声データを受け付ける音声データ受付部と、
前記音声データを構成する２以上のパケットであり、パケットを識別するパケット識別子に対応する２以上のパケットを、順次送信するパケット送信部と、
パケット識別子を有し、第一の期限までに次に出力するパケットを受信しない場合に送信された再送要求を前記受信装置から受信する再送要求受信部と、
前記再送要求が有するパケット識別子に対応するパケットを、前記再送要求を送信した受信装置に、ユニキャストで送信するパケット再送部として機能させるためのプログラム。
【請求項１４】
請求項１３記載の送信装置から音声データを受信し出力する受信装置のコンピュータによって実行されるプログラムであって、
前記コンピュータがアクセス可能な記録媒体は、
パケットを格納するパケット格納部を格納しており、
前記コンピュータを、
前記送信装置からパケットを受信し、前記パケット格納部に蓄積するパケット受信部と、
前記パケット格納部に格納されているパケットであり、パケットに対応するパケット識別子を用いて、次に出力するパケットを取得するパケット取得部と、
前記パケット取得部が次に出力するパケットを取得した場合に、前記次に出力するパケットを出力する音声出力部と、
前記パケット受信部が第一の期限までに次に出力するパケットを受信しない場合に、再送要求を前記送信装置に送信する再送要求送信部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声データを送受信する音声通信システム等に関するものである。
【背景技術】
【０００２】
音声データをリアルタイムに送受信する音声通信システムとして、例えば、Ｗｉ−Ｆｉ（登録商標）等の無線通信を利用して、音声を多くの受信装置にライブ配信するインターネットラジオがあった（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】株式会社ｒａｄｉｋｏ、“ラジオがネットで聴けるラジコ”、［online］、［平成２８年６月２７日検索］、インターネット［URL：http://radiko.jp/］
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来技術において、送信装置から各受信装置までの通信路の帯域やトラフィック等に応じて、一部の受信装置でパケットロスが頻発し、受信装置で出力される音声が乱れる、という課題があった。
【課題を解決するための手段】
【０００５】
本第一の発明の音声通信システムは、音声データを送信する送信装置と音声データを受信し出力する２以上の受信装置とを具備する音声通信システムであって、送信装置は、音声データを受け付ける音声データ受付部と、音声データを構成する２以上のパケットであり、パケットを識別するパケット識別子に対応する２以上のパケットを、順次送信するパケット送信部と、パケット識別子を有する再送要求を受信装置から受信する再送要求受信部と、再送要求が有するパケット識別子に対応するパケットを、再送要求を送信した受信装置に、ユニキャストで送信するパケット再送部とを具備し、受信装置は、パケットを格納するパケット格納部と、送信装置からパケットを受信し、パケット格納部に蓄積するパケット受信部と、パケット格納部に格納されているパケットであり、パケットに対応するパケット識別子を用いて、次に出力するパケットを取得するパケット取得部と、パケット取得部が次に出力するパケットを取得した場合に、次に出力するパケットを出力する音声出力部と、パケット受信部が第一の期限までに次に出力するパケットを受信しない場合に、再送要求を送信装置に送信する再送要求送信部とを具備する音声通信システムである。
【０００６】
かかる構成により、受信装置でのパケットロスの発生を抑え、受信装置で生じる音声の乱れを解消または軽減しつつ、受信装置での音声出力の遅延を短縮できる。
【０００７】
また、本第二の発明の音声通信システムは、第一の発明に対して、受信装置は、パケット受信部が第一の期限までに次に出力するパケットを受信したか否かを、パケットに対応するパケット識別子を用いて判断する判断部をさらに具備し、再送要求送信部は、判断部が、パケット受信部が第一の期限までに次に出力するパケットを受信しなかったと判断した場合に、再送要求を送信装置に送信する音声通信システムである。
【０００８】
かかる構成により、受信装置でのパケットロスの発生を抑え、音声の乱れを解消または軽減しつつ、音声出力の遅延を短縮できる。
【０００９】
また、本第三の発明の音声通信システムは、第一または第二の発明に対して、再送要求送信部は、パケット受信部が第Ｎの期限までに次に出力するパケットを受信しない場合に、Ｎ（Ｎは２以上の自然数）回目の再送要求を送信装置に送信する音声通信システムである。
【００１０】
かかる構成により、受信装置では、１回目の再送要求を送信しても、次に出力するパケットが受信されない場合、２回目以降の再送要求を送信することで、消失したパケットであるロストパケットのリカバー率の向上が期待できる。
【００１１】
また、本第四の発明の音声通信システムは、第一から第三いずれか１つの発明に対して、受信装置は、送信装置と受信装置との間の通信に関する情報である通信関連情報を取得する通信関連情報取得部と、パケット格納部の容量、再送要求送信部が再送要求を送信可能な回数Ｎ、第一の期限から回数Ｎに対応する第Ｎの期限までのＮ個の期限のうちの１種類以上の情報である通信パラメータを、通信関連情報に応じて、変更する通信パラメータ変更部とをさらに具備する音声通信システムである。
【００１２】
かかる構成により、受信装置が、通信関連情報を取得し、通信パラメータを通信関連情報に応じて動的に変更することが可能になる。
【００１３】
また、本第五の発明の音声通信システムは、第四の発明に対して、通信関連情報は、パケットを受信する受信装置の数である端末数、またはパケット受信部が次に出力するパケットを受信できないことに関するエラー率情報、またはパケット受信部が次に出力するパケットを受信できたこと関する正常率情報のうちのいずれかの情報を含む音声通信システムである。
【００１４】
かかる構成により、受信装置が、通信関連情報を取得し、通信パラメータを通信関連情報に含まれる端末数、エラー率または正常率に応じて動的に変更することが可能になる。
【００１５】
また、本第六の発明の音声通信システムは、第一から第五いずれか１つの発明に対して、送信装置は、パケットを受信する受信装置の数に関する端末数情報を取得する端末数情報取得部と、端末数情報に応じて、パケットを送信する方式として、マルチキャストまたはブロードキャストを採用するか、ユニキャストを採用するかを決定する方式決定部とをさらに具備し、パケット送信部は、方式決定部が決定した方式に基づいて、パケットを送信する音声通信システムである。
【００１６】
かかる構成により、送信装置は、マルチキャストまたはブロードキャストと、ユニキャストとのうち、端末数に応じた方式でパケットを送信することができる。
【００１７】
例えば、端末数が閾値以下または閾値より少ない場合は、利用帯域は多いがロスの少ないユニキャストでパケットを送信することで、帯域への圧迫と音声の乱れが共に軽減される。また、端末数が閾値以上または閾値より多い場合は、利用帯域は少ないがロスの多いマルチキャストまたはブロードキャストでパケットを送信し、パケットロスが生じた場合の再送はユニキャストで行うことで、帯域への圧迫と音声の乱れが共に軽減される。
【００１８】
また、本第七の発明の音声通信システムは、第一から第六いずれか１つの発明に対して、送信装置は、受信装置が受信できなかったパケットを構成するためのパケットであるチェックサムパケットを、パケット送信部が送信する２以上のパケットを用いて生成するチェックサムパケット生成部をさらに具備し、パケット送信部は、チェックサムパケットを含む３以上のパケットを送信し、パケット受信部は、チェックサムパケットを含む３以上のパケットを受信し、受信装置は、パケット取得部が次に出力するパケットを取得できなかった場合、チェックサムパケットを含む２以上のパケットを用いて、次に出力するパケットを生成するパケット生成部をさらに具備する音声通信システムである。
【００１９】
かかる構成により、受信装置で、パケットロスが発生し、再送要求を１回以上送信しても、次に出力するパケットを受信できない場合、当該受信装置が受信したチェックサムパケットを含む２以上のパケットを用いてロストパケットを復元することができる。その結果、例えば、再送要求を送信し続ける場合と比べて、送受信の効率が高まる。
【００２０】
また、本第八の発明の音声通信システムは、第一から第七いずれか１つの発明に対して、音声データ受付部は、アナログの音声を受け付ける音声受付手段と、音声をデジタル変換し、音声データを取得するＡＤ変換手段とを具備し、音声出力部は、パケットをアナログ変換し、音声を取得するＤＡ変換手段と、音声を出力する音声出力手段とを具備し、受信装置は、パケット受信部がパケットを受信する速度に関する第一速度情報を取得する第一速度情報取得部と、受信装置の処理速度に関する第二速度情報を取得する第二速度情報取得部と、第一速度情報と第二速度情報とから取得される情報であり、送信装置と受信装置とのクロック周波数の誤差に関するずれ情報に基づいて、クロック周波数の誤差を補完する処理であるずれ補完処理を行う補完処理部とをさらに具備する音声通信システムである。
【００２１】
かかる構成により、送信装置と各受信装置の間で生じるクロック周波数の誤差に起因する出力音声の乱れを低減できる。
【発明の効果】
【００２２】
本発明によれば、受信装置でのパケットロスの発生を抑え、受信装置で生じる音声の乱れを解消または軽減しつつ、受信装置での音声出力の遅延を短縮できる。
【図面の簡単な説明】
【００２３】
【図１】実施の形態における音声通信システムのブロック図
【図２】同送信装置のブロック図
【図３】同受信装置のブロック図
【図４】同送信装置の動作を説明するフローチャート
【図５】同受信装置の動作を説明するフローチャート
【図６】同コンピュータシステムの外観図
【図７】同コンピュータシステムの内部構成図
【発明を実施するための形態】
【００２４】
以下、音声通信システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００２５】
本実施の形態において、受信装置で次に出力すべきパケットを受信できない場合に、再送要求が有するパケット識別子に対応するパケットを、再送要求を送信した受信装置に、ユニキャストで送信する送信装置を有する音声通信システムについて説明する。
【００２６】
また、本実施の形態において、バッファリング量、１回以上の再送要求タイミング等の通信パラメータのカスタマイズが可能な音声通信システムについて説明する。
【００２７】
図１は、本実施の形態における音声通信システムのブロック図である。この音声通信システムは、送信装置１、および２以上の受信装置２を備える。送信装置１と２以上の各受信装置２とは、例えば、ＬＡＮやインターネットなどのネットワーク、有線または無線の通信回線等を介して、通信可能に接続される。送信装置１は、音声データを送信する。２以上の各受信装置２は、当該音声データを受信し、出力する。
【００２８】
図２は、送信装置１のブロック図である。送信装置１は、格納部１１、受付部１２、処理部１３、受信部１４、送信部１５、および出力部１６を備える。格納部１１は、端末識別子格納部１１１、端末数情報格納部１１２、音声データ格納部１１３、および送信時刻情報格納部１１４を備える。受付部１２は、音声データ受付部１２１を備える。音声データ受付部１２１は、音声受付手段１２１１、およびＡＤ変換手段１２１２を備える。処理部１３は、端末数情報取得部１３１、方式決定部１３２、およびチェックサムパケット生成部１３３を備える。受信部１４は、再送要求受信部１４１を備える。送信部１５は、パケット送信部１５１、およびパケット再送部１５２を備える。
【００２９】
図３は、受信装置２のブロック図である。受信装置２は、端末格納部２１、端末受付部２２、端末処理部２３、端末受信部２４、端末送信部２５、および端末出力部２６を備える。端末格納部２１は、パケット格納部２１１、期限情報格納部２１２、出力時刻情報格納部２１３、および消失リスト格納部２１４を備える。端末処理部２３は、パケット取得部２３１、判断部２３２、通信関連情報取得部２３３、通信パラメータ変更部２３４、パケット生成部２３５、第一速度情報取得部２３６、第二速度情報取得部２３７、および補完処理部２３８を備える。端末受信部２４は、パケット受信部２４１を備える。端末送信部２５は、再送要求送信部２５１を備える。端末出力部２６は、音声出力部２６１を備える。音声出力部２６１は、ＤＡ変換手段２６１１、および音声出力手段２６１２を備える。
【００３０】
送信装置１を構成する格納部１１は、各種の情報を格納し得る。各種の情報とは、例えば、後述する端末識別子、後述する端末数情報、後述する音声データ、後述する送信時刻情報などである。
【００３１】
端末識別子格納部１１１には、本音声通信システムを構成する２以上の受信装置２を識別する２以上の端末識別子が格納される。２以上の各端末識別子は、例えば、ＭＡＣアドレス、ＩＰアドレスなどであるが、何でもよい。本音声通信システムを構成する２以上の受信装置２は、静的でもよいし、既存の受信装置２の離脱や、新たな受信装置２の参加に応じて、動的に変化してよい。後者の場合、既存の受信装置２の離脱や新たな受信装置２の参加に応じて、処理部１３が、新たな端末識別子を端末識別子格納部１１１に追記したり、既存の端末識別子を端末識別子格納部１１１から削除したりすることで、端末識別子格納部１１１には、現時点で音声通信システムを構成している２以上の受信装置２を識別する２以上の端末識別子が格納されている。
【００３２】
端末数情報格納部１１２には、端末数情報が格納される。端末数情報とは、本音声通信システムを構成する受信装置２の数（以下、“端末数”と記す場合がある）を示す情報である。後述する端末数情報取得部１３１が、端末識別子格納部１１１に格納されている端末識別子の数を用いて、現在の端末数を取得し、端末数情報の更新を行う結果、端末数情報格納部１１２には、現在の端末数を示す端末数情報が格納されている。
【００３３】
音声データ格納部１１３には、音声データが、少なくとも一時的に格納される。音声データとは、アナログの音声をデジタル変換して得られる音声データであり、２以上の各受信装置２に送信される音声データである。通常、音声データは、１または２以上のパケットで構成され、音声データ格納部１１３には、パケットを識別するパケット識別子と対に、１以上のパケットが格納される。パケット識別子は、例えば、識別番号、タイムスタンプなど、何でもよい。以下では、パケット識別子の例として、識別番号“１”，“２”，…，“ｋ”，…を用い、音声データを構成する一のパケットを“パケットｋ”などのように記す場合がある。ただし、音声データのデータ構造は問わない。
【００３４】
送信時刻情報格納部１１４は、送信時刻情報が格納される。送信時刻情報とは、音声データを構成する１以上の各パケットの送信時刻を示す情報である。送信時刻情報は、例えば、パケット識別子と送信時刻との対の集合である。ただし、送信時刻情報のデータ構造は問わない。また、送信時刻情報は必須でなく、送信時刻情報格納部１１４は省略されてもよい。
【００３５】
受付部１２は、各種の情報を受け付ける。各種の情報とは、例えば、前述した端末識別子、前述した音声データ、前述した送信時刻情報などである。受け付けとは、例えば、キーボードやマウスやマイクロフォンなどの入力デバイスを介して入力された情報の受け付け、ネットワークや通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
【００３６】
音声データ受付部１２１は、音声データを受け付ける。音声データ受付部１２１は、通常、アナログの音声を受け付け、受け付けた音声をデジタル変換する。ただし、音声データ受付部１２１は、例えば、デジタル録音機などの外部装置から出力される音声データを受け付けてもよく、音声データをどこからどのように受け付けるかは問わない。音声データ受付部１２１は、受け付けた音声データを、通常、音声データ格納部１１３に蓄積する。ただし、音声データは、例えば、クラウドサーバなどの外部装置が有する格納部に蓄積されてもよく、その蓄積先は問わない。
【００３７】
音声受付手段１２１１は、通常、マイクロフォン等の音声入力デバイスを介して、アナログの音声を受け付ける。ただし、音声受付手段１２１１は、例えば、アナログ録音機等の外部装置から出力される音声信号を受け付けてもよく、アナログの音声をどこからどのように受け付けるかは問わない。
【００３８】
ＡＤ変換手段１２１２は、音声受付手段１２１１が受け付けたアナログの音声をデジタル変換し、音声データを取得する。デジタル変換とは、アナログの音声を、ＡＤ変換回路が有する発振素子等から出力されるクロックに従う周期でサンプリングすることにより、デジタルの音声データに変換する処理である。ＡＤ変換回路が有する発振素子は、例えば、水晶発振素子、セラミックレゾネータなどであるが、その種類は問わない。
【００３９】
処理部１３は、各種の処理を実行する。各種の処理とは、例えば、端末数情報を取得したり、パケットを送信する方式を決定したり、後述するチェックサムパケットを生成したりする処理である。また、処理部１３は、受け付けられた音声データのパケットを音声データ格納部１１３に一時蓄積する。また、処理部１３は、送信から予め決められた時間が経過したパケット（例えば、再送要求に対象とならないパケット）を音声データ格納部１１３から削除しても良い。また、処理部１３は、音声データ格納部１１３に格納された音声データを構成する各パケットの送信時刻を取得し、送信時刻情報を送信時刻情報格納部１１４に蓄積する処理なども行う。なお、送信時刻情報については後述する。また、処理部１３は、例えば、送信時刻を図示しない時計から取得する。ただし、処理部１３が送信時刻を取得する方法は問わない。
【００４０】
端末数情報取得部１３１は、パケットを受信する受信装置２の数に関する端末数情報を取得する。パケットを受信する受信装置２の数とは、通常、本音声通信システムを構成する受信装置２の数（前述した端末数）である。この場合、端末数情報取得部１３１は、端末識別子格納部１１１に格納されている２以上の端末識別子を用いて、端末数を示す端末数情報を取得する。
【００４１】
ただし、本音声通信システムを構成する２以上の受信装置２の中に、現時点でパケットの受信を、一定期間以上、または一定期間よりも長い期間、継続して休止している受信装置２が含まれている場合に、端末数情報取得部１３１は、上記端末数から、かかる受信装置２の数（休止端末数）を減算した数（実働端末数）を示す端末数情報を取得してもよい。例えば、処理部１３が、端末識別子格納部１１１に格納されている２以上の端末識別子のうち、休止端末であると判断される端末に対応する端末識別子に、フラグを付加する一方、端末数情報取得部１３１は、端末識別子格納部１１１に格納されている２以上の端末識別子の数を計数し、そのうちフラグの付加された端末識別子の数を計数し、前者の計数で得られた端末数から、後者の計数で得られた休止端末数を減算することにより、実働端末数を示す端末数情報を取得することができる。なお、実働端末数を示す端末数情報は、フラグの付加されていない端末識別子の数を計数することによっても、取得可能である。
【００４２】
方式決定部１３２は、端末数情報取得部１３１が取得した端末数情報に応じて、パケットを送信する方式として、マルチキャストを採用するか、ユニキャストを採用するかを決定する。マルチキャストとは、アプリケーション識別子を指定して、１対多で行われるデータ通信をいう。ユニキャストとは、単一の端末識別子を指定して、１対１で行われるデータ通信をいう。一般に、マルチキャストは、ネットワークへの負荷が軽い半面、パケットロスが生じ易い等の理由で信頼性は低く、ユニキャストは、パケットロスが生じ難い等の理由で信頼性が高い半面、ネットワークへの負荷は重い、といった特徴を有する。そこで、方式決定部１３２は、例えば、端末数情報の示す端末数が、閾値以上または閾値より多い場合はマルチキャストを採用し、閾値以下または閾値より少ない場合はユニキャストを採用してもよい。
【００４３】
ただし、方式決定部１３２は、端末数情報取得部１３１が取得した端末数情報に応じて、パケットを送信する方式として、ブロードキャストを採用するか、ユニキャストを採用するかを決定しても構わない。ブロードキャストとは、端末識別子を指定せず、１対不特定多数で行われるデータ通信をいう。ブロードキャストは、マルチキャストと同様、ネットワークへの負荷が軽い半面、信頼性は低い特徴を有する。この場合、方式決定部１３２は、例えば、端末数情報の示す端末数が、閾値以上または閾値より多い場合はブロードキャストを採用し、閾値以下または閾値より少ない場合はユニキャストを採用すればよい。
なお、ＬＡＮやＦｉ−Ｆｉ（登録商標）ネットワークといった一のネットワーク内においては、マルチキャストとブロードキャストとの間で、例えば、パケットロスの発生率、音声通信の効率等に違いはないため、両者を同じ特性の方式として取り扱うことができる。そこで、例えば、ユニキャストを“一対一通信”マルチキャストおよびブロードキャストを“一対多通信”などと総称してもよい。
【００４４】
チェックサムパケット生成部１３３は、受信装置２が受信できなかったパケットを構成するためのチェックサムパケットを、パケット送信部１５１が送信する２以上のパケットを用いて生成する。チェックサムパケット生成部１３３は、例えば、音声データを構成する２以上のパケットに対応する２以上のチェックサムパケットを生成してもよい。その場合、音声データを構成する一のパケット（以下、単に“パケット”と記す場合がある）と、これに対応するチェックサムパケットとは、例えば、前者が、共通の識別番号“ｋ”と、パケットであることを示す識別子（例えば“ｍ”）との組で識別され、後者が、共通の識別番号“ｋ”と、チェックサムパケットであることを示す識別子（例えば“ｒ”）との組で識別されてもよい。ただし、チェックサムパケットのデータ構造は問わない。
【００４５】
例えば、パケット送信部１５１が送信する２以上のパケットのパケット識別子を“ｍ００１”，“ｍ００２”，…，“ｍ０９１”，“ｍ０９２”，…，“ｍ１００”，“ｍ１０１”，…とし、一のチェックサムパケットの生成に用いるパケットの数を１０個とすると、チェックサムパケット生成部１３３は、あるパケット“ｍ１００”に対応するチェックサムパケット“ｒ１００”を、当該パケットを含む過去の１０個のパケット“ｍ０９１”，“ｍ０９２”，…，“ｍ１００”を用いて生成してもよい。次のパケット“ｍ１０１”に対応するチェックサムパケット“ｒ１０１”も同様に、当該パケットを含む過去の１０個のパケット“ｍ０９２”，“ｍ０９３”，…，“ｍ１０１”を用いて生成されてよい。なお、この場合、チェックサムパケット“ｒ００１”は、パケット“ｍ００１”を用いて生成され、チェックサムパケット“ｒ００２”は、２個のパケット“ｍ００１”および“ｍ００２”を用いて生成され、…、チェックサムパケット“ｒ００９”は、９個のパケット“ｍ００１”〜“ｍ００９”を用いて生成されてよい。ただし、一のチェックサムパケットの生成に用いるパケットの数は何個でもよく、チェックサムパケットの生成方法は問わない。
【００４６】
受信部１４は、各種の情報を受信する。各種の情報とは、例えば、再送要求などである。
【００４７】
再送要求受信部１４１は、受信装置２からの再送要求を受信する。再送要求とは、パケットの再送を要求する命令である。再送要求は、パケット識別子を有する。
【００４８】
送信部１５は、各種の情報を送信する。各種の情報とは、例えば、パケット、チェックサムパケットなどである。
【００４９】
パケット送信部１５１は、音声データ受付部１２１が受け付けた音声データを構成する２以上のパケットを順次送信する。パケット送信部１５１は、通常、パケット識別子を含むパケットを送信する。また、パケット送信部１５１は、パケット識別子に対応付いたパケットを送信しても良い。パケット送信部１５１は、２以上の各パケットを、端末識別子格納部１１１に格納されている２以上の端末識別子で識別される２以上の受信装置に、通常、マルチキャストで送信する。ただし、パケットの送信は、ブロードキャストで行われてもよいし、ユニキャストで行われても構わない。望ましくは、パケット送信部１５１は、パケットを、マルチキャストまたはブロードキャストと、ユニキャストとのうち、方式決定部１３２が決定した方式に基づいて送信する。
【００５０】
パケット送信部１５１は、さらに、チェックサムパケット生成部１３３が生成したチェックサムパケットをも送信してよい。パケット送信部１５１は、通常、チェックサムパケットを含む３以上のパケットを送信する。パケット送信部１５１は、例えば、パケットとチェックサムパケットとを交互送信してもよい。その場合、パケット送信部１５１は、チェックサムパケットを、対応するパケットの直後に送信してもよいし、対応するパケットよりも、一定数、遅延させて送信してもよい。つまり、パケット送信部１５１は、上で例示したパケット“ｍ０９１”，“ｍ０９２”，…，“ｍ１００”，“ｍ１０１”，…およびチェックサムパケット“ｒ０９１”，“ｒ０９２”，…，“ｒ１００”，“ｒ１０１”，…を、遅延なしで、例えば、“ｍ０９１”，“ｒ０９１”，“ｍ０９２”，“ｒ０９２”，…のように送信してもよいし、対応するパケットよりも、例えば５パケット、遅延させて、“ｍ０９６”，“ｒ０９１”，“ｍ０９７”，“ｒ０９２”，…のように送信してもよい。こうして、パケットに対するチェックサムパケットの送信タイミングを、２パケット以上、遅らせることで、複数パケットが連続的に消失した場合でも復元できる可能性が高まる。
【００５１】
パケット再送部１５２は、再送要求受信部１４１が受信した再送要求が有するパケット識別子に対応するパケットを、当該再送要求を送信した受信装置２に、ユニキャストで送信する。再送要求は、通常、当該再送要求を送信した受信装置２を識別する端末識別子を有しているか、または、かかる端末識別子と対に送信されるため、パケット再送部１５２は、パケットを、当該端末識別子で識別される受信装置２に再送する。なお、パケット再送部１５２は、通常、音声データ格納部１１３に一時格納されているパケットであり、再送要求が有するパケット識別子に対応するパケットを取得し、当該パケットを受信装置２に再送する。
【００５２】
出力部１６は、各種の情報を出力し得る。出力とは、ディスプレイへの表示、プリンタでの印字、スピーカーからの音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。各種の情報とは、例えば、前述した端末数情報などである。ただし、送信装置１において、情報の出力は必須ではなく、出力部１６は省略可能である。
【００５３】
受信装置２を構成する端末格納部２１は、各種の情報を格納し得る。各種の情報とは、例えば、前述したパケット、後述する期限情報、後述する出力時刻情報、後述する消失リストなどである。
【００５４】
パケット格納部２１１には、パケット受信部２４１が受信したパケットが、当該パケットを識別するパケット識別子と対に格納される。パケットがパケット識別子と対に格納されることは、パケット識別子を有するパケットが格納されることでも良い。パケット格納部２１１には、通常、一時的にパケットが格納される。なお、パケット格納部２１１は、例えば、キューである。
【００５５】
期限情報格納部２１２には、第一の期限から第Ｎの期限までのＮ個（Ｎは２以上の自然数：以下同様）の期限に対応するＮ個の期限情報が格納される。期限情報とは、通常、パケット受信部２４１がパケットを受信する期限を示す情報である。
ただし、期限情報は、パケット受信部２４１が受信したパケットをパケット格納部２１１に蓄積する期限を示す情報であってもよい。期限とは、通常、特定の時刻に対する相対的な期限である。特定の時刻に対する相対的な期限とは、例えば、当該パケットを出力する時刻ｔよりも時間Ｔ前の時刻“ｔ−Ｔ”であってもよい。ただし、期限は、絶対的な期限、例えば○時○分○秒○○といった時刻であってもよく、期限の表現形式は問わない。
【００５６】
第一の期限とは、例えば、次に出力するパケットをパケット受信部２４１が受信する期限を示す情報である。ただし、第一の期限とは、例えば、次に出力するパケットをパケット受信部２４１がパケット格納部２１１に蓄積する期限を示す情報であってもよく、その表現形式は問わない。なお、次に出力すべきパケットは、通常、直前に出力したパケットのパケット識別子の次のパケット識別子に対応するパケットである。
【００５７】
第二の期限とは、例えば、次に出力するパケットを第一の期限までにパケット受信部２４１が受信しない場合に、再送要求送信部２５１が当該パケットを識別するパケット識別子を有する１回目の再送要求を送信するのに応じて、当該パケットをパケット受信部２４１が受信する期限を示す情報である。第二の期限は、例えば、１回目の再送要求を送信してから、当該再送要求に対応するパケットの受信を待つまでの期限を示す情報である。ただし、第二の期限は、例えば、次に出力するパケットを第一の期限までにパケット受信部２４１がパケット格納部２１１に蓄積しない場合に、再送要求送信部２５１が当該パケットを識別するパケット識別子を有する１回目の再送要求を送信するのに応じて、当該パケットをパケット受信部２４１がパケット格納部２１１に蓄積する期限を示す情報であってもよい。なお、第一の期限、第二の期限等の表現形式は問わない。
【００５８】
第Ｎの期限とは、通常、Ｎ−１回目の再送要求の送信後に、Ｎ回目の再送要求を送信するまでの期間に関する情報である。第Ｎの期限は、例えば、Ｎ回目の再送要求を送信するのに応じて、当該パケットをパケット受信部２４１が受信する期限を示す情報である。ただし、第Ｎの期限は、例えば、Ｎ−１回目の再送要求に応じて、当該パケットを第Ｎ−１の期限までにパケット受信部２４１がパケット格納部２１１に蓄積しない場合に、Ｎ回目の再送要求を送信するのに応じて、当該パケットをパケット受信部２４１がパケット格納部２１１に蓄積する期限を示す情報であってもよい。
【００５９】
Ｎ個の期限情報は、例えば、第一の期限｛ｔ（ｋ）−Ｔ（１）｝を示す第一期限情報、第二の期限｛ｔ（ｋ）−Ｔ（２）｝を示す第二期限情報、…、および第Ｎの期限｛ｔ（ｋ）−Ｔ（Ｎ）｝を示す第Ｎ期限情報であってもよい。ただし、Ｎ個の各期限情報のデータ構造は問わない。また、第一の期限は、第二の期限や第Ｎの期限等と同じでも良い。かかる場合、期限情報格納部２１２には、第一の期限のみ格納されていても良い。
【００６０】
出力時刻情報格納部２１３は、出力時刻情報が格納される。出力時刻情報とは、音声出力部２６１がパケットを出力する時刻を示す情報である。出力時刻情報は、例えば、パケット識別子（１，２，…，ｋ，…）と出力時刻（ｔ（１），ｔ（２），…，ｔ（ｋ），…）との対の集合で構成される。出力時刻ｔ（ｋ）は、例えば、パケットｋが出力される期限であり、音声出力部２６１がタイムアウトか否かを判断する際に用いる閾値であってもよい。ただし、出力時刻情報のデータ構造は問わない。
【００６１】
消失リスト格納部２１４には、消失リストが格納される。消失リストとは、消失したパケットのパケット識別子を、当該パケット識別子を有する再送要求が送信された回数と対に登録するためのリストである。消失したパケットとは、期限情報が示す期限までにパケット受信部２４１によって受信されなかったパケットである。消失リストは、例えば、パケット識別子と再送要求が送信された回数との組を１組以上有する情報である。なお、消失リストは管理されなくても良い。かかる場合、例えば、出力されたパケットの次のパケットが、前のパケットの出力から予め決められた時間以上、受信されなかった場合、次のパケットを取得する処理に移行していく。
【００６２】
端末受付部２２は、各種の情報を受け付ける。各種の情報とは、例えば、前述した期限情報などである。ただし、期限情報等は、例えば、受信部１４によって受信されてもよく、端末受付部２２は省略可能である。
【００６３】
端末処理部２３は、各種の処理を実行する。各種の処理とは、例えば、パケット取得部２３１、判断部２３２、通信関連情報取得部２３３、通信パラメータ変更部２３４、パケット生成部２３５、第一速度情報取得部２３６、第二速度情報取得部２３７、補完処理部２３８等が行う処理である。また、端末処理部２３は、パケット格納部２１１に格納された２以上の各パケットの出力時刻を決定し、出力時刻情報を出力時刻情報格納部２１３に蓄積する処理なども行う。なお、出力時刻情報については後述する。
【００６４】
パケット取得部２３１は、パケット格納部２１１に格納されているパケットであり、パケットに対応するパケット識別子を用いて、次に出力するパケットを取得する。パケット取得部２３１は、例えば、直前に出力されたパケットのパケット識別子の次の識別子（パケット識別子が数値の場合は、直前のパケットのパケット識別子に１を加えた数）に対応するパケットをパケット格納部２１１から探索し、取得する。パケット取得部２３１は、例えば、出力時刻情報格納部２１３に格納されている出力時刻情報と、現在時刻とを用いて、パケット格納部２１１に格納されている２以上のパケットのうち、次に出力するパケットを特定してもよい。なお、現在時刻は、例えば、ＭＰＵの内蔵時計や、ＮＰＴサーバ等の外部装置から取得可能である。また、パケット取得部２３１が次のパケットをパケット格納部２１１から探索するアルゴリズムは問わない。
【００６５】
判断部２３２は、通常、パケット受信部２４１が第一の期限までに次に出力するパケットを受信したか否かを、当該パケットに対応するパケット識別子を用いて判断する。パケット受信部２４１が第一の期限までに次に出力するパケットを受信したか否かの判断は、パケット取得部２３１が第一の期限までに次に出力するパケットを取得したか否かの判断と同意義であると考えても良い。パケット受信部２４１が第一の期限までに次に出力するパケットを受信したか否かの判断は、音声出力部２６１が第一の期限までに次に出力するパケットを出力したか否かの判断と同意義であると考えても良い。判断部２３２は、パケット受信部２４１が第Ｎの期限までに次に出力するパケットを受信したか否かをも判断しても良い。判断部２３２は、パケット受信部２４１が第一の期限〜第Ｎの期限までに次に出力するパケットをパケット格納部２１１に蓄積したか否かを、当該パケットに対応するパケット識別子を用いて判断してもよい。
【００６６】
通信関連情報取得部２３３は、通信関連情報を取得する。通信関連情報とは、送信装置１と受信装置２との間の通信に関する情報である。通信関連情報は、例えば、パケットを受信する受信装置２の数である端末数、またはパケット受信部２４１が次に出力するパケットを受信できないことに関するエラー率情報、またはパケット受信部２４１が次に出力するパケットを受信できたこと関する正常率情報、のうちのいずれかの情報を含んでいてもよい。
【００６７】
通信関連情報取得部２３３は、例えば、送信装置１から、端末数情報取得部１３１が取得した端末数情報を受信することで、端末数を取得することができる。
【００６８】
また、通信関連情報取得部２３３は、エラー率情報または正常率情報を、例えば、パケット格納部２１１に格納されているパケットの数（または、かかるパケットと対になるパケット識別子の数）と、消失リスト格納部２１４に格納された消失リストに登録されているパケット識別子の数とを用いて、取得してもよい。例えば、パケット格納部２１１に格納されているパケット数が１０００個で、消失リストに１０個のパケット識別子が登録されている場合、エラー率は１０／１０００（＝１％）、正常率は９９０／１０００（＝９９％）のように計算される。ただし、通信関連情報の内容、取得先、取得方法等は問わない。
【００６９】
通信パラメータ変更部２３４は、１または２以上の通信パラメータを、通信関連情報に応じて、変更する。通信パラメータは、例えば、パケット格納部２１１の容量、再送要求送信部２５１が再送要求を送信可能な回数Ｎ、第一の期限から回数Ｎに対応する第Ｎの期限までのＮ個の期限、のうちの１種類以上の情報である。例えば、通信関連情報が端末数を含む場合、通信パラメータ変更部２３４は、端末数に応じて、パケット格納部２１１の容量（パケットをバッファリングできるメモリの容量）を増減したり、回数Ｎを多く又は少なくしたり、Ｎ個の期限を短くまたは長くしたりしてもよい。さらに具体的には、通信パラメータ変更部２３４は、端末数が閾値より多いまたは閾値以上の場合、トラフィックの増大によるエラー率の上昇または正常率の低下に備えて、パケット格納部２１１の容量を増加したり、回数Ｎを多くしたり、Ｎ個の期限を短くしたりしても良い。また、通信パラメータ変更部２３４は、端末数が閾値より少ないまたは閾値以下の場合、トラフィックの減少によるエラー率の低下または正常率の上昇を見越して、パケット格納部２１１の容量を減少したり、回数Ｎを少なくしたり、Ｎ個の期限を長くしたりしても良い。
【００７０】
また、通信関連情報がエラー率情報または正常率情報を含む場合、通信パラメータ変更部２３４は、エラー率情報または正常率情報に応じて、パケット格納部２１１の容量を増減したり、回数Ｎを多く又は少なくしたり、Ｎ個の期限を短くまたは長くしたりしてもよい。さらに具体的には、通信パラメータ変更部２３４は、エラー率が閾値より多いまたは閾値以上の場合、パケット格納部２１１の容量を増加したり、回数Ｎを多くしたり、Ｎ個の期限を短くしたりしても良い。また、通信パラメータ変更部２３４は、エラー率が閾値より少ないまたは閾値以下の場合、パケット格納部２１１の容量を減少したり、回数Ｎを少なくしたり、Ｎ個の期限を長くしたりしても良い。
【００７１】
パケット生成部２３５は、パケット取得部２３１が次に出力するパケットを取得できなかった場合、パケット受信部２４１が受信したパケットであり、チェックサムパケットを含む２以上のパケットを用いて、次に出力するパケットを生成する。例えば、送信装置１から、パケットおよびチェックサムパケットが“ｍ０９１”，“ｒ０９１”，“ｍ０９２”，“ｒ０９２”，…，“ｍ１００”，“ｒ１００”，…のように送信され、そのうちパケット“ｍ１００”が消失した場合、パケット生成部２３５は、パケット受信部２４１が受信した９個のパケット“ｍ０９１”〜“ｍ０９９”および “ｒ１００”を用いて、当該消失したパケット“ｍ１００”を生成することができる。なお、“ｍ・・・”は受信装置２で出力されるパケットである。また、“ｒ・・・”はチェックサムパケットである。
【００７２】
第一速度情報取得部２３６は、第一速度情報を取得する。第一速度情報とは、パケット受信部２４１がパケットを受信する速度に関する情報をいう。第一速度情報は、第一の受信レートと言っても良い。第一速度情報は、例えば、１０００パケット／秒といった情報である。第一速度情報が示す速度は、送信装置１のクロックに応じた速度である。送信装置１のクロックとは、前述したように、送信装置１のＡＤ変換手段１２１２が音声をデジタル変換する際に利用するクロックである。
【００７３】
第二速度情報取得部２３７は、第二速度情報を取得する。第二速度情報とは、受信装置２の処理速度に関する情報である。受信装置２の処理速度に関する情報とは、例えば、ＤＡ変換手段２６１１がパケットをアナログ変換する速度などである。ただし、第二速度情報は、ＤＡ変換手段２６１１からフィードバックされる情報であり、アナログ変換処理の進行状況（例えば、既定の処理速度に対する遅れ等）を示す情報などであってもよく、その種類は問わない。第二速度情報が示す速度は、第一速度情報が示す速度と一致することが望ましいが、これら２つの速度は、送信装置１と受信装置２との間のクロックの差異（例えば、それぞれの変換回路が有する発振素子の発振周波数の不一致など）に起因して、例えば“１０００パケット／秒”対“１０００．１パケット／秒”つまり１００００：１０００１などのように、ずれることがある。そして、かかるずれは、一般に、時間の経過に連れて拡大していく。
【００７４】
補完処理部２３８は、ずれ情報に基づいて、クロック周波数の誤差を補完する処理であるずれ補完処理を行う。ずれ情報とは、第一速度情報と第二速度情報とから取得される情報であり、送信装置１と受信装置２とのクロック周波数の誤差に関する情報をいう。ずれ情報は、例えば、第一速度情報および第二速度情報に対応する２つの速度の比を示す情報であってもよい。ずれ補完処理とは、第一速度情報および第二速度情報に対応する２つの速度の比を１にする又は１に接近させるための処理である。例えば、第一速度情報および第二速度情報に対応する２つの速度の比がａ：ｂであれば、受信装置２側のクロックの周期を“｜ｂ−ａ｜／ｂ”だけ長くする（ａ＜ｂの場合）又は短くする（ａ＞ｂの場合）処理である伸縮処理であってもよい。かかる伸縮処理は、例えば、既存の音声データの時間間隔を伸縮させるリサンプリング、ストレッチングなどであるが、既存の音声データの間を推定値で補間する補間処理を含んでいてもよい。ただし、ずれ補完処理の手法は問わない。なお、ずれ情報は、例えば、第一速度情報および第二速度情報に対応する２つの速度の差を示す情報であってもよい。かかるずれ補完処理によって、送信装置１と受信装置２の間で生じるクロック周波数の誤差に起因する出力音声の乱れ（例えば、音切れ、音飛び等）を低減できる。
【００７５】
端末受信部２４は、各種の情報を受信し得る。各種の情報とは、例えば、前述したパケットである。
【００７６】
パケット受信部２４１は、送信装置１からパケットを受信し、パケット格納部２１１に蓄積する。パケット受信部２４１は、通常、２以上のパケットを受信し、受信した２以上の各パケットを、当該パケットを識別するパケット識別子と対に蓄積する。なお、対に蓄積することは、パケットがパケット識別子を有することも含む。パケット受信部２４１は、前述したチェックサムパケットを含む３以上のパケットを受信してもよい。
【００７７】
端末送信部２５は、各種の情報を送信し得る。各種の情報とは、例えば、前述した再送要求である。
【００７８】
再送要求送信部２５１は、パケット受信部２４１が第一の期限までに次に出力するパケットを取得しない場合に、当該パケットを識別するパケット識別子を有する再送要求を送信装置１に送信する。再送要求は、通常、当該受信装置２を識別する端末識別子をさらに有する。ただし、再送要求送信部２５１は、パケット識別子のみを有する再送要求を、当該受信装置２を識別する端末識別子と対に送信してもよい。なお、再送要求送信部２５１は、通常、ユニキャストで再送要求を送信装置１に送信する。これは、再送要求自体が消失する可能性を低減するためである。
【００７９】
再送要求送信部２５１は、判断部２３２が、パケット受信部２４１が第一の期限までに次に出力するパケットを受信しなかったと判断した場合に、再送要求を送信装置１に送信する。
【００８０】
再送要求送信部２５１は、パケット受信部２４１が第Ｎの期限までに次に出力するパケットを受信しない場合に、Ｎ回目の再送要求を送信装置１に送信する。
【００８１】
再送要求送信部２５１は、第一期限情報が示す第一の期限までにパケット受信部２４１によって受信されなかったパケットを識別するパケット識別子を有する再送要求を送信装置１に送信するのに伴い、当該パケット識別子を有する再送要求を送信した回数（以下、単に“回数”と記す場合がある）の初期値“１”との対を消失リストに登録する。
【００８２】
再送要求送信部２５１は、第Ｎ期限情報が示す第Ｎの期限までにパケット受信部２４１によって受信されなかったパケットを識別するパケット識別子を有するＮ回目の再送要求を送信装置１に送信するのに伴い、消失リストに登録されている当該パケット識別子と対になる回数をＮに更新する。
【００８３】
端末出力部２６は、各種の情報を出力し得る。各種の情報とは、例えば、前述したパケットなどである。
【００８４】
音声出力部２６１は、パケット取得部２３１が次に出力するパケットを取得した場合に、当該次に出力するパケットを音声出力する。パケット取得部２３１が次に出力するパケットを取得しない場合に、音声出力部２６１は、例えば、パケット生成部２３５が生成したパケットであり、当該次に出力するパケットに対応するパケットを音声出力しても良い。音声出力部２６１は、パケット取得部２３１が次に出力するパケット（例えばパケットｋ）を取得しない場合、例えば、期限情報が有する出力時刻（例えば出力時刻ｔ（ｋ））を用いてタイムアウトか否かを判断し、パケット生成部２３５は、タイムアウトと判断した場合に、当該次に出力するパケットに対応するパケットの生成を行ってもよい。
【００８５】
ＤＡ変換手段２６１１は、パケット取得部２３１が取得したパケットをアナログ変換し、アナログ音声信号を生成する。アナログ変換とは、デジタルの音声データを、ＤＡ変換回路が有する発振素子等から出力されるクロックに従う周期で読み出し、アナログ波形を生成し、アナログの音声信号に変換する処理である。
【００８６】
音声出力手段２６１２は、ＤＡ変換手段２６１１が生成した音声信号を、スピーカー等の出力デバイスを介して音声出力する。
【００８７】
格納部１１、端末識別子格納部１１１、端末数情報格納部１１２、音声データ格納部１１３、送信時刻情報格納部１１４、端末格納部２１、パケット格納部２１１、期限情報格納部２１２、出力時刻情報格納部２１３、および消失リスト格納部２１４は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００８８】
格納部１１等に端末識別子等の情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部１１等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部１１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部１１等で記憶されるようになってもよい。
【００８９】
受付部１２、および端末受付部２２は、入力デバイスのデバイスドライバーによって、または入力デバイスとそのデバイスドライバー等とで実現され得る。入力デバイスは、例えば、マイクロフォン、キーボードやマウスやタッチパネルによるもの等、何でもよい。音声データ受付部１２１、および音声受付手段１２１１は、マイクロフォンなどの音声入力デバイスのデバイスドライバーによって、または音声入力デバイスとそのデバイスドライバー等とで実現され得る。ＡＤ変換手段１２１２は、例えばＡＤ変換回路などで実現され得る。
【００９０】
処理部１３、端末数情報取得部１３１、方式決定部１３２、チェックサムパケット生成部１３３、端末処理部２３、パケット取得部２３１、判断部２３２、通信関連情報取得部２３３、通信パラメータ変更部２３４、パケット生成部２３５、第一速度情報取得部２３６、第二速度情報取得部２３７、および補完処理部２３８は、通常、ＭＰＵやメモリ等から実現され得る。処理部１３等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現してもよい。
【００９１】
受信部１４、再送要求受信部１４１は、端末受信部２４、パケット受信部２４１は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されてもよい。
【００９２】
送信部１５、パケット送信部１５１、パケット再送部１５２、端末送信部２５、および再送要求送信部２５１は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されてもよい。
【００９３】
出力部１６、および端末出力部２６は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えてもよい。出力部１６等は、出力デバイスのドライバーソフトによって、または出力デバイスとそのドライバーソフト等とで実現され得る。音声出力部２６１、および音声出力手段２６１２は、スピーカー等の音声出力デバイスを含むと考えても含まないと考えてもよい。ＤＡ変換手段２６１１は、例えばＤＡ変換回路などで実現され得る。
【００９４】
次に、音声通信システムの動作について図４および図５のフローチャートを用いて説明する。図４は、送信装置１の動作を説明するフローチャートである。
【００９５】
（ステップＳ４０１）処理部１３は、初期処理を実行する。初期処理は、例えば、パケットを送信する方式を示す方式情報に初期値をセットする処理などを含む。初期値は、通常“マルチキャスト”であるが、“ユニキャスト”でもよい。初期値は、前回の動作終了時点における方式情報の値であってもよい。初期値は、格納部１１に格納されていてもよいし、方式決定部１３２が保持していてもよく、その所在は問わない。
【００９６】
（ステップＳ４０２）音声データ受付部１２１は、音声受付手段１２１１が音声を受け付けたか否かを判別する。音声受付手段１２１１が音声を受け付けた場合はステップＳ４０３に進み、受け付けていない場合はステップＳ４０４に進む。
【００９７】
（ステップＳ４０３）ＡＤ変換手段１２１２は、音声受付手段１２１１が受け付けた音声をデジタル変換し、音声データを取得する。音声データ受付部１２１は、取得された音声データを音声データ格納部１１３に蓄積する。これによって、音声データ格納部１１３には、音声データ受付部１２１が受け付けた音声データを構成する２以上のパケットが、各パケットを識別するパケット識別子と対に格納される結果となる。その後、ステップＳ４０２に戻る。
【００９８】
（ステップＳ４０４）処理部１３は、変数ｉに初期値“１”をセットする。
【００９９】
（ステップＳ４０５）処理部１３は、音声データ格納部１１３にｉ番目のパケットがあるか否かを判別する。音声データ格納部１１３にｉ番目のパケットがある場合はステップＳ４０６に進み、ない場合はステップＳ４０２に戻る。
【０１００】
（ステップＳ４０６）パケット送信部１５１は、ｉ番目のパケットを、端末識別子格納部１１１に格納されている２以上の端末識別子で識別される２以上の受信装置に、方式情報が示す方式で送信する。パケット送信部１５１は、音声データ格納部１１３に格納されているｉ番目のパケットであり、送信したパケットに対応する送信済みパケットに、送信済みを示すフラグを付加してもよい。
【０１０１】
（ステップＳ４０７）処理部１３は、チェックサムパケットを生成するか否かを判断する。例えば、処理部１３は、音声データを構成する２以上のパケットの全てに対してチェックサムパケット生成する場合は、常に生成すると判断してもよいし、所定数（例えば２個、１０個など）に１個の割合で生成する場合は、当該所定数回に１回の割合で生成すると判断してもよい。チェックサムパケットを生成する場合はステップＳ４０８に進み、生成しない場合はステップ４１０に進む。
【０１０２】
（ステップＳ４０８）チェックサムパケット生成部１３３は、当該パケットに対応するチェックサムパケットを、当該パケットを含む２以上の送信済みパケットを用いて生成する。なお、チェックサムパケットの生成手順については前述したので繰り返さない。
【０１０３】
（ステップＳ４０９）パケット送信部１５１は、チェックサムパケット生成部１３３が生成したチェックサムパケットをも、当該２以上の受信装置に当該方式情報が示す方式で送信する。その後、ステップＳ４１０に進む。
【０１０４】
（ステップＳ４１０）処理部１３は、変数ｉをインクリメントする。その後、ステップＳ４０５に戻る。
【０１０５】
（ステップＳ４１１）処理部１３は、再送要求受信部１４１が再送要求を受信したか否かを判別する。再送要求受信部１４１が再送要求を受信した場合はステップＳ４１２に進み、受信していない場合はステップＳ４１３に進む。
【０１０６】
（ステップＳ４１２）パケット再送部１５２は、再送要求受信部１４１が受信した再送要求が有するパケット識別子に対応するパケットを、当該再送要求を送信した受信装置２に、ユニキャストで送信する。その後、ステップＳ４０２に戻る。
【０１０７】
（ステップＳ４１３）処理部１３は、端末数情報を取得するタイミングか否かを判別する。具体的には、処理部１３は、例えば、クロックを計数し、当該計数結果を示す第一回数が第一所定数に達した時、端末数情報を取得するタイミングであると判別し、第一回数をリセットする処理を、繰り返し実行してもよい。端末数情報を取得するタイミングである場合はステップＳ４１４に進み、端末数情報を取得するタイミングでない場合はステップＳ４０２に戻る。
【０１０８】
（ステップＳ４１４）端末数情報取得部１３１は、端末識別子格納部１１１に格納されている２以上の端末識別子を用いて、端末数を示す端末数情報を取得する。
【０１０９】
（ステップＳ４１５）方式決定部１３２は、端末数情報取得部１３１が取得した端末数情報に応じて、パケットを送信する方式として、マルチキャストを採用するか、ユニキャストを採用するかを決定する。詳しくは、方式決定部１３２は、端末数情報の示す端末数が、例えば、閾値以上または閾値より多い場合はマルチキャストを採用し、閾値以下または閾値より少ない場合はユニキャストを採用してもよい。
【０１１０】
（ステップＳ４１６）方式決定部１３２は、決定した方式を方式情報にセットする。その後、ステップＳ４０２に戻る。
【０１１１】
なお、図４のフローチャートに従う処理は、例えば、送信装置１の電源オンに応じて開始し、送信装置１の電源オフまたは終了処理の割り込み等に応じて終了する。ただし、処理の開始または終了のためのトリガーは問わない。
【０１１２】
また、図４では省略しているが、処理部１３は、新たな受信装置２の追加や既存の受信装置２の離脱の有無を監視して、新たな受信装置２の追加があれば、当該受信装置２を識別する端末識別子を端末識別子格納部１１１に蓄積する一方、既存の受信装置２の離脱があれば、当該受信装置２を識別する端末識別子を端末識別子格納部１１１から削除する処理も行う。
【０１１３】
また、図４のフローチャートの説明において、“マルチキャスト”は“ブロードキャスト”と読み替えてもよい。
【０１１４】
図５は、受信装置２の動作を説明するフローチャートである。
【０１１５】
（ステップＳ５０１）パケット受信部２４１は、パケットを受信したか否かを判別する。パケットを受信した場合はステップＳ５０２に進み、パケットを受信していない場合はステップＳ５０３に進む。
【０１１６】
（ステップＳ５０２）パケット受信部２４１は、受信したパケットを、当該パケットを識別するパケット識別子と対に、パケット格納部２１１に蓄積する。これに伴い、端末処理部２３は、パケット格納部２１１に格納された２以上の各パケットの出力時刻を決定し、出力時刻情報を出力時刻情報格納部２１３に蓄積する。その後、ステップＳ５０１に戻る。
【０１１７】
（ステップＳ５０３）音声出力部２６１は、次に出力するパケットがパケット格納部２１１にあるか否かを判別する。次に出力するパケットがパケット格納部２６１ある場合はステップＳ５０４に進み、ない場合はステップＳ５０５に進む。
【０１１８】
（ステップＳ５０４）パケット取得部２３１は、当該パケットをパケット格納部２１１から取得する。その後、ステップＳ５０７に進む。
【０１１９】
（ステップＳ５０５）音声出力部２６１は、タイムアウトか否かを判断する。例えば、音声出力部２６１は、前回のパケット出力からの経過時間が閾値以上になる又は閾値を超えると、タイムアウトと判断してもよい。タイムアウトであると判断された場合はステップＳ５０６に進み、タイムアウトとではないと判断された場合はステップＳ５０８に進む。
【０１２０】
（ステップＳ５０６）パケット生成部２３５は、パケット受信部２４１が受信したパケットであり、チェックサムパケットを含む２以上のパケットを用いて、次に出力するパケットを生成する。なお、次に出力するパケットを生成する手順については前述したので繰り返さない。その後、ステップＳ５０７に進む。
【０１２１】
（ステップＳ５０７）ＤＡ変換手段２６１１は、パケット取得部２３１が取得したパケットまたはパケット生成部２３５が生成したパケットをアナログ変換し、音声信号を生成する。音声出力手段２６１２は、ＤＡ変換手段２６１１が生成した音声信号をスピーカーなどの出力デバイスを介して出力する。その後、ステップＳ５０１に戻る。
【０１２２】
（ステップＳ５０８）端末処理部２３は、再送要求を送信するタイミングか否かを判別する。具体的には、端末処理部２３は、例えば、クロックを計数し、当該計数結果を示す第二回数が第二所定数に達した時、パケットを出力するタイミングであると判別し、第二回数をリセットする処理を、繰り返し実行してもよい。再送要求を送信するタイミングである場合はステップＳ５０９に進み、再送要求を送信するタイミングでない場合はステップＳ５１４に進む。
【０１２３】
（ステップＳ５０９）再送要求送信部２５１は、次のパケットに対する再送要求を送信する処理である再送要求送信処理を実行する。詳しくは、再送要求送信部２５１は、次のパケットを識別するパケット識別子を有する再送要求を、当該受信装置２を識別する端末識別子と対に、送信装置１に送信する。１回目の再送要求の場合は、再送要求送信部２５１は、当該パケット識別子と当該回数ｉ（初期値“１”）との対を、消失リスト格納部２１４に格納されている消失リストに登録し、２回目の再送要求の場合は、回数ｉをインクリメントする処理を実行してもよい。その後、ステップＳ５０１に戻る。
【０１２４】
（ステップＳ５１０）端末処理部２３は、速度情報を取得するタイミングか否かを判別する。具体的には、端末処理部２３は、例えば、クロックを計数し、当該計数結果を示す第三回数が第三所定数に達した時、速度情報を取得するタイミングであると判別し、第三回数をリセットする処理を、繰り返し実行してもよい。速度情報を取得するタイミングである場合はステップＳ５１１に進み、速度情報を取得するタイミングでない場合はステップＳ５１４に進む。
【０１２５】
（ステップＳ５１１）第一速度情報取得部２３６は、第一速度情報を取得する。なお、第一速度情報については前述したので繰り返さない。
【０１２６】
（ステップＳ５１２）第二速度情報取得部２３７は、第二速度情報を取得する。なお、第二速度情報については前述したので繰り返さない。
【０１２７】
（ステップＳ５１３）補完処理部２３８は、取得した第一および第二の２つの速度情報を用いて、ずれ情報を取得し、取得したずれ情報に基づいて、ずれ補完処理を行う。なお、ずれ情報およびずれ補完処理については前述したので繰り返さない。これにより、送信装置１および受信装置２の間のクロック周波数の誤差は音声伸縮処理等により補完され、当該誤差に起因する出力音声の乱れが、解消または軽減される。その後、ステップＳ５０１に戻る。
【０１２８】
（ステップＳ５１４）端末処理部２３は、通信関連情報を取得するタイミングか否かを判別する。具体的には、端末処理部２３は、例えば、クロックを計数し、当該計数結果を示す第四回数が第四所定数に達した時、通信関連情報を取得するタイミングであると判別し、第四回数をリセットする処理を、繰り返し実行してもよい。通信関連情報を取得するタイミングである場合はステップＳ５１５に進み、通信関連情報を取得するタイミングでない場合はステップＳ５０１に戻る。
【０１２９】
（ステップＳ５１５）通信関連情報取得部２３３は、例えば、端末数、エラー率情報、正常率情報のうちの、いずれかの情報を含む通信関連情報を取得する。なお、通信関連情報の取得手順については前述したので繰り返さない。
【０１３０】
（ステップＳ５１６）通信パラメータ変更部２３４は、パケット格納部２１１の容量、再送要求送信部２５１が再送要求を送信可能な回数Ｎ、第一の期限から回数Ｎに対応する第Ｎの期限までのＮ個の期限、のうちの１種類以上の情報である通信パラメータを、通信関連情報取得部２３３が取得した通信関連情報に応じて変更する。なお、通信パラメータの変更手順については前述したので繰り返さない。その後、ステップＳ５０１に戻る。
【０１３１】
なお、図５のフローチャートの従う処理は、例えば、受信装置２の電源オンに応じて開始し、受信装置２の電源オフまたは終了処理の割り込み等に応じて終了する。ただし、この処理を開始または終了するためのトリガーは問わない。
また、図５のフローチャートにおいては、次に出力するパケットがないと判別された場合、タイムアウトになるまでの期間に再送要求の送信を行い、タイムアウトになったら、チェックサムを含む２以上のパケットによる補完を行ったが、例えば、次に出力するパケットがないと判別された場合、補完に必要なチェックサムを含む２以上のパケットが揃ったか否かを判別し、揃っていたら補完を行い、揃っていなければ再送要求の送信を行うようにしてもよい。そして、タイムアウトになっても、次に出力するパケットがなく、チェックサムを含む２以上のパケットによる補完も行えない場合に、当該次に出力するパケットの出力は断念し、スムージング処理を行ってもよい。スムージング処理とは、当該次に出力するパケットの直前に出力したパケットと、当該次に出力するパケットの直後に出力するパケットとの間のギャップで生じるノイズであるギャップノイズを低減する処理である。スムージング処理は、例えば、当該直前に出力したパケットの音声を無音までフェードアウトした後、無音から、直後に出力するパケットの音声レベルまでフェードインする処理などであるが、ギャップを滑らかに繋いでギャップノイズを低減する処理であれば、どのような処理でもよい。
【０１３２】
また、図５のフローチャートにおいて、上記ステップＳ５０９に代えて、以下のようなステップＳ５０９ａ〜Ｓ５０９ｅが実行されてもよい。
【０１３３】
（ステップＳ５０９ａ）判断部２３２は、ＭＰＵの内蔵時計から現在時刻を取得する。または、判断部２３２は、音声出力部２６１が直前に出力したパケットのパケット識別子を取得してもよい。
【０１３４】
（ステップＳ５０９ｂ）判断部２３２は、取得した現在時刻と、出力時刻情報格納部２１３に格納されている出力時刻情報とを用いて、出力時刻が現在時刻よりも第一時間Ｔ（１）後のパケットを識別するパケット識別子をパケット格納部２１１から取得する。または、判断部２３２は、音声出力部２６１が直前に出力したパケットのパケット識別子に自然数（例えば、“Ｎ−１”またはそれ以下の自然数）を加算したパケット識別子を、例えば音声出力部２６１から取得してもよい。
【０１３５】
（ステップＳ５０９ｃ）判断部２３２は、出力時刻が現在時刻よりも第一時間Ｔ（１）後のパケットが受信済みか否かを判断する。判断部２３２は、例えば、出力時刻が現在時刻よりも第一時間Ｔ（１）後のパケットを識別するパケット識別子を取得できた場合に、当該パケットが受信済みであると判断し、かかるパケット識別子を取得できなかった場合に、当該パケットは受信済みでないと判断してもよい。または、判断部２３２は、上記のようにして音声出力部２６１から取得したパケット識別子で識別されるパケットが受信済みか否かを判断してもよい。かかるパケット識別子で識別されるパケットが受信済みでない場合はステップＳ５０９ｄに進み、受信済みである場合はステップＳ５０９ｅに進む。
【０１３６】
（ステップＳ５１０ｄ）再送要求送信部２５１は、かかるパケット識別子で識別されるパケットに対する１回目の再送要求を送信する処理である第一再送要求送信処理を実行する。なお、第一再送要求送信処理につては後述する。
【０１３７】
（ステップＳ５１０ｅ）再送要求送信部２５１は、消失リストに登録されているパケット識別子で識別されるパケットに対する２回目〜Ｎ回目の再送要求を送信する処理である第二再送要求送信処理を実行する。なお、第一再送要求送信処理につては後述する。その後、ステップＳ５０１に戻る。
【０１３８】
上記ステップＳ５１０ｄの第一再送要求送信処理では、例えば次のステップＳ６０１〜Ｓ６０３が実行されてもよい。
【０１３９】
（ステップＳ６０１）再送要求送信部２５１は、当該パケットを識別するパケット識別子を有する１回目の再送要求を送信装置１に送信する。
【０１４０】
（ステップＳ６０２）再送要求送信部２５１は、当該パケット識別子と対になる回数ｉに初期値“１”をセットする。
【０１４１】
（ステップＳ６０３）再送要求送信部２５１は、当該パケット識別子と当該回数ｉとの対を、消失リスト格納部２１４に格納されている消失リストに登録する。その後、上位処理にリターンする。
【０１４２】
上記ステップＳ５１０ｅの第二再送要求送信処理では、例えば、以下のステップＳ７０１〜Ｓ７０８が実行されてもよい。
【０１４３】
（ステップＳ７０１）再送要求送信部２５１は、変数ｊに初期値“１”をセットする。
【０１４４】
（ステップＳ７０２）再送要求送信部２５１は、消失リストにｊ番目のパケット識別子があるか否かを判別する。消失リストにｊ番目のパケット識別子がある場合はステップＳ７０３に進み、ない場合は上位処理にリターンする。
【０１４５】
（ステップＳ７０３）再送要求送信部２５１は、ｊ番目のパケット識別子で識別されるパケットは受信済みか否かを判別する。具体的には、再送要求送信部２５１は、例えば、パケット格納部２１１にｊ番目のパケット識別子で識別されるパケットが格納されていれば、ｊ番目のパケット識別子で識別されるパケットが受信済みであると判断し、格納されていなければ、受信済みでないと判断してもよい。ｊ番目のパケット識別子で識別されるパケットが受信済みである場合はステップＳ７０４に進み、受信済みでない場合はステップＳ７０５に進む。
【０１４６】
（ステップＳ７０４）再送要求送信部２５１は、ｊ番目のパケット識別子と回数ｉとの対を消失リストから削除する。その後、ステップＳ７０８に進む。
【０１４７】
（ステップＳ７０５）再送要求送信部２５１は、ｊ番目のパケット識別子に対応する回数ｉが回数Ｎ以上であるか否かを判別する。ｊ番目のパケット識別子に対応する回数ｉが回数Ｎ以上でない（つまり、回数ｉが回数Ｎ未満である）場合はステップＳ７０６に進み、回数ｉが回数Ｎ以上である場合はステップＳ７０８に進む。
【０１４８】
（ステップＳ７０６）再送要求送信部２５１は、ｊ番目のパケット識別子に対応する回数ｉをインクリメントする。
【０１４９】
（ステップＳ７０７）再送要求送信部２５１は、ｊ番目のパケット識別子を有するｉ回目の再送要求を送信装置１に送信する。その後、ステップＳ７０３に戻る。
【０１５０】
（ステップＳ７０８）再送要求送信部２５１は、変数ｊをインクリメントする。その後、ステップＳ７０２に戻る。
【０１５１】
上記ステップＳ５０１ｄの第一再送要求送信処理および上記ステップＳ５０１ｅの第二再送要求送信処理によれば、受信装置２が、次に出力するパケット（例えばパケット“ｋ”）よりも後のパケットであり、次のパケットを出力する時点でバッファリングされているべきパケット（例えば、パケット“ｋ＋４”など）がない場合に、かかるロストパケットに対する再送要求を送信し、送信装置１は、当該ロストパケットを当該受信装置２にユニキャストで送信することで、当該ロストパケットの出力時刻が到来する前に、当該ロストパケットのリカバーに成功している可能性が高まる。
【０１５２】
以下、本実施の形態における音声通信システムの具体的な動作について説明する。ただし、本動作例は、本発明を何ら限定するものではなく、適宜変更され得ることはいうまでもない。
【０１５３】
現在、送信装置１は、例えば、国際会議場やスタジアム等で同時通訳が発する声の音声データをＷｉ−Ｆｉ（登録商標）で送信している。２以上の各受信装置２は、音声データを受信し、同時通訳の声を音声出力している。
【０１５４】
送信装置１の端末識別子格納部１１１には、当該２以上（例えば、数百、数千など）の受信装置２を識別する２以上の端末識別子が格納されている。端末数情報格納部１１２には、本音声通信システムを構成する受信装置２の数（端末数）を示す端末数情報が格納されている。格納部１１には、“マルチキャスト”を示す方式情報が格納されている。音声データ格納部１１３には、音声データ受付部１２１が現在までに受け付けた音声データを構成する２以上のパケットが、各パケットを識別するパケット識別子（例えば“１”，“２”，…，“ｋ”，…といった、順序を示す識別番号）と対に格納されている。
【０１５５】
２以上の各受信装置２のパケット格納部２１１には、パケット受信部２４１が現在までに受信したパケットが、当該パケットを識別するパケット識別子と対に格納されている。なお、パケット格納部２１１の容量は、端末ごとに異なっていてよい。
【０１５６】
期限情報格納部２１２には、第一の期限から第Ｎの期限までのＮ個の期限に対応するＮ個の期限情報が格納されている。Ｎ個の期限情報とは、第一の期限を示す第一期限情報、第二の期限を示す第二期限情報、…、および第Ｎの期限を示す第Ｎ期限情報である。なお、自然数Ｎは、端末ごとに異なっていてよい。
【０１５７】
送信装置１において、音声データ受付部１２１が音声データを受け付けると、当該音声データを構成する２以上の各パケットが、当該パケットを識別するパケット識別子と対に、音声データ格納部１１３に蓄積される。
【０１５８】
パケット送信部１５１は、パケットを送信するタイミングか否かを判別しており、パケットを送信するタイミングである場合、音声データ格納部１１３に格納されている２以上のパケットを、端末識別子格納部１１１に格納されている２以上の端末識別子で識別される２以上の受信装置に、方式情報が示す方式（現在は、マルチキャスト）で順次送信する。
【０１５９】
チェックサムパケット生成部１３３は、パケット送信部１５１が送信するパケットに対応するチェックサムパケットを、当該パケットを含む２以上の送信済みパケットを用いて生成する。例えば、パケット送信部１５１が送信するパケットがパケット“ｍ１００”であり、一のチェックサムパケットの生成に用いるパケットの数が１０個である場合、チェックサムパケット生成部１３３は、当該パケット“ｍ１００”に対応するチェックサムパケット“ｒ１００”を、当該パケット“ｍ１００”を含む過去の１０個のパケット“ｍ０９１”，“ｍ０９２”，…，“ｍ１００”を用いて生成してもよい。パケット送信部１５１は、パケット“ｍ１００”の送信後、こうしてチェックサムパケット生成部１３３が生成したチェックサムパケット“ｒ１００”をも、当該２以上の受信装置に当該方式で送信する。
【０１６０】
以上の処理が繰り返されることで、音声データを構成する２以上のパケットと、当該２以上のパケットに対応する２以上のチェックサムパケットとが、交互に、２以上の各受信装置２にマルチキャストで送信される。
【０１６１】
処理部１３は、再送要求受信部１４１が再送要求を受信したか否かも判別している。再送要求受信部１４１が再送要求を受信した場合、パケット再送部１５２は、当該再送要求が有するパケット識別子に対応するパケットを音声データ格納部１１３から取得し、取得したパケットを、当該再送要求を送信した受信装置２に、ユニキャストで送信する。
【０１６２】
処理部１３は、端末数情報を取得するタイミングか否かをも判別している。端末数情報を取得するタイミングである場合、端末数情報取得部１３１は、端末識別子格納部１１１に格納されている２以上の端末識別子を用いて、端末数を示す端末数情報を取得する。方式決定部１３２は、この端末数情報に応じて、パケットを送信する方式として、マルチキャストを採用するか、ユニキャストを採用するかを決定する。例えば、端末数情報の示す端末数が、閾値以上または閾値より多い場合はマルチキャストを採用し、閾値以下または閾値より少ない場合はユニキャストを採用することが決定されてもよい。方式決定部１３２は、こうして決定した方式を方式情報にセットする。それによって、例えば、既存の端末の離脱によって、端末数が閾値を下回ると、パケットの送信方式は、マルチキャストからユニキャストに変更される。その後、新たな端末の参加によって、端末数が閾値を上回ると、パケットの送信方式は、ユニキャストからマルチキャストに変更される。
【０１６３】
２以上の各受信装置２において、パケット受信部２４１がパケットを受信すると、当該パケットは、当該パケットを識別するパケット識別子と対に、パケット格納部２１１に蓄積される。
【０１６４】
パケット取得部２３１は、パケットを出力するタイミングか否かを判別しており、パケットを出力するタイミングである場合、次に出力するパケットをパケット格納部２１１から取得する。具体的には、パケット取得部２３１は、直前に出力されたパケットのパケット識別子を記憶しており、記憶している識別子の次の識別子（例えば、直前のパケットのパケット識別子に１を加えた数）に対応するパケットをパケット格納部２１１から探索し、取得する。
【０１６５】
パケット取得部２３１が次に出力するパケットを取得しない場合、音声出力部２６１は、計時を開始し、タイムアウトか否かを判断する。タイムアウトと判断されると、パケット生成部２３５は、パケット受信部２４１が受信したパケットであり、チェックサムパケットを含む２以上のパケットを用いて、次に出力するパケットを生成する。例えば、パケット格納部２１１に、パケットおよびチェックサムパケット“ｍ０９１”，“ｒ０９１”，“ｍ０９２”，“ｒ０９２”，…，“ｍ０９９”，“ｒ０９９”，“ｒ１００”，“ｍ１０１”，“ｒ１０１”，…が格納されており、出力時刻が現在時刻に対応するパケットがパケット“ｍ１００”で、このパケット“ｍ１００”が消失している場合、パケット生成部２３５は、パケット格納部２１１に格納されている９個のパケット“ｍ０９１”〜“ｍ０９９”およびチェックサムパケット“ｒ１００”を用いて、当該消失したパケット“ｍ１００”を生成する。
【０１６６】
音声出力部２６１は、パケット格納部２１１から取得したパケット、またはパケット生成部２３５が生成したパケット、を音声出力する。詳しくは、音声出力部２６１は、当該パケットをアナログ変換して、音声を取得し、スピーカーから出力する。
【０１６７】
端末処理部２３は、再送要求を行うタイミングか否かを判別しており、再送要求を行うタイミングである場合、
【０１６８】
再送要求送信部２５１は、再送要求送信処理を実行する。再送要求送信処理では、再送要求送信部２５１は、最初、次に出力するパケットを識別するパケット識別子を有する１回目の再送要求を、送信装置１に送信する。
【０１６９】
１回目の再送要求を送信してから第一の期限までに、当該次に出力するパケットが受信されない場合、再送要求送信部２５１は、当該次に出力するパケットに対する２回目の再送要求を、次回の再送要求を行うタイミングで送信する。２回目の再送要求を送信してから第二の期限までに、当該次に出力するパケットが受信されない場合、再送要求送信部２５１は、当該次に出力するパケットに対する３回目の再送要求を、次々回の再送要求を行うタイミングで送信する。かかる処理は、タイムアウトとなるまでに、最大でＮ回繰り返される。
【０１７０】
タイムアウト前に当該次に出力するパケットが受信された場合、音声出力部２６１は、当該受信されたパケットを音声出力し、受信されない場合、音声出力部２６１は、当該次に出力するパケットに対応するパケットであり、パケット生成部２３５が上記のようにチェックサムパケットを用いて生成したパケットを音声出力する。
【０１７１】
端末処理部２３は、通信関連情報を取得するタイミングか否かを判別している。通信関連情報を取得するタイミングであると判別された場合、通信関連情報取得部２３３は、例えば、端末数、エラー率情報、正常率情報のうちの、いずれかの情報を含む通信関連情報を取得する。通信パラメータ変更部２３４は、パケット格納部２１１の容量、再送要求送信部２５１が再送要求を送信可能な回数Ｎ、第一の期限から回数Ｎに対応する第Ｎの期限までのＮ個の期限、のうちの１種類以上の情報である通信パラメータを、通信関連情報取得部２３３が取得した通信関連情報に応じて変更する。
【０１７２】
例えば、通信関連情報が端末数を含む場合、通信パラメータ変更部２３４は、端末数が閾値以上または閾値より多ければ、容量を増やして、回数Ｎを多くし、Ｎ個の期限を早めてもよいし、端末数が閾値以下または閾値より少なければ、回数Ｎを少なくし、Ｎ個の期限を遅くして、容量を減らしてもよい。
【０１７３】
関連情報がエラー率情報を含む場合、通信パラメータ変更部２３４は、エラー率情報の示すエラー率が閾値以上または閾値より高ければ、または、容量を増やして、回数Ｎを多くし、Ｎ個の期限を早めてもよいし、エラー率が閾値以下または閾値より低ければ、回数Ｎを少なくし、Ｎ個の期限を遅くして、容量を減らしてもよい。または、通信関連情報が正常率情報を含む場合、通信パラメータ変更部２３４は、正常率情報の示す正常率が閾値以下または閾値より低ければ、容量を増やして、回数Ｎを多くし、Ｎ個の期限を早めてもよいし、正常率が閾値以上または閾値より高ければ、回数Ｎを少なくし、Ｎ個の期限を遅くして、容量を減らすことも可能である。
【０１７４】
端末処理部２３は、速度情報を取得するタイミングか否かをも判別している。速度情報を取得するタイミングであると判別された場合、第一速度情報取得部２３６は、第一速度情報を取得し、第二速度情報取得部２３７は、第二速度情報を取得する。補完処理部２３８は、取得された第一および第二の２つの速度情報を用いて、ずれ情報を取得し、取得したずれ情報に基づいて、ずれ補完処理を行う。例えば、第一速度情報および第二速度情報に対応する２つの速度の比が“１０００パケット／秒”対“１０００．１パケット／秒”つまり１００００：１０００１である場合、補完処理部２３８は、受信装置２側のクロックの周期を１／１００００だけ遅延させる補完処理を行ってもよい。これにより、送信装置１および受信装置２の間のクロック周波数の誤差に起因する出力音声の乱れが解消または軽減される。
【０１７５】
以上、本実施の形態によれば、送信装置１は、音声データを受け付けると、音声データを構成する２以上のパケットであり、パケットを識別するパケット識別子に対応する２以上のパケットを、順次送信し、パケット識別子を有する再送要求を受信装置２から受信すると、再送要求が有するパケット識別子に対応するパケットを、再送要求を送信した受信装置２に、ユニキャストで送信し、受信装置２は、送信装置１からパケットを受信すると、パケット格納部２１１に蓄積し、パケット格納部２１１に格納されているパケットであり、パケットに対応するパケット識別子を用いて、次に出力するパケットを取得し、次に出力するパケットを取得した場合に、次に出力するパケットを出力する一方、第一の期限までに次に出力するパケットを受信しない場合に、再送要求を送信装置１に送信する音声通信システムにより、受信装置２でのパケットロスの発生を抑え、受信装置２で生じる音声の乱れを解消または軽減しつつ、受信装置２での音声出力の遅延を短縮できる。
【０１７６】
また、上記音声通信システムにおいて、受信装置２は、第一の期限までに次に出力するパケットを受信したか否かを、パケットに対応するパケット識別子を用いて判断し、第一の期限までに次に出力するパケットを受信しなかったと判断した場合に、再送要求を送信装置に送信することで、受信装置でのパケットロスの発生を抑え、音声の乱れを解消または軽減しつつ、音声出力の遅延を短縮できる。
【０１７７】
また、上記音声通信システムにおいて、受信装置２は、第Ｎの期限（Ｎは２以上の自然数）までに次に出力するパケットを受信しない場合に、Ｎ回目の再送要求を送信装置に送信することにより、受信装置２では、１回目の再送要求を送信しても、次に出力するパケットが受信されない場合、２回目以降の再送要求を送信することで、ロストパケットのリカバー率の向上が期待できる。
【０１７８】
また、上記音声通信システムにおいて、受信装置２は、送信装置１と当該受信装置２との間の通信に関する情報である通信関連情報を取得し、パケット格納部２１１の容量、再送要求を送信可能な回数Ｎ、第一の期限から回数Ｎに対応する第Ｎの期限までのＮ個の期限のうちの１種類以上の情報である通信パラメータを、通信関連情報に応じて、変更することにより、２以上の各受信装置２が、通信関連情報（端末数、エラー率等）を取得し、通信パラメータを通信関連情報に応じて動的に変更することで、送信装置１との間の通信に応じて、音声の乱れの解消または軽減を図ったり、バッファリング量の削減ひいては遅延の短縮を図ったりすることができる。
【０１７９】
また、上記音声通信システムにおいて、通信関連情報は、パケットを受信する受信装置２の数である端末数、または受信装置２が次に出力するパケットを受信できないことに関するエラー率情報、または受信装置２が次に出力するパケットを受信できたこと関する正常率情報のうちのいずれかの情報を含むことにより、２以上の各受信装置２が、通信パラメータを通信関連情報に含まれる端末数、エラー率または正常率に応じて動的に変更することで、送信装置との間の通信で生じるパケットロスの頻度に応じて、音声の乱れの解消または軽減を図ったり、バッファリング量の削減ひいては遅延の短縮を図ったりすることができる。
【０１８０】
また、上記音声通信システムにおいて、送信装置１は、パケットを受信する受信装置２の数に関する端末数情報を取得し、端末数情報に応じて、パケットを送信する方式として、マルチキャストまたはブロードキャストを採用するか、ユニキャストを採用するかを決定し、決定した方式に基づいて、パケットを送信することにより、送信装置１は、マルチキャストまたはブロードキャストと、ユニキャストとのうち、端末数に応じた方式でパケットを送信するので、端末数によらず、通信路の帯域への圧迫が軽減され、かつパケットロスによる音声の乱れが軽減される。
【０１８１】
例えば、端末数が閾値以下または閾値より少ない場合は、利用帯域は多いがロスの少ないユニキャストでパケットを送信することで、帯域への圧迫と音声の乱れが共に軽減される端末数が閾値以上または閾値より多い場合は、利用帯域は少ないがロスの多いマルチキャストまたはブロードキャストでパケットを送信し、パケットロスが生じた場合の再送はユニキャストで行うことができる。
【０１８２】
また、上記音声通信システムにおいて、送信装置１は、受信装置２が受信できなかったパケットを構成するためのパケットであるチェックサムパケットを、送信する２以上のパケットを用いて生成し、チェックサムパケットを含む３以上のパケットを送信し、受信装置２は、チェックサムパケットを含む３以上のパケットを受信し、次に出力するパケットを取得できなかった場合、チェックサムパケットを含む２以上のパケットを用いて、次に出力するパケットを生成することにより、受信装置２で、パケットロスが発生し、再送要求を１回以上送信しても、次に出力するパケットを受信できない場合、当該受信装置２が受信したチェックサムパケットを含む２以上のパケットを用いてロストパケットを復元することができる。その結果、例えば、再送要求を送信し続ける場合と比べて、送受信の効率が高まる。
【０１８３】
また、上記音声通信システムにおいて、送信装置１は、アナログの音声を受け付ける音声受付手段１２１１と、音声をデジタル変換し、音声データを取得するＡＤ変換手段１２１２とを有し、受信装置２は、パケットをアナログ変換し、音声を取得するＤＡ変換手段２６１１と、音声を出力する音声出力手段２６１２とを有し、受信装置２は、パケットを受信する速度に関する第一速度情報を取得し、受信装置２の処理速度に関する第二速度情報を取得して、第一速度情報と第二速度情報とから取得される情報であり、送信装置１と受信装置２とのクロック周波数の誤差に関するずれ情報に基づいて、クロック周波数の誤差を補完する処理であるずれ補完処理を行うことにより、送信装置１と各受信装置２の間で生じるクロック周波数の誤差に起因する出力音声の乱れを低減できる。
【０１８４】
さらに、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをソフトウェアダウンロード等により配布してもよい。また、このソフトウェアをＤＶＤなどの記録媒体に記録して流布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。
【０１８５】
なお、本実施の形態における送信装置１を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、音声データを２以上の受信装置２に送信する送信装置１のコンピュータによって実行されるプログラムであって、前記コンピュータを、音声データを受け付ける音声データ受付部１２１と、前記音声データを構成する２以上のパケットであり、パケットを識別するパケット識別子に対応する２以上のパケットを、順次送信するパケット送信部１５１と、パケット識別子を有し、第一の期限までに次に出力するパケットを受信しない場合に送信された再送要求を前記受信装置２から受信する再送要求受信部１４１と、前記再送要求が有するパケット識別子に対応するパケットを、前記再送要求を送信した受信装置２に、ユニキャストで送信するパケット再送部１５２として機能させるためのプログラムである。
【０１８６】
また、本実施の形態における受信装置２を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、上記送信装置１から音声データを受信し出力する受信装置２のコンピュータによって実行されるプログラムであって、前記コンピュータがアクセス可能な記録媒体は、パケットを格納するパケット格納部２１１を格納しており、前記コンピュータを、前記送信装置１からパケットを受信し、前記パケット格納部２１１に蓄積するパケット受信部２４１と、前記パケット格納部２１１に格納されているパケットであり、パケットに対応するパケット識別子を用いて、次に出力するパケットを取得するパケット取得部２３１と、前記パケット取得部２３１が次に出力するパケットを取得した場合に、前記次に出力するパケットを出力する音声出力部２６１と、前記パケット受信部２４１が第一の期限までに次に出力するパケットを受信しない場合に、再送要求を前記送信装置１に送信する再送要求送信部２５１として機能させるためのプログラムである。
【０１８７】
図６は、本実施の形態におけるプログラムを実行して、音声通信システムを実現するコンピュータシステム９００の外観の一例を示す図である。本実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現され得る。図６において、コンピュータシステム９００は、ディスクドライブ９０５を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、ディスプレイ９０４とを備える。なお、キーボード９０２やマウス９０３やディスプレイ９０４をも含むシステム全体をコンピュータと呼んでもよい。
【０１８８】
図７は、コンピュータシステム９００の内部構成の一例を示す図である。図７において、コンピュータ９０１は、ディスクドライブ９０５に加えて、ＭＰＵ９１１と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ９１２と、ＭＰＵ９１１に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するＲＡＭ９１３と、アプリケーションプログラム、システムプログラム、及びデータを記憶するストレージ９１４と、ＭＰＵ９１１、ＲＯＭ９１２等を相互に接続するバス９１５と、インターネット等のネットワークへの接続を提供するネットワークカード９１６と、を備える。ストレージ９１４は、例えば、ハードディスク、ソリッドステートドライブ、フラッシュメモリなどである。
【０１８９】
コンピュータシステム９００に、音声通信システムの機能を実行させるプログラムは、例えば、ＤＶＤ、ＣＤ−ＲＯＭ等のディスク９２１に記憶されて、ディスクドライブ９０５に挿入され、ストレージ９１４に転送されてもよい。これに代えて、そのプログラムは、インターネット等のネットワークを介してコンピュータ９０１に送信され、ストレージ９１４に記憶されてもよい。プログラムは、実行の際にＲＡＭ９１３にロードされる。なお、プログラムは、ディスク９２１、またはネットワークから直接、ロードされてもよい。また、ディスク９２１に代えて他の着脱可能な記録媒体（例えば、ＤＶＤやメモリカード等）を介して、プログラムがコンピュータシステム９００に読み込まれてもよい。
【０１９０】
プログラムは、コンピュータの詳細を示す９０１に、音声通信システムの機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム９００がどのように動作するのかについては周知であり、詳細な説明は省略する。
【０１９１】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０１９２】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１９３】
また、上記実施の形態において、一の装置に存在する２以上の通信手段（受信部１４および送信部１５など）は、物理的に一の媒体で実現されてもよいことは言うまでもない。
【０１９４】
また、上記実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０１９５】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１９６】
以上のように、本発明にかかる音声通信システム等によれば、受信装置でのパケットロスの発生を抑え、受信装置で生じる音声の乱れを解消または軽減しつつ、受信装置での音声出力の遅延を短縮できるという効果を有し、音声通信システム等として有用である。
【符号の説明】
【０１９７】
１  送信装置
２  受信装置
１１  格納部
１２  受付部
１３  処理部
１４  受信部
１５  送信部
１６  出力部
２１  端末格納部
２２  端末受付部
２３  端末処理部
２４  端末受信部
２５  端末送信部
２６  端末出力部
１１１  端末識別子格納部
１１２  端末数情報格納部
１１３  音声データ格納部
１１４  送信時刻情報格納部
１２１  音声データ受付部
１３１  端末数情報取得部
１３２  方式決定部
１３３  チェックサムパケット生成部
１４１  再送要求受信部
１５１  パケット送信部
１５２  パケット再送部
２１１  パケット格納部
２１２  期限情報格納部
２１３  出力時刻情報格納部
２１４  消失リスト格納部
２３１  パケット取得部
２３２  判断部
２３３  通信関連情報取得部
２３４  通信パラメータ変更部
２３５  パケット生成部
２３６  第一速度情報取得部
２３７  第二速度情報取得部
２３８  補完処理部
２４１  パケット受信部
２５１  再送要求送信部
２６１  音声出力部
１２１１  音声受付手段
１２１２  ＡＤ変換手段
２６１１  ＤＡ変換手段
２６１２  音声出力手段
【図１】
2018007192.tif 000003
【図２】
2018007192.tif 000004
【図３】
2018007192.tif 000005
【図４】
2018007192.tif 000006
【図５】
2018007192.tif 000007
【図６】
2018007192.tif 000008
【図７】
2018007192.tif 000009