(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024094741
(43)【公開日】2024-07-10
(54)【発明の名称】システム、方法、プログラム、情報処理装置
(51)【国際特許分類】
H04S 7/00 20060101AFI20240703BHJP
G06F 3/16 20060101ALI20240703BHJP
G06F 3/01 20060101ALI20240703BHJP
【FI】
H04S7/00 300
G06F3/16 640
G06F3/16 500
G06F3/16 690
G06F3/01 510
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022211483
(22)【出願日】2022-12-28
【新規性喪失の例外の表示】新規性喪失の例外適用申請有り
(71)【出願人】
【識別番号】304012596
【氏名又は名称】株式会社CRI・ミドルウェア
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】押見 正雄
(72)【発明者】
【氏名】郷原 亮
【テーマコード(参考)】
5D162
5E555
【Fターム(参考)】
5D162CA01
5D162CA26
5D162CC08
5D162CD07
5D162EG02
5E555AA27
5E555AA46
5E555AA76
5E555BA02
5E555BA03
5E555BA05
5E555BA06
5E555BA20
5E555BA88
5E555BB02
5E555BB03
5E555BB05
5E555BB06
5E555BB20
5E555BC01
5E555CA47
5E555CB64
5E555CB74
5E555DA23
5E555DB32
5E555DD06
5E555EA05
5E555EA07
5E555EA23
5E555FA00
(57)【要約】
【課題】ユーザの位置についての視覚的なヒントが得られない状況においても、話者の識別を容易にしてユーザ間のコミュニケーションを円滑に行う技術を提供する。
【解決手段】プロセッサに、複数の話者それぞれが発した音声を受け付けるステップと、音声の話者それぞれに位置情報を割り当てるステップと、受け付けた音声に、割り当てられた位置情報に基づいた頭部伝達関数を適用した音声を生成するステップと、生成された音声を聴取者に対して出力するステップと、を実行させるプログラムが提供される。
【選択図】
図7
【特許請求の範囲】
【請求項1】
プロセッサを備えるコンピュータに、所定の処理を実行させるプログラムであって、
前記プロセッサに、
複数の話者それぞれが発した音声を受け付けるステップと、
前記音声の話者それぞれに位置情報を割り当てるステップと、
前記音声に、割り当てられた前記位置情報に基づいた頭部伝達関数を適用した音声を生成するステップと、
生成された音声を聴取者に対して出力するステップと、を実行させる、プログラム。
【請求項2】
前記位置情報を割り当てるステップでは、前記複数の話者それぞれに仮想の位置に関する位置情報を割り当てる、請求項1に記載のプログラム。
【請求項3】
前記位置情報を割り当てるステップでは、ネットワークを介して取得した話者に対応づけられた位置情報を割り当てる、請求項1に記載のプログラム。
【請求項4】
前記位置情報を割り当てるステップでは、前記話者に対応づけられたアバターの仮想空間における位置情報とは異なる位置情報を割り当てる、請求項1に記載のプログラム。
【請求項5】
前記出力するステップでは、仮想空間における前記話者に対応づけられたアバター同士の距離に応じて、出力される音声の大きさを調整する、請求項2に記載のプログラム。
【請求項6】
前記複数の話者は、対応するユーザが存在しない仮想のキャラクタであり、前記音声は前記コンピュータが合成した音声である、請求項1に記載のプログラム。
【請求項7】
前記キャラクタの位置情報の設定を、ユーザから受け付けるステップを実行させる、請求項6に記載のプログラム。
【請求項8】
プロセッサを備えるコンピュータに、所定の処理を実行させる方法であって、
複数の話者それぞれが発した音声を受け付けるステップと、
前記音声の話者それぞれに位置情報を割り当てるステップと、
前記音声に、割り当てられた前記位置情報に基づいた頭部伝達関数を適用した音声を生成するステップと、
生成された音声を聴取者に対して出力するステップと、を含む、方法。
【請求項9】
プロセッサを備えるコンピュータを備え、所定の処理を実行するシステムであって、
複数の話者それぞれが発した音声を受け付けるステップと、
前記音声の話者それぞれに位置情報を割り当てるステップと、
前記音声に、割り当てられた前記位置情報に基づいた頭部伝達関数を適用した音声を生成するステップと、
生成された音声を聴取者に対して出力するステップと、を実行する、システム。
【請求項10】
プロセッサを備える情報処理装置であって、
複数の話者それぞれが発した音声を受け付けるステップと、
前記音声の話者それぞれに位置情報を割り当てるステップと、
前記音声に、割り当てられた前記位置情報に基づいた頭部伝達関数を適用した音声を生成するステップと、
生成された音声を聴取者に対して出力するステップと、を実行する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、システム、方法、プログラム、情報処理装置に関する。
【背景技術】
【0002】
昨今、オンラインでのコミュニケーションを行うための技術が開発されている。例えば特許文献1には、オンラインでのビデオコミュニケーションツールにおいて、ユーザが表示される画面位置に応じて、音声の出力パラメータを基づく指向性を音声に付与する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、上記技術では、表示される画面位置に基づく位置をユーザに割り当てているため、音声での同期コミュニケーション(以下、ボイスチャットともいう)のように、ユーザの位置を視覚的に把握できない場合に適用できないといった問題があった。
【0005】
本開示の目的は、ユーザの位置についての視覚的なヒントが得られない状況においても、話者の識別を容易にしてユーザ間のコミュニケーションを円滑に行う技術を提供することである。
【課題を解決するための手段】
【0006】
本開示では、プロセッサに、複数の話者それぞれが発した音声を受け付けるステップと、音声の話者それぞれに位置情報を割り当てるステップと、受け付けた音声に、割り当てられた位置情報に基づいた頭部伝達関数を適用した音声を生成するステップと、生成された音声を聴取者に対して出力するステップと、を実行させるプログラムが提供される。
【発明の効果】
【0007】
本開示によれば、ユーザの位置についての視覚的なヒントが得られない状況においても、話者の識別を容易にしてユーザ間のコミュニケーションを円滑に行うことが可能となる。
【図面の簡単な説明】
【0008】
【
図2】システム1のハードウェア構成を示すブロック図である。
【
図3】端末装置10の機能構成を示すブロック図である。
【
図4】サーバ20の機能構成を示すブロック図である。
【
図5】
図5Aは音源Sと聴取者Lの関係を示す図である。
図5Bは頭部伝達関数における左伝達関数と右伝達関数を示す図である。
図5Cは音声への頭部伝達関数の適用を示す図である。
【
図6】端末装置10の記憶部180に記憶されるデータベースの構造を示す図である。
【
図7】システム1の処理の流れを説明するフロー図である。
【
図8】音声生成処理(S200)の流れを説明するフロー図である。
【
図9】ユーザごとに仮想的な位置を割り当てる処理を説明するための図である。
【
図10】変形例における端末装置10の機能構成を示すブロック図である。
【
図11】変形例におけるサーバ20の機能構成を示すブロック図である。
【
図12】変形例におけるシステム1の処理の流れを説明するフロー図である。
【
図13】第2実施形態における端末装置10の機能構成を示すブロック図である。
【
図14】第2実施形態における音声生成処理(S200)の流れを説明するフロー図である。
【
図15】
図15Aは、仮想空間W内でのユーザに対応するアバターの位置の一例を示す図である。
図15Bは、ユーザごとに仮想的な位置を割り当てる処理を説明するための図である。
【発明を実施するための形態】
【0009】
以下、図面を参照しつつ、本開示の実施形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称及び機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0010】
<1.第1実施形態>
(1-1.システム1の概要)
図1を参照して、システム1が提供する機能(以下、本機能ともいう)の概要を説明する。
図1に示すように、システム1は、複数のユーザがそれぞれ使用する複数の端末装置10と、サーバ20を備え、複数のユーザによる会話での同期コミュニケーション(以下、ボイスチャットともいう)を実行する。
【0011】
端末装置10は、ユーザが発する音声を受け付けて、サーバ20へ送信する。サーバ20は、端末装置10から受信した音声データを他の端末装置10へ送信する。端末装置10は、音声データを受信すると、音声に対応づけられたユーザに仮想の位置情報を割り当てて、当該位置情報に基づく頭部伝達関数を適用した音声を生成する。端末装置10は、生成された音声をユーザに対して出力する。
【0012】
このように、システム1では、ユーザ同士の音声での同期コミュニケーションにおいて、ユーザから受け付けた音声に対して、ユーザの仮想の位置情報に基づく頭部伝達関数を適用した音声を生成し、当該生成された音声が端末装置10から出力される。これにより、複数の話者が発言した音声の分離度を向上させることが可能となり、音声での同期コミュニケーションを円滑に行うことが可能となる。以下、各構成を詳細に説明する。
【0013】
(1-2.システム1のハードウェア構成)
図2は、システム1のハードウェア構成の例を示すブロック図である。システム1は、複数の端末装置10と、サーバ20とを備える。端末装置10およびサーバ20は、ネットワーク30を介して通信可能に接続されている。ここで、端末装置10と、サーバ20は、SFU(Selective Forwarding Unit)方式で通信されている。また、端末装置10と、サーバ20は、UDP(User Datagram Protocol)プロトコルで通信することが好ましい。なお、
図2に示す例では、システム1は3つの端末装置10を備えているが、端末装置10の数はこの例に限定されることはなく、2つ以下であってもよく、4つ以上であってもよい。
【0014】
本実施形態において、複数の装置の集合体を1つのサーバ20としてもよい。1つ又は複数のハードウェアに対して本実施形態に係るサーバ20を実現することに要する複数の機能の配分の仕方は、各ハードウェアの処理能力及び/又はサーバ20に求められる仕様等に鑑みて適宜決定することができる。
【0015】
端末装置10は、一例として、デスクトップ型またはラップトップ型のPC(Personal Computer)であってもよい。また、端末装置10は、タブレット端末、又はスマートフォン等の携帯端末として実現してもよい。端末装置10は、通信IF(Interface)12と、入力装置13と、出力装置14と、メモリ15と、ストレージ16と、プロセッサ19とを備える。
【0016】
通信IF12は、端末装置10が外部の装置と通信するため、信号を入出力するためのインタフェースである。
【0017】
入力装置13は、ユーザからの入力操作を受け付けるための装置(例えば、タッチパネル、マイク等)である。
【0018】
出力装置14は、ユーザに対して情報を提示するための装置(ディスプレイ、スピーカ等)である。
【0019】
メモリ15は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。
【0020】
ストレージ16は、データを保存するためのものであり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。
【0021】
プロセッサ19は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0022】
サーバ20は、インターネットなどのネットワーク30を介して端末装置10と通信可能なコンピュータであり、いわゆるクラウドサーバとして実現される。サーバ20は、通信IF22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。
【0023】
入出力IFは、サーバ20に対して何らかの入力操作を行う場合、または、サーバ20から情報を出力する場合に、入出力装置を接続するためのインタフェースである。
【0024】
通信IF22、メモリ25、ストレージ26およびプロセッサ29は、端末装置10の通信IF12、メモリ15、ストレージ16およびプロセッサ19と同様に構成されるため、説明は繰り返さない。
【0025】
(1-3.端末装置10の機能構成)
図3は、端末装置10の機能構成の例を示すブロック図である。
図3に示すように、端末装置10は、入力装置13と、出力装置14と、通信部150と、音声処理部170と、記憶部180と、制御部200を備える。
図3において端末装置10に含まれる各ブロックは、例えば、バス等により電気的に接続される。
【0026】
通信部150は、端末装置10が他の装置と通信するための変復調処理等の処理を行う。通信部150は、制御部200で生成された信号に送信処理を施し、外部(例えば、他の端末装置10)へ送信する。通信部150は、外部から受信した信号に受信処理を施し、制御部200へ出力する。
【0027】
入力装置13は、端末装置10を操作するユーザが指示、又は情報を入力するための装置である。入力装置13は、例えば、キーボード131およびマウス132を含む。また、入力装置13は、操作面へ触れることで指示が入力されるタッチセンシティブデバイスを備えていてもよい。入力装置13は、ユーザから入力される指示、又は情報を電気信号へ変換し、電気信号を制御部200へ出力する。また、入力装置13には、外部の入力機器から入力される電気信号を受け付ける受信ポートが含まれてもよい。
【0028】
出力装置14は、端末装置10を操作するユーザへ情報を提示するための装置である。出力装置14は、例えば、ディスプレイ141等により実現される。ディスプレイ141は、制御部200の制御に応じたデータを表示する。ディスプレイ141は、例えば、LCD(Liquid Crystal Display)、又は有機EL(Electro-Luminescence)ディスプレイ等によって実現される。
【0029】
音声処理部170は、例えば、音声のデジタル-アナログ変換処理を行う。音声処理部170は、マイク171から与えられる音声のアナログ信号をデジタル信号に変換して、変換後のデジタル信号を制御部200へ与える。また、音声処理部170は、音声の信号をスピーカ172へ与える。音声処理部170は、例えば音声処理用のプロセッサによって実現される。マイク171は、音声入力を受け付けて、当該音声入力に対応する信号を音声処理部170へ与える。スピーカ172は、音声処理部170から与えられる信号を音声に変換して当該音声を端末装置10の外部へ出力する。なお、スピーカ172は、例えば7.1chスピーカを用いて実現してもよいし、ステレオヘッドホンを用いて実現してもよい。
【0030】
記憶部180は、例えば、メモリ15、及びストレージ16等により実現され、端末装置10が使用するデータ、及びプログラムを記憶する。記憶部180は、一例として、伝達関数データベース(DB:DataBase)181を記憶する。
【0031】
頭部伝達関数データベース181は、頭部伝達関数の情報を記憶するデータベースである。頭部伝達関数とは、音源から出力された音声が聴取者の左右の耳で聴き取られるまでに変化する特性を表した伝達関数である。頭部伝達関数データベース181は、端末装置10の記憶部180にあらかじめ記憶されるのが好ましいが、必要に応じて適宜レコードの追加および更新をしてもよい。頭部伝達関数データベース181のデータ構造の詳細は後述する。
【0032】
図5Aおよび
図5Bを参照して、頭部伝達関数について説明する。音源Sから出力された音声が聴取者Lに聴き取られる際、聴取者Lの左耳で聴き取られる音声と、聴取者Lの右耳で聴き取られる音声には変化が生じる。これは、音源Sから出力された音声は、聴取者Lの頭部の形状、聴取者Lの耳殻の構造、および聴取者Lの位置を基準とした音源Sの位置の方向などの影響を受けるためである。ここで、
図5Aに示すように、聴取者Lの位置を基準とした音源Sの位置の方向は、極座標における鉛直角θと水平角φを用いて一意に特定される。
【0033】
一例として、
図5Bに示すように、音源Sから出力された音声が聴取者Lの左耳E1に到達するまでの変化の特性を左耳用の頭部伝達関数(以下、左伝達関数ともいう)Hleftとして表現でき、音源Sから出力された音声が聴取者Lの右耳E2に到達するまでの変化の特性を右耳用の頭部伝達関数(以下、右伝達関数ともいう)Hrightとして表現できる。なお、左伝達関数Hleftおよび右伝達関数Hrightは、いずれも鉛直角θと水平角φを変数として保持し得る。
【0034】
図3に戻って、端末装置10の機能構成について説明を続ける。制御部200は、プロセッサ19が記憶部180に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部200は、端末装置10の動作を制御する。制御部200は、プログラムに従って動作することにより、操作受付部201と、送受信部202と、表示制御部203と、音声受付部204と、位置割当部205と、関数選択部206と、音声生成部207と、音声出力部208としての機能を発揮する。
【0035】
操作受付部201は、入力装置13から入力される指示、又は情報を受け付けるための処理を行う。具体的には、例えば、操作受付部201は、キーボード131等から入力される指示に基づく情報を受け付ける。
【0036】
送受信部202は、端末装置10が、外部の装置と通信プロトコルに従ってデータを送受信するための処理を行う。
【0037】
表示制御部203は、ユーザに対する情報のディスプレイ141に代表される出力装置14への表示を制御する。
【0038】
音声受付部204は、ユーザが発する音声を受け付ける。具体的には、例えば、ユーザが発する音声の入力を端末装置10のマイク171で検出し、音声処理部170におけるデジタル-アナログ変換処理を行うことにより、音声受付部204によってユーザが発した音声が受け付けられる仕様としてもよい。
【0039】
位置割当部205は、サーバ20から受信した音声データの話者それぞれに仮想の位置情報を割り当てる。仮想の位置情報の割り当てについての詳細は後述する。
【0040】
関数選択部206は、位置割当部205が割り当てた話者の仮想の位置情報に基づき、頭部伝達関数データベース181を参照して、音声データに適用する頭部伝達関数を選択する。頭部伝達関数の選択についての詳細は後述する。
【0041】
音声生成部207は、関数選択部206によって選択された頭部伝達関数を受信した音声に適用して、出力用の音声を生成する。
図5Cに示すように、音声生成部207は、受信した音声の信号に対して、左伝達関数Hleftと右伝達関数Hrightをそれぞれ適用して、左耳用の左チャンネル信号と、右耳用の右チャンネル信号を生成する。
【0042】
ここで、音声生成部207は、頭部伝達関数を適用するにあたって、受信した音声を、より高いサンプリング周波数でリサンプリングした上で、頭部伝達関数(具体的には、左伝達関数Hleftおよび右伝達関数Hright)を適用するのが好ましい。より具体的には、エイリアシングなどで高周波成分を疑似的に生成して、リサンプリングすることが好ましい。このような処理を行うことにより、高周波数でリサンプリングしたことで確保できた高周波帯域において、頭部伝達関数を適用することによる空間または聴取者の耳殻における反響音成分、および/または残響音成分が発生することとなり、高周波数の音声成分を生成することができ、音質が向上する。
【0043】
音声出力部208は、音声生成部207が生成した音声を出力する。具体的には、例えば、音声出力部208は、音声生成部207が生成した音声を、音声処理部170へ与える。音声処理部170は、受け付けた音声に対応する信号をスピーカ172へ与える。スピーカ172は、音声処理部170から与えられる信号を音声に変換して、端末装置10の外部へ出力する。
【0044】
(1-4.サーバ20の機能構成)
図4は、サーバ20は、通信部210と、記憶部220と、制御部230を備える。
図4においてサーバ20に含まれる各ブロックは、例えば、バス等により電気的に接続される。
【0045】
通信部210は、サーバ20が外部の装置と通信するための処理を行う。
【0046】
記憶部220は、例えば、メモリ25、及びストレージ26等により実現され、サーバ20が使用するデータ、及びプログラムを記憶する。
【0047】
制御部230は、プロセッサ29が記憶部220に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部230は、プログラムに従って動作することにより、送受信モジュール231として機能する。
【0048】
送受信モジュール231は、サーバ20が、外部の装置と通信プロトコルに従ってデータを送受信するための処理を行う。
【0049】
(1-5.データ構造)
図6を参照し、システム1で使用されるデータベースのデータ構造を説明する。なお、以下に説明するデータ構造はあくまでも一例であり、他のデータベースおよびデータ項目の保有を除外するものではない。
【0050】
図6は、端末装置10の記憶部180が記憶する頭部伝達関数データベース181のデータ構造の一例を示す図である。
【0051】
図6に示すように、頭部伝達関数データベース181のレコードは、項目「関数ID」と、項目「鉛直角θ」と、項目「水平角φ」と、項目「左伝達関数」と、項目「右伝達関数」等を含む。
【0052】
項目「関数ID」は、頭部伝達関数を識別するための識別情報であり、頭部伝達関数データベース181におけるレコードを一意に特定するための主キーである
【0053】
項目「鉛直角θ」は、聴取者の位置を基準とした音源の位置に対する鉛直角を意味する(
図5A参照)。一例として、鉛直角θは、0度~350度までを10度間隔で保持する仕様としてもよい。すなわち、
図6において、θ1=0度、θ2=10度として、θ36=350度までのデータを保持する仕様としてもよい。ただし、この態様に限定されることはなく、より細かい間隔(例えば5度)、または粗い間隔(例えば20度)で保持してもよい。
【0054】
項目「水平角φ」は、聴取者の位置を基準とした音源の位置に対する水平角を意味する(
図5A参照)。一例として、水平角φは、0度~350度までを10度間隔で保持する仕様としてもよい。すなわち、
図6において、φ1=0度、φ2=10度として、φ36=350度までのデータを保持する仕様としてもよい。ただし、この態様に限定されることはなく、より細かい間隔(例えば5度)、または粗い間隔(例えば20度)で保持してもよい。
【0055】
項目「左伝達関数」は、音源から出力された音声が聴取者の左耳に到達するまでの変化の特性を表す関数であり、鉛直角θと水平角φを変数として保持されている。すなわち、ある鉛直角θと水平角φが求まると、項目「左伝達関数」を参照することで、対応する左伝達関数Hleft(θ、φ)を求めることができる。
【0056】
項目「右伝達関数」は、音源から出力された音声が聴取者の右耳に到達するまでの変化の特性を表す関数であり、鉛直角θと水平角φを変数として保持されている。すなわち、ある鉛直角θと水平角φが求まると、項目「右伝達関数」を参照することで、対応する右伝達関数Hright(θ、φ)を求めることができる。
【0057】
頭部伝達関数データベース181は、ユーザが端末装置10に本機能を提供するアプリケーションをインストールする際に、記憶部180に記憶されることが好ましい。また、頭部伝達関数データベース181は、必要に応じて、例えば当該アプリケーションのアップデートのタイミングで、レコードの追加または変更が可能な仕様としてもよい。
【0058】
(1-6.処理の流れ)
以下、
図7および
図8を参照して、システム1の処理の一例を説明する。なお、以下において、システム1はユーザU1が使用する端末装置10Aと、ユーザU2が使用する端末装置10Bと、ユーザU3が使用する端末装置10Cの3台を備える構成で説明するが、この例に限定されることはない。
【0059】
図7のステップS111において、端末装置10Aの音声受付部204は、ボイスチャットを行うユーザU1の音声を受け付けて、圧縮音声に変換する。ステップS131において、端末装置10Bの音声受付部204は、ボイスチャットを行うユーザU2の音声を受け付けて、圧縮音声に変換する。ステップS141において、端末装置10Cの音声受付部204は、ボイスチャットを行うユーザU3の音声を受け付けて、圧縮音声に変換する。
【0060】
ステップS112において、端末装置10Aの送受信部202は、ユーザU1から受け付けて圧縮した圧縮音声をサーバ20へ送信する。サーバ20の送受信モジュール231は、端末装置10Aが送信したユーザU1の音声を受信する。
【0061】
ステップS132において、端末装置10Bの送受信部202は、ユーザU2から受け付けて圧縮した圧縮音声をサーバ20へ送信する。サーバ20の送受信モジュール231は、端末装置10Bが送信したユーザU2の音声を受信する。
【0062】
ステップS142において、端末装置10Cの送受信部202は、ユーザU3から受け付けて圧縮した圧縮音声をサーバ20へ送信する。サーバ20の送受信モジュール231は、端末装置10Cが送信したユーザU3の音声を受信する。
【0063】
ステップS124において、サーバ20の送受信モジュール231は、音声を端末装置10A~10Cへ送信する。ステップS113において、端末装置10Aの送受信部202は、音声を受信する。ステップS133において、端末装置10Bの送受信部202は、音声を受信する。ステップS143において、端末装置10Cの送受信部202は、音声を受信する。
【0064】
ステップS200において、端末装置10A~10Cは、音声生成処理を実行する。音声生成処理(S200)では、
図8に示すとおり、ステップS210~ステップS230が実行される。
【0065】
ステップS210において、端末装置10A~10Cの位置割当部205は、サーバ20から受信した通信データのデータグラム内の音声データの話者それぞれに仮想の位置情報を割り当てる。
図9に示す例では、位置割当部205は、ユーザU1~ユーザU3が、仮想のテーブルT1をはさんで座っている想定での位置情報を割り当てる。具体的には、所定の原点Оに対して、ユーザU1に位置(x1,y1)、ユーザU2に位置(x2,y2)、ユーザU3に位置(x3,y3)を割り当てる。このように、ユーザに対して二次元空間での位置を割り当てることにより、後続の音声処理(S220およびS230)を簡略にすることができ、処理速度が向上する。
【0066】
ステップS220において、端末装置10A~10Cの関数選択部206は、位置割当部205が割り当てたユーザU1~ユーザU3の位置情報に基づき、頭部伝達関数データベース181を参照して、話者それぞれに対応する音声データに適用する頭部伝達関数を選択する。
【0067】
具体的には、例えばユーザU1が発した音声をユーザU2が使用する端末装置10Bで出力させるために、関数選択部206は、ユーザU1の位置(x1,y1)とユーザU2の位置(x2,y2)から、聴取者U2の位置(x2,y2)を基準にした話者(音源)U1の位置(x1,y1)の水平角φ21を算出する。そして、関数選択部206は、頭部伝達関数データベース181を参照して、水平角φ21に最も近い「水平角φ」を持つレコードを特定し、当該レコードにおける項目「左伝達関数Hleft」を左伝達関数Hleft(φ21)として選択し、項目「右伝達関数Hright」を右伝達関数Hright(φ21)として選択する。このように、
図9に示す例においては、ユーザU1~ユーザU3に二次元空間(すなわち、同一平面上)での位置を割り当てる仕様となっているため、鉛直角θは定数となり算出する必要がなくなる。この場合、頭部伝達関数データベース181では、水平角φを変数にして左伝達関数Hleftおよび右伝達関数Hrightを規定すればよい。
【0068】
また、例えばユーザU1が発した音声をユーザU3が使用する端末装置10Cで出力させるために、関数選択部206は、ユーザU1の位置(x1,y1)とユーザU3の位置(x3,y3)から、聴取者U3の位置(x3,y3)を基準にした話者(音源)U1の位置(x1,y1)の水平角φ31を算出する。そして、関数選択部206は、頭部伝達関数データベース181を参照して、水平角φ31に最も近い「水平角φ」を持つレコードを特定し、当該レコードにおける項目「左伝達関数Hleft」を左伝達関数Hleft(φ31)として選択し、項目「右伝達関数Hright」を右伝達関数Hright(φ31)として選択する。このようにして、ユーザU2が発した音声およびユーザU3が発した音声に対しても同様の処理を行う。
【0069】
ステップS230において、端末装置10A~10Cの音声生成部207は、関数選択部206によって選択された頭部伝達関数を受信した音声に適用して、出力用の音声を生成する。
【0070】
具体的には、例えばユーザU1が発した音声をユーザU2が使用する端末装置10Bで出力させるために、サーバ20から受信した音声に対して、左伝達関数Hleft(θ21,φ21)と右伝達関数Hright(θ21,φ21)を適用して、出力用の音声を生成する。また、ユーザU1が発した音声をユーザU3が使用する端末装置10Cで出力させるために、端末装置10から受信した音声に対して、左伝達関数Hleft(θ31,φ31)と右伝達関数Hright(θ31,φ31)を適用して、出力用の音声を生成する。
【0071】
ここで、音声生成部207は、頭部伝達関数を適用するにあたって、受信した音声を、より高いサンプリング周波数でリサンプリングした上で、頭部伝達関数(具体的には、左伝達関数Hleftおよび右伝達関数Hright)を適用するのが好ましい。具体的には、例えば端末装置10から受信した音声のサンプリング周波数が16kHzである場合に、48kHzのサンプリング周波数でリサンプリングを行い、その後に左伝達関数Hleftおよび右伝達関数Hrightを適用する。このような処理を行うことにより、高周波数でリサンプリングしたことで確保できた高周波帯域において、空間または聴取者の耳殻における反響音成分および/または残響音成分が発生することとなり、高周波数の音声成分を生成することができ、音質が向上する。
【0072】
図7に戻って説明を続ける。音声生成処理(ステップS200)が終了すると、ステップS114において、端末装置10Aの音声出力部208は、生成された音声をスピーカ172から出力する。ステップS134において、端末装置10Bの音声出力部208は、生成された音声をスピーカ172から出力する。ステップS144において、端末装置10Cの音声出力部208は、生成された音声をスピーカ172から出力する。
【0073】
(1-7.小括)
以上のようにして、本実施形態では、システム1は、複数の話者それぞれが発した音声を受け付けるステップ(S111,S131,S141)と、音声の話者それぞれに位置情報を割り当てるステップ(S210)と、受け付けた音声に、割り当てられた位置情報に基づいた頭部伝達関数を適用した音声を生成するステップ(S230)と、生成された音声を聴取者に対して出力するステップ(S114,S134,S144)と、を実行する。
【0074】
このような構成とすることにより、ボイスチャットなどの音声での同期コミュニケーションにおいて、話者の周りの空間的な広がりを聴取者が感知できるような、反響成分および/または残響成分を含んだ音声を出力することが可能となり、話者の分離度が向上する。すなわち、いわゆるカクテルパーティ効果(音声の選択的聴取効果)が発生して、複数の話者が同時に発話していても聞き分けることが容易となる。また、複数の話者が発話することで、聴取者は話者の周りの空間を認識し、コミュニケーションの雰囲気を感じ取ることができるようになる。これにより、ユーザの位置についての視覚的なヒントが得られない状況においても、話者の識別を容易にしてユーザ間のコミュニケーションを円滑に行うことが可能となる。
【0075】
(1-8.変形例)
図10~
図12を参照し、上記実施形態の変形例を説明する。変形例では、サーバ20が音声生成処理(S200)を行う点が上記実施形態と異なる。以下、相違点を中心に説明する。
【0076】
図10に示すように、変形例における端末装置10の制御部200は、操作受付部201と、送受信部202と、表示制御部203と、音声受付部204と、音声出力部208を備える。
【0077】
図11に示すように、変形例におけるサーバ20の制御部230は、送受信モジュール231に加えて、位置割当モジュール232と、関数選択モジュール233と、音声生成モジュール234を備える。
【0078】
位置割当モジュール232は、上記実施形態における位置割当部205と同様の処理を行う。関数選択モジュール233は、上記実施形態における関数選択部206と同様の処理を行う。音声生成モジュール234は、上記実施形態における音声生成部207と同様の処理を行う。このように、変形例においては、上記実施形態における端末装置10が行っていた処理の一部を、サーバ20が行う仕様となっている。
【0079】
図12を参照して、変形例における処理の流れを説明する。
図12に示すように、変形例では、ステップS121~ステップS124においてサーバ20が音声情報を受信した後に、サーバ20が音声生成処理(S200)を実行する。音声生成処理(S200)の処理の内容は上記実施形態と同様であるため説明は繰り返さない。
【0080】
音声生成処理(S200)が実行されると、ステップS124において、サーバ20の送受信モジュール231は、生成された音声を端末装置10A~10Cへ送信する。ステップS113において、端末装置10Aの送受信部202は、生成された音声を受信する。ステップS133において、端末装置10Bの送受信部202は、生成された音声を受信する。ステップS143において、端末装置10Cの送受信部202は、生成された音声を受信する。
【0081】
ステップS114において、端末装置10Aの音声出力部208は、生成された音声をスピーカ172から出力する。ステップS134において、端末装置10Bの音声出力部208は、生成された音声をスピーカ172から出力する。ステップS144において、端末装置10Cの音声出力部208は、生成された音声をスピーカ172から出力する。
【0082】
このように、変形例として、サーバ20において音声生成処理(S200)を行う仕様としてもよく、この場合においても上記実施形態と同様の効果を得ることができる。
【0083】
<2.第2実施形態>
図13~
図15を参照し、本開示の第2実施形態におけるシステム1を説明する。第2実施形態では、端末装置10は話者に対応付けられた位置情報を取得する点が第1実施形態と異なる。以下、上記実施形態との相違点を中心に説明する。
【0084】
(2-1.端末装置10の機能構成)
図13は、第2実施形態における端末装置10の機能構成の例を示すブロック図である。
図13に示すように、端末装置10の制御部200は、第1実施形態の構成に加えて、コンテンツ提供部209をさらに備える。
【0085】
コンテンツ提供部209は、一例として、ゲームなどのコンテンツを提供する。より具体的には、記憶部180に記憶されているプログラムおよびデータを用いて、複数のユーザがそれぞれの端末装置10で音声での同期コミュニケーションを行いながらプレイ可能なオンラインゲームを提供する。
【0086】
コンテンツ提供部209が提供するゲームでは、仮想空間内をユーザに対応したアバターが行動することによりゲームが進行する。アバターとは、ユーザの分身としての役割を備える仮想のキャラクタを意味する。ユーザは、仮想空間内でアバターを操作することにより、ゲームにおいて求められているミッション(またはクエスト)を攻略したり、他のユーザに対応したアバターを介して、他のユーザとコミュニケーションをとったりすることが可能となっている。
【0087】
コンテンツ提供部209は、音声受付部204がユーザの音声を受け付けたタイミングで、当該ユーザに対応づけられたアバターと他のアバターの位置情報を位置割当部205に与える。
【0088】
位置割当部205は、一例として、コンテンツ提供部209から取得したアバターの仮想空間での位置情報を、ユーザの位置情報として割り当てる。また、位置割当部205は、他の例として、コンテンツ提供部209から取得したアバターの仮想空間での位置情報とは異なる位置情報を割り当てる。位置割当部205の処理の詳細は後述する。
【0089】
(2-2.処理の流れ)
図14を参照し、第2実施形態における音声生成処理(ステップS200)の流れを説明する。なお、第1実施形態と同様の処理については説明を繰り返さない。
【0090】
第2実施形態における音声生成処理(ステップS200)では、ステップS205~ステップS230が実行される。ステップS205において、位置割当部205は、コンテンツ提供部209からアバターの仮想空間での位置情報を取得する。
【0091】
図15Aは、端末装置10のコンテンツ提供部209が提供するゲームにおける仮想空間Wを示す図である。位置割当部205は、ユーザU1に対応するアバターA1の仮想空間Wにおける位置(X1,Y1,Z1)と、ユーザU2に対応するアバターA2の仮想空間Wにおける位置(X2,Y2,Z2)と、ユーザU3に対応するアバターA3の仮想空間Wにおける位置(X3,Y3,Z3)を取得する。
【0092】
ステップS210において、位置割当部205は、一例として、コンテンツ提供部209から取得したアバターの仮想空間での位置情報を、ユーザの位置情報として割り当てる。すなわち、アバターA1の位置(X1,Y1,Z1)をユーザU1の位置情報として割り当て、アバターA2の位置(X2,Y2,Z2)をユーザU1の位置情報として割り当て、アバターA3の位置(X3,Y3,Z3)をユーザU3の位置情報として割り当てる。ステップS220において、関数選択部206は、当該割り当てられた位置情報に基づいて、頭部伝達関数を選択する。
【0093】
このような構成とすることで、複数のユーザでゲームをプレイしながらボイスチャットでコミュニケーションをとる場合において、仮想空間内のアバター同士の相対位置に応じて他のユーザが発した音声が聞こえてくることとなり、ゲームプレイにおける臨場感を向上させることができる。なお、この場合において、端末装置10の音声出力部208は、音声を出力させる際に、仮想空間における前記アバター同士の距離に応じて、出力される音声の大きさを調整する仕様としてもよい。このようにすることで、アバター同士の方向だけでなく距離感も反映した音声を出力することができ、ゲームプレイにおける臨場感を一層向上させることができる。
【0094】
または、位置割当部205は、他の例として、コンテンツ提供部209から取得したアバターの仮想空間での位置情報とは異なる位置情報をユーザに割り当ててもよい。例えば、
図15Bに示すように、仮想のテーブルT2を挟むようにユーザU1~U3が配置されており、所定の原点Оを基準として位置(x1,y1,z1)をユーザU1の位置情報として割り当て、位置(x2,y2,z2)をユーザU2の位置情報として割り当て、位置(x3,y3,z3)をユーザU3の位置情報として割り当ててもよい。ステップS220において、関数選択部206は、当該割り当てられた位置情報に基づいて、頭部伝達関数を選択する。
【0095】
このような構成とすることで、複数のユーザでゲームをプレイしながらボイスチャットでコミュニケーションをとる場合において、ユーザの位置情報が仮想空間内におけるアバターの位置とは無関係に設定され、当該設定されたユーザの位置情報に応じた音声を聴き取ることができる。すなわち、特定のユーザとの相対位置を常に固定することが可能となり、どのユーザが発言しているかを容易に識別することが可能となる。
【0096】
(2-3.小括)
このようにして、第2実施形態では、端末装置10はコンテンツ提供部209を備え、コンテンツ提供部209は、提供するゲーム等のコンテンツにおけるアバターの仮想空間内での位置情報を位置割当部205に与える。位置割当部205は、一例として、コンテンツ提供部209からネットワークを介して取得したアバターの仮想空間での位置情報(すなわち、話者であるユーザに対応づけられた位置情報)を、ユーザの位置情報として割り当てる。このようにすることで、複数のユーザでゲームをプレイしながらボイスチャットでコミュニケーションをとる場合において、仮想空間内のアバター同士の相対位置に応じて他のユーザが発した音声が聞こえてくることとなり、ゲームプレイにおける臨場感を向上させることができる。
【0097】
なお、本実施形態において、コンテンツ提供部209は、当該コンテンツにおいて同期をとるためのタイムスロット情報を管理しており、音声受付部204がユーザの音声を受け付けたタイミングで、当該タイムスロット情報を音声受付部204に与える仕様としてもよい。この場合、送受信部202は、当該タイムスロット情報を、音声データと対応づけてデータグラム内に格納してサーバ20へ送信してもよい。
【0098】
また、他の例として、位置割当部205は、コンテンツ提供部209から取得したアバターの仮想空間での位置情報とは異なる位置情報をユーザに割り当てる。このようにすることで、特定のユーザとの相対位置を常に固定することが可能となり、どのユーザが発言しているかを容易に識別することが可能となる。
【0099】
なお、位置割当部205が、コンテンツ提供部209から取得したアバターの仮想空間での位置情報をユーザの位置情報として割り当てるか否かは、ユーザが適宜設定可能な仕様としてもよい。また、位置割当部205が、コンテンツ提供部209から取得したアバターの仮想空間での位置情報と異なる位置情報をユーザに割り当てる場合には、他のユーザとの相対位置をユーザが適宜設定可能な仕様としてもよい。
【0100】
<3 他の実施形態>
以上、本発明における実施形態およびその変形例について説明したが、本開示の適用は上述の内容に限定されるものではない。
【0101】
例えば、上記実施形態では、頭部伝達関数は鉛直角θと水平角φを変数として保持していたが、この仕様に限定されることはない。例えば、音源と聴取者の距離をさらに変数として保持する仕様としてもよい。または、極座標以外の座標系(例えば直交座標)における変数を保持してもよい。
【0102】
また、上記実施形態では、ボイスチャットを想定しているため、話者と聴取者が同じとなっているが、この態様に限定されることはなく、話者と聴取者が異なってもよい。一例として、ポッドキャストのようなインターネットを利用した音声配信において、複数の話者が参加する場合に、本開示の技術的思想を適用してもよい。この場合、位置割当部205は、複数の話者それぞれに位置情報を割り当てて、関数選択部206は、所定の場所(例えば座標系における原点)に聴取者がいるとして頭部伝達関数を選択する仕様としてもよい。また、eスポーツ(Electronic Sports)の観戦などにおいて、観客が話者であり、プレイヤーが聴取者である仕様も想定される。この場合、話者としての位置を観客としてのユーザが適宜設定可能な仕様とすることで、プレイヤーに対して声援が届く位置で観戦するか否かを観客としてのユーザが選択可能な仕様としてもよい。
【0103】
また、上記実施形態では、話者としてのユーザが存在する音声での同期コミュニケーションを想定しているが、この態様に限定されることはない。例えば、話者として対応するユーザが存在しない仮想のキャラクタが複数存在し、当該キャラクタが発する音声は、コンピュータが合成した音声であってもよい。この場合、複数のキャラクタの位置情報の設定をユーザから受け付ける仕様としてもよい。また、キャラクタが発する音声の生成にあたっては、規則合成、波形接続型音声合成、統計的パラメトリック音声合成といった周知の音声合成技術を利用してもよい。
【0104】
また上記実施形態では、位置割当部205は、受信した音声に対応づけられたユーザに対して、仮想の位置情報を割り当てているが、この仕様に限定されることはない。例えば、オンラインでのビデオミーティングなどの動画を伴う同期コミュニケーションにおいて、当該動画に映るユーザ同士の位置情報を割り当てる仕様としてもよい。または、位置割当部205は、ボイスチャットを行うにあたり予めユーザが設定した位置情報を割り当てる仕様としてもよい。
【0105】
また上記実施形態において、音声データと合わせて、アバターの口の動きを再現するためのリップシンク情報をサーバ20へ送信する仕様としてもよい。この場合、ユーザから音声データを受け付けた端末装置10において、当該音声データの解析を行い、口の動きに関するリップシンク情報を生成する。具体的には、リップシンク情報には、入力音声に対する口形の幅や高さに関する情報、および/または入力音声に含まれる各音素の割合に関する情報が含まれ得る。また、音声データと合わせて、音声に対応する字幕情報をサーバ20へ送信する仕様としてもよい。この場合、ユーザから音声データを受け付けた端末装置10において、当該音声データの解析を行い、字幕情報を生成する。音声データの解析に基づくリップシンク情報の生成、または字幕情報の生成については、周知の技術を用いて行うことができる。サーバ20は、受信したリップシンク情報または字幕情報を端末装置10へ送信し、端末装置10において、音声データの出力に合わせてアバターの口の動きが再現され、または字幕が表示される。
【0106】
また、上記実施形態では、頭部伝達関数についての情報は、端末装置10の記憶部180に保持されているが、この仕様に限定されることはない。例えば、サーバ20の記憶部220に保持されていてもよいし、外付けのハードディスクなどに保持させておき、必要に応じて参照する仕様としてもよい。
【0107】
また、通信回線を介した所定情報の共有は、主にインターネットなどのWANを介して行われるが、情報処理装置間では、WANを介さずにBluetooth(登録商標)等の近距離の無線通信、及び赤外線通信等のみを介して行われてもよい。
【0108】
また、上記実施形態では、各機能を端末装置10またはサーバ20が備える態様の一例について説明したが、この形態に限定されることはなく、一部または全部の機能について上記実施形態と異なる態様で端末装置10、サーバ20、又は端末装置10とサーバ20の両方が備える構成としてもよい。
【0109】
また、上記実施形態において端末装置10に実行させるものとして記載されていた各ステップをサーバ20に実行させてもよく、サーバ20に実行させるものとして記載されていた各ステップを端末装置10に実行させてもよい。
【0110】
さらに、本発明は、上述した端末装置10またはサーバ20が備える機能を情報処理装置に実行させるプログラムとして実現してもよいし、当該プログラムを格納する、コンピュータ読み取り可能な非一時的な記録媒体として実現してもよい。
【0111】
<付記>
以上の各実施形態で説明した事項を以下に付記する。
(付記1)
プロセッサを備えるコンピュータに、所定の処理を実行させるプログラムであって、前記プロセッサに、複数の話者それぞれが発した音声を受け付けるステップと、前記音声の話者それぞれに位置情報を割り当てるステップと、前記音声に、割り当てられた前記位置情報に基づいた頭部伝達関数を適用した音声を生成するステップと、生成された音声を聴取者に対して出力するステップと、を実行させる、プログラム。
(付記2)
前記位置情報を割り当てるステップでは、前記複数の話者それぞれに仮想の位置に関する位置情報を割り当てる、付記1に記載のプログラム。
(付記3)
前記位置情報を割り当てるステップでは、ネットワークを介して取得した話者に対応づけられた位置情報を割り当てる、付記1に記載のプログラム。
(付記4)
前記位置情報を割り当てるステップでは、前記話者に対応づけられたアバターの仮想空間における位置情報とは異なる位置情報を割り当てる、付記1に記載のプログラム。
(付記5)
前記出力するステップでは、仮想空間における前記話者に対応づけられたアバター同士の距離に応じて、出力される音声の大きさを調整する、付記2に記載のプログラム。
(付記6)
前記複数の話者は、対応するユーザが存在しない仮想のキャラクタであり、前記音声は前記コンピュータが合成した音声である、付記1に記載のプログラム。
(付記7)
前記キャラクタの位置情報の設定を、ユーザから受け付けるステップを実行させる、付記6に記載のプログラム。
【0112】
以上、本開示のいくつかの実施形態を説明したが、これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【符号の説明】
【0113】
1:システム、10:端末装置、13:入力装置、14:出力装置、15:メモリ、16:ストレージ、19:プロセッサ、20:サーバ、25:メモリ、26:ストレージ、29:プロセッサ、30:ネットワーク、131:キーボード、132:マウス、141:ディスプレイ、150:通信部、170:音声処理部、171:マイク、172:スピーカ、180:記憶部、181:頭部伝達関数データベース、200:制御部、201:操作受付部、202:送受信部、203:表示制御部、204:音声受付部、205:位置割当部、206:関数選択部、207:音声生成部、208:音声出力部、209:コンテンツ提供部、210:通信部、220:記憶部、230:制御部、231:送受信モジュール、232:位置割当モジュール、233:関数選択モジュール、234:音声生成モジュール。