IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立ビルシステムの特許一覧

<>
  • 特許-演算装置、記録媒体、音声入力装置 図1
  • 特許-演算装置、記録媒体、音声入力装置 図2
  • 特許-演算装置、記録媒体、音声入力装置 図3
  • 特許-演算装置、記録媒体、音声入力装置 図4
  • 特許-演算装置、記録媒体、音声入力装置 図5
  • 特許-演算装置、記録媒体、音声入力装置 図6
  • 特許-演算装置、記録媒体、音声入力装置 図7
  • 特許-演算装置、記録媒体、音声入力装置 図8
  • 特許-演算装置、記録媒体、音声入力装置 図9
  • 特許-演算装置、記録媒体、音声入力装置 図10
  • 特許-演算装置、記録媒体、音声入力装置 図11
  • 特許-演算装置、記録媒体、音声入力装置 図12
  • 特許-演算装置、記録媒体、音声入力装置 図13
  • 特許-演算装置、記録媒体、音声入力装置 図14
  • 特許-演算装置、記録媒体、音声入力装置 図15
  • 特許-演算装置、記録媒体、音声入力装置 図16
  • 特許-演算装置、記録媒体、音声入力装置 図17
  • 特許-演算装置、記録媒体、音声入力装置 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-02
(45)【発行日】2024-04-10
(54)【発明の名称】演算装置、記録媒体、音声入力装置
(51)【国際特許分類】
   G10L 15/28 20130101AFI20240403BHJP
   G10L 15/22 20060101ALI20240403BHJP
【FI】
G10L15/28 230K
G10L15/22 300Z
【請求項の数】 10
(21)【出願番号】P 2019206587
(22)【出願日】2019-11-14
(65)【公開番号】P2021081482
(43)【公開日】2021-05-27
【審査請求日】2022-07-07
(73)【特許権者】
【識別番号】000232955
【氏名又は名称】株式会社日立ビルシステム
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】藤田 悠
(72)【発明者】
【氏名】受田 賢知
(72)【発明者】
【氏名】田澤 功
(72)【発明者】
【氏名】山崎 謙太
【審査官】中村 天真
(56)【参考文献】
【文献】特開2014-202800(JP,A)
【文献】特開平02-042493(JP,A)
【文献】特開2018-013545(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-15/34
(57)【特許請求の範囲】
【請求項1】
ユーザとの音声対話が発生する可能性を示すリソース制御情報、および音声情報を送信する複数のロボットと通信するサーバ通信部と、
前記ロボットから受信する前記音声情報を文字情報に変換する認識プロセスを複数実行可能な音声認識部と、
前記ロボットから受信する前記リソース制御情報を用いて前記認識プロセスの起動数を管理し、前記認識プロセスの起動および停止を行うプロセス制御部とを備える演算装置。
【請求項2】
請求項1に記載の演算装置において、
前記リソース制御情報には、前記ロボットがユーザとの距離に基づき出力する前記認識プロセスの起動要求が含まれ、
前記プロセス制御部は、前記ロボットが送信する前記起動要求に基づき前記認識プロセスを起動し、起動した前記認識プロセスを前記ロボットに割当てることで前記ロボットが送信する音声情報を文字情報に変換する演算装置。
【請求項3】
請求項2に記載の演算装置において、
前記プロセス制御部は、前記ロボットから前記認識プロセスの割当要求を受信した場合、および前記認識プロセスが割り当てられていない前記ロボットから音声情報を受信した場合の少なくとも一方の場合に前記ロボットに前記認識プロセスを割り当てる演算装置。
【請求項4】
請求項3に記載の演算装置において、
前記プロセス制御部は、前記ロボットから前記認識プロセスの割当解除要求を受信した場合、および前記認識プロセスが割り当てられた前記ロボットから所定時間より長く音声情報を受信しない場合の少なくとも一方の場合に前記ロボットに対する前記認識プロセスの割当を解除する演算装置。
【請求項5】
請求項1に記載の演算装置において、
前記リソース制御情報には、前記ロボットに搭載されるセンサの出力であるセンサ情報が含まれ、
前記プロセス制御部は、前記センサ情報を用いて前記ロボットから所定の監視距離以内に音声を発話するユーザが存在すると判断する場合に前記認識プロセスを起動する演算装置。
【請求項6】
請求項1に記載の演算装置において、
前記プロセス制御部は、前記ロボットから前記認識プロセスを停止する要求を受信した場合に前記認識プロセスを停止する演算装置。
【請求項7】
請求項1に記載の演算装置において、
前記リソース制御情報には、前記ロボットに搭載されるセンサの出力であるセンサ情報が含まれ、
前記プロセス制御部は、前記ロボットから所定の監視距離以内に存在していたユーザが、前記監視距離よりも遠くに移動したことを前記センサ情報を用いて判断する場合に前記認識プロセスを停止する演算装置。
【請求項8】
ユーザとの音声対話が発生する可能性を示すリソース制御情報、および音声情報を送信する複数のロボットと通信するサーバ通信部を備えるコンピュータに、
前記ロボットから受信する前記音声情報を文字情報に変換する認識プロセスを複数実行可能な音声認識処理と、
前記ロボットから受信する前記リソース制御情報を用いて前記認識プロセスの起動数を
管理し、前記認識プロセスの起動および停止を行うプロセス制御処理とを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項9】
受信した音声情報を文字情報に変換する認識プロセスを複数実行可能な音声認識部を備える演算装置と通信可能なロボット通信部と、
ユーザとの距離に基づき前記演算装置に前記認識プロセスの起動を要求する起動要求を送信する起動要求部と、
前記ユーザの発話を録音し前記音声情報として前記演算装置に送信する送信部と、を備える音声入力装置であって、
前記認識プロセスの起動時間、および前記ユーザと当該音声入力装置との相対速度の積を監視距離として算出する距離決定部をさらに備え、
前記起動要求部は、前記ユーザと当該音声入力装置との距離が前記監視距離以下の場合に前記起動要求を送信する音声入力装置。
【請求項10】
請求項9に記載の音声入力装置において、
前記起動要求部は、前記ユーザと当該音声入力装置との距離が前記監視距離よりも遠くなると前記認識プロセスを停止させる停止要求を送信する音声入力装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置、記録媒体、および音声入力装置に関する。
【背景技術】
【0002】
少子高齢化や働き方改革により、人と対話可能な大量のロボットを安価に提供することが求められている。ロボットが人へ満足度の高い音声対話を提供するには、迅速な応答速度と高精度の認識率が必要となる。この実現のために、ロボットに対してユーザが話しかけた際に音声認識プロセスを起動する方式が考えられる。しかし、音声認識プロセスは、発話による音声を高精度に文字に変換するための容量の大きい言語モデルを有しており、起動に数秒の時間を要してしまう。そのため、ユーザの発話を契機に音声認識プロセスを起動するとユーザの音声認識開始までに待ち時間が発生し、結果的にユーザへの応答が遅延するため、ユーザの満足度が低下する問題を有する。
特許文献1には、音声出力部を備えたコミュニケーションロボットであって、被写体を撮影して撮影画像を生成する撮影部と、前記撮影部によって得られた撮影画像に基づいて、発話対象者を特定する対象者特定手段と、前記コミュニケーションロボットの配置位置周辺の混雑度を判定する混雑度判定手段と、前記混雑度判定手段による判定結果に応じて所定の処理を行うとともに、前記対象者特定手段により特定した前記発話対象者に対する発話データを、前記音声出力部から出力する発話手段と、を備えるコミュニケーションロボットが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-149625号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されている発明では、音声認識プロセスを起動するタイミングに改善の余地がある。
【課題を解決するための手段】
【0005】
本発明の第1の態様による演算装置は、ユーザとの音声対話が発生する可能性を示すリソース制御情報、および音声情報を送信する複数のロボットと通信するサーバ通信部と、前記ロボットから受信する前記音声情報を文字情報に変換する認識プロセスを複数実行可能な音声認識部と、前記ロボットから受信する前記リソース制御情報を用いて前記認識プロセスの起動数を管理し、前記認識プロセスの起動および停止を行うプロセス制御部とを備える。
本発明の第2の態様による記録媒体は、以下のプログラムを記録したコンピュータ読み取り可能な記録媒体であり、プログラムは、ユーザとの音声対話が発生する可能性を示すリソース制御情報、および音声情報を送信する複数のロボットと通信するサーバ通信部を備えるコンピュータに、前記ロボットから受信する前記音声情報を文字情報に変換する認識プロセスを複数実行可能な音声認識処理と、前記ロボットから受信する前記リソース制御情報を用いて前記認識プロセスの起動数を管理し、前記認識プロセスの起動および停止を行うプロセス制御処理と、を実行させる。
本発明の第3の態様による音声入力装置は、受信した音声情報を文字情報に変換する認識プロセスを複数実行可能な音声認識部を備える演算装置と通信可能なロボット通信部と、ユーザとの距離に基づき前記演算装置に前記認識プロセスの起動を要求する起動要求を送信する起動要求部と、前記ユーザの発話を録音し前記音声情報として前記演算装置に送信する送信部と、を備える音声入力装置であって、前記認識プロセスの起動時間、および前記ユーザと当該音声入力装置との相対速度の積を監視距離として算出する距離決定部をさらに備え、前記起動要求部は、前記ユーザと当該音声入力装置との距離が前記監視距離以下の場合に前記起動要求を送信する。
【発明の効果】
【0006】
本発明によれば、ユーザがロボットに近づくと音声認識プロセスが起動されるので、ユーザが発話してから音声認識が開始されるまでの時間を短縮できる。
【図面の簡単な説明】
【0007】
図1】音声認識システムの全体を示す概要図
図2】ロボットの構成図
図3】演算装置と入出力装置の関係を示す図
図4】演算装置の構成を示す図
図5】演算装置を実現するコンピュータのハードウエア構成を示す図
図6】音声認識部の構成の一例を示す図
図7】待機管理テーブルの一例を示す図
図8】数管理テーブルの一例を示す図
図9】割当管理テーブルの一例を示す図
図10】起動要求部の処理を示すフローチャート
図11図10のユーザ検出処理の詳細を示すフローチャート
図12】割当要求部の処理を示すフローチャート
図13】プロセス制御部の処理を示すフローチャート
図14図13のステップS1301において肯定判断される場合に実行される処理を示すフローチャート
図15】プロセス停止部の処理を示すフローチャート
図16】第2の実施の形態におけるロボットの構成図
図17】第2の実施の形態における演算装置の構成図
図18】第3の実施の形態における距離決定部の処理を示すフローチャート
【発明を実施するための形態】
【0008】
―第1の実施の形態―
以下、図1図15を参照して、音声認識システムの第1の実施の形態を説明する。
【0009】
図1は第1の実施の形態における音声認識システムの全体を示す概要図である。音声認識システムSは、複数のロボット200と、後に詳述する音声認識部600を備える演算装置400とを含んで構成される。なお以下では、複数のロボット200のそれぞれを区別するために、枝番を付してロボット200-1、ロボット200-2、などと呼ぶ。ロボット200の数は複数であればよいため、図1では「n」個から構成されるとしてロボット200-nまでを記載している。
【0010】
複数のロボット200のそれぞれは、演算装置400と通信を行う。この通信はたとえば、通信の効率化のためにルータ120により集約されて行われる。ルータ120と演算装置400は、ネットワーク110を介して接続される。ただしルータ120と演算装置400はネットワーク110を介さずに通信を行ってもよい。
【0011】
ロボット200およびルータ120は、テナント100に設置される。テナント100とは、ビルや商業施設などである。演算装置400は、ネットワーク上のクラウド300に設置される。クラウド300とは、ネットワークで接続された1または複数の地点を指す抽象的な概念である。本実施の形態では図1に示す構成を前提として説明するが、ロボット200および演算装置400が同一のロケーション、たとえば同一の建物内や同一の室内に存在してもよい。また、テナント100やクラウド300は単なる例示である。
【0012】
本実施の形態では、ロボット200の周囲に存在する人間を「ユーザ」と呼ぶ。ユーザはロボット200に近づいて発話を行い、ロボット200はユーザの発話に対応する行動を行う。詳述すると、ロボット200はユーザの発話を音声データとして記録し、演算装置400を用いて音声データをテキストデータに変換し、そのテキストデータを解釈することでユーザの発話に対応する行動を行う。
【0013】
図2はロボット200-1の構成図である。ロボット200-1~200-nは同じ構成を有するので、ここでは代表してロボット200-1の構成を説明する。ただし図2では、ハードウエア構成、機能構成、および情報が混在して記載されている。ロボット200-1は、ハードウエア構成として、通信インタフェース部201、距離センサ202、マイク203、およびスピーカー204を備える。ロボット200-1は、機能構成として動作指示解析部205、ロボット動作制御部206、データ送受信部207、距離決定部208、起動要求部209、および割当要求部210を備える。ロボット200-1は、センサ情報211、音声情報212、人歩行速度情報213、およびテナント地図情報214の情報を有する。
【0014】
ロボット200-1のハードウエア構成を説明する。通信インタフェース部201は、演算装置400との通信を行う通信モジュールである。ロボット200-1は距離センサ202を用いて周囲のユーザとの距離情報を取得し、センサ情報211として保存する。距離センサ202はたとえば、奥行き(Depth)情報が付加されたカラー、すなわちRGBの情報である三次元点群を取得するRGB-Dセンサである。ただし距離センサ202はこれに限定されない。また、ロボット内部に含まれるセンサのみに限定されず、例えば外部に設置された監視カメラをセンサとして情報を取得してもよい。
【0015】
マイク203は、ユーザがロボット200-1に対して発話した音声を録音し、音声情報212として保存する。ロボット200-1はデータ送受信部207を介して演算装置400と通信を行い、取得したデータを送信、または演算装置400から送られたデータを受信する。スピーカー204は演算装置400から送られてきた発話音声情報を再生する。以上がロボット200-1のハードウエア構成の説明である。
【0016】
ロボット200-1の機能構成を説明する。ロボット200-1が有する機能である動作指示解析部205、ロボット動作制御部206、データ送受信部207、距離決定部208、起動要求部209、および割当要求部210は、たとえば不図示のROMに格納されるプログラムをRAMに展開して実行することにより実現される。ただしプログラムは、不図示の不揮発性の記憶装置に格納されていてもよい。また、ロボット200-1が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとロボット200-1が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体291、または通信媒体292、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。
【0017】
動作指示解析部205は、演算装置400から送られてきた動作指示を解析してロボット200が解釈できる形式に変換し、ロボット動作制御部206に出力する。ロボット動作制御部206は、受信した動作指示に従った動作、たとえば表情の変更や移動を行う。データ送受信部207は、通信インタフェース部201を利用して演算装置400とのデータの送受信を実現する。距離決定部208は、後述する処理で閾値として用いられる距離である監視距離を決定する。この監視距離は次のように利用される。すなわちユーザがロボット200に対して監視距離よりも近づいた場合に認識プロセス601の起動を開始することで、ユーザが発話を開始した際には即座に音声認識を開始することができる。
【0018】
距離決定部208は、演算装置400から受信する認識プロセス601の起動に必要な時間であるプロセス起動時間と、ユーザとロボット200との相対速度とを用いて、監視距離を算出する。ただし本実施の形態ではロボット200は移動しないので、相対速度の代わりに、予めロボット200に保存される人歩行速度情報213を用いる。たとえば認識プロセス601のプロセス起動時間が5秒、ユーザの歩行速度が1秒あたり1mの場合に、距離決定部208は監視距離を5mと決定する。なお、認識プロセス601の起動必要時間は予めロボットに保存してあったデータを利用してもよい。
【0019】
起動要求部209は、距離決定部208から得られた監視距離と、距離センサ202で取得したロボット200-1から周囲のユーザまでの距離情報とを比較する。起動要求部209は、ロボット200-1から監視距離以内にユーザが侵入したと判断する場合に認識プロセス601の起動要求を演算装置400に送信する。なお起動要求は、ユーザとの音声対話が発生する可能性を示す情報とも呼べる。また、起動要求を受信した演算装置400は認識プロセス601の起動のためにリソースの確保を行うので、起動要求はリソース制御情報とも呼べる。
【0020】
また起動要求部209は、監視距離以内に存在していたユーザがロボット200-1から監視距離よりも遠くに移動したと判断する場合に認識プロセス601の停止要求を演算装置400に送信する。割当要求部210は、ユーザが発話を開始すると認識プロセス601の割当要求を演算装置400に送信し、ユーザの発話が終了すると認識プロセス601の割当解除要求を演算装置400に送信する。以上がロボット200-1の機能構成の説明である。
【0021】
ロボット200-1に格納される情報を説明する。センサ情報211は、距離センサ202を用いて取得された、周囲のユーザとの距離情報である。音声情報212は、マイク203を用いて取得された、ユーザがロボット200-1に対して発話した音声を録音したものである。
【0022】
人歩行速度情報213は、ユーザが歩行する速度の情報であり、予め保存される。人歩行速度情報213は、予め保存してあるデータだけではなく、距離センサ202の出力を解析した結果など、新しく取得した値を利用してもよい。テナント地図情報214は、テナント100における壁、柱、および棚などの固定物の三次元点群の情報である。テナント地図情報214は、起動要求部209がユーザとロボット200との距離を判別する際に利用される。以上がロボット200-1に格納される情報の説明である。
【0023】
図3は演算装置400と入出力装置の関係を示す図である。クラウド300にはネットワーク110に接続される通信インタフェース部301が備えられる。ネットワーク110には入力装置302および出力装置303が接続される。入力装置302はたとえば、キーボード、マウス、タッチパネルなどである。出力装置303はたとえば、液晶ディスプレイである。オペレータは、入力装置302を用いて演算装置400に動作指令を行い、演算装置400による演算の結果を出力装置303を用いて確認できる。
【0024】
図4は演算装置400の構成を示す図である。ただし図4には、演算装置400の機能構成と演算装置400に格納される情報とが示されている。演算装置400はその機能として、サーバ通信部401、音声認識部600、対話処理部403、音声合成部404、指示部405、時間測定部406、プロセス制御部407、プロセス停止部408、タスク受付部409、およびタスク制御部410を備える。演算装置400には、対話定義情報412、動作シナリオ情報413、音声認識処理情報414、および寿命情報415が格納される。
【0025】
演算装置400が有する機能を説明する。サーバ通信部401は通信インタフェース部301及びネットワーク110を介してロボット200と相互に通信を行い、音声データ等をやり取りする。音声認識部600はロボット200から受信したデータを処理し、音声データをテキストデータへ変換する。音声認識部600の詳細な構成については後述する。
【0026】
対話処理部403は対話定義情報412を用いて、音声認識部402によって得られたテキストデータに応答するテキストを出力する。音声合成部404は、対話処理部403によって出力された応答テキストを音声データに変換する。指示部405は、音声合成部404によって生成されたデータ、および動作シナリオ情報413に従ってロボットに発話や動作を実行させる指示を生成する。さらに指示部405は、サーバ通信部401を介してロボット200に対して生成した指示を送信する。
【0027】
時間測定部406は、認識プロセス601に対する起動指示から、認識プロセス601による音声認識処理が処理開始できるまでの時間を測定する。この時間については後に具体例を用いて改めて説明する。時間測定部406はたとえば、何度か測定を行い最長の時間をプロセス起動時間としてロボット200に送信する。なおプロセス起動時間は、時間測定部406が測定する代わりに、演算装置400のオペレータが予め測定した値を入力装置302から入力して用いてもよい。
【0028】
プロセス制御部407はロボット200から受信した認識プロセス601の起動要求、停止要求、割当要求、および割当解除要求にしたがって認識プロセス601を制御する。プロセス制御部407の動作の詳細は後述する。プロセス停止部408は、所定の時間以上停止している認識プロセス601を停止させる。タスク受付部409は、入力装置302を介してロボット200へユーザからの指示を受け付け、タスク制御部410は受け付けた処理を実行する。以上が、演算装置400が有する機能の説明である。
【0029】
演算装置400に格納される情報を説明する。対話定義情報412は、ユーザとロボット200との対話を成立させるための複数組の文章である。対話定義情報412はたとえば質問と回答の組合せであり、演算装置400はユーザの発話する質問に対する回答を出力する。動作シナリオ情報413には、状況ごとにロボット200が行うべき動作が記載されている。動作シナリオ情報413にはたとえば、ユーザが特定の一連の発話を行った場合に、ロボット200が特定の動作、たとえば移動およびあらかじめ定められたポーズをとることが記載される。
【0030】
音声認識処理情報414には待機管理テーブル700、数管理テーブル800、および割当管理テーブル900が格納される。これらのテーブルについては後述する。寿命情報415は、プロセス停止部408が認識プロセス601を停止する際に参照する起動時間のしきい値である。寿命情報415は、管理者により予め登録される。
【0031】
図5は演算装置400を実現するコンピュータ500のハードウエア構成を示す図である。演算装置400は、1または複数のコンピュータ500により構成される。コンピュータ500は、CPU(Central Processing Unit)に代表される演算装置501、RAM(Random Access Memory)等のメモリ502、入力装置503、出力装置504、メモリコントローラ505、およびI/O(Input/Output)コントローラ506を備える。演算装置501、メモリ502、入力装置503、出力装置504、およびI/Oコントローラ506は、メモリコントローラ505を介して相互に接続される。入力装置503はたとえば、キーボード、マウス、タッチパネルなどである。出力装置504はたとえば、外部ディスプレイモニタに接続されたビデオグラフィックカードなどである。
【0032】
コンピュータ500は、演算装置400の各プログラムがI/Oコントローラ506を介してSSDやHDD等の外部記憶装置508から読み出す。そしてこれらのプログラムを演算装置501およびメモリ502が協働して実行することにより、演算装置400の機能が実現される。また、コンピュータ500が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとコンピュータ500が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体591、または通信媒体592、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。
【0033】
図6は音声認識部600の構成の一例を示す図である。音声認識部600は、任意の数の認識プロセス601と、言語モデル602と、ロードバランサ603と、コントローラ604とを備える。コントローラ604は、プロセス制御部407およびプロセス停止部408の動作指示に従って認識プロセス601の起動および停止を実行する。認識プロセス601は、それぞれのロボット200から受信した音声データをテキストデータに変換する処理を行うプロセスの総称である。本実施の形態では個々の認識プロセス601には枝番を付して、認識プロセス601-1、認識プロセス601-2、・・などと呼ぶ。
【0034】
言語モデル602は、音声データをテキストデータに変換するための辞書の役割を有する。ロードバランサ603は、ロボット200から送られてきた音声データを、後述する割当管理テーブル900を参照していずれかの認識プロセス601に送信する。
【0035】
認識プロセス601-1の起動を例に、認識プロセス601を詳しく説明する。コントローラ604は、演算プロセスの起動を指示されると、音声認識処理のプログラムをROMなどから読みこみ、メモリ502に領域を確保して展開し、言語モデル602のマウントや各種の初期化処理を実行して認識プロセス601-1として動作させる。データの読み込みや各種の初期化処理が完了すると、認識プロセス601-1は起動完了となり、任意のロボット200に対して割り当てが可能となる。
【0036】
認識プロセス601-1は、いずれかのロボット200に対して割り当てられるとそのロボット200から出力された音声を受け取り、音声認識処理を実行する。コントローラ604は、後述する処理により認識プロセス601-1を停止させることを決定すると、メモリ502に確保した認識プロセス601-1の領域を解放する。
【0037】
コントローラ604が認識プロセス601の起動指示を受けてから、新たな認識プロセス601の起動が完了するまでの時間が、時間測定部406が計測する時間である。コントローラ604は、再び演算プロセスの起動を指示されると、先ほどと同一の音声認識処理のプログラムを読みこみ、メモリ502の先ほどとは異なる領域に展開し、認識プロセス601-2として動作させる。
【0038】
すなわち認識プロセス601-1、認識プロセス601-2、・・などのそれぞれは、同一のプログラムコードを用いて生成された、音声認識プログラムの異なる実体である。本実施の形態では、それぞれの認識プロセス601には異なるロボット200からの音声データが入力されるので、音声データが入力された後では、それぞれの認識プロセス601のメモリ内の情報は一致しない。
【0039】
認識プロセス601-1は、1台のロボット200から送信された音声データを処理する。認識プロセス601-1は、ある1台のロボット200から送信された音声データの処理が完了すれば、別な1台のロボット200から送信された音声データの処理は可能である。しかし認識プロセス601-1は、同時に2台のロボット200から送信された音声データは処理できない。
【0040】
コントローラ604によるそれぞれの認識プロセス601の起動は、それぞれの認識プロセス601の「生成」とも呼べる。また、コントローラ604によるそれぞれの認識プロセス601の停止は、それぞれの認識プロセス601の「削除」とも呼べる。それぞれの認識プロセス601は、デプロイされたプログラム、インスタンス、プロセス、コンテナ、などとも呼ばれる。認識プロセス601は、Linux(登録商標)のコンテナ技術を用いて実現することもできるし、仮想マシンを用いて実現してもよい。また図6に示す構成は概念的な構成にすぎず、パブリッククラウドのSoftware-as-a-Service(以下、「SaaS」と記載する)を利用して、それぞれの認識プロセス601を個別のインスタンスとして起動してもよい。
【0041】
(データ)
図7は起動中のそれぞれの認識プロセス601を管理する待機管理テーブル700の一例を示す図である。待機管理テーブル700は複数のレコードから構成され、各レコードは処理ID701、ステータス702、および待機時間703のフィールドを有する。処理ID701には、それぞれの認識プロセス601に割り当てられるユニークなIDが格納される。処理ID701に格納する値は、たとえば認識プロセス601がプログラムの実行により実現される場合にそのプロセスのプロセスID番号を用いてもよい。ステータス702には、それぞれの認識プロセス601の割当状況、つまり現時点で音声認識処理に実際に利用されているか否かを示す情報が格納される。
【0042】
プロセス制御部407は、利用可能ないずれかの認識プロセス601を、あるロボット200に占有させるために割当状態に遷移させ、あるロボット200による音声認識処理が不要になると解除状態に遷移させる。待機時間703のフィールドには、それぞれの認識プロセス601において、ステータス702が待機状態に移行してからの経過時間を示す情報が格納される。図7に示す例では、経過時間そのものを待機時間703のフィールドに格納しているが、待機状態に遷移した時刻を格納し、必要な場合に現在時刻と待機時間703のフィールドの値とを比較させてもよい。
【0043】
図8はプロセス制御部407が使用する数管理テーブル800の一例を示す図である。数管理テーブル800は、起動数801、割当数802、および予約数803のフィールドを有するレコードを1つのみ有する。起動数801のフィールドには、現在起動しているそれぞれの認識プロセス601の数が格納される。割当数802のフィールドには、ロボット200から発行された割当要求に従い割り当てられている認識プロセス601の数が格納される。予約数803のフィールドには、まだ認識プロセス601が割り当てられておらず、短時間のうちに音声認識処理が必要になることが想定されるロボット200の数が格納される。
【0044】
なお以下では、”起動数801のフィールドに格納される値”のことを起動数801と呼ぶこともあり、”割当数802のフィールドに格納される値”のことを割当数802と呼ぶこともあり、”予約数803のフィールドに格納される値”のことを予約数803と呼ぶこともある。
【0045】
図9はロボットに対する認識プロセス601の割当情報を管理する割当管理テーブル900の一例を示す図である。割当管理テーブル900は複数のレコードから構成され、各レコードは、割当要求ID901、ロボットID902、および処理ID701のフィールドを有する。処理ID701のフィールドには、図7に例示した待機管理テーブル700の処理ID701と同様の情報が格納されるのでここでは説明を省略する。
【0046】
割当要求ID901には、それぞれのロボット200に対して発話を開始した際に発行される割当要求それぞれに設定されるユニークなIDが格納される。ロボットID902には、ロボット200にそれぞれ設定されるユニークなIDが格納される。プロセス制御部407が割当要求を受信すると、要求元のロボット200と割り当てる認識プロセス601を紐付けて割当要求IDを付与し、割当管理テーブル900に登録する。
【0047】
(ロボットの処理を示すフローチャート)
図10図12を参照してロボット200に共通して備えられる各機能の処理を詳しく説明する。ただし図10図12の説明では、特定のロボット200であるロボット200-1が各フローチャートを実行するとして説明を行う。
【0048】
図10は、ロボット200に備えられる起動要求部209の処理を示すフローチャートである。起動要求部209は、ロボット200-1の起動が完了すると処理を開始する。起動要求部209は、まずステップS1001において、距離決定部208から監視距離の情報、たとえば「5m」を取得する。次にステップS1002では起動要求部209は、距離センサ202により取得された距離情報を取得する。続くステップS1091では、後述するユーザ検出処理により、ステップS1001で取得した監視範囲に存在するユーザを検出する。
【0049】
続くステップS1003では起動要求部209は、ロボット200-1から監視距離の範囲にユーザが存在すると判断する場合にはステップS1004へ進む。起動要求部209は、ロボット200-1から監視距離の範囲にユーザがいないと判断する場合にはステップS1002へ戻る。ステップS1004では起動要求部209は、演算装置400に向けて認識プロセス601の起動要求を送信する。続くステップS1005では起動要求部209は、ステップS1002と同様に距離センサ202により取得された距離情報を取得する。続くステップS1092では起動要求部209は、ステップS1091と同様のユーザ検出処理を行いステップS1006に進む。
【0050】
ステップS1006では起動要求部209は、ロボット200-1から監視距離の範囲にユーザが存在するか否か、換言するとステップS1003において監視範囲内に存在すると判断したユーザが、まだ監視範囲内にとどまっているか否かを判断する。起動要求部209は、ユーザが監視範囲内に存在すると判断する場合はステップS1005に戻り、ユーザが監視範囲内に存在しないと判断する場合はステップS1007に進む。ステップS1007では起動要求部209は、認識プロセス601の停止要求を演算装置400へ送信する。続くステップS1008では起動要求部209は、ロボット200-1が停止処理中であるか否かを判断し、停止処理中であると判断する場合には図10に示す処理を終了し、停止処理中ではないと判断する場合にはステップS1002に戻る。
【0051】
図11は、図10のステップS1091やステップS1092に示したユーザ検出処理の詳細を示すフローチャートである。ステップS1101では起動要求部209は、テナント地図情報214の点群情報を取得する。ステップS1102では起動要求部209は、テナント地図情報214を基に現在のロボット200-1の位置を特定する。なおロボット200-1が移動しない場合は、固定の位置座標を用いてもよい。次にステップS1103では起動要求部209は、距離センサ202で取得した三次元点群情報から監視距離の外側に位置する点群を削除する。
【0052】
続くステップS1104では起動要求部209は、テナント地図情報214と三次元点群情報とを照らし合わせ、壁や柱などの固定物に相当する点群を削除する。ステップS1103およびステップS1104の処理により、ロボット200-1が取得した点群内に含まれる固定物の情報が削除されるため、監視範囲内にユーザが存在する場合にはその点群のみが残る。ステップS1105では起動要求部209は、ステップS1104の処理後に点群が残っていると判断する場合にはステップS1106へ進み、点群が残っていないと判断する場合はステップS1107に進む。
【0053】
ステップS1106では起動要求部209は、監視範囲内にユーザを検出した旨の検出結果を出力して図11に示す処理を終了する。ステップS1107では起動要求部209は、監視範囲内にユーザを検出しなかった旨の検出結果を出力して図11に示す処理を終了する。
【0054】
図12は割当要求部210の処理を示すフローチャートである。割当要求部210は、ユーザの発話開始を検出すると図12に示す処理を実行する。発話の開始はたとえば、マイク203に入力される音の大きさがあらかじめ定めた閾値よりも大きくなったことで検出できる。ステップS1202では起動要求部209は、演算装置400に対して認識プロセス601の割当要求を送る。ステップS1203起動要求部209は、ユーザの対話終了を検知したか否かを判断する。
【0055】
対話終了の検知はたとえば、センサを用いてロボット200-1の正面にいたユーザの移動を検知することや、ユーザの発話終了後に一定時間が経過してもユーザから次の発話がないことの検知で実現できる。起動要求部209はユーザの対話終了を検知したと判断する場合にはステップS1204に進み、ユーザの対話終了を検知していないと判断する場合にはステップS1203に留まる。ステップS1204では起動要求部209は、演算装置400に対して認識プロセス601の割当解除要求を送信する。
【0056】
なおステップS1202およびS1204では、起動要求部209が演算装置400に対して送信する情報には送信元であるロボット200-1を特定可能な情報が含まれている。たとえば通信プロトコルにTCP/IPを用いる場合には、IPパケットのヘッダに含まれる送信元のIPアドレスがロボット200-1を示すものであることにより演算装置400は送信元のロボット200を特定できる。また通信プロトコルに送信者を特定する情報が含まれないCAN(登録商標)などの場合には、ロボット200-1はペイロードにロボット200-1を示す識別子を追加する。
【0057】
(演算装置の処理を示すフローチャート)
図13図15を参照して演算装置400が備える機能の処理を詳しく説明する。ただし図13図15の説明では、割当要求、解除要求、起動要求、および停止要求を送信したロボット200がロボット200-1であるとして説明する。
【0058】
図13および図14は、演算装置400に含まれるプロセス制御部407の処理を示すフローチャートである。演算装置400は、ロボット200-1から何らかの要求、具体的には割当要求、解除要求、起動要求、および停止要求のいずれかを受信すると図13に示す処理を開始する。
【0059】
ステップS1301では演算装置400は、受信した要求が割当要求および解除要求のいずれかであると判断すると、「A」に進み図14に示す処理を実行する。演算装置400は、受信した要求が割当要求および解除要求のいずれでもないと判断する場合はステップS1302に進む。ステップS1302ではプロセス制御部407は、受信した要求が起動要求であるか否かを判断し、起動要求であると判断する場合にはステップS1303に進み、起動要求ではない、すなわち停止要求であると判断する場合はステップS1308に進む。
【0060】
ステップS1303ではプロセス制御部407は、数管理テーブル800を読み込み、次に説明する空処理数を算出する。空処理数とは、起動数801から割当数802および予約数803を引いた値である。図8に示す数管理テーブル800の例では、起動数801が「3」、割当数802が「1」、予約数803が「1」なので、空処理数は、「3」から「2」を引いて「1」となる。続くステップS1304ではプロセス制御部407は、空処理数が1以上であると判断する場合はステップS1305に進み、空処理数がゼロであると判断する場合はステップS1306に進む。ステップS1305ではプロセス制御部407は、数管理テーブル800の予約数803を「1」だけ増やして図13に示す処理を終了する。
【0061】
ステップS1306ではプロセス制御部407は、認識プロセス601を起動し、起動した認識プロセス601の情報を待機管理テーブル700に登録する。続くステップS1307ではプロセス制御部407は、数管理テーブル800の起動数801および予約数803をそれぞれ「1」だけ増やして図13に示す処理を終了する。ステップS1308ではプロセス制御部407は、数管理テーブル800の予約数803を「1」だけ減らして図13に示す処理を終了する。
【0062】
図14は、図13においてステップS1301において肯定判断される場合に実行される「A」の処理を示すフローチャートである。まずステップS1402ではプロセス制御部407は、受信した要求が割当要求であるか否かを判断し、割当要求であると判断する場合にはステップS1403に進み、割当要求ではない、すなわち割当解除要求であると判断する場合はステップS1408に進む。ステップS1403ではプロセス制御部407は、待機管理テーブル700を参照してデータを取得する。
【0063】
続くステップS1404ではプロセス制御部407は、待機管理テーブル700の中から、ステータス702のフィールドの値が「待機」であり、かつ待機時間703のフィールドの値が最も小さい、換言すると待機している時間が最も短いレコードを選択する。そしてプロセス制御部407は、そのレコードのステータス702のフィールドの値を「割当」に変更する。続くステップS1405ではプロセス制御部407は、ステップS1404で選択したレコードの処理ID701の値で特定される認識プロセス601に対して、ロボット200-1から送信された音声情報を送るようにロードバランサ603に指示をする。
【0064】
続くステップS1406ではプロセス制御部407は、割当要求を送信したロボット200-1のロボットIDと、選択した認識プロセス601のIDとを割当管理テーブル900の新たなレコードを追加して記録する。最後にステップS1407においてプロセス制御部407は、数管理テーブル800の割当数802の値を「1」増やし、予約数803を「1」減らして、図14に示す処理を終了する。
【0065】
ステップS1402において否定判断されると実行されるステップS1408ではプロセス制御部407は、割当管理テーブル900において、割当解除要求を送信したロボット200-1のロボットIDが含まれるレコードを特定する。続くステップS1409ではプロセス制御部407は、ステップS1408において特定したレコードにおけるステータス702のフィールドの値を「待機」に変更し、待機時間703のフィールドの値を「0」に変更する。続くステップS1410ではプロセス制御部407は、割当管理テーブル900から該当の登録を削除する。最後にプロセス制御部407は、ステップS1411にて数管理テーブル800の割当数802を「1」減らし、予約数803を「1」増して図14に示す処理を終了する。
【0066】
図15はプロセス停止部408の処理を示すフローチャートである。プロセス停止部408はたとえば、10秒、1分、10分などの所定の時間ごとに、図15に示す処理を実行する。まずステップS1501ではプロセス停止部408は、待機管理テーブル700の全レコードの待機時間703のフィールドの値を読み込む。続くステップS1502ではプロセス停止部408は、ステップS1501で読み込んだレコードのうち、待機時間703のフィールドの値が予め設定された閾値以上の値を有するレコードを特定する。さらにプロセス停止部408は、その特定したレコードに記載された処理ID701で特定される認識プロセス601を停止させる。
【0067】
続くステップS1503ではプロセス停止部408は、ステップS1502において停止させた認識プロセス601の数だけ、数管理テーブル800における起動数801の値を減らす。最後にステップS1504においてプロセス停止部408は、待機管理テーブル700からステップS1502において停止した認識プロセス601が記載されているレコードを削除して図15に示す処理を終了する。
【0068】
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)演算装置400は、ユーザとの音声対話が発生する可能性を示すリソース制御情報、および音声情報を送信する複数のロボット200と通信するサーバ通信部401と、ロボット200から受信する音声情報を文字情報に変換する認識プロセス601を複数実行可能な音声認識部600と、ロボット200から受信するリソース制御情報を用いて認識プロセス601の起動数を管理し、認識プロセス601の起動および停止を行うプロセス制御部407およびプロセス停止部408とを備える。そのため演算装置400は、ユーザがロボット200に近づくと認識プロセス601が起動されるので、ユーザが発話してから認識プロセス601による音声認識が開始されるまでの時間を短縮できる。
【0069】
本実施の形態で説明したように、監視距離は人間の歩行速度を用いて決定しているので、ほとんどのケースでユーザがロボット200の近くに到着した際には認識プロセス601の起動は完了している。しかし途中からユーザがロボット200に走って近づいた場合や、ユーザが遠くからロボット200に対して発話を行った場合には、発話が行われるタイミングでは認識プロセス601が起動中である可能性もある。しかしそのような場合であっても、すでに認識プロセス601の起動は開始されているので、ユーザが発話してから認識プロセス601による音声認識が開始されるまでの時間を短縮できる効果を有する。
【0070】
なお、ユーザの存在有無にかかわらず認識プロセス601を予め起動しておき、音声情報を受信すると即座に音声認識処理を開始しつつ新たな認識プロセス601をさらに起動する手法も考えられる。しかしこの場合は、少なくとも1つの認識プロセス601を常にアイドル状態で起動するのでリソースの浪費となる。認識プロセス601を実行するコンピュータ500が、認識プロセス601以外のアプリケーションにも利用している場合にはそのアプリケーションが利用可能なリソースを減少させるデメリットがある。また認識プロセス601がSaaSを利用している場合には、アイドル状態で待機させる認識プロセス601の利用料金が余計な支出となるデメリットがある。そのため、このようなデメリットが生じない本実施の形態の手法に優位性がある。
【0071】
(2)リソース制御情報には、ロボット200がユーザとの距離に基づき出力する認識プロセスの起動要求が含まれる。プロセス制御部407は、ロボットが送信する起動要求に基づき認識プロセス601を起動し、起動した認識プロセス601をロボット200に割当てることでロボットが送信する音声情報を文字情報に変換する。そのため、すでに起動している認識プロセス601をロボット200-1に割り当てることができるので、ユーザが監視距離のそばなどロボット200-1から離れた位置から発話した場合にも、即座に音声認識処理を開始することができる。
【0072】
(3)プロセス制御部407は、ロボット200-1から認識プロセス601の割当要求を受信した場合に(図14のS1402:YES)、ステップS1403~S1407の処理によりロボット200-1に認識プロセス601を割り当てる。これは割当管理テーブル900を用いて管理される。
【0073】
(4)プロセス停止部408は、ロボット200-1から認識プロセス601の割当解除要求を受信した場合に(図14のS1402:NO)、ステップS1408~S1411の処理によりロボット200-1に対する認識プロセス601の割当を解除する。
【0074】
(5)音声入力装置でもあるそれぞれのロボット200は、受信した音声情報を文字情報に変換する認識プロセス601を複数実行可能な音声認識部600を備える演算装置400と通信可能なデータ送受信部207と、ユーザとの距離に基づき演算装置400に認識プロセス601の起動を要求する起動要求を送信する起動要求部209と、ユーザの発話を録音し音声情報として演算装置400に送信するデータ送受信部207と、を備える。
【0075】
(6)ロボット200-1は、認識プロセス601の起動時間、およびユーザとロボット200-1との相対速度の積を監視距離として算出する距離決定部208を備える。ただし本実施の形態ではロボット200は移動しないので、相対速度の代わりに、予めロボット200に保存される人歩行速度情報213を用いる。起動要求部209は、図10のステップS1091、S1003、S1004に示すように、ユーザとロボット200-1との距離が監視距離以下の場合に起動要求を送信する。そのため、ユーザがロボット200-1に到達するときには認識プロセス601の起動が完了しており、即座に音声認識が開始できる。
【0076】
(7)ロボット200-1の起動要求部209は、ステップS1092、S1006、S1007に示すように、ユーザとロボット200-1との距離が監視距離よりも遠くなると認識プロセス601を停止させる停止要求を送信する。そのため演算装置400において認識プロセス601のために用いるリソースを適切に節約できる。
【0077】
(変形例1)
上述した第1の実施の形態では、それぞれのロボット200が演算装置400に対して割当要求および割当解除要求を送信した。しかしそれぞれのロボット200は、割当要求および割当解除要求の少なくとも一方を送信しなくてもよい。ロボット200が割当要求を送信しない場合には、演算装置400はロボット200から音声情報を送信するたびに割当管理テーブル900を参照し、音声情報を送信したロボット200への認識プロセスの割当の有無を判断する。そして演算装置400は、音声情報を送信したロボット200に認識プロセスが割り当てられていないと判断する場合には、割当要求を受信した場合と同様の処理を行う。
【0078】
ロボット200が割当解除要求を送信しない場合には、演算装置400は次の処理を行う。すなわち演算装置400は割当管理テーブル900を参照し、認識プロセス601が割り当てられており、かつ所定時間より長く音声情報を送信していないロボット200を特定して、そのロボット200に対する認識プロセス601の割り当てを解除する。
【0079】
この変形例1によれば、次の作用効果が得られる。
(8)プロセス制御部407は、認識プロセス601が割り当てられていないロボット200から音声情報を受信した場合にロボットに認識プロセスを割り当てる。そのため演算装置400は自発的に認識プロセス601の割り当てを実行することで、ロボット200の処理負荷を下げることができる。
【0080】
(9)プロセス制御部407は、認識プロセス601が割り当てられたロボット200から所定時間より長く音声情報を受信しない場合にロボットに対する認識プロセスの割当を解除する。そのため演算装置400は自発的に認識プロセス601の割り当てを解除することで、ロボット200の処理負荷を下げることができる。
【0081】
(変形例2)
上述した第1の実施の形態では、演算装置400はそれぞれのロボット200に対して1つの認識プロセスのみを割当てた。しかし演算装置400は、それぞれのロボット200に対して複数の認識プロセスを割当てもよい。この場合にはそれぞれのロボット200は、そのロボット200から監視距離以内に存在するユーザの数に応じて起動要求を送信する。ロボット200は、音声が発せられる方向ごとに一意な識別子を付して音声情報を演算装置400に出力してもよい。
【0082】
たとえばロボット200-1は、左方向と右方向からそれぞれ音声が発せられると、左方向からの音声の音声情報には識別子として「200-1L」を付し、右方向からの音声の音声情報には識別子として「200-1R」を付して送信する。演算装置400は、「200-1L」と「200-1R」の識別子が付された音声情報を、それぞれ異なる認識プロセス601に割り振られるようにロードバランサ603に設定する。この変形例2によれば、それぞれのロボット200が複数のユーザから同時に話しかけられた場合にも即座に対応できる利点を有する。
【0083】
(変形例3)
上述した第1の実施の形態では、演算装置400はロボット200から認識プロセス601の停止要求を受けた場合に、図13のステップS1308に示すように予約数803を減少させるのみで認識プロセス601の停止は行わなかった。しかし演算装置400のプロセス停止部408は、ロボット200から認識プロセス601の停止要求を受けた場合に認識プロセス601を停止させてもよい。この場合にプロセス停止部408は、待機管理テーブル700を参照して待機時間703が最も長い認識プロセス601を停止させることが望ましい。
【0084】
この変形例3によれば、次の作用効果が得られる。
(10)プロセス停止部408は、ロボット200から認識プロセス601を停止する要求を受信した場合に認識プロセス601を停止する。そのため、不要な認識プロセス601を早期に停止させてリソースをさらに節約できる。
【0085】
―第2の実施の形態―
図16図17を参照して、認識システムの第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、ロボットがセンサ情報をそのまま演算装置に送信する点で、第1の実施の形態と異なる。第2の実施の形態における音声認識システムのハードウエア構成は第1の実施の形態と同様なので説明を省略する。
【0086】
図16は第2の実施の形態におけるロボット200-1の構成図であり、第1の実施の形態における図2に対応する。図16に示す構成は、第1の実施の形態に比べて距離決定部208、起動要求部209、および割当要求部210が含まれない点が異なる。
【0087】
図17は第2の実施の形態における演算装置400の構成図であり、第1の実施の形態における図4に対応する。図17に示す構成は、第1の実施の形態に比べて、距離決定部208、起動要求部209、割当要求部210、およびテナント地図情報214をさらに含む点が異なる。
【0088】
本実施の形態ではロボット200のそれぞれは、センサ情報をそのまま演算装置400に送信する。センサ情報を受信した演算装置400は、第1の実施の形態と同様に距離決定部208、起動要求部209、および割当要求部210を動作させることで、認識プロセス601の管理を行う。すなわち第2の実施の形態では、演算装置400は受信するセンサ情報を用いて認識プロセス601を制御するので、センサ情報を「リソース制御情報」と呼ぶことができる。
【0089】
上述した第2の実施の形態によれば、次の作用効果が得られる。
(11)リソース制御情報には、ロボットに搭載されるセンサの出力であるセンサ情報が含まれる。プロセス制御部407は、センサ情報を用いてロボット200から所定の監視距離以内に音声を発話するユーザが存在すると判断する場合に認識プロセス601を起動する。そのため、第1の実施の形態に比べてロボット200の処理負荷を軽減でき、リソースが少なく演算能力が低いハードウエアでも認識システムに用いることができる。
【0090】
(12)リソース制御情報には、ロボット200に搭載されるセンサの出力であるセンサ情報が含まれる。プロセス制御部407は、ロボット200から所定の監視距離以内に存在していたユーザが、監視距離よりも遠くに移動したことをセンサ情報を用いて判断する場合に認識プロセスを停止する。そのため、第1の実施の形態に比べてロボット200の処理負荷を軽減でき、リソースが少なく演算能力が低いハードウエアでも認識システムに用いることができる。
【0091】
(第2の実施の形態の変形例)
ロボット200-1のプロセス停止部408は、センサ情報を用いてユーザとロボット200-1との距離が、監視距離よりも遠い停止距離よりも遠いと判断する場合に認識プロセス601を停止してもよい。たとえば監視距離が10m、停止距離が15mの場合に、ユーザが遠方からロボット200-1に近づき、10m以内になると1つの認識プロセス601が新たに起動され、そのユーザが15mよりも遠くに移動すると1つの認識プロセス601が停止される。このとき停止される認識プロセス601は、待機時間が最も長い認識プロセス601である。
【0092】
―第3の実施の形態―
図18を参照して、認識システムの第3の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、ロボットが移動する点で、第1の実施の形態と異なる。
【0093】
音声認識システムSのハードウエア構成および機能構成は、距離決定部208を除いて第1の実施の形態と同様である。そのため距離決定部208の動作のみを説明する。
【0094】
図18は、第3の実施の形態における距離決定部208の処理を示すフローチャートである。以下では、ロボット200-1が実行する距離決定部208の処理を説明する。ステップS1801では距離決定部208は、予め保存されている情報である人歩行速度情報213を読み込む。続くステップS1802では距離決定部208は、演算装置400からプロセス起動時間の情報を取得する。続くステップS1803では距離決定部208は、監視距離算出要求が発生した時点でのロボット200-1の移動速度を算出する。ロボット200-1の移動速度の算出は様々な手段を利用できるが、一例を挙げるとロボット200-1に付随する車輪の回転速度から算出することができる。
【0095】
ステップS1804では距離決定部208は、プロセス起動時間、人歩行速度、およびロボット移動速度を用いて監視距離を算出する。プロセス起動時間が5秒、人歩行速度が毎秒1m、ロボット移動速度が毎秒0.5mだった場合は、(1m毎秒+0.5m毎秒)×5秒となり、監視距離は7.5mとなる。ただしこの場合に、ユーザおよびロボット200-1の進行方向を考慮して両者のベクトル和を相対速度としてもよいし、計算を簡略化し、かつ認識プロセス601の起動遅れを防止するために、両者の進行方向を考慮せずに両者の速度の和を相対速度としてもよい。
【0096】
上述した第3の実施の形態によれば、次の作用効果が得られる。
(13)ロボット200-1は、認識プロセス601の起動時間、およびユーザとロボット200-1との相対速度の積を監視距離として算出する距離決定部208を備える。そのため、それぞれのロボット200の移動速度を考慮することにより、それぞれのロボット200が移動している場合でもユーザが発話する時点で音声認識処理を起動完了状態にすることができる。
【0097】
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。特にプロセス制御部407およびプロセス停止部408は、両者の機能を併せ持つ1つの機能ブロックに統合してもよい。
【0098】
上述した各実施の形態および変形例において、ロボットおよび演算装置が実行するプログラムは不図示のROMに格納されるとしたが、プログラムは不揮発性の記憶領域に格納されていてもよい。また、ロボットおよび演算装置が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとロボットおよび演算装置が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
【0099】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0100】
200…ロボット
208…距離決定部
209…起動要求部
210…割当要求部
213…人歩行速度情報
400…演算装置
401…サーバ通信部
402…音声認識部
407…プロセス制御部
408…プロセス停止部
601…認識プロセス
700…待機管理テーブル
800…数管理テーブル
900…割当管理テーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18