(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-26
(45)【発行日】2023-07-04
(54)【発明の名称】制御装置、電子機器、制御装置の制御方法および制御プログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20230627BHJP
G10L 15/00 20130101ALI20230627BHJP
G10L 15/30 20130101ALI20230627BHJP
【FI】
G06F9/50 150Z
G10L15/00 200A
G10L15/30
(21)【出願番号】P 2019200742
(22)【出願日】2019-11-05
【審査請求日】2022-09-21
(73)【特許権者】
【識別番号】000005049
【氏名又は名称】シャープ株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】田上 文俊
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2006-099296(JP,A)
【文献】特開2018-081139(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G10L 15/00
G10L 15/30
(57)【特許請求の範囲】
【請求項1】
応答指示に対して応答する電子機器を制御する制御装置であって、
上記応答指示を取得した場合、上記電子機器とサーバとの間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定部と、
上記制限が発生していないと判定された場合、上記サーバから受信した、上記応答指示に対して応答するための応答データに基づき、上記応答指示に対する応答を上記電子機器から出力させる一方、上記制限が発生していると判定された場合、上記サーバと異なる応答データ記憶装置に記憶されている上記応答データに基づく応答を上記電子機器から出力させる出力制御部と、を備えて
おり、
上記制御装置は、
出力された上記応答に対するユーザからの入力に基づく入力データを取得する取得部と、
上記制限が発生していると判定された場合、取得された上記入力データを、上記サーバと異なる入力データ記憶装置に記憶させる入力データ記憶部と、
上記制限が発生していない可能性が高い所定のタイミングで、上記入力データ記憶装置に記憶されている上記入力データを上記サーバへ送信し、上記入力データに基づいて生成された上記応答データを上記サーバから受信する通信制御部と、
受信した上記応答データを、上記応答データ記憶装置に記憶させる応答データ記憶部と、
上記応答指示を取得したとき、上記サーバから受信した上記応答データのうち、過去に応答に使用されていない上記応答データが上記応答データ記憶装置にあるか否かを判定する使用判定部と、をさらに備えており、
上記出力制御部は、上記制限が発生していると判定され、かつ、過去に応答に使用されていない上記応答データがあると判定された場合、当該応答データに基づく応答を上記電子機器から出力させることを特徴とする制御装置。
【請求項2】
上記サーバから受信した上記応答データに基づく応答を上記電子機器から出力させるか、または、上記応答データ記憶装置に記憶されている上記応答データに基づく応答を上記電子機器から出力させるかを決定する決定部をさらに備え、
上記判定部は、上記決定部が、上記サーバから受信した上記応答データに基づく応答を上記電子機器から出力させると決定した場合、上記制限が発生しているか否かを判定することを特徴とする、請求項1
に記載の制御装置。
【請求項3】
上記出力制御部は、上記応答データとしての音声データに基づく音声を上記電子機器から出力させることを特徴とする、請求項1
または2に記載の制御装置。
【請求項4】
少なくとも1つの出力装置と、少なくとも1つの制御装置とを備え、応答指示に対して応答する電子機器であって、
上記制御装置は、
上記応答指示を取得した場合、上記電子機器とサーバとの間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定処理と、
上記制限が発生していないと判定された場合、上記サーバから受信した、上記応答指示に対して応答するための応答データに基づき、上記応答指示に対する応答を上記電子機器から出力させる一方、上記制限が発生していると判定された場合、上記サーバと異なる応答データ記憶装置に記憶されている上記応答データに基づく応答を上記出力装置から出力させる出力制御処理と、を行
い、
上記制御装置は、
出力された上記応答に対するユーザからの入力に基づく入力データを取得する取得処理と、
上記制限が発生していると判定された場合、取得された上記入力データを、上記サーバと異なる入力データ記憶装置に記憶させる入力データ記憶処理と、
上記制限が発生していない可能性が高い所定のタイミングで、上記入力データ記憶装置に記憶されている上記入力データを上記サーバへ送信し、上記入力データに基づいて生成された上記応答データを上記サーバから受信する通信制御処理と、
受信した上記応答データを、上記応答データ記憶装置に記憶させる応答データ記憶処理と、
上記応答指示を取得したとき、上記サーバから受信した上記応答データのうち、過去に応答に使用されていない上記応答データが上記応答データ記憶装置にあるか否かを判定する使用判定処理と、をさらに行い、
上記出力制御処理では、上記制限が発生していると判定され、かつ、過去に応答に使用されていない上記応答データがあると判定された場合、当該応答データに基づく応答を上記電子機器から出力させることを特徴とする電子機器。
【請求項5】
応答指示に対して応答する電子機器を制御する制御装置の制御方法であって、
上記応答指示を取得した場合、上記電子機器とサーバとの間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定ステップと、
上記制限が発生していないと判定された場合、上記サーバから受信した、上記応答指示に対して応答するための応答データに基づき、上記応答指示に対する応答を上記電子機器から出力させる一方、上記制限が発生していると判定された場合、上記サーバと異なる応答データ記憶装置に記憶されている上記応答データに基づく応答を上記電子機器から出力させる出力制御ステップと、を含
んでおり、
上記制御方法は、
出力された上記応答に対するユーザからの入力に基づく入力データを取得する取得ステップと、
上記制限が発生していると判定された場合、取得された上記入力データを、上記サーバと異なる入力データ記憶装置に記憶させる入力データ記憶ステップと、
上記制限が発生していない可能性が高い所定のタイミングで、上記入力データ記憶装置に記憶されている上記入力データを上記サーバへ送信し、上記入力データに基づいて生成された上記応答データを上記サーバから受信する通信制御ステップと、
受信した上記応答データを、上記応答データ記憶装置に記憶させる応答データ記憶ステップと、
上記応答指示を取得したとき、上記サーバから受信した上記応答データのうち、過去に応答に使用されていない上記応答データが上記応答データ記憶装置にあるか否かを判定する使用判定ステップと、をさらに含んでおり、
上記出力制御ステップでは、上記制限が発生していると判定され、かつ、過去に応答に使用されていない上記応答データがあると判定された場合、当該応答データに基づく応答を上記電子機器から出力させることを特徴とする制御装置の制御方法。
【請求項6】
請求項1に記載の制御装置としてコンピュータを機能させるための制御プログラムであって、上記判定部
、上記出力制御部
、上記取得部、上記入力データ記憶部、上記通信制御部、上記応答データ記憶部、および上記使用判定部としてコンピュータを機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、応答指示に対して応答する電子機器を制御する制御装置などに関する。
【背景技術】
【0002】
ユーザの発話音声を取得し、当該発話音声の内容に応じた音声を出力する電子機器が従来技術として知られている。また、このような電子機器において、ユーザの発話音声の音声認識および音声合成の少なくとも一方を、電子機器と無線通信可能に接続されたサーバにて実行する従来技術が知られている。
【0003】
下記特許文献1には、以下の技術が開示されている。すなわち、端末装置の処理能力と、実行する音声応答シナリオとを比較して、端末装置で当該シナリオに基づく音声応答処理を実行できる場合は、当該シナリオに従って端末装置が音声応答処理を実行する。一方、端末装置で当該シナリオに基づく音声応答処理を実行できない場合は、当該シナリオに基づいてサーバが音声出力データを生成し、端末装置へ送信する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の技術は、端末装置が実行できる音声応答処理はサーバに実行させないことにより、サーバのトラフィックの増大を抑えることができる。しかしながら、特許文献1の技術は、トラフィックの増大が既に発生している状況において端末装置が実行できない音声応答処理が開始された場合、サーバと通信しなければならない。結果として、音声の出力に時間がかかるといった問題が発生し、ユーザの満足度を低下させる虞がある。
【0006】
この解決策として、サーバを高機能化することが考えられるが、この解決策は、サーバコストの増大を引き起こす。
【0007】
本発明の一態様は、サーバコストを増大させることなく、サーバトラフィックの増大により通信に支障が出ている状況でもユーザの満足度の低下を抑えた、ユーザへの応答を実現することを目的とする。
【課題を解決するための手段】
【0008】
上記の課題を解決するために、本発明に係る制御装置は、応答指示に対して応答する電子機器を制御する制御装置であって、上記応答指示を取得した場合、上記電子機器とサーバとの間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定部と、上記制限が発生していないと判定された場合、上記サーバから受信した、上記応答指示に対して応答するための応答データに基づき、上記応答指示に対する応答を上記電子機器から出力させる一方、上記制限が発生していると判定された場合、上記サーバと異なる応答データ記憶装置に記憶されている上記応答データに基づく応答を上記電子機器から出力させる出力制御部と、を備えている構成である。
【0009】
また、上記の課題を解決するために、本発明に係る制御装置は、応答指示に対して応答する電子機器を制御する制御装置であって、上記応答に対するユーザからの入力に基づく入力データを取得する取得部と、上記入力データを、上記電子機器とサーバとの間の通信においてトラフィック量に基づく制限が発生していない可能性が高い所定のタイミングで上記サーバへ送信し、上記入力データに基づいて生成された、応答指示に対して応答するための応答データを上記サーバから受信する通信制御部と、上記応答データの受信以降の応答指示に対して、当該応答データに基づく応答を上記電子機器から出力させる出力制御部と、を備えている構成である。
【0010】
また、上記の課題を解決するために、本発明に係る電子機器は、少なくとも1つの出力装置と、少なくとも1つの制御装置とを備え、応答指示に対して応答する電子機器であって、上記制御装置は、上記応答指示を取得した場合、上記電子機器とサーバとの間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定処理と、上記制限が発生していないと判定された場合、上記サーバから受信した、上記応答指示に対して応答するための応答データに基づき、上記応答指示に対する応答を上記電子機器から出力させる一方、上記制限が発生していると判定された場合、上記サーバと異なる応答データ記憶装置に記憶されている上記応答データに基づく応答を上記出力装置から出力させる出力制御処理と、を行う構成である。
【0011】
また、上記の課題を解決するために、本発明に係る電子機器は、少なくとも1つの出力装置と、少なくとも1つの制御装置とを備え、応答指示に対して応答する電子機器であって、上記制御装置は、上記応答に対するユーザからの入力に基づく入力データを取得する取得処理と、上記電子機器とサーバとの間の通信においてトラフィック量に基づく制限が発生していない可能性が高い所定のタイミングで、上記入力データを上記サーバへ送信し、上記入力データに基づいて生成された、応答指示に対して応答するための応答データを上記サーバから受信する通信制御処理と、上記応答データの受信以降の応答指示に対して、当該応答データに基づく応答を上記電子機器から出力させる出力制御処理と、を行う構成である。
【0012】
また、上記の課題を解決するために、本発明に係る制御装置の制御方法は、ユ応答指示に対して応答する電子機器を制御する制御装置の制御方法であって、上記応答指示を取得した場合、上記電子機器とサーバとの間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定ステップと、上記制限が発生していないと判定された場合、上記サーバから受信した、上記応答指示に対して応答するための応答データに基づき、上記応答指示に対する応答を上記電子機器から出力させる一方、上記制限が発生していると判定された場合、上記サーバと異なる応答データ記憶装置に記憶されている上記応答データに基づく応答を上記電子機器から出力させる出力制御ステップと、を含む方法である。
【0013】
また、上記の課題を解決するために、本発明に係る制御装置の制御方法は、応答指示に対して応答する電子機器を制御する制御装置の制御方法であって、上記応答に対するユーザからの入力に基づく入力データを取得する取得ステップと、上記電子機器とサーバとの間の通信においてトラフィック量に基づく制限が発生していない可能性が高い所定のタイミングで、上記入力データを上記サーバへ送信し、上記入力データに基づいて生成された、応答指示に対して応答するための応答データを上記サーバから受信する通信制御ステップと、上記応答データの受信以降の応答指示に対して、当該応答データに基づく応答を上記電子機器から出力させる出力制御ステップと、を含む方法である。
【発明の効果】
【0014】
本発明の一態様によれば、サーバコストを増大させることなく、サーバトラフィックの増大により通信に支障が出ている状況でもユーザの満足度の低下を抑えた、ユーザへの応答を実現することができる。
【図面の簡単な説明】
【0015】
【
図1】実施形態1に係るロボットの要部構成の一例を示すブロック図である。
【
図2】
図1に示すロボットが備える記憶部に記憶されているシナリオDBおよび出力音声DBの一具体例を示す図である。
【
図3】
図1に示すロボットが備える制御部が実行する、音声応答処理の流れの一例を示すフローチャートである。
【
図6】実施形態2に係るロボットの要部構成の一例を示すブロック図である。
【
図7】
図6に示すロボットが備える記憶部に記憶されているDLシナリオDBおよびDL出力音声DBの一具体例を示す図である。
【
図8】
図6に示すロボットが備える制御部が実行する、音声応答処理の流れの一例を示すフローチャートである。
【
図9】
図6に示すロボットが備える制御部が実行する、応答音声データ受信処理の流れの一例を示すフローチャートである。
【
図10】応答音声データ受信処理の一具体例を示す図である。
【
図11】
図10に示す応答音声データ受信処理の後の、音声応答処理の一具体例を示す図である。
【
図12】実施形態3に係るロボットの要部構成の一例を示すブロック図である。
【
図13】
図12に示すロボットが備える制御部が実行する、音声応答処理の流れの一例を示すフローチャートである。
【
図14】実施形態3に係るロボットの要部構成の一例を示すブロック図である。
【
図15】
図14に示すロボットが備える制御部が実行する、音声応答処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0016】
〔実施形態1〕
以下、本発明の一実施形態について、詳細に説明する。
図1は、実施形態1に係るロボット1(電子機器)の要部構成の一例を示すブロック図である。
【0017】
本実施形態に係るロボット1は、ユーザからの応答指示に対して応答する。具体的には、ロボット1は、当該応答指示に対して音声を出力することにより応答(すなわち、音声応答)する。また、ロボット1は、ユーザの発話音声を取得し、当該発話音声に対して音声応答する。これにより、ユーザとロボット1とが、あたかも会話を行なっているかのような状況を作ることができる。なお、以降、この状況をユーザとロボット1との「会話」と表現する場合がある。
【0018】
(ロボット1の要部構成)
図1は、本実施形態に係るロボット1の要部構成の一例を説明するブロック図である。
【0019】
図1に示すように、ロボット1は制御部10(制御装置)、記憶部11(応答データ記憶装置)、操作入力部12、通信部13、音声出力部14(出力装置)および音声入力部15を備える。
【0020】
制御部10は、ロボット1の各部を統括して制御する。記憶部11は、ロボット1が使用するプログラムおよびデータを永続的に保持するハードウェアであり、ストレージと表現することもできる。記憶部11は、例えば、ROM(Read-Only Memory)、ハードディスク装置、フラッシュメモリ、その他の不揮発性記憶装置として実現される。記憶部11は、
図1に示すように、少なくともシナリオDB111および出力音声DB112を記憶している。これらの詳細については後述する。
【0021】
なお、記憶部11は、メモリカードのように着脱可能な記憶装置として実現されてもよい。また、ロボット1に内蔵されたストレージの代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。
【0022】
操作入力部12は、ロボット1に対する各種操作の入力を受け付ける。操作入力部12は、例えば、ユーザによる押下操作を受け付けるボタンであってもよいが、この例に限定されない。操作入力部12は、例えば、タッチパネルであってもよい。操作入力部12は、受け付けた操作を示す操作信号を制御部10へ出力する。本実施形態に係る操作入力部12は、ロボット1に音声出力を開始させるための開始ボタンを含む。つまり、開始ボタンの押下操作による操作信号が、ユーザからロボット1への応答指示である。
【0023】
通信部13は、他の装置との無線通信を行う。すなわち、通信部13は、制御部10から取得した各種情報の、他の装置への送信と、他の装置からの各種情報の受信および当該情報の制御部10への出力とを行う。他の装置は、例えば、
図1に示すサーバ2であるが、この例に限定されない。ロボット1とサーバ2との間で送受信される情報の詳細については後述する。
【0024】
音声出力部14は、制御部10により制御され、音声データに基づく音声を出力する、いわゆるスピーカである。音声入力部15は、ロボット1の周囲で発せられた音声を取得し、音声データに変換して制御部10へ出力する、いわゆるマイクである。
【0025】
続いて、サーバ2について説明する。サーバ2は、ロボット1による音声出力に使用される音声データを生成する。具体的には、サーバ2は、ロボット1から、ユーザが発話した音声の音声データを受信する。そして、サーバ2は、当該音声データに対して音声認識処理を行い、音声認識処理の結果に基づき、音声合成処理を行う。そして、音声合成処理により生成された音声データ、すなわち、ユーザの発話に対してロボット1が応答するために使用される応答音声データ(応答データ)を、ロボット1へ送信する。なお、サーバ2は一例として、既知の音声認識処理および音声合成処理を実行する。
【0026】
続いて、制御部10の詳細を説明する。図示してはいないが、ロボット1は、一例として、制御部10を実現するためのハードウェア構成として、さらに、プロセッサおよびメモリを備えている。プロセッサは、ロボット1に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリまたは記憶部11に格納されているプログラムに含まれる一連の命令を実行する。プロセッサは、一例として、CPU(Central Processing Unit)として実現される。あるいは、プロセッサは、GPU(Graphics Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field-Programmable Gate Array)その他のデバイスとして実現されてもよい。メモリは、プログラムおよびデータを一時的に保存する。プログラムは、例えば、記憶部11からロードされる。データは、ロボット1に入力されたデータと、プロセッサによって生成されたデータとを含む。メモリは、一例として、RAM(Random Access Memory)その他の揮発性メモリとして実現される。
【0027】
一例として、プロセッサは、記憶部11にアクセスし、記憶部11に格納されているプログラムをメモリにロードし、当該プログラムに含まれる一連の命令を実行する。これにより、制御部10に含まれている各部が構成される。
【0028】
当該各部として、制御部10は、操作信号受付部101、通信制御部102、音声処理部103、音声出力制御部104(出力制御部)および音声入力受付部105を含んでいる。
【0029】
操作信号受付部101は、操作入力部12から出力された操作信号を受け付ける。一例として、操作信号受付部101は、開始ボタンが押下されたことに基づく操作信号を受け付ける。操作信号受付部101は、受け付けた当該操作信号を通信制御部102へ出力する。
【0030】
通信制御部102は、通信部13による情報の送受信を制御する。具体的には、通信制御部102は、他の装置(例えばサーバ2)へ送信すべき情報を取得すると、通信部13を介して当該情報を他の装置へ送信する。また、通信制御部102は、他の装置から送信された情報を、通信部13を介して取得する。通信制御部102は、取得した当該情報を制御部10内の各部へ出力する。
【0031】
通信制御部102は、通信制限判定部201(判定部)を含む。通信制限判定部201は、ロボット1とサーバ2との間の通信において、トラフィック量に基づく制限(すなわち通信制限)が発生しているか否かを判定する。
【0032】
具体的には、通信制限判定部201は、サーバ2へ、アクセス要求を送信する。ここで、アクセス要求とは、ロボット1とサーバ2との通信を確立するための要求である。
【0033】
サーバ2は、アクセス要求を受信すると、当該ロボット1のライセンス数と、現在のアクセス数とを比較する。ライセンス数とは、サーバ2へ同時に通信(アクセス)可能な装置の上限数である。当該装置は、例えばロボット1であるが、他の、音声出力機能を備えた装置を含んでもよい。アクセス数とは、サーバ2と現在通信が確立している装置の数である。
【0034】
サーバ2は、アクセス数がライセンス数に達していない場合、アクセス許可応答をロボット1へ送信する。アクセス許可応答とは、ロボット1とサーバ2との通信を確立したことを示す応答である。一方、サーバ2は、アクセス数がライセンス数に達している場合、アクセス不可応答をロボット1へ送信する。アクセス不可応答とは、ロボット1とサーバ2との通信を確立できない、すなわち、通信制限が発生していることを示す応答である。
【0035】
通信制限判定部201は、受信した応答が、アクセス許可応答およびアクセス不可応答の何れであるかを判定し、判定結果を音声処理部103へ出力する。
【0036】
音声処理部103は、音声出力のための音声データに関する音声データ処理を行う。音声処理部103は、オフライン処理部301およびオンライン処理部302を含む。オフライン処理部301は、アクセス不可応答であるとの判定結果を取得した場合に、ロボット1とサーバ2との通信を含まない音声データ処理を行う。オンライン処理部302は、アクセス許可応答であるとの判定結果を取得した場合に、ロボット1とサーバ2との通信を含む音声データ処理を行う。
【0037】
具体的には、オフライン処理部301は、記憶部11に記憶されているデータを用いて、音声データ処理を行う。
【0038】
図2は、記憶部11に記憶されているシナリオDB111および出力音声DB112の一具体例を示す図である。シナリオDB111は、1以上のシナリオを格納するデータベースである。ここで、シナリオとは、ロボット1とユーザとの会話における、ロボット1の処理の流れを規定するデータである。
【0039】
図2の例では、シナリオDB111に格納されているシナリオとして、シナリオ001およびシナリオ002を示している。なお、これらのシナリオは一例であり、シナリオDB111に格納されているシナリオの種類および数は、
図2の例に限定されない。
【0040】
シナリオ001は、音声データ001_1を再生し、ユーザ音声を取得し、音声データ001_2を再生して処理が終了することを示している。すなわち、シナリオ001は、音声データ001_1に基づく音声を出力した後、ユーザの発話を待機し、ユーザの発話音声を取得した後、音声データ001_2に基づく音声を出力するという処理の流れを示している。
【0041】
シナリオ002は、音声データ002_1を再生し、ユーザ音声を取得し、音声データ001_2を再生して処理が終了することを示している。すなわち、シナリオ002は、音声データ002_1に基づく音声を出力した後、ユーザの発話を待機し、ユーザの発話音声を取得した後、音声データ001_2に基づく音声を出力するという処理の流れを示している。
【0042】
出力音声DB112は、ロボット1の音声出力に使用される1以上の音声データ(応答データ)を格納するデータベースである。
図2の例では、出力音声DB112に格納されている音声データとして、音声データ001_1、音声データ001_2および音声データ002_1を示している。なお、これらの音声データは一例であり、出力音声DB112に格納されている音声データの種類および数は、
図2の例に限定されない。
【0043】
音声データ001_1は、「ねえねえ、好きな芸能人は誰?」という音声を出力するための音声データである。音声データ001_2は、「そっかー。またいろいろ教えてね」という音声を出力するための音声データである。音声データ002_1は、「ねえねえ、好きな食べ物は何?」という音声を出力するための音声データである。
【0044】
オフライン処理部301は、シナリオDB111からいずれかのシナリオを読み出す。オフライン処理部301は、例えば、シナリオDB111からランダムにいずれかのシナリオを読み出す。そして、オフライン処理部301は、読み出したシナリオ(以下、使用シナリオと称する)にて使用される音声データを、出力音声DB112から読み出す。そして、オフライン処理部301は、読み出した音声データのうち、使用シナリオにて最初に出力するよう規定されている音声データを、音声出力制御部104へ出力する。
【0045】
使用シナリオにて、ユーザの発話音声の取得が規定されている場合、オフライン処理部301は、音声入力受付部105に対し、音声入力部15をONにするよう指示し、ユーザの発話音声の音声データの取得を待機する。当該音声データを取得すると、オフライン処理部301は、使用シナリオにて、発話音声の取得後に音声の出力が規定されている場合、当該音声の出力のための音声データを、音声出力制御部104へ出力する。このように、オフライン処理部301は、使用シナリオが示す一連の処理が終了するまで、使用シナリオに従って処理を実行する。
【0046】
例えば、使用シナリオがシナリオ001である場合、ロボット1とユーザとは、ロボット1「ねえねえ、好きな芸能人は誰?」、ユーザ「(発話)」、ロボット1「そっかー。またはいろいろ教えてね」との会話を行うこととなる。
【0047】
また、使用シナリオがシナリオ002である場合、ロボット1とユーザとは、ロボット1「ねえねえ、好きな食べ物は何?」、ユーザ「(発話)」、ロボット1「そっかー。またはいろいろ教えてね」との会話を行うこととなる。
【0048】
オンライン処理部302は、アクセス許可応答であるとの判定結果を取得すると、一例として、会話開始音声データを出力音声DB112から読み出し、音声出力制御部104へ出力する。ここで、会話開始音声データとは、ユーザとの会話を開始するための音声の出力に使用される音声データである。会話開始音声データは、例えば、音声データ001_1や音声データ002_1であってもよい。会話開始音声データが出力音声DB112に複数格納されている場合、オンライン処理部302は、いずれの音声データを使用するかをランダムに選択してもよい。また、会話開始音声データは、例えば、「何か用かな?」との音声を出力するための音声データであってもよい。
【0049】
オンライン処理部302は、会話開始音声データを音声出力制御部104へ出力すると、音声入力受付部105に対し、音声入力部15をONにするよう指示し、ユーザの発話音声の音声データの取得を待機する。当該音声データを取得すると、オンライン処理部302は、一例として、当該音声データを通信制御部102へ出力する。
【0050】
通信制御部102は、取得した音声データをサーバ2へ送信し、サーバ2から応答音声データを受信する。通信制御部102は、受信した応答音声データをオンライン処理部302へ出力する。
【0051】
オンライン処理部302は、取得した応答音声データを音声出力制御部104へ出力する。オンライン処理部302は、ユーザの発話音声の音声データの待機から、応答音声データの音声出力制御部104への出力までを、会話が終了するまで繰り返す。
【0052】
オンライン処理部302は、例えば、以下の方法で会話の終了を検知する。サーバ2は、ロボット1から受信した音声データへの音声認識処理により、ユーザが会話終了のためのキーワードを発話しているか否かを判定する。当該キーワードは、例えば、「ありがとう」、「バイバイ」などであるが、この例に限定されない。
【0053】
キーワードを発話していると判定した場合、サーバ2は、会話終了を示す情報をロボット1へ送信する。通信制御部102は、当該情報をオンライン処理部302へ出力する。これにより、オンライン処理部302は、会話の終了を検知することができる。なお、サーバ2は、当該情報とともに、応答音声データを送信してもよい。当該応答音声データは、例えば、「バイバイ」といった、会話を終了させる音声を出力するためのデータである。
【0054】
音声出力制御部104は、取得した音声データに基づく音声を音声出力部14から出力させる。上述したとおり、音声出力制御部104は、音声処理部103がアクセス不可応答を取得した場合、記憶部11に記憶されている音声データに基づく音声を音声出力部14から出力させる。一方、音声出力制御部104は、音声処理部103がアクセス許可応答を取得した場合、サーバ2から受信した音声データ(応答音声データ)に基づく音声を音声出力部14から出力させる。
【0055】
音声入力受付部105は、音声入力部15から音声データを取得し、音声処理部103へ出力する。音声入力受付部105は、音声処理部103からの指示に従い、音声入力部15をONにする。これにより、音声入力部15はユーザの発話の音声を取得し、音声データ(入力データ)に変換して音声入力受付部105へ出力することができる。
【0056】
なお、ロボット1は、音声認識処理および音声合成処理を実行する機能を有していない。このように構成することで、ロボット1の製造コストを下げることができる。
【0057】
(音声応答処理の流れ)
図3は、制御部10が実行する、音声応答処理の流れの一例を示すフローチャートである。
【0058】
操作信号受付部101は、操作入力部12から出力された、開始ボタンが押下されたことに基づく操作信号(以下、開始信号と称する)を受け付ける。(ステップS1、以下、「ステップ」を省略)。操作信号受付部101は、受け付けた開始信号を、通信制御部102へ出力する。
【0059】
通信制限判定部201は、開始信号を取得すると、アクセス要求をサーバ2へ送信する(S2)。そして、通信制限判定部201は、サーバ2からの応答を待機する状態となる。通信制限判定部201は受信した当該応答がアクセス不可応答およびアクセス許可応答の何れであるかを判定し(S3、判定ステップ)、判定結果を音声処理部103へ出力する。
【0060】
音声処理部103は、アクセス不可応答であるとの判定結果を場合(S3でYES)、オフライン処理部301は、シナリオDB111からいずれかのシナリオを読み出す(S4)。そして、オフライン処理部301は、読み出したシナリオ(使用シナリオ)にて使用される音声データを、出力音声DB112から読み出す。そして、オフライン処理部301は、選択したシナリオに含まれる音声データを、音声出力制御部104へ出力する。
【0061】
音声出力制御部104は、取得した音声データに基づく音声を音声出力部14に出力させる(S5、出力制御ステップ)。すなわち、音声出力制御部104は、使用シナリオに含まれる音声データに基づく音声を出力させる。なお、以降、ステップS4およびS5の処理を、「オフライン処理」と称する場合がある。
【0062】
図4は、オフライン処理の一具体例を示す図である。すなわち、
図4は、ロボット1がサーバ2へアクセス要求を送信した結果、アクセス数がライセンス数に到達していたことにより、アクセス不可応答を受信した場合の、ロボット1とユーザ9との会話の一具体例である。
【0063】
図4に示すように、オフライン処理の場合、ロボット1は、ユーザ9との会話を実現する際、サーバ2との通信を行わない。
図4の例では、オフライン処理部301は、記憶部11に記憶されているシナリオDB111から、シナリオ001を選択している。オフライン処理部301は、シナリオ001に従い、音声データ001_1および音声データ001_2を記憶部11から読み出す。そして、オフライン処理部301は、シナリオ001に従い、音声データ001_1を音声出力制御部104へ出力する。これにより、音声出力制御部104は、音声データ001_1に基づく音声を、音声出力部14から出力させる。すなわち、ロボット1は、
図4に示すように、「ねえねえ、好きな芸能人は誰?」と発話する。
【0064】
このように、オフライン処理によりユーザ9との会話を実現する場合、ロボット1は、開始ボタンが押下されると、例えば、ユーザ9が発話する前に具体的な質問の音声を出力する。これにより、ユーザ9が、オフライン処理では対応できない質問などを発話することを防ぐことができる。
【0065】
ロボット1の発話に対し、ユーザ9は、
図4に示すように、「〇〇だよ」と発話したとする。音声入力受付部105は、音声入力部15から当該発話の音声データを取得し、オフライン処理部301へ出力する。オフライン処理部301は、音声データの取得をトリガとして、シナリオ001に従い、音声データ001_2を音声出力制御部104へ出力する。これにより、音声出力制御部104は、音声データ001_2に基づく音声を、音声出力部14から出力させる。すなわち、ロボット1は、「そっかー。また色々教えてね」と発話し、会話を終了させる。
【0066】
このように、オフライン処理によりユーザ9との会話を実現する場合、ロボット1は、ユーザ9がどのような発話を行ったとしても会話が成り立つような音声(「そっかー。また色々教えてね」)を出力する。つまり、シナリオ001の例の場合、ユーザ9が好きな芸能人として誰を答えたとしても、ロボット1はサーバ2と通信することなく会話を成り立たせることができる。
【0067】
また、当該音声は、会話を終了させるニュアンスを含んでいる。これにより、ユーザ9がさらに発話することにより、オフライン処理では対応できない質問などが行われることを防ぐことができる。
【0068】
オフライン処理部301は、例えば、使用シナリオに規定されている音声データに基づく音声の出力がすべて終了した場合、音声入力受付部105に、音声入力部15をOFFにするよう指示してもよい。これにより、音声入力受付部105は、音声入力部15をOFFにし、ユーザ9の発話の音声を取得しないようにする。
【0069】
なお、ロボット1は、「そっかー。また色々教えてね」との音声を出力することにより、ユーザ9が、質問(「ねえねえ、好きな芸能人は誰?」)への回答ではない発話をした場合であっても、会話を成り立たせることができる。具体的には、このような場合は、当該音声が、「質問には答えてくれなかったけど、次は答えてほしい」というニュアンスを含むこととなるので、ロボット1とユーザ9との会話が成り立つ。
【0070】
また、オフライン処理部301は、音声データ001_1に基づく音声の出力後、所定時間経過してもユーザ9の発話の音声データを取得しない場合、シナリオ001に従い、音声データ001_2を音声出力制御部104へ出力してもよい。換言すれば、ロボット1は、ユーザ9が質問に対し、何ら発話しなかったとしても、「そっかー。また色々教えてね」との音声を出力してもよい。この場合も、当該音声が、「質問には答えてくれなかったけど、次は答えてほしい」というニュアンスを含むこととなるので、ロボット1とユーザ9との会話が成り立つ。
【0071】
図3を再度参照し、音声応答処理の説明に戻る。アクセス不可応答でないとの判定結果を取得した場合(S3でNO)、すなわち、アクセス許可応答であるとの判定結果を取得した場合、オンライン処理部302は、会話開始音声データを出力音声DB112から読み出し、音声出力制御部104へ出力する。音声出力制御部104は、取得した会話開始音声データに基づく会話開始音声を、音声出力部14に出力させる(S6)。そして、オンライン処理部302は、ユーザの発話音声の音声データの取得を待機する状態となる。
【0072】
音声入力受付部105は、音声入力部15から当該音声データを取得する(S7)と、オンライン処理部302へ出力する。オンライン処理部302は、当該音声データを通信制御部102へ出力する。通信制御部102は、取得した音声データをサーバ2へ送信し(S8)、サーバ2から応答音声データを受信する(S9)。通信制御部102は、受信した応答音声データをオンライン処理部302へ出力する。
【0073】
オンライン処理部302は、取得した応答音声データを音声出力制御部104へ出力する。音声出力制御部104は、取得した応答音声データに基づく音声を、音声出力部14に出力させる(S10、出力制御ステップ)。
【0074】
オンライン処理部302は、会話の終了を検知するまで(S11でNO)、ステップS7からS10までの処理を繰り返す。なお、以降、ステップS6からS11までの処理を、「オンライン処理」と称する場合がある。
【0075】
図5は、オンライン処理の一具体例を示す図である。すなわち、
図5は、ロボット1がサーバ2へアクセス要求を送信した結果、アクセス数がライセンス数に到達していなかったことにより、アクセス許可応答を受信した場合の、ロボット1とユーザ9との会話の一具体例である。
【0076】
なお、
図5の例において、会話開始音声の音声データは、音声データ001_1、すなわち、
図5に示す「ねえねえ、好きな芸能人は誰?」との音声の音声データであるとする。
【0077】
ロボット1の会話開始音声の出力に対し、ユーザ9は、
図5に示すように、「〇〇だよ」と発話したとする。音声入力受付部105は、音声入力部15から当該発話の音声データを取得し、オンライン処理部302へ出力する。オンライン処理部302は、当該音声データを通信制御部102へ出力し、通信制御部102は、当該音声データをサーバ2へ送信する。
【0078】
サーバ2は、音声データを受信すると音声認識処理を行い、当該処理の結果に基づき、音声合成用データを取得する。一例として、サーバ2は、音声認識処理により取得した単語(
図5の例では「○○」)を、検索エンジンを用いて検索することにより、当該単語に関連するデータを音声合成用データとして取得する。
図5の例では、音声合成用データとして、「○○は××のメンバーである」とのデータを取得したものとする。
【0079】
サーバ2は、取得した音声合成用データに基づき、音声合成処理を行う。
図5の例では、「○○は、××のメンバーだよね。」との音声を出力するための音声データを生成する。そして、サーバ2は、当該音声データを応答音声データとしてロボット1へ送信する。
【0080】
ロボット1の通信制御部102は、受信した応答音声データをオンライン処理部302へ出力する。オンライン処理部302は、取得した応答音声データを音声出力制御部104へ出力する。音声出力制御部104は、取得した応答音声データに基づく音声を、音声出力部14に出力させる。これにより、
図5に示すように、ロボット1が、「○○は、××のメンバーだよね。」と発話する。
【0081】
(効果)
以上のとおり、本実施形態に係る制御部10は、ユーザからの応答指示に対して音声応答するロボット1を制御する。制御部10は、上記応答指示を取得した場合、ロボット1とサーバ2との間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する通信制限判定部201を備えている。また、制御部10は、音声出力制御部104を備えている。音声出力制御部104は、上記制限が発生していないと判定された場合、サーバ2から受信した、上記応答指示に対して応答するための音声データに基づき、上記応答指示に対する音声応答をロボット1から出力させる。一方、音声出力制御部104は、上記制限が発生していると判定された場合、記憶部11に記憶されている音声データに基づく音声応答をロボット1から出力させる。
【0082】
また、本実施形態に係る発明について、以下のように表現することもできる。すなわち、本実施形態に係るロボット1は、音声出力部14と、制御部10とを備え、ユーザからの応答指示に対して音声応答する。制御部10は、上記応答指示を取得した場合、ロボット1とサーバ2との間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定処理を行う。そして、制御部10は、以下に示す出力制御処理を行う。すなわち、制御部10は、上記制限が発生していないと判定された場合、サーバ2から受信した、上記応答指示に対して応答するための音声データに基づき、上記応答指示に対する音声応答をロボット1から出力させる。一方、音声出力制御部104は、上記制限が発生していると判定された場合、記憶部11に記憶されている音声データに基づく音声応答をロボット1から出力させる。
【0083】
また、本実施形態に係る発明について、以下のように表現することもできる。すなわち、ユーザからの応答指示に対して音声応答するロボット1を制御する制御部10の制御方法は、上記応答指示を取得した場合、ロボット1とサーバ2との間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定ステップを含む。また、当該制御方法は、以下に示す出力制御ステップを含む。すなわち、出力制御ステップにおいては、上記制限が発生していないと判定された場合、サーバ2から受信した、上記応答指示に対して音声応答するための音声データに基づき、上記応答指示に対する音声応答をロボット1から出力させる。一方、上記制限が発生していると判定された場合、記憶部11に記憶されている上記音声データに基づく音声応答をロボット1から出力させる。
【0084】
上記の構成によれば、通信制限が発生していると判定している場合は、サーバと異なる装置(例えば、ロボット1自体)に記憶されている音声データに基づく音声応答を出力させる。このため、通信制限が発生しているサーバ2と通信することなく、応答指示に対して音声応答することができる。
【0085】
制御部10は、例えば、アクセス数がライセンス数に到達しているか否かを判定することにより、トラフィック量に基づく制限が発生しているか否かを判定する。通信制限を発生させないようにするためには、例えば、ライセンス数を増加させることが一案であるが、ライセンス数が増加すると、サーバコストも増加する。
【0086】
これに対し、上記の構成によれば、アクセス数がライセンス数に到達している場合は、これ以上ロボット1とサーバ2との通信は発生しない。そして、上述したとおり、ロボット1は、通信制限が発生しているサーバ2と通信することなく、応答指示に対して音声応答することができる。よって、サーバコストを増大させることなく、サーバトラフィックの増大により通信に支障が出ている状況でもユーザの満足度の低下を抑えた、ユーザへの音声応答を実現することができる。
【0087】
〔実施形態2〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
(ロボット1aの要部構成)
図6は、本実施形態に係るロボット1aの要部構成の一例を示すブロック図である。
図6に示すロボット1aが、上述した実施形態1にて説明したロボットと異なる点は、制御部10に代えて制御部10aを備えている点である。
【0088】
制御部10aが、制御部10と異なる点は、録音部106(入力データ記憶部)を新たに備える点である。
【0089】
録音部106は、音声入力受付部105から取得した音声データ、すなわち、ユーザが発話した音声の音声データを記憶部11に記憶する。具体的には、録音部106は、音声入力受付部105(取得部)から音声データを取得すると、記憶部11(入力データ記憶装置)の発話音声DB113に格納する。発話音声DB113は、ユーザが発話した音声の音声データを格納するデータベースである。
【0090】
本実施形態に係るオンライン処理部302は、実施形態1で説明した機能に加え、以下の機能を有する。すなわち、オンライン処理部302は、ロボット1aとサーバ2との間に通信制限が発生していない可能性が高い所定のタイミングで、発話音声DB113に格納されている音声データを読み出し、通信制御部102へ出力する。
【0091】
なお、「通信制限が発生していない可能性が高い所定のタイミング」とは、例えば、サーバ2へのアクセス数がライセンス数に達していない可能性が高いタイミングであり、具体的には、深夜における所定のタイミング(時刻)であるが、この例に限定されない。
【0092】
通信制御部102は、取得した音声データをサーバ2へ送信する。そして、通信制御部102は、サーバ2から、応答音声データおよびシナリオを受信する。通信制御部102は、受信した応答音声データおよびシナリオを音声処理部103へ出力する。当該応答音声データは、サーバ2へ送信した音声データ、すなわち、ユーザの発話音声の音声データに基づいて、サーバ2により生成された音声データである。当該シナリオは、受信した応答音声データに基づく音声の出力を規定するシナリオである。
【0093】
本実施形態に係るオフライン処理部301(応答データ記憶部、使用判定部)は、実施形態1で説明した機能に加え、以下の機能を有する。すなわち、オフライン処理部301は、通信制御部102から取得した音声データを、DL出力音声DB112Aに格納する。また、オフライン処理部301は、通信制御部102から取得したシナリオを、DLシナリオDB111Aに格納する。
【0094】
なお、以降、上記所定のタイミングにてサーバ2から受信したシナリオおよび応答音声データを、「DLシナリオ」および「DL音声データ」と称する場合がある。
【0095】
DLシナリオDB111Aは、DLシナリオを格納するデータベースである。一例として、DLシナリオDB111Aは、
図6に示すように、シナリオDB111に含まれるものであるが、この例に限定されない。例えば、DLシナリオDB111Aは、シナリオDB111と異なるデータベースであってもよい。
【0096】
DL出力音声DB112Aは、DL音声データを格納するデータベースである。DL音声データは、オフライン処理に用いられる応答音声データである。一例として、DL出力音声DB112Aは、
図6に示すように、出力音声DB112に含まれるものであるが、この例に限定されない。例えば、DL出力音声DB112Aは、出力音声DB112と異なるデータベースであってもよい。
【0097】
図7は、DLシナリオDB111AおよびDL出力音声DB112Aの一具体例を示す図である。
【0098】
図7の例では、DLシナリオDB11Aに格納されているDLシナリオとして、シナリオ011を示している。なお、このシナリオは一例であり、DLシナリオDB111Aに格納されているDLシナリオの種類および数は、
図7の例に限定されない。
【0099】
シナリオ011は、音声データ011_1を再生して処理が終了することを示している。
【0100】
また、
図7の例では、DL出力音声DB112Aに格納されているDL音声データとして、音声データ011_1を示している。なお、これらの音声データは一例であり、DL出力音声DB112Aに格納されているDL音声データの種類および数は、
図2の例に限定されない。
【0101】
音声データ011_1は、「前に言ってた○○は、××のメンバーだよね。またいろいろ教えてね。」という音声を出力するための音声データである。
【0102】
なお、DLシナリオは、DL音声データに加え、出力音声DB112に予め格納されている音声データの使用を規定していてもよい。
【0103】
また、オフライン処理部301は、アクセス不可応答を取得した場合、DLシナリオDB111Aに、未使用のDLシナリオが格納されているか否かを判定する。オフライン処理部301は、例えば、音声応答に使用したことを示す情報(以下、使用フラグと称する)が付加されていないDLシナリオが格納されているか否かを判定する。
【0104】
未使用のDLシナリオが格納されているか否かの判定は、すなわち、未使用のDL音声データがDL出力音声DB112Aに格納されているか否かを判定することに等しい。このため、上記の判定は、DL音声データのうち、過去に音声応答に使用されていないDL音声データがDL出力音声DB112Aに格納されているか否かを判定する、と表現することもできる。
【0105】
格納されていると判定した場合、オフライン処理部301は、DLシナリオDB111Aから、いずれかのDLシナリオを読み出す。オフライン処理部301は、例えば、DLシナリオDB111AからランダムにいずれかのDLシナリオを読み出す。そして、オフライン処理部301は、読み出したDLシナリオに、音声応答に使用したことを示す情報を付し、読み出したDLシナリオ(使用シナリオ)にて使用される音声データを、DL出力音声DB112Aから読み出す。
【0106】
一方、DLシナリオDB111Aに未使用のDLシナリオが格納されていないと判定した場合、オフライン処理部301は、DLシナリオDB111Aに格納されていない、いずれかのシナリオ(DLシナリオと異なるシナリオ)を読み出す。
【0107】
DL音声データは、ユーザの発話音声の音声データに基づいて生成されたものであるため、DL出力音声DB112Aへの格納後、なるべく早く使用されることが好ましい。一方、格納から時間が経過してから当該DL音声データを使用した場合、ユーザの発話から時間が経過してから当該発話の内容に即した音声出力がなされることとなるため、ユーザが戸惑うおそれがある。このため、オフライン処理部301は、DLシナリオDB111Aに、未使用のDLシナリオが格納されている場合は当該シナリオを読み出し、格納されていない場合は、DLシナリオDB111Aに格納されていない、いずれかのシナリオを読み出す。
【0108】
続いて、オフライン処理部301は、読み出したDLシナリオに従って処理を実行する。当該処理の詳細は、実施形態1にて説明しているため、ここでは説明を繰り返さない。
(音声応答処理の流れ)
図8は、制御部10aが実行する、音声応答処理の流れの一例を示すフローチャートである。なお、説明の便宜上、実施形態1にて説明したステップと同じ処理を行うステップについては、同じ符号を付記し、その説明を繰り返さない。また、
図8において、オンライン処理における各ステップは、
図3を参照して説明しているため、記載を省略している。ステップS3でNOの場合、音声応答処理は
図3のステップS6へ進む。
【0109】
オフライン処理部301は、アクセス不可応答を取得すると、DLシナリオDB111Aに、未使用のDLシナリオがあるか否かを判定する(S21)。
【0110】
未使用のDLシナリオがあると判定した場合(S21でYES)、オフライン処理部301は、DLシナリオDB111Aに格納されている未使用のダウンロードシナリオのうちのいずれかを選択し、読み出す(S22)。
【0111】
一方、未使用のDLシナリオが無いと判定した場合(S21でNO)、オフライン処理部301は、DLシナリオ以外のシナリオのうちのいずれかを選択し、読み出す(S23)。
【0112】
そして、オフライン処理部301は、ステップS5(出力制御ステップ)の処理、すなわち、使用シナリオに基づく音声出力を行う。このとき、使用シナリオにユーザの発話音声の取得が規定されている場合、オフライン処理部301は、音声入力受付部105に対し、音声入力部15をONにするよう指示し、ユーザの発話音声の音声データの取得を待機する。
【0113】
音声入力受付部105は、当該音声データを取得すると(S24でYES、取得ステップ)、当該音声データを録音部106へ出力する。録音部106は、取得した音声データを発話音声DB113へ格納する(S25)。
【0114】
なお、使用シナリオにユーザの発話音声の取得が規定されていない場合、音声入力受付部105は、当該発話音声の音声データを取得しない(S24でNO)。この場合、ステップS25の処理は省略される。
【0115】
なお、以降、
図8に示すステップS5、S21~S25の処理を「オフライン処理」と称する場合がある。
【0116】
(応答音声データ受信処理の流れ)
図9は、制御部10aが実行する、応答音声データ受信処理の流れの一例を示すフローチャートである。
【0117】
オンライン処理部302は、現在の時刻が所定の時刻となるまで待機している(S31)。当該所定の時刻は、上述した「通信制限が発生していない可能性が高い所定のタイミング」である。オンライン処理部302は、クロック(不図示)と、当該所定の時刻を示す時刻情報とを参照し、現在の時刻が、時刻情報が示す時刻となるまで待機する。時刻情報は、例えば、ロボット1aの記憶部11に予め格納されていてもよいし、現在の時刻が、時刻情報が示す時刻となる前にサーバ2から受信してもよい。上述したとおり、時刻情報が示す時刻は、例えば、深夜の時刻(例えば、午前1時など)である。
【0118】
なお、アクセス数がライセンス数に到達することを避けるため、時刻情報が示す時刻は、ロボット1aごとに異なることが好ましい。
【0119】
現在の時刻が所定の時刻となると(S31でYES)、オンライン処理部302は、発話音声DB113を参照し、ユーザの発話音声の音声データが格納されているか否かを判定する(S32)。格納されていると判定した場合(S32でYES)、オンライン処理部302は、発話音声DB113から音声データを読み出し、通信制御部102へ出力する。通信制御部102は、取得した音声データをサーバ2へ送信する(S33、通信制御ステップ)。
【0120】
続いて、通信制御部102は、サーバ2からDLシナリオおよびDL音声データを受信すると、当該DLシナリオおよびDL音声データを音声処理部103へ出力する。オフライン処理部301は、取得したDLシナリオおよびDL音声データの各々を、DLシナリオDB111AおよびDL出力音声DB112Aへ格納する(S34、通信制御ステップ)。
【0121】
図10は、応答音声データ受信処理の一具体例を示す図である。
図10の例では、ロボット1aは、アクセス不可応答の受信に基づき、オフライン処理を実行したものとする。このオフライン処理において、ロボット1aは、
図2に示すシナリオ001に従い音声を出力したものとする。そして、ロボット1aは、ユーザの発話音声として「○○だよ。」(
図4参照)を取得したものとする。これにより、当該発話音声の音声データは、発話音声DB113に格納される。
【0122】
現在の時刻が所定時刻となると、通信制御部102は、オンライン処理部302が発話音声DB113から読み出した音声データ(「○○だよ。」との音声の音声データ)をサーバ2へ送信する。
【0123】
サーバ2は、音声データを受信すると音声認識処理を行い、当該処理の結果に基づき、音声合成用データを取得する。この処理については、実施形態1で説明しているため、ここでは説明を繰り返さない。
【0124】
サーバ2は、取得した音声合成用データに基づき、音声合成処理を行う。
図10の例では、「前に言ってた○○は、××のメンバーだよね。またいろいろ教えてね。」との音声を出力するためのDL音声データを生成する。また、サーバ2は、当該音声データをロボット1aに出力させるためのDLシナリオ(この例では、
図7に示すシナリオ011)を生成する。そして、サーバ2は、当該DLシナリオおよびDL音声データをロボット1aへ送信する。
【0125】
ロボット1aの通信制御部102は、受信したDLシナリオおよびDL音声データを音声処理部103へ出力する。オフライン処理部301は、取得したDLシナリオおよびDL音声データの各々を、DLシナリオDB111AおよびDL出力音声DB112Aへ格納する。
【0126】
図11は、
図10に示す応答音声データ受信処理の後の、音声応答処理の一具体例を示す図である。すなわち、
図11は、DLシナリオおよびDL音声データの受信以降の音声応答処理の一具体例を示す図である。
図11の例では、ユーザの開始ボタンの押下により、ロボット1aがアクセス不可応答を受信したものとする。
【0127】
図11の例では、DLシナリオDB111にシナリオ011が格納されているので、オフライン処理部301は、シナリオ011を読み出す。また、オフライン処理部301は、シナリオ011に規定されている音声データ011_1を読み出す。そして、オフライン処理部301は、シナリオ011に従って音声データ011_1を音声出力制御部104へ出力する。音声出力制御部104は、音声出力部14に、音声データ011_1に基づく音声、すなわち、
図11に示す「前に言ってた○○は、××のメンバーだよね。またいろいろ教えてね。」との音声を出力させる。
【0128】
(効果)
本実施形態に係る制御部10aは、音声応答に対するユーザの発話に基づく音声データを取得する音声入力受付部105を備える。また、制御部10aは、通信制限が発生していると判定された場合、音声入力受付部105が取得した音声データを、記憶部11に記憶させる録音部106を備える。また、制御部10aは、上記制限が発生していない可能性が高い所定のタイミングで、記憶部11に記憶されている上記音声データをサーバ2へ送信する通信制御部102を備える。通信制御部102はさらに、当該音声データに基づいて生成された音声応答のためのDL音声データをサーバ2から受信する。また、制御部10aは、受信したDL音声データを記憶部11に記憶させる音声処理部103をさらに備える。
【0129】
上記の構成によれば、制限(通信制限)が発生していると判定された場合は、ロボット1aの音声応答に対するユーザの発話の音声データを記憶しておき、通信制限が発生していない可能性が高い所定のタイミングで当該音声データをサーバ2へ送信する。そして、当該音声データに基づいて生成されたDL音声データをサーバ2から受信し、記憶する。これにより、通信制限が発生しているタイミングにおける応答のための音声データを、通信制限が発生する前にサーバ2に生成させることができる。結果として、サーバトラフィックの増大により通信に支障が出ている状況でもユーザの満足度の低下を抑えた、ユーザへの応答を実現することができる。
【0130】
また、DL音声データは、ユーザの発話の音声データに基づいてサーバ2が生成したものであるため、ユーザの発話内容に即した音声データとすることができる。結果として、ユーザの入力の内容に即したロボット1の音声応答を実現することができる。
【0131】
なお、制御部10aは、各種音声データを記憶部11とは異なる記憶装置に記憶してもよい。当該記憶装置は、例えば、ロボット1aと通信可能に接続された、サーバ2以外の記憶装置である。
【0132】
また、本実施形態に係る制御部10aは、応答指示を取得したとき、DL音声データのうち、過去に音声応答に使用されていないDL音声データがDL出力音声DB112Aに格納されているか否かを判定するオフライン処理部301をさらに備える。本実施形態に係る音声出力制御部104は、通信制限が発生していると判定され、かつ、過去に音声応答に使用されていないDL音声データが格納されていると判定された場合、当該DL音声データに基づく音声応答を出力させる。
【0133】
上記の構成によれば、音声応答に使用されていない、DL音声データがあると判定されると、通信制限が発生している場合、当該DL音声データに基づく応音声答が行われる。当該DL音声データは、ユーザの発話音声の音声データに基づき生成された音声データであるので、ユーザの発話から、当該発話の内容に即した音声応答までの時間をできる限り短くすることができる。結果として、ユーザが不自然に感じない音声応答を実現することができる。
【0134】
(実施形態2の変形例)
オフライン処理部301は、DLシナリオDB111Aに格納されているDLシナリオおよびDL出力音声DB112Aに格納されているDL音声データを使用した場合、これらのDLシナリオおよびDL音声データを消去してもよい。これにより、記憶部11の記憶容量を確保することができる。
【0135】
また、オフライン処理部301は、DLシナリオDB111Aに、未使用のDLシナリオが格納されているか否かを判定せず、シナリオDB111に格納されている全てのシナリオから、いずれかのシナリオを選択する構成であってもよい。あるいは、オフライン処理部301は、未使用のDLシナリオが格納されていないと判定した場合、シナリオDB111に格納されている全てのシナリオから、いずれかのシナリオを選択する構成であってもよい。
【0136】
〔実施形態3〕
本発明のさらなる別の実施形態について、以下に説明する。なお、説明の便宜上、実施形態1および2にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0137】
図12は、本実施形態に係るロボット1bの要部構成の一例を示すブロック図である。
図12に示すロボット1bが、上述した実施形態1にて説明したロボット1と異なる点は、制御部10に代えて制御部10bを備えている点である。
【0138】
制御部10bが、制御部10と異なる点は、録音部106を新たに備える点である。なお、録音部106については、実施形態2で説明しているため、ここでは説明を繰り返さない。
【0139】
また、制御部10bの操作信号受付部101は、実施形態1および2に係る操作信号受付部101と異なり、取得した開始信号を音声処理部103へ出力する。
【0140】
制御部10bの音声処理部103(決定部)は、実施形態1および2で説明した機能に加え、以下の機能を備える。すなわち、音声処理部103は、操作信号受付部101から開始信号を取得すると、オフライン処理およびオンライン処理のいずれを行うかを決定する。音声処理部103は、一例として、所定の確率に基づいてオフライン処理およびオンライン処理のいずれを行うかを決定する。所定の確率は、例えば、オフライン処理の実行が70%、オンライン処理の実行が30%としてもよい。
【0141】
音声処理部103が、オフライン処理を実行すると決定した場合、オフライン処理部301は、オフライン処理を行う。オフライン処理の詳細については、実施形態1および2で説明しているため、ここでは説明を繰り返さない。
【0142】
音声処理部103が、オンライン処理を実行すると決定した場合、オンライン処理部302は、その旨を通信制限判定部201へ通知する。
【0143】
通信制限判定部201は、オンライン処理部302からの通知に基づき、サーバ2へアクセス要求を送信し、当該要求に対する応答を受信する。そして、通信制限判定部201は、受信した応答がアクセス許可応答であるかアクセス不可応答であるかを判定し、判定結果をオンライン処理部302へ出力する。
【0144】
オンライン処理部302は、アクセス許可応答であるとの判定結果を取得した場合、オンライン処理を行う。オンライン処理の詳細については、実施形態1および2で説明しているため、ここでは説明を繰り返さない。
【0145】
一方、アクセス不可応答であるとの判定結果を取得した場合、オンライン処理部302は、その旨をオフライン処理部301へ通知する。オフライン処理部301は、当該通知を受けると、オフライン処理を行う。
【0146】
このように、本実施形態に係る制御部10bは、アクセス要求をサーバ2へ送信する前に、オフライン処理とオンライン処理とのいずれを行うかを決定する。そして、オンライン処理を行うと決定した場合に、アクセス要求をサーバ2へ送信する。アクセス要求に対する応答がアクセス許可応答であった場合、予め決定したとおりオンライン処理を行う。一方、当該応答がアクセス不可応答であった場合、決定したオンライン処理に代えてオフライン処理を行う。
【0147】
(音声応答処理の流れ)
図13は、制御部10bが実行する、音声応答処理の流れの一例を示すフローチャートである。なお、説明の便宜上、実施形態1~3にて説明したステップと同じ処理を行うステップについては、同じ符号を付記し、その説明を繰り返さない。
【0148】
操作信号受付部101から開始信号を取得すると、音声処理部103は、オンライン処理とオフライン処理の何れを行うかを決定する(S41)。オンライン処理を行うと決定した場合(S41でNO)、オンライン処理部302は、その旨を通信制限判定部201へ通知する。
【0149】
通信制限判定部201は、アクセス要求をサーバ2へ送信し(S2)、応答を受信する。通信制限判定部201は、受信した応答がアクセス許可応答およびアクセス不可応答の何れであるかを判定し(S3)、判定結果をオンライン処理部302へ出力する。
【0150】
オンライン処理部302は、アクセス許可応答であるとの判定結果を取得した場合(S3でNO)、オンライン処理を行う。オンライン処理については、実施形態1にて説明しているため、ここでは説明を繰り返さない。
【0151】
一方、オンライン処理部302は、アクセス不可応答であるとの判定結果を取得した場合(S3でYES)、その旨をオフライン処理部301へ通知する。
【0152】
オフライン処理部301は、当該通知を受けた場合、または、音声処理部103がオフライン処理を行うと決定した場合(S41でYES)、オフライン処理を行う。オフライン処理については、実施形態1にて説明しているため、ここでは説明を繰り返さない。
【0153】
(効果)
本実施形態に係る制御部10bは、サーバ2から受信した音声データに基づく音声応答をロボット1bから出力させるか、または、記憶部11に記憶されている音声データに基づく音声応答を出力させるかを決定する音声処理部103をさらに備える。そして、通信制限判定部201は、音声処理部103が、サーバ2から受信した音声データに基づく音声応答をロボット1bから出力させると決定した場合、ロボット1bとサーバ2との間に通信制限が発生しているか否かを判定する。
【0154】
上記の構成によれば、音声処理部103が、記憶部11に記憶されている音声データに基づく音声応答をロボット1bから出力させると決定した場合、通信制限判定部201は、通信制限が発生しているか否かの判定を行わない。よって、通信制限判定部201による判定の頻度を減らすことができ、制御部10bの処理負荷を軽減することができる。
【0155】
(実施形態3の変形例)
本実施形態は、実施形態1に適用することも可能である。換言すれば、本実施形態に係る制御部10bは、録音部106を備えていなくてもよい。
【0156】
〔実施形態4〕
本発明のさらなる別の実施形態について、以下に説明する。なお、説明の便宜上、実施形態1~3にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0157】
図14は、本実施形態に係るロボット1cの要部構成の一例を示すブロック図である。
図14に示すロボット1cが、上述した実施形態1にて説明したロボット1と異なる点は、制御部10に代えて制御部10cを備えている点である。
【0158】
制御部10cが、制御部10と異なる点は、通信制御部102が、通信制限判定部201を備えていない点である。すなわち、本実施形態に係るロボット1cは、ユーザから応答指示を入力されたとき、ロボット1cとサーバ2との間の通信において、トラフィック量に基づく制限が発生しているか否かを判定しない。
【0159】
本実施形態に係る操作信号受付部101は、取得した開始信号を、音声処理部103へ出力する。
【0160】
本実施形態に係るオフライン処理部301は、開始信号を取得すると、実施形態2にて説明したオフライン処理を開始する。すなわち、ロボット1cは、ユーザからの応答指示に対して、オフライン処理を行い音声応答する。このオフライン処理の詳細は、実施形態2にて説明したため、ここでは説明を繰り返さない。
【0161】
本実施形態に係る録音部106は、音声入力受付部105(取得部)から音声データを取得すると、記憶部11の発話音声DB113に格納する。
【0162】
本実施形態に係るオンライン処理部302は、実施形態1にて説明したオンライン処理を行わない。一方、オンライン処理部302は、実施形態2にて説明したロボット1aとサーバ2との間に通信制限が発生していない可能性が高い所定のタイミングで、発話音声DB113に格納されている音声データを読み出し、通信制御部102へ出力する処理を行う。
【0163】
(音声応答処理の流れ)
図15は、制御部10cが実行する、音声応答処理の流れの一例を示すフローチャートである。なお、説明の便宜上、実施形態1および2にて説明したステップと同じ処理を行うステップについては、同じ符号を付記し、その説明を繰り返さない。
【0164】
本実施形態に係る音声応答処理が、実施形態2で説明した音声応答処理と異なる点は、ステップS2およびS3の処理を実行しない点である。ステップS1において、操作信号受付部101は、受け付けた開始信号を音声処理部103へ出力する。
【0165】
音声処理部103は、開始信号を取得すると、実施形態2にて説明したオフライン処理を実行する。
【0166】
なお、制御部10cが実行する応答音声データ受信処理については、実施形態2で説明したものと同様であるため、ここでは説明を繰り返さない。
【0167】
(効果)
本実施形態に係る制御部10cは、ユーザからの応答指示に対して音声応答するロボット1cを制御する。制御部10cは、上記音声応答に対するユーザからの音声入力に基づく音声データを取得する音声入力受付部105を備えている。また、制御部10cは、上記音声データを、ロボット1とサーバ2との間の通信においてトラフィック量に基づく制限が発生していない可能性が高い所定のタイミングでサーバ2へ送信する通信制御部102を備えている。通信制御部102はさらに、上記音声データに基づいて生成された、上記応答指示に対して音声応答するための音声データをサーバ2から受信する。また、制御部10cは、上記応答指示に対して、通信制御部102が受信した音声データに基づく音声応答をロボット1から出力させる音声出力制御部104を備えている。
【0168】
また、本実施形態に係る発明について、以下のように表現することもできる。すなわち、本実施形態に係るロボット1cは、音声出力部14と、制御部10cとを備え、ユーザからの応答指示に対して音声応答する。制御部10cは、上記音声応答に対するユーザからの音声入力に基づく音声データを取得する音声入力受付処理を行う。また、制御部10cは、上記音声データを、ロボット1cとサーバ2との間の通信においてトラフィック量に基づく制限が発生していない可能性が高い所定のタイミングでサーバ2へ送信する通信処理を行う。当該通信処理では、さらに、上記音声データに基づいて生成された、上記応答指示に対して音声応答するための音声データをサーバ2から受信する。また、制御部10cは、上記応答指示に対して、通信制御処理により受信した音声データに基づく音声応答をロボット1cから出力させる音声出力制御処理を行う。
【0169】
また、本実施形態に係る発明について、以下のように表現することもできる。すなわち、ユーザからの応答指示に対して音声応答するロボット1cを制御する制御部10cの制御方法は、上記音声応答に対するユーザからの音声入力に基づく音声データを取得する音声入力受付ステップを含む。また、当該制御方法は、上記音声データを、ロボット1cとサーバ2との間の通信においてトラフィック量に基づく制限が発生していない可能性が高い所定のタイミングでサーバ2へ送信する通信制御ステップを含む。当該通信制御ステップではさらに、上記音声データに基づいて生成された、上記応答指示に対して音声応答するための音声データをサーバ2から受信する。また、当該制御方法は、上記応答指示に対して、通信制御ステップにて受信した音声データに基づく音声応答をロボット1cから出力させる音声出力制御ステップを含む。
【0170】
上記の構成によれば、音声応答に対してユーザが行った音声入力に基づく音声データを、制限(通信制限)が発生していない可能性が高い所定のタイミングでサーバ2へ送信する。そして、当該音声データに基づいて生成された音声データを、通信制限が発生していないタイミングで受信する。そして、応答指示に対して、受信した音声データに基づく応答を電子機器から出力させる。
【0171】
つまり、ロボット1cとサーバ2との通信は、通信制限が発生していない可能性が高い所定のタイミングでのみ行われる。換言すれば、通信制限が発生している虞があるタイミングにおいて、ロボット1cとサーバ2とは通信を行わない。よって、サーバコストを増大させることなく、サーバトラフィックの増大により通信に支障が出ている状況でもユーザの満足度の低下を抑えた、ユーザへの応答を実現することができる。
【0172】
なお、「電子機器とサーバとの間の通信においてトラフィック量に基づく制限が発生していない可能性が高い、所定のタイミング」とは、例えば、実施形態2で説明した、深夜などの電子機器を使用するユーザ数が少ないタイミングである。
【0173】
〔その他の変形例〕
上述した各実施形態では、ユーザからの応答指示に対して応答する電子機器として、ロボットを例に挙げて説明した。一方、当該電子機器はロボットに限定されない。例えば、当該電子機器は、スマートフォンなどの携帯端末であってもよい。
【0174】
また、当該電子機器は、制御部10、記憶部11、操作入力部12、通信部13、音声出力部14および音声入力部15の各々を複数備えていてもよい。
【0175】
上述した各実施形態では、ユーザとロボットとの会話の開始のトリガとして、開始ボタンの押下を例に挙げて説明した。一方、会話の開始のトリガはこの例に限定されない。当該トリガは、例えば、開始ボタン以外の操作入力部12に対する所定の操作であってもよい。また、当該トリガは、例えば、ユーザが所定のキーワードを含む発話を行うことであってもよい。また、当該トリガは、例えば、ロボットがユーザの存在を検知することであってもよい。この例の場合、ロボットは例えば、人感センサ(不図示)を備えている。この人感センサとしては、例えば、知のものを使用することができる。また、当該トリガは、例えば、所定の時刻となることであってもよい。
【0176】
上述した各実施形態では、ユーザとロボットとは会話、すなわち、音声を出力することでやり取りする例を説明した。一方、ユーザとロボットとのやり取りの方法は、音声出力に限定されない。例えば、ロボットは、音声出力に代えて、表示部(不図示)にテキストや画像を表示してもよい。また、ユーザは、発話に代えて、操作入力部12への操作入力により、ロボットへテキストや画像を入力してもよい。
【0177】
上述した各実施形態に係るロボットは、音声認識処理を実行することが可能であってもよい。ただし、ロボットの製造コストを下げるため、当該音声認識処理は、数十単語のみを認識する簡単なものであることが好ましい。
【0178】
上述した実施形態1~3に係るロボットは、アクセス許可応答を受信した場合であっても、記憶部11に記憶されている音声データのみで会話が成り立つ場合には、オフライン処理を行ってもよい。ここで、「記憶部11に記憶されている音声データのみで会話が成り立つ場合」とは、例えば、ロボットによる音声の出力に対するユーザの発話の内容を音声認識せずに会話を成立させることができるシナリオがある場合である。あるいは、ユーザに発話させない、一方的な音声を出力する音声データがある場合である。これらの例において、当該シナリオや当該音声データには、「記憶部11に記憶されている音声データのみで会話が成り立つ」ことを示す情報が対応付けられていてもよい。この場合、ロボットの制御部は、当該情報が対応付けられているシナリオまたは音声データがあるか否かを判定することで、記憶部11に記憶されている音声データのみで会話が成り立つか否かを判定することができる。
【0179】
あるいは、「記憶部11に記憶されている音声データのみで会話が成り立つ場合」は、ロボットが音声認識処理を実行可能な例において、ユーザの発話の音声データを音声認識することができた場合であってもよい。
【0180】
〔ソフトウェアによる実現例〕
ロボット1、1a、1b、1cの制御ブロック(特に制御部10、10a、10b、10c)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
【0181】
後者の場合、ロボット1、1a、1b、1cは、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば少なくとも1つのプロセッサ(制御装置)を備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な少なくとも1つの記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0182】
〔まとめ〕
本発明の態様1に係る制御装置(制御部10、10a、10b)は、応答指示に対して応答する電子機器(ロボット1、1a、1b)を制御する制御装置であって、上記応答指示を取得した場合、上記電子機器とサーバ(サーバ2)との間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定部(通信制限判定部201)と、上記制限が発生していないと判定された場合、上記サーバから受信した、上記応答指示に対して応答するための応答データに基づき、上記応答指示に対する応答を上記電子機器から出力させる一方、上記制限が発生していると判定された場合、上記サーバと異なる応答データ記憶装置(記憶部11)に記憶されている上記応答データに基づく応答を上記電子機器から出力させる出力制御部(音声出力制御部104)と、を備えている。
【0183】
本発明の態様2に係る制御装置(制御部10a)は、上記態様1において、出力された上記応答に対するユーザ(ユーザ9)からの入力に基づく入力データを取得する取得部(音声入力受付部105)と、上記制限が発生していると判定された場合、取得された上記入力データを、上記サーバと異なる入力データ記憶装置(記憶部11)に記憶させる入力データ記憶部(録音部106)と、上記制限が発生していない可能性が高い所定のタイミングで、上記入力データ記憶装置に記憶されている上記入力データを上記サーバへ送信し、上記入力データに基づいて生成された上記応答データを上記サーバから受信する通信制御部(通信制御部102)と、受信した上記応答データを、上記応答データ記憶装置に記憶させる応答データ記憶部(オフライン処理部301)と、をさらに備えてもよい。
【0184】
本発明の態様3に係る制御装置は、上記態様2において、上記応答指示を取得したとき、上記サーバから受信した上記応答データのうち、過去に応答に使用されていない上記応答データが上記応答データ記憶装置にあるか否かを判定する使用判定部(オフライン処理部301)をさらに備え、上記出力制御部は、上記制限が発生していると判定され、かつ、過去に応答に使用されていない上記応答データがあると判定された場合、当該応答データに基づく応答を上記電子機器から出力させてもよい。
【0185】
本発明の態様4に係る制御装置(制御部10b)は、上記態様1から3のいずれかにおいて、上記サーバから受信した上記応答データに基づく応答を上記電子機器から出力させるか、または、上記応答データ記憶装置に記憶されている上記応答データに基づく応答を上記電子機器から出力させるかを決定する決定部(音声処理部103)をさらに備え、上記判定部は、上記決定部が、上記サーバから受信した上記応答データに基づく応答を上記電子機器から出力させると決定した場合、上記制限が発生しているか否かを判定してもよい。
【0186】
本発明の態様5に係る制御装置(制御部10、10a、10b)は、上記態様1から4のいずれかにおいて、上記出力制御部は、上記応答データとしての音声データに基づく音声を上記電子機器から出力させてもよい。
【0187】
本発明の態様6に係る制御装置(制御部10c)は、応答指示に対して応答する電子機器(ロボット1c)を制御する制御装置であって、上記応答に対するユーザ(ユーザ9)からの入力に基づく入力データを取得する取得部(音声入力受付部105)と、上記入力データを、上記電子機器とサーバ(サーバ2)との間の通信においてトラフィック量に基づく制限が発生していない可能性が高い所定のタイミングで上記サーバへ送信し、上記入力データに基づいて生成された、応答指示に対して応答するための応答データを上記サーバから受信する通信制御部(通信制御部102)と、上記応答データの受信以降の応答指示に対して、当該応答データに基づく応答を上記電子機器から出力させる出力制御部(音声出力制御部104)と、を備えている。
【0188】
本発明の態様7に係る電子機器(ロボット1、1a、1b)は、少なくとも1つの出力装置(音声出力部14)と、少なくとも1つの制御装置(制御部10、10a、10b)とを備え、応答指示に対して応答する電子機器であって、上記制御装置は、上記応答指示を取得した場合、上記電子機器とサーバ(サーバ2)との間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定処理と、上記制限が発生していないと判定された場合、上記サーバから受信した、上記応答指示に対して応答するための応答データに基づき、上記応答指示に対する応答を上記電子機器から出力させる一方、上記制限が発生していると判定された場合、上記サーバと異なる応答データ記憶装置(記憶部11)に記憶されている上記応答データに基づく応答を上記出力装置から出力させる出力制御処理と、を行う。
【0189】
本発明の態様8に係る電子機器(ロボット1c)は、少なくとも1つの出力装置(音声出力部14)と、少なくとも1つの制御装置(制御部10c)とを備え、応答指示に対して応答する電子機器であって、上記制御装置は、上記応答に対するユーザ(ユーザ9)からの入力に基づく入力データを取得する取得処理と、上記電子機器とサーバ(サーバ2)との間の通信においてトラフィック量に基づく制限が発生していない可能性が高い所定のタイミングで、上記入力データを上記サーバへ送信し、上記入力データに基づいて生成された、応答指示に対して応答するための応答データを上記サーバから受信する通信制御処理と、上記応答データの受信以降の応答指示に対して、当該応答データに基づく応答を上記電子機器から出力させる出力制御処理と、を行うことを特徴とする電子機器。
【0190】
本発明の態様9に係る制御装置(制御部10、10a、10b)の制御方法は、応答指示に対して応答する電子機器(ロボット1、1a、1b)を制御する制御装置の制御方法であって、上記応答指示を取得した場合、上記電子機器とサーバ(サーバ2)との間の通信において、トラフィック量に基づく制限が発生しているか否かを判定する判定ステップ(ステップS3)と、上記制限が発生していないと判定された場合、上記サーバから受信した、上記応答指示に対して応答するための応答データに基づき、上記応答指示に対する応答を上記電子機器から出力させる一方、上記制限が発生していると判定された場合、上記サーバと異なる応答データ記憶装置(記憶部11)に記憶されている上記応答データに基づく応答を上記電子機器から出力させる出力制御ステップ(ステップS5、S10)と、を含む。
【0191】
本発明の態様10に係る制御装置(制御部10c)の制御方法は、応答指示に対して応答する電子機器(ロボット1c)を制御する制御装置の制御方法であって、上記応答に対するユーザ(ユーザ9)からの入力に基づく入力データを取得する取得ステップ(ステップS24)と、上記電子機器とサーバとの間の通信においてトラフィック量に基づく制限が発生していない可能性が高い所定のタイミングで、上記入力データを上記サーバへ送信し、上記入力データに基づいて生成された、応答指示に対して応答するための応答データを上記サーバから受信する通信制御ステップ(ステップS33、S34)と、上記応答データの受信以降の応答指示に対して、当該応答データに基づく応答を上記電子機器から出力させる出力制御ステップ(S5)と、を含む。
【0192】
本発明の各態様に係る制御装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記制御装置が備える各部(ソフトウェア要素)として動作させることにより上記制御装置をコンピュータにて実現させる制御装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【0193】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【符号の説明】
【0194】
1、1a、1b、1c ロボット(電子機器)
2 サーバ
9 ユーザ
10、10a、10b、10c 制御部(制御装置)
11 記憶部(応答データ記憶装置、入力データ記憶装置)
14 音声出力部(出力装置)
102 通信制御部
103 音声処理部(決定部)
104 音声出力制御部(出力制御部)
105 音声入力受付部(取得部)
106 録音部(入力データ記憶部)
201 通信制限判定部(判定部)
301 オフライン処理部(応答データ記憶部、使用判定部)