(57)【要約】【課題】音声を混合する装置上での計算量を減らすことができる。【解決手段】複数のクライアント装置とサーバ装置とを含む音声通話システムである。各クライアント装置が、音声データを時間領域データとして取得する音声取得手段３０と、取得された時間領域データをサンプリングし、サンプル数が一定のブロックに分割し、分割したブロック単位で周波数領域データに変換する第１変換手段３１と、変換された周波数領域データをサーバ装置１１に送信する送信手段３２と、サーバ装置１１から複数の周波数領域データを混合することにより生成された混合データを受信する受信手段３３と、受信手段３３により受信された混合データを時間領域データに変換する第２変換手段３１と、を備える。これにより、サーバ装置１１は、周波数領域データを時間領域データに変換することなく、複数の周波数領域データを混合することが可能である。【選択図】図６
2018101826.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアント装置とサーバ装置とを含む音声通話システムであって、
前記クライアント装置は、
音声データを、時間に対する音圧の変化を表す時間領域データとして取得する音声取得手段と、
前記音声取得手段により取得された前記時間領域データをサンプリングし、サンプル数が一定のブロックに分割し、分割したブロック単位で周波数成分毎の強さを表す周波数領域データに変換する第１変換手段と、
前記変換手段により変換された前記周波数領域データを前記サーバ装置に送信する送信手段と、
前記サーバ装置から複数の周波数領域データを混合することにより生成された混合データを受信する受信手段と、
前記受信手段により受信された前記混合データを時間領域データに変換する第２変換手段と、を備えることを特徴とする音声通話システム。
【請求項２】
前記送信手段は、前記周波数領域データにユーザを識別するためのユーザ識別情報または前記クライアント装置を識別するための装置識別情報を付加して送信する、請求項１に記載の音声通話システム。
【請求項３】
前記変換手段により変換された前記時間領域データを音声出力する音声出力手段をさらに含む、請求項１または２に記載の音声通話システム。
【請求項４】
前記変換手段は、前記時間領域データまたは前記周波数領域データへ重複直交変換により変換する、請求項１〜３のいずれか１項に記載の音声通話システム。
【請求項５】
前記変換手段は、変換した前記周波数領域データを符号化し、前記サーバ装置において符号化された前記混合データを復号する、請求項１〜４のいずれか１項に記載の音声通話システム。
【請求項６】
前記サーバ装置は、前記複数のクライアント装置の全てから受信した周波数領域データを混合して前記混合データを生成し、該混合データを前記クライアント装置に送信し、
前記クライアント装置は、受信した前記混合データに対して、該クライアント装置が送信した周波数領域データの位相を反転させ、足し合わせる加算手段をさらに含む、請求項１〜５のいずれか１項に記載の音声通話システム。
【請求項７】
前記サーバ装置は、前記クライアント装置から前記周波数領域データを受信する受信手段と、前記受信手段により受信された前記複数の周波数領域データを混合して混合データを生成する混合手段と、前記混合手段により生成された前記混合データを前記クライアント装置に配信する配信手段とを含む、請求項１〜６のいずれか１項に記載の音声通話システム。
【請求項８】
前記混合手段は、一のクライアント装置に対し、他の全てのクライアント装置から受信した周波数領域データを混合して混合データを生成することにより、前記クライアント装置に対する前記混合データを生成し、前記配信手段は、前記混合手段により生成された前記混合データを前記クライアント装置に配信する、請求項７に記載の音声通話システム。
【請求項９】
前記周波数領域データを加工する加工手段をさらに含む、請求項７または８に記載の音声通話システム。
【請求項１０】
前記受信手段は、前記クライアント装置において符号化された前記周波数領域データを復号し、前記配信手段は、前記混合データを符号化して配信する、請求項７〜９のいずれか１項に記載の音声通話システム。
【請求項１１】
複数のクライアント装置とサーバ装置とを含む音声通話システムにおいて実施される音声通話方法であって、
複数の前記クライアント装置が、音声データを、時間に対する音圧の変化を表す時間領域データとして取得するステップと、
複数の前記クライアント装置が、前記時間領域データをサンプリングし、サンプル数が一定のブロックに分割し、分割したブロック単位で周波数成分毎の強さを表す周波数領域データに変換するステップと、
複数の前記クライアント装置が、前記周波数領域データを前記サーバ装置に送信するステップと、
前記サーバ装置が、複数の前記周波数領域データを受信するステップと、
前記サーバ装置が、一のクライアント装置に対し、他の全てのクライアント装置から受信した周波数領域データを混合して混合データを生成することにより、前記クライアント装置に対する前記混合データを生成するステップと、
前記サーバ装置が、前記混合データを前記クライアント装置に配信するステップと、
前記クライアント装置が、前記混合データを受信するステップと、
前記クライアント装置が、前記混合データを時間領域データに変換するステップと、
前記クライアント装置が、前記時間領域データを音声出力するステップと、を含むことを特徴とする音声通話方法。
【請求項１２】
複数のクライアント装置とサーバ装置とを含む音声通話システムにおいて音声通話処理を実行させるためのプログラムであって、
複数の前記クライアント装置に、
音声データを、時間に対する音圧の変化を表す時間領域データとして取得するステップと、
前記時間領域データをサンプリングし、サンプル数が一定のブロックに分割し、分割したブロック単位で周波数成分毎の強さを表す周波数領域データに変換するステップと、
複数の前記クライアント装置が、前記周波数領域データを前記サーバ装置に送信するステップとを実行させ、
前記サーバ装置に、
複数の前記周波数領域データを受信するステップと、
一のクライアント装置に対し、他の全てのクライアント装置から受信した周波数領域データを混合して混合データを生成することにより、前記クライアント装置に対する前記混合データを生成するステップと、
前記混合データを前記クライアント装置に配信するステップとを実行させ、
前記クライアント装置に、
前記混合データを受信するステップと、
前記混合データを時間領域データに変換するステップと、
前記時間領域データを音声出力するステップとを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声データをやりとりして音声通話を行う音声通話システム、音声通話方法およびその方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
インターネットを介して複数のユーザが会話を行うVoIPシステム、テレビ会議システム、音声チャットシステム等では、ネットワークの接続形態としてPear To Pear（以下P2P）が広く用いられる（特許文献１参照）。しかし、P2Pはクライアント同士が接続するため、音声通話の人数が増えるに従いシステム全体の通信量が膨大に増えてしまう。
【０００３】
P2P通信における通信量が膨大に増える問題を解消する方法として、通信経路の途中に設けられた中継装置（サーバ）において、一人のユーザ（クライアント）に対して他の複数のユーザが発した音声を混合し、当該一人のユーザが使用する端末へ送信し、音声を出力させるシステムがある。このような通信方式を採用するネットワークシステムをクライアント・サーバモデルと呼ぶ。クライアント・サーバモデルでは、当該他の複数のユーザが使用する端末において音声データを符号化して送信し、中継装置で時間領域データに復号し（例えば、特許文献２参照）、復号した時間領域データを混合し、その結果を符号化して、当該一人のユーザが使用する端末に送信している。
【０００４】
インターネットを介して複数のユーザが会話を行うシステムでは、通話音声の圧縮にITU-T G.711をはじめとする差分パルス符号変調（DPCM）を基盤とした音声コーデックが広く用いられる。しかし、DPCMを基盤とした音声コーデックは圧縮率が低く、低ビットレートゆえに通話品質を向上できない。通信量を抑えつつ通話品質を向上するには、時間領域データを周波数領域データに変換してから符号化する、変換符号化を基盤とした音声コーデックを用いる事が望ましい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３２８１７８号公報
【特許文献２】特開２０１０−０４４１７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の中継装置では、会話を行うユーザの音声を時間領域データに復号し、再度符号化する必要があるため、人数の増加に従い、音声を混合する装置上での計算量が膨大に増えるという問題があった。
【０００７】
このため、音声を混合する装置上での計算量を減らすことができるシステムや方法の提供が望まれていた。
【課題を解決するための手段】
【０００８】
本発明は、上記課題に鑑み、複数のクライアント装置とサーバ装置とを含む音声通話システムであって、各クライアント装置が、音声データを、時間に対する音圧の変化を表す時間領域データとして取得する音声取得手段と、時間領域データをサンプリングし、サンプル数が一定のブロックに分割し、分割したブロック単位で周波数成分毎の強さを表す周波数領域データに変換する第１変換手段と、変換された周波数領域データをサーバ装置に送信する送信手段と、サーバ装置から複数の周波数領域データを混合することにより生成された混合データを受信する受信手段とを含み、受信手段により受信された混合データを時間領域データに変換する第２変換手段と、を備えることを特徴とする音声通話システムが提供される。
【発明の効果】
【０００９】
本発明のシステム等を提供することにより、音声を混合する装置上での計算量を減らすことができる。
【図面の簡単な説明】
【００１０】
【図１】音声通話システムの構成例を示した図である。
【図２】本発明の音声通話システムの概要を説明するための図である。
【図３】サンプル数が一定のブロック単位でクライアント装置がデータ変換を行う処理を示す図である。
【図４】サーバ装置の処理内容を示す図である。
【図５】クライアント装置のハードウェア構成を例示した図である。
【図６】クライアント装置の機能ブロック図である。
【図７】クライアント装置において実行される音声データの送信処理の流れを示したフローチャートである。
【図８】クライアント装置において実行される音声データの受信処理の流れを示したフローチャートである。
【図９】サーバ装置の第１の実施形態を示した機能ブロック図である。
【図１０】対応表を例示した図である。
【図１１】サーバ装置において実行される音声データの混合処理の流れを示したフローチャートである。
【図１２】サーバ装置の第２の実施形態を示した機能ブロック図である。
【発明を実施するための形態】
【００１１】
図１は、音声通話システムの構成例を示した図である。複数のユーザによって行われる音声通話では、一人のユーザに対し、他の全てのユーザの音声を送信する必要がある。二人のユーザ間で音声通話を行う場合は、ユーザ間で音声データを送信し合えばよいが、人数が増加すると、通信量が膨大に増えていくため、音声データを混合（ミックス）して配信することが望ましい。そこで、音声通話システムは、ユーザが発した音声の音声データを取得し、他の全てのユーザの音声を出力する複数のクライアント装置１０ａ〜１０ｎと、音声データをミックスするサーバ装置１１とを含んで構成される。
【００１２】
複数のクライアント装置１０ａ〜１０ｎとサーバ装置１１とは、ネットワーク１２に接続され、ネットワーク１２を介して互いに通信することができるようになっている。クライアント装置１０ａ〜１０ｎは、クライアント装置１０ａ〜１０ｎを使用する各ユーザが発した音声を音声データとして受け付け、音声データをサーバ装置１１へネットワーク１２を介して送信する。
【００１３】
サーバ装置１１は、クライアント装置１０ａに対し、クライアント装置１０ａ以外のクライアント装置１０ｂ〜１０ｎから受信した音声データをミックスして配信する。サーバ装置１１は、同様にクライアント装置１０ｂに対し、クライアント装置１０ｂ以外のクライアント装置１０ａ、１０ｃ〜１０ｎから受信した音声データをミックスして配信する。このようにして、サーバ装置１１は、各クライアント装置１０ｃ〜１０ｎに対しても、同様にして音声データをミックスして配信する。
【００１４】
各ユーザは、自分が使用するクライアント装置から自分の音声を入力して送信し、他の全ユーザの音声を受信して出力させ、それを聞くことにより、互いに離れた場所にいても、複数のユーザ間での同時音声通話を実現することができる。
【００１５】
クライアント装置１０ａ〜１０ｎは、上記の処理を実行することができればいかなる装置であってもよく、例えば、家庭用ゲーム機器、アミューズメント機器、パソコン機器、モバイルフォン機器、音声入出力可能な組み込み機器とすることができる。
【００１６】
ネットワーク１２は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットのいずれであってもよく、また、有線ネットワークであってもよいし、無線ネットワークであってもよい。無線通信は、無線LAN、Bluetooth（登録商標）、赤外線通信により行うことができ、無線LANを使用する場合は、ネットワーク１２に接続されたアクセスポイントを介して実施することができる。ネットワーク１２は、１つのネットワークに限られるものではなく、２以上のネットワークであってもよく、２以上のネットワークはルータやプロキシサーバ等の中継装置により接続することができる。
【００１７】
音声通話システムを構成する複数のクライアント装置１０ａ〜１０ｎは、音声通話サービスを利用するユーザがログインする等して、認証されたクライアント装置とすることができる。ユーザの認証は、ユーザIDやパスワードの入力による認証であってもよいし、生体認証であってもよいし、ICカード、携帯電話、スマートフォン等を読み取り装置にかざすことにより行う認証であってもよい。これらの認証方法は一例であり、これまでに知られたいかなる認証方法でも採用することができる。
【００１８】
クライアント装置１０ａ〜１０ｎは、ユーザが発した音声の音声データを取得し、サーバ装置１１へ送信する際、ユーザまたはクライアント装置１０ａ〜１０ｎを識別するためのユーザ識別情報または装置識別情報を付加して送信することができる。これにより、各音声データを送信したユーザや装置を識別することができる。識別情報は、その両方を付加して送信してもよいが、データサイズが大きくなるので、いずれかの情報のみを付加して送信することが好ましい。
【００１９】
ユーザ識別情報としては、ユーザ名やユーザIDを用いることができ、装置識別情報としては、装置名、装置ID、IPアドレス、MAC(Media Access Control)アドレス等を用いることができる。ユーザ識別情報は、ユーザがログイン時に入力した情報から取得することができ、装置識別情報は、クライアント装置内に予め登録されている情報を取得して使用することができる。
【００２０】
サーバ装置１１は、クライアント装置１０ａに対し、クライアント装置１０ａ以外のクライアント装置１０ｂ〜１０ｎから受信した音声データをユーザ識別情報または装置識別情報により識別し、識別した音声データをミックスして配信することができる。サーバ装置１１は、他のクライアント装置１０ｂ〜１０ｎに対しても同様に、音声データを識別し、ミックスして配信することができる。
【００２１】
次に、本発明の概要について説明する。図２は、本発明の音声通話システムの概要を説明するための図である。ここで、図２（Ａ）は従来の音声通話システムを示し、図２（Ｂ）は本発明の音声通話システムを示す。また、図３は、サンプル数が一定のブロック単位でクライアント装置がデータ変換を行う処理を示す図である。また、図４は、サーバ装置の処理内容を示す図である。ここで、図４（Ａ）は従来の音声通話システムにおけるサーバ装置の処理内容を示し、図４（Ｂ）は本発明の音声通話システムにおけるサーバ装置の処理内容を示す。
【００２２】
図２及び図３に示すように、クライアント装置側において、マイク１００はユーザが発した音声を集音して音声データを取得する（図２（Ａ）（Ｂ）、図３（１）を参照）。なお、マイク１００は、後述する図５の音声入力装置２６及び図６の音声取得手段３０に対応する。クライアント装置は、アナログの音声データをデジタルの音声データに変換する（図３（２）のＡ／Ｄ変換を参照）。Ａ／Ｄ変換の処理において、クライアント装置は、連続的なアナログの音声データを所定のサンプリング間隔ごとに値を平均化して順次抽出することで、離散的なデジタルの音声データに変換する。図３（３）に示すように、サンプリング周波数が例えば４４．１ｋＨｚの場合、Ａ／Ｄ変換後の音声データは１秒当たり４４１００のサンプル数のデータとなる。なお、サンプリング周波数は４４．１ｋＨｚに限らず４８ｋＨｚなどであってもよい。
【００２３】
次に、クライアント装置は、Ａ／Ｄ変換後の音声データをサンプル数が一定のブロックに分割する（図３（３）（４）を参照）。ブロックサイズとしては、例えばサンプル数が１２８や１０２４などを想定している。図３（３）に示す音声データ（サンプリングデータ）は時間に対する音圧の変化を表す時間領域データである。なお、図２では時間領域データを「波」と表記している。
【００２４】
次に、クライアント装置は、時間領域データをブロック単位で周波数成分毎の強さを表す周波数領域データに変換する（図２（Ａ）（Ｂ）、図３（５）を参照）。図２及び図３に示す例では、時間領域データから周波数領域データへの変換は、修正離散コサイン変換（MDCT：Modified Discrete Cosine Transformation）を用いている。ただし、フーリエ変換（Fourier Transformation）、離散フーリエ変換（DFT：Discrete Fourier Transformation）、高速フーリエ変換（FFT：Fast Fourier Transformation）、離散コサイン変換（DCT：Discrete Cosine Transformation）等を用いてもよい。なお、図２では周波数領域データを「周波数」と表記している。その後、クライアント装置は、修正離散コサイン変換後の周波数領域データをネットワーク１２を介してサーバ装置に送信する。
【００２５】
図２（Ａ）及び図４（Ａ）に示す従来の音声通話システムでは、サーバ装置は、クライアント装置から送信された周波数領域データを受信すると、受信した周波数領域データに対して逆修正離散コサイン変換（IMDCT：Inverse Modified Discrete Cosine Transformation）を行うことで周波数領域データを時間領域データに戻す。
【００２６】
このように、従来の音声通話システムにおいて逆修正離散コサイン変換を行って周波数領域データを時間領域データに戻すのは以下の理由からである。すなわち、一般的な音声符号化処理では、圧縮率を高めるためにブロックサイズを切り替えながら処理を行う。圧縮率を高めるためにブロックサイズを可変にすると、複数の周波数領域データを混合（ミックス）することができない。つまり、修正離散コサイン変換を行うときのブロックサイズが同じサイズでなければ、複数の周波数領域データを直接加算して混合することができない。
【００２７】
従って、従来の音声通話システムでは、サーバ装置は、周波数領域データに対して逆修正離散コサイン変換を行うことにより、一旦、周波数領域データを時間領域データ（波形）に変換し、複数の時間領域データ（波形）を加算して混合データを生成する。その後、サーバ装置は、再度、修正離散コサイン変換を行うことにより、生成した混合データ（時間領域データ）を周波数領域データに変換して通話相手のクライアント装置に送信する。
【００２８】
これに対して、図２（Ｂ）及び図４（Ｂ）に示す本発明の音声通話システムでは、上述したように、修正離散コサイン変換を行うときのブロックサイズが同じサイズであるので、サーバ装置は、複数の周波数領域データを直接加算して混合（ミックス）することが可能である。従って、サーバ装置は、変換処理を行うことなく、複数の周波数領域データを直接加算して混合データを生成し、生成した混合データ（周波数領域データ）を通話相手のクライアント装置に送信する。
【００２９】
図２（Ａ）（Ｂ）に示すように、クライアント装置は、サーバ装置から送信された混合データを受信すると、受信した混合データ（周波数領域データ）に対して逆修正離散コサイン変換を行うことにより、周波数領域データを時間領域データに変換する。そして、クライアント装置は、時間領域データをスピーカ２００から音声出力する。なお、図２及び図４では、逆修正離散コサイン変換（IMDCT）を用いているが、そのような処理に限らず、逆フーリエ変換や逆離散フーリエ変換等を用いてもよい。このように、図２（Ｂ）及び図４（Ｂ）に示す音声通話システムでは、サーバ装置が逆修正コサイン変換を行うことなく複数の周波数領域データを直接加算して混合するので、処理負担も大幅に軽減される。
【００３０】
図５は、上記の処理を実現するためのクライアント装置１０ａ〜１０ｎのハードウェア構成を例示した図である。以下、クライアント装置１０ａ〜１０ｎにおいて特定のクライアント装置を示す場合を除き、クライアント装置１０と表記する。クライアント装置１０は、ハードウェアとして、CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４、入出力I/F２５、音声入力装置２６、音声出力装置２７を備える。CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４、入出力I/F２５は、バス２８に接続され、バス２８を介してデータ等のやりとりを可能にしている。クライアント装置１０は、音声出力装置２７に代えて表示装置を備える構成や、別途、表示装置を備える構成であってもよい。また、情報を入力するための入力装置をさらに備えていてもよい。
【００３１】
CPU２０は、クライアント装置１０全体を制御する。ROM２１は、クライアント装置１０を起動させるためのブートプログラムやHDD２３等を制御するファームウェア等を記憶する。RAM２２は、CPU２０に対して作業領域を提供する。HDD２３は、音声データを取得し、取得した音声データの変換等を行うプログラム、OSやその他のプログラム、各種の設定データ等を記憶する。
【００３２】
通信I/F２４は、クライアント装置１０をネットワーク１２に接続し、サーバ装置１１や他のクライアント装置との通信を制御する。入出力I/F２５は、音声入力装置２６からの音声データの入力、音声出力装置２７への音声データの出力を制御する。音声入力装置２６は、マイク等の音声を入力する装置で、音声出力装置２７は、スピーカ等の音声を出力する装置である。
【００３３】
サーバ装置１１については、図面を参照して説明しないが、入出力I/F２５、音声入力装置２６、音声出力装置２７を必要としないため、CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４をハードウェアとして備えることができる。なお、これらの装置では、HDD２３を用いる構成を例示しているが、これに限られるものではなく、SSD(Solid State Drive)等であってもよい。また、この音声通話システムを、テレビ会議システム等に使用する場合、映像を取得し、配信するために、カメラ等の撮像装置をさらに備えることもできる。
【００３４】
図６は、クライアント装置１０が備える機能を説明するための機能ブロック図である。クライアント装置１０は、ユーザが発した音声を音声データとして取得する機能、音声データをサーバ装置１１にネットワーク１２を介して送信する機能、ミックスされた音声データをサーバ装置１１からネットワーク１２を介して受信する機能、ミックスされた音声データを出力する機能を備える。したがって、クライアント装置１０は、上記の各機能を機能手段として備えた装置とすることができる。なお、これらの機能は、HDD２３に記憶されたプログラムをCPU２０が読み出し実行することにより実現することができる。
【００３５】
クライアント装置１０は、その機能手段として、音声取得手段３０と、変換手段３１と、送信手段３２と、受信手段３３と、音声出力手段３４とを備える。
【００３６】
音声取得手段３０は、ユーザが発した音声の音声データを、時間に対する音圧の変化を表す時間領域データとして取得する。マイクを使用する場合、音声データが時間領域データとして取得される。変換手段３１は、音声取得手段３０により取得された時間領域データを、周波数成分毎の強さを表す周波数領域データに変換する。周波数領域データは、どの周波数成分がどれだけ含まれているかを示すデータである。
【００３７】
時間領域データを周波数領域データに変換するために、音声コーデックを使用することができる。コーデックは、データの符号化（エンコード）と、符号化したデータの復号（デコード）とを双方向に行うことができるプログラムである。変換手段３１は、この変換に際し、修正離散コサイン変換(MDCT: Modified Discrete Cosine Transformation)等を使用することができる。そのほか、フーリエ変換、離散フーリエ変換、高速フーリエ変換等を使用することもできる。なお、周波数領域データを時間領域データに変換する場合は、逆修正離散コサイン変換(IMDCT)等を使用することができ、そのほか、逆フーリエ変換や逆離散フーリエ変換等を使用することもできる。
【００３８】
また、音声圧縮に用いられる時間領域データから周波数領域データへの変換には、複数のバンドパスフィルタで周波数領域に変換するサブバンドフィルタや、上記のMDCTやIMDCT以外の重複直交変換(LOT)を用いることもできる。バンドパスフィルタは、特定の周波数のみを通し、他の周波数は通さないフィルタ回路である。直交変換は、時間領域の信号を周波数成分に変換するものである。
【００３９】
上記のコーデックとしては、周波数領域から時間領域への変換を行うサンプル数が一定（ブロックサイズが同一）のコーデックであればいかなるコーデックでも用いることができる。一例としては、MPEG-1 Audio Layer-2のような固定サイズの変換を行うコーデックを挙げることができる。ちなみに、フレーム毎に処理単位が変更可能なmp3やAAC等のコーデックは、フレームサイズを制限しない限り、使用することができない。
【００４０】
特に重複直交変換、例えばMDCT/IMDCTの使用により、インターネット通信において頻発するパケットの到着遅延やパケットの消失障害に対して、少ない計算量で補間することができ、音声通話の品質劣化を抑制することができる。
【００４１】
ネットワーク１２を介して送受信される周波数領域データは、一般にパケットと呼ばれる伝送単位に分割して送受信される。ネットワーク１２として利用されるインターネットで音声通話を実現する場合、このパケットが伝送途中で消失し（パケットロスト）、パケット順序が入れ替えられる等して、音声データが不連続になる場合がある。音声データが不連続になると、人間にとって突発的で耳障りなノイズに聞こえる。
【００４２】
このノイズを低減するべく、ネットワーク１２上でやりとりする音声データに冗長な音声データを付加したり、時間領域データに復号した後、不連続な部分を滑らかにする処理を追加したりすることができる。
【００４３】
しかしながら、冗長な音声データを付加する方法では、データサイズが大きくなり、滑らかにする処理では、処理工程が増加してしまう。そこで、時間領域データを周波数領域データに変換する際、重複直交変換を使用することができる。重複直交変換の一例として上記のMDCTを使用することができる。MDCTは、１処理単位内に前後のデータと、音声が重なりながら切り替わるクロスフェードする成分とをもつため、音声データの一部が欠損して不連続になったとしても、不連続部分を滑らかに繋ぐ効果を得ることができる。このため、パケットロストによるノイズを抑制する副次的な効果を得ることができる。同様の効果を得るために、周波数領域データを時間領域データに変換する際にも、重複直交変換を使用することができ、その一例として上記のIMDCTを使用することができる。
【００４４】
送信手段３２は、変換手段３１により変換された周波数領域データを、サーバ装置１１へネットワーク１２を介して送信する。送信手段３２は、周波数領域データに、ログイン等でユーザが入力したユーザ識別情報やクライアント装置１０に登録されている装置識別情報を付加して送信することができる。
【００４５】
送信手段３２は、周波数領域データをそのまま送信してもよいが、変換手段３１が符号化したデータを送信することもできる。符号化は、データの圧縮であり、変換手段３１が上記のコーデックを使用して周波数領域データへの変換と同時に行うことができる。
【００４６】
受信手段３３は、サーバ装置１１から周波数領域データをミックスした音声データ、すなわち混合データを受信する。受信手段３３は、周波数領域データをミックスした混合データを受信してもよいし、その混合データがサーバ装置１１において符号化された混合データを受信してもよい。変換手段３１は、受信手段３３により受信された混合データを、上記のコーデックを使用して時間領域データに変換する。受信手段３３が符号化された混合データを受信した場合、変換手段３１は、混合データを復号し、復号した混合データを時間領域データに変換することができる。音声出力手段３４は、変換手段３１により変換された時間領域データを音声出力する。
【００４７】
各クライアント装置１０が行う音声データの送信処理について、図７を参照して説明する。ユーザは、クライアント装置１０を使用して音声通話サービスにログインしたことを受けて、ステップ４００から処理を開始する。ステップ４０５では、音声取得手段３０が音声の入力があるかを判断する。音声の入力があれば、ステップ４１０へ進み、入力がなければ、ステップ４２５へ進む。
【００４８】
ステップ４１０では、音声取得手段３０が音声データを時間領域データとして取得する。ステップ４１５では、変換手段３１が時間領域データを周波数領域データに変換する。そして、ステップ４２０では、送信手段３２が周波数領域データをサーバ装置１１に送信する。ステップ４２５では、ユーザがこの音声通話サービスを終了し、ログオフしたかを判断する。ログオフしていない場合、ステップ４０５へ戻り、ステップ４０５からステップ４２５までの処理を繰り返す。ログオフした場合は、ステップ４３０へ進み、処理を終了する。
【００４９】
次に、各クライアント装置１０が行う音声データの受信処理について、図８を参照して説明する。ユーザは、クライアント装置１０を使用して音声通話サービスにログインしたことを受けて、ステップ５００から処理を開始する。ステップ５０５では、受信手段３３がサーバ装置１１から混合データを受信する。ステップ５１０では、変換手段３１が混合データを時間領域データに変換する。
【００５０】
ステップ５１５では、音声出力手段３４が時間領域データを音声出力する。ステップ５２０では、ユーザがこの音声通話サービスを終了し、ログオフしたかを判断する。ログオフしていない場合、ステップ５０５へ戻り、ステップ５０５からステップ５２０までの処理を繰り返す。ログオフした場合は、ステップ５２５へ進み、処理を終了する。
【００５１】
クライアント装置１０では、図７に示した処理と、図８に示した処理とを並行して実施することができる。なお、他のユーザ間の会話を聞くだけであれば、図８に示した処理のみを実施するだけでよい。この場合、クライアント装置１０は、音声取得手段３０を備えていなくてもよい。
【００５２】
図９は、サーバ装置１１が備える機能を説明する機能ブロック図である。サーバ装置１１は、各クライアント装置から音声データを受信する機能、音声データをミックスする機能、音声データを各クライアント装置に配信する機能を備える。したがって、サーバ装置１１は、上記の各機能を機能手段として備えた装置とすることができる。なお、これらの機能は、クライアント装置１０と同様、HDDに記憶されたプログラムをCPUが読み出し実行することにより実現することができる。
【００５３】
サーバ装置１１は、機能手段として、受信手段４０と、混合手段４１と、配信手段４２とを備える。受信手段４０は、各クライアント装置から送信された周波数領域データを受信する。受信手段４０は、周波数領域データに付加されたユーザ識別情報または装置識別情報を抽出し、周波数領域データとその識別情報とを混合手段４１に渡す。受信手段４０は、クライアント装置１０から符号化された周波数領域データを受信した場合、復号することができる。
【００５４】
混合手段４１は、各クライアント装置に対し、他の全てのクライアント装置から受信した周波数領域データをミックスして混合データを生成する。例えば、クライアント装置１０ａに対しては、クライアント装置１０ｂ〜１０ｎから受信した周波数領域データをユーザ識別情報等で識別し、その識別した周波数領域データをミックスして混合データを生成する。
【００５５】
周波数領域データは、どの周波数成分がどの程度含まれているかを示す周波数成分毎に数値化されたデータであるため、その数値化データを周波数成分毎に足し合わせることによりミックスすることができる。
【００５６】
配信手段４２は、混合手段４１が各クライアント装置につき生成した混合データを、当該各クライアント装置に配信する。配信手段４２は、例えば、図１０に示すような装置IDとIPアドレスとを対応付けた対応表を参照し、対応表からIPアドレスを取得し、それを使用して周波数領域データを配信することができる。
【００５７】
対応表は、IPアドレスのほか、このサービスにログインした装置を識別するための装置の状態情報も含めることができる。装置の状態は、ログイン中、ログオフのいずれかを設定することができる。図８では、装置ID「client1」〜「client4」がログイン中で、「client5」がログオフであるため、「client1」〜「client4」の装置で音声通話が行われていることを示している。
【００５８】
混合手段４１や配信手段４２は、対応表を参照することで、ログイン中の装置を、音声通話システムを構成するクライアント装置１０として認識し、どの周波数領域データをミックスして混合データを生成し、どのクライアント装置１０に配信するかを識別することができる。なお、状態情報は、クライアント装置１０がログインあるいはログオフしたことを受信手段４０が受け付け、受信手段４０が設定することができる。
【００５９】
なお、サーバ装置１１は、１つのクライアント装置に対して、他の全てのクライアント装置から受信した音声データをミックスして混合データを生成し、当該１つのクライアント装置に配信する。配信手段４２は、周波数領域データを符号化して配信することもできる。しかしながら、当該他の全てのクライアント装置のいずれもが音声データを送信しているとは限らない。この場合、サーバ装置１１は、当該他の全てのクライアント装置のうち、音声データを送信しているクライアント装置から受信した音声データをミックスして混合データを生成することができる。
【００６０】
また、サーバ装置１１は、同時接続者数よりも同時話者数が少ない場合に、あるクライアント装置に対する混合データを、他のクライアント装置に対する混合データとして送信し、混合処理の計算量をさらに削減することができる。
【００６１】
また、サーバ装置１１は、１つのクライアント装置に対して、単に他の全てのクライアント装置から受信した音声データをミックスして混合データを作成する場合、実際には全てのクライアント装置から受信した音声データを１度だけミックスして、全てのクライアント装置に送信する共通の混合データを作ることで計算量をさらに削減することができる。受信したクライアント装置では、このようにして作られた混合データに対して、送信した音声データの位相を反転して足し合わせることで、他の全てのクライアント装置から送信した音声データの混合データを生成することができる。このため、各クライアント装置は、上記の音声データ、すなわち周波数領域データの位相を反転し、混合データに足し合わせる加算手段をさらに備えることができる。
【００６２】
図１１を参照して、サーバ装置１１が行う音声データの混合処理について詳細に説明する。サーバ装置１１は、複数のユーザが各クライアント装置を使用してサービスにログインしたことを受けて、ステップ８００から処理を開始する。ステップ８０５では、受信手段４０が複数のクライアント装置１０から周波数領域データを受信する。
【００６３】
ステップ８１０では、混合手段４１が、一のクライアント装置に対し、他の全てのクライアント装置から受信した周波数領域データをミックスし、混合データを生成することにより、各クライアント装置１０に対する各混合データを生成する。周波数領域データは、付加されたユーザ識別情報または装置識別情報により識別されるため、クライアント装置１０に応じてミックスすべき周波数領域データを識別し、識別した周波数領域データをミックスすることができる。
【００６４】
ステップ８１５では、混合手段４１が各クライアント装置１０につき生成した各混合データを、配信手段４２が当該各クライアント装置１０に配信する。配信手段４２は、図１０に示す対応表を参照し、配信先のクライアント装置１０に混合データを配信することができる。ステップ８２０では、全てのユーザがログオフしたかを判断する。ログオフしていない場合、まだ音声通話が行われていることから、ステップ８０５へ戻り、ステップ８０５からステップ８２０までの処理を繰り返す。ログオフした場合は、ステップ８２５へ進み、処理を終了する。
【００６５】
このように、サーバ装置１１で復号、符号化を行うのではなく、クライアント装置１０で変換を行うので、音声をミックスするサーバ装置１１における計算量を減らすことができる。これにより、サーバ装置１１の負荷を軽減することができるので、より多くのユーザ間での同時通話を実現することが可能となる。
【００６６】
サーバ装置１１は、受信した周波数領域データに対して音声エフェクトを施すことができる。音声エフェクトは、音声の加工であり、その例として、雑音（ノイズ）除去、ボイスチェンジ、ボリューム変更、パンニング等を挙げることができる。なお、これらは一例であり、その他のエフェクトを施すことも可能である。このように、サーバ装置１１においてボリューム変更やパンニングを行うことで、あるユーザの音声データに対して、それを聞く各ユーザにとってそれぞれ異なる位置関係に配置したような効果をつけることができる。すなわち、１つの音声をユーザ毎に異なるように聞かせることができる。
【００６７】
このため、サーバ装置１１は、図１２に示すように、さらに、周波数領域データを加工するための加工手段４３をさらに備えることができる。上記のノイズ除去には、所定の周波数より高い周波数成分を除去するローパスフィルタ、所定の周波数より低い周波数成分を除去するハイパスフィルタを用いることができる。上記のボイスチェンジでは、音の特定の周波数を上げ、または下げて音の音色を変えることができる。また、周波数帯域毎にレベルを操作するイコライザを用い、周波数特性を変更することもできる。
【００６８】
音声エフェクトは、周波数領域データに対して施すエフェクトが多いため、従来においては、時間領域データを一旦周波数領域データに変換し、エフェクトを施し、再び時間領域データに変換して、音声をミックスする装置へ送信していた。しかしながら、本手法では、クライアント装置１０で周波数領域データに変換してサーバ装置１１に送信することから、送信前の周波数領域データに直接エフェクトを施し、時間領域データに戻すことなく、サーバ装置１１に送信することができる。このため、音声に対して周波数を操作する音声エフェクトを少ない計算量で施すことが可能となる。
【００６９】
これまで本発明のシステム、方法およびプログラムについて詳細に説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態や、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【００７０】
したがって、上記のプログラムが記録されたCD-ROMやSDカード等の記録媒体、そのプログラムを保持し、ダウンロード要求に応じてそのプログラムを提供するプログラム提供サーバ等も提供することができるものである。
【符号の説明】
【００７１】
１０、１０ａ〜１０ｎ…クライアント装置、１１…サーバ装置、１２…ネットワーク、２０…CPU、２１…ROM、２２…RAM、２３…HDD、２４…通信I/F、２５…入出力I/F、２６…音声入力装置、２７…音声出力装置、２８…バス、３０…音声取得手段、３１…変換手段（第１変換手段、第２変換手段）、３２…送信手段、３３…受信手段、３４…音声出力手段、４０…受信手段、４１…混合手段、４２…配信手段、４３…加工手段
【図１】
2018101826.tif 000003
【図２】
2018101826.tif 000004
【図３】
2018101826.tif 000005
【図４】
2018101826.tif 000006
【図５】
2018101826.tif 000007
【図６】
2018101826.tif 000008
【図７】
2018101826.tif 000009
【図８】
2018101826.tif 000010
【図９】
2018101826.tif 000011
【図１０】
2018101826.tif 000012
【図１１】
2018101826.tif 000013
【図１２】
2018101826.tif 000014