(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
[構成]
図1は、本発明の一実施形態に係る対話制御システム1の全体構成を示すブロック図である。対話制御システム1は、制御装置10と、音声対話ロボット20と、制御装置10及び音声対話ロボット20を通信可能に接続する通信網90とを備えている。通信網90は、無線通信規格に従う無線通信区間又は有線通信規格に従う有線通信区間の少なくともいずれか一方を含むネットワークである。音声対話ロボット20は、例えば人間や動物の姿を模した外観を有しており、制御装置10による制御に従って自動で所定の処理(ここでは人間との対話)を実施する自動実施装置である。本実施形態では、人間と音声対話ロボット20とが協働して舞台上で演劇を上演する。
【0016】
図2は、音声対話ロボット20のハードウェア構成を例示した図である。音声対話ロボット20は、CPU201(Central Processing Unit)、ROM(Read Only Memory)202、RAM(Random Access Memory)203、補助記憶装置204、通信IF205、スピーカ206及びマイク207を有するコンピュータ装置である。CPU201は、各種の演算を行うプロセッサである。RAM203は、CPU201がプログラムを実行する際のワークエリアとして機能する揮発性メモリである。ROM202は、例えば音声対話ロボット20の起動に用いられるプログラム及びデータを記憶した不揮発性メモリである。補助記憶装置204は、例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)等の不揮発性の記憶装置であり、音声対話ロボット20において用いられるプログラム及びデータを記憶する。CPU201がこのプログラムを実行することにより、音声対話ロボット20の動作を制御する。通信IF205は、通信網90を介して制御装置10と通信を行う。スピーカ206は、制御装置10から送信されてくるデータに従って、人間に対して放音する発話手段である。マイク207は、音声対話ロボット20と対話する人間の音声を収音する収音手段である。このほか、音声対話ロボット20は、舞台上での自身の位置や姿勢を変化させるための駆動装置や、相手となる人間を撮像してその動作や表情を認識するためのカメラを備えていてもよい。
【0017】
図3は、制御装置10のハードウェア構成を例示する図である。制御装置10は、CPU101、ROM102、RAM103、補助記憶装置104、及び通信IF105を有するコンピュータ装置である。CPU101は、各種の演算を行うプロセッサである。RAM103は、CPU101がプログラムを実行する際のワークエリアとして機能する揮発性メモリある。ROM102は、例えば制御装置10の起動に用いられるプログラム及びデータを記憶した不揮発性メモリである。補助記憶装置104は、例えばHDD又はSSD等の不揮発性の記憶装置であり、制御装置10において用いられるプログラム及びデータを記憶する。CPU101がこのプログラムを実行することにより、後述する
図5に示される機能が実現される。通信IF105は、通信網90を介して音声対話ロボット20と通信を行う。
【0018】
本実施形態においては、予め定められたシナリオに従って人間と音声対話ロボット20とがセリフを順次発話することにより、演劇が進行する。補助記憶装置104は、音声対話ロボット20の発話内容を意味するセリフデータと人間の発話内容を意味するセリフデータとが時系列に交互に繰り返されるように連ねたシーケンスデータを記憶している。
【0019】
図4は、制御装置10の補助記憶装置104が記憶しているシーケンスデータの一例を示す図である。このシーケンスデータは、人間及び音声対話ロボット20のセリフデータの集合である。このシーケンスデータにおいては、人間及び音声対話ロボット20という各々の発話側のセリフデータが時系列に交互に関連付けられている。
図4では、発話順「1」に対応する音声対話ロボット20の「こんにちは」というセリフの発話から、発話順に従って人間との対話が始まる例を想定している。各セリフデータには、そのセリフデータに応じた発話の順序を示す発話順と、そのセリフデータに応じた発話を行う主体を示す発話側と、そのセリフデータに応じた発話が開始されるタイミングを示す実行タイミングと、そのセリフデータに応じた発話が実行されるのに要する時間として標準的に定められた標準所要時間と、その標準所要時間に対して時間的に許容される時間幅(分散)と、そのセリフデータの省略の可否とが設定されている。標準所要時間の合計が、この上演についての所定の総所要時間となる。シーケンスデータの開始タイミングを00:00:00としたとき、その終了時刻は2:54:00である。つまり、上演全体の所要時間は2時間54分である。音声対話ロボット20のセリフについての「標準所要時間」は、例えばそのセリフを音声対話ロボット20に搭載されている音声合成機能でセリフを合成したときの長さである。「時間幅」は各セリフに対して許容される話速により決定される。例えば、速く発話しても遅く発話しても問題がないセリフについては時間幅が大きく設定され、一定の速度で発話することが求められるセリフについては時間幅が小さく設定される。
【0020】
図5は、制御装置10の機能構成を示すブロック図である。制御装置10は、取得部11、特定部12、決定部13、記憶部14及び制御部15という各機能を実現する。取得部11は制御装置10の通信IF105によって実現され、特定部12は制御装置10のCPU101によって実現され、決定部13は制御装置10のCPU101によって実現され、記憶部14は制御装置10の補助記憶装置104によって実現され、制御部15は制御装置10のCPU101及び通信IF105によって実現される。
【0021】
取得部11は、音声対話ロボット20から送信されてくる人間の音声データを、入力データとして取得する。記憶部14は、
図4に例示したような、各セリフデータについて標準所要時間及び時間幅の組が設定されたシーケンスデータを記憶する。特定部12は、シーケンスデータにおける現在の実施タイミングから当該シーケンスデータの終了タイミングまでの残り時間を特定する。つまり、特定部12は、上演されている演劇において現在の時間的位置からその演劇が終了する終了タイミングまでの残り時間を特定する。
【0022】
決定部13は、特定された残り時間で実施されるシーケンスデータ(実施対象シーケンスデータという)について決められた標準所要時間と、その標準所要時間に対して許容される時間幅とに基づいて、実施対象シーケンスデータのうち音声対話ロボット20により実施(発話)される部分に相当するセリフデータについて実施所要時間を決定する。より具体的には、決定部13は、上演されている演劇において現在の時間的位置からその終了タイミングまでのシーケンスデータ(実施対象シーケンスデータ)に含まれる各セリフデータについて決められた標準所要時間に対し、その標準所要時間と組を成す時間幅を加算又は減算することで、当該実施対象シーケンスデータのうち音声対話ロボット20により発話される部分に相当するセリフデータについて実施所要時間を決定する。
【0023】
また、シーケンスデータに含まれる各セリフデータについて、そのセリフデータの省略の可否が設定されている場合には、次のような決定手順となる。即ち、決定部13は、実施対象シーケンスデータに含まれる各セリフデータについて設定されている省略の可否に従い、各セリフデータについての標準所要時間の総和が特定された残り時間に近くなるように、各セリフデータの省略の可否を決定し、さらに、実施対象シーケンスデータから省略されることが決定されたセリフデータを除いて、音声対話ロボット20により実施(発話)される部分に相当する各セリフデータについて決められた標準所要時間に対し、その標準所要時間と組を成す時間幅を加算又は減算することで、実施所要時間を決定する。
【0024】
そして、制御部15は、決定された実施所要時間でシーケンスデータに応じた実施を行うよう、音声対話ロボット20を制御する。
【0025】
[動作]
図6は制御装置10の動作を示すフローチャートである。
図6の処理は、
図4に例示したシーケンスデータで規定された音声対話ロボット20による最初のセリフの発話に対し、人間が応答を行うことで開始される。つまり、シーケンスデータで規定された最初の発話データが制御装置10から音声対話ロボット20に送信され、音声対話ロボット20がこの発話データに従ってスピーカ206から放音を行うことで、発話する。この音声対話ロボット20の発話に対して人間が応答する発話を行うと、音声対話ロボット20のマイク207がこれを収音して、その音声データを制御装置10に送信する。制御装置10の通信IF105(取得部11)は、音声対話ロボット20から送信されてくる音声データを入力データとして取得する(ステップS11)。
【0026】
制御装置10のCPU101(特定部12)は、取得した入力データを所定の音声認識アルゴリズムによって音声認識し、その音声認識結果と補助記憶装置104(記憶部14)に記憶されたシーケンスデータとを比較して、シーケンスデータ上のどのセリフデータが現在発話されているかを特定する(ステップS12)。そして、制御装置10のCPU101(特定部12)は、現時点の時刻からシーケンスデータの終了タイミングまでの残り時間Tを特定する(ステップS13)。
【0027】
制御装置10のCPU101(決定部13)は、特定された残り時間Tで実施される実施対象シーケンスデータ(つまり、現在発話されているセリフデータの次に発話されるセリフデータからシーケンスデータの終了タイミングまでに至る全セリフデータ)について決められた標準所要時間と、その標準所要時間に対して許容される時間幅とに基づいて、音声対話ロボット20により発話される部分に相当するセリフデータの実施所要時間を決定する(ステップS14)。
【0028】
ここで、シーケンスデータ上の任意の位置 i において、標準所要時間 m(i)、時間幅 v(i) 、省略の可否 s(i) (1を省略可とし、0を省略否とする)とする。
図4の例において、例えばi=1を音声対話ロボット20が「こんにちは」というセリフを発話している箇所とし、省略可(s(1)=1) ;標準所要時間3 +/-1秒 (m(1) = 3, v(1) = 1)とする。つまり、音声対話ロボット20が「こんにちは」というセリフを発話するのに、標準的に3秒を要するがその前後1秒分の誤差は許容され、結果として2秒から4秒までの間に発話すればよいことになる。そして、このセリフは省略可である。
【0029】
また、例えばi=2を人間が「あなたの名前は?」というセリフを発話している箇所とし、省略否 (s(2)=0);標準所要時間4+/-1秒 (m(2)=4, v(2)=1とする。つまり、人間が「あなたの名前は?」というセリフを発話するのに、標準的に4秒を要するがその前後1秒分の誤差は許容され、結果として3秒から5秒までの間に発話すればよいことになる。そして、このセリフは省略不可である。
【0030】
また、例えばi=3を音声対話ロボット20が「斎藤さんだぜ」というセリフを発話している箇所とし、標準所要時間 4秒 (s(3)=0 , m(3)=4, v(3)=0)とする。つまり、誤差に相当する時間幅は0であるから、音声対話ロボット20が「齊藤さんだぜ」というセリフを4秒で発話すればよいことになる。そして、このセリフは省略不可である。
【0031】
制御装置10のCPU101(決定部13)は、補助記憶装置104(記憶部14)の記憶内容を参照し、残り時間において実施されるべき音声対話ロボットのセリフについて、標準所要時間及び時間幅に基づいて実施所要時間を決定する。より具体的には、制御装置10のCPU101(決定部13)は、シーケンスデータにおいて現時点で発話されている位置 k と残り時間 T が与えられたとき、m(i), s(i), v(i) に基づいて、シーケンスデータ上の位置j (>=k)の実施所要時間 M(j) を二乗誤差が最小となるようにして決定する。
【0032】
ここでは、説明を分かりやすくするため、まず省略が全て「否」の場合について説明し、その内容を踏まえて、省略が「可」となる場合について説明する。
[全てのセリフの省略が否の場合]
省略が全て「否」の場合は(s(i) = 0 for all i)であり、次のようなコスト関数J(M)を考える。
ここで、λは M(i)がm(i)からどの程度逸脱してよいかを設定する定数であり、λ=0の場合には標準所要時間の制約を一切無視することになり、λ→∞の場合には残り時間を一切無視して M(i)=m(i)とすることになる。最適な実施所要時間 M(i)を求めるには,このようなコスト関数J(M)に関して
{M(j)…M(I)} = argmin J(M)
を解けばよい。これは結局、 dJ/dM(j) = 0を解けばよいので、
M(i) = [ v(i)T + λm(i) ] / [ v(i) + λ ]
という数式によって最適な実施所要時間 M(i)が求められることになる。
【0033】
[セリフの省略が可の場合]
次に、セリフの省略「可」がある場合を考える。この場合、省略「可」と設定されている全セリフデータにおける省略の有無の組み合わせに対して、それぞれ最適な実施所要時間が決まるため、組合せ爆発が発生する。そこで、近似的に解を求める。まず、制御装置10のCPU101(決定部13)は、残りの実施対象シーケンスデータに含まれるセリフデータの標準所要時間の総計が残り時間Tに近づくような各セリフデータにおける省略の有無の組み合わせを求め、省略されたセリフデータMの部分系列 M'⊂M に対して、上述した全てのセリフの省略が否の場合と同じ方法で、実施所要時間M(i)を算出する。残りの実施対象シーケンスデータに含まれるセリフデータの標準所要時間の総計が残り時間Tに近づくような各セリフデータにおける省略の有無の組み合わせを求めるためには、離散化された時刻に対する、いわゆるナップサック問題を解けばよい。
【0035】
具体的には、S(j, t) を、現時点の時刻からt秒(tは正の整数)が経過したとき、jよりも小さい数字の位置の標準所要時間を累積することによって得られる値を、tよりも小さい最長の累積発話時刻とし、J(j,t)をSのバックポインタとする。この場合、
S(k, t) = 0 for all t
For j > k
S(j, t) = { S(j-1, t) if m(j) > T'
max( S(j-1, t), S(j-1, t-m(j)) + m(j) ) otherwise}
J(j, t) = { (j-1, t) if m(j) > T',
(j-1, t) if S(j-1, t) > S(j-1, t-m(j)) + m(j)
(j-1, t-m(j)) otherwise }
という漸化式を計算し, p(T') = J( I, T' ) としたうえで p(t<T') = J( p(t+1) )とバックトラックすれば、配列 pを検証することで、残りの実施対象シーケンスデータに含まれるセリフデータにおける省略の有無の組み合わせが求められる。
【0036】
このように、まずs(i)=1となるようなセリフデータにおける省略の有無の組み合わせを決定すると、その後は、省略されなかったセリフデータと、s(i)=0つまり残りの実施対象シーケンスデータにおいて省略されずに再生されるべきセリフデータに対して、[全てのセリフの省略が否の場合]で述べたような手順で最適な実施所要時間 M(i)を求めればよい。
【0037】
制御装置10のCPU101及び通信ID105(制御部15)は、上記のようにして決定した実施所要時間で音声対話ロボット20がセリフを発話するように制御する(ステップS15)。つまり、制御装置10のCPU101及び通信IF105(制御部15)は、選択したセリフデータとそのセリフデータの実施所要時間とを音声対話ロボット20に送信し、音声対話ロボット20がこのセリフデータに従って、指定された実施所要時間内にスピーカ206から放音を行う。さらに、この音声対話ロボット20の発話に対して人間が応答する発話を行うと、音声対話ロボット20のマイク207がこれを収音して、音声データとして制御装置10に送信する。以降、再びステップS11の処理に戻り、上記のステップS12〜ステップS15の処理が繰り返される。
【0038】
以上説明した実施形態においては、例えば人間や音声対話ロボット20のセリフの表現が変化したり或いはセリフの省略があったりすることで、シーケンスデータにおける現在の実施タイミングが時間的に前後に変化したとしても、所定の終了タイミングにおいてシーケンスデータ全体に対応する実施を終了させることが可能となる。
【0039】
[変形例]
上述した実施形態は次のような変形が可能である。また、以下の変形例を互いに組み合わせて実施してもよい。
[変形例1]
本発明におけるシーケンスデータは、実施形態で例示したような人間及び音声対話ロボット20の発話内容を示すセリフデータに限らず、例えば演奏を示す演奏データ、画像を示す画像データ又は動作を示す動作データなどであってもよい。要するに、演奏データ、画像データ又は動作データ等のデータ群に基づく処理が時系列に順を追って実施されるような場合には、本発明を適用可能である。
【0040】
[変形例2]
実施形態において、制御装置10は、音声対話ロボット20の実施部分に相当するセリフデータについて実施所要時間を決定していたが、人間の実施部分に相当するセリフデータについて実施所要時間を決定してもよい。この場合、制御装置10は、決定した実施所要時間に応じた通知、例えば「次のセリフをもっと早く」とか「次のセリフを省略して」等の通知を人間に対して行う。この通知は音声出力や画像表示などによって行い、人間はこの通知を認識して自身のセリフの発話に要する時間を調整する。
【0041】
[変形例3]
上記実施形態の説明に用いた
図5のブロック図は機能単位のブロックを示している。これらの各機能ブロックは、ハードウェア及び/又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的及び/又は論理的に結合した1つの装置により実現されてもよいし、物理的及び/又は論理的に分離した2つ以上の装置を直接的及び/又は間接的に(例えば、有線及び/又は無線)で接続し、これら複数の装置により実現されてもよい。従って、本発明に係る制御装置は、実施形態で説明したようにそれぞれの機能の全てを一体に備えた装置によっても実現可能であるし、各機能を複数の装置に分散して実装したシステムであってもよい。また、上記実施形態で説明した処理の手順は、矛盾の無い限り、順序を入れ替えてもよい。実施形態で説明した方法については、例示的な順序で各ステップの要素を提示しており、提示した特定の順序に限定されない。
【0042】
本発明は、制御装置が行う制御方法、或いは、制御装置としてコンピュータを機能させるためのプログラムといった形態でも実施が可能である。かかるプログラムは、光ディスク等の記録媒体に記録した形態で提供されたり、インターネット等の通信網を介して、コンピュータにダウンロードさせ、これをインストールして利用可能にするなどの形態で提供されたりすることが可能である。