(57)【要約】【課題】フィラー及び間を考慮した言語解析を実現する。【解決手段】ユーザが発した音声に対応する音声信号を処理する計算機であって、計算機は、音声信号を複数の文字列から構成されるテキストに変換し、発話継続文字列が変換されたテキストに含まれるか否かを判定し、発話継続文字列が変換されたテキストに含まれる場合、記憶装置に変換されたテキストを蓄積し、発話継続文字列が変換されたテキストに含まれないと判定された場合、一つ以上の変換されたテキストを用いて出力テキストを生成し、出力テキストに基づいて、音声信号に対応する音声を発したユーザの発話意図を特定し、ユーザの発話に対する応答を行う装置に、特定されたユーザの発話意図を示す情報を送信する。【選択図】図１
2019109424.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが発した音声に対応する音声信号を処理する計算機であって、
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信インタフェースを備え、
前記演算装置は、
前記通信インタフェースを介して前記音声信号を受信し、
前記受信した音声信号を複数の文字列から構成されるテキストに変換し、
前記変換されたテキストを解析することによって、前記ユーザの発話が継続中であることを示す発話継続文字列が前記変換されたテキストに含まれるか否かを判定し、
前記発話継続文字列が前記変換されたテキストに含まれると判定された場合、前記記憶装置に前記変換されたテキストを蓄積し、
前記発話継続文字列が前記変換されたテキストに含まれないと判定された場合、一つ以上の前記変換されたテキストを用いて出力テキストを生成し、
前記出力テキストに基づいて、前記受信した音声信号に対応する音声を発した前記ユーザの発話意図を特定し、
前記ユーザの発話に対する応答を行う装置に、前記特定されたユーザの発話意図を示す情報を送信することを特徴とする計算機。
【請求項２】
請求項１に記載の計算機であって、
前記計算機は、前記発話継続文字列を管理するための発話継続文字列情報を保持し、
前記演算装置は、
前記発話継続文字列情報を参照して、前記変換されたテキストの末尾に前記発話継続文字列が存在するか否かを判定し、
前記変換されたテキストの末尾に前記発話継続文字列が存在すると判定された場合、前記記憶装置に前記変換されたテキストを蓄積することを特徴とする計算機。
【請求項３】
請求項１に記載の計算機であって、
前記計算機は、前記発話継続文字列を管理するための発話継続文字列情報を保持し、
前記発話継続文字列情報は、前記発話継続文字列及びテキストにおける前記発話継続文字列の出現位置から構成されるエントリを複数含み、
前記演算装置は、
前記発話継続文字列情報を参照して、前記変換されたテキストに前記発話継続文字列が含まれるか否かを判定し、
前記変換されたテキストに前記発話継続文字列が含まれると判定された場合、前記変換されたテキストに含まれる前記発話継続文字列の前記変換されたテキスト中の位置が、当該発話継続文字列に対応するエントリに設定される出現位置に一致するか否かを判定し、
前記変換されたテキストに含まれる前記発話継続文字列の前記変換されたテキスト中の位置が、当該発話継続文字列に対応するエントリに設定される出現位置に一致すると判定された場合、前記記憶装置に前記変換されたテキストを蓄積することを特徴とする計算機。
【請求項４】
請求項１に記載の計算機であって、
前記演算装置は、
前記記憶装置に前記変換されたテキストを蓄積した後、待ち時間を計測するタイマが起動中か否かを判定し、
前記タイマが起動中でないと判定された場合、前記タイマを起動し、
前記タイマが起動中であると判定された場合、前記待ち時間が閾値より大きいか否かを判定し、
前記待ち時間が閾値以下であると判定された場合、前記待ち時間を初期化して、前記待ち時間の計測を継続し、
前記待ち時間が閾値より大きいと判定された場合、前記出力テキストを生成することを特徴とする計算機。
【請求項５】
請求項１に記載の計算機であって、
前記演算装置は、
前記記憶装置に複数の前記変換されたテキストが格納される場合、前記複数の変換されたテキストから前記発話継続文字列を削除し、結合することによって前記出力テキストを生成し、
前記記憶装置に一つの前記変換されたテキストが格納される場合、前記一つの変換されたテキストを前記出力テキストとして生成することを特徴とする計算機。
【請求項６】
ユーザが発した音声に対応する音声信号を処理する計算機が実行する言語解析方法であって、
前記計算機は、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信インタフェースを備え、
前記言語解析方法は、
前記演算装置が、前記通信インタフェースを介して前記音声信号を受信し、前記受信した音声信号を複数の文字列から構成されるテキストに変換する第１のステップと、
前記演算装置が、前記変換されたテキストを解析することによって、前記ユーザの発話が継続中であることを示す発話継続文字列が前記変換されたテキストに含まれるか否かを判定する第２のステップと、
前記演算装置が、前記発話継続文字列が前記変換されたテキストに含まれると判定した場合、前記記憶装置に前記変換されたテキストを蓄積する第３のステップと、
前記演算装置が、前記発話継続文字列が前記変換されたテキストに含まれないと判定した場合、一つ以上の前記変換されたテキストを用いて出力テキストを生成する第４のステップと、
前記演算装置が、前記出力テキストに基づいて、前記受信した音声信号に対応する音声を発した前記ユーザの発話意図を特定する第５のステップと、
前記演算装置が、前記ユーザの発話に対する応答を行う装置に、前記特定されたユーザの発話意図を示す情報を送信する第６のステップと、を含むことを特徴とする言語解析方法。
【請求項７】
請求項６に記載の言語解析方法であって、
前記計算機は、前記発話継続文字列を管理するための発話継続文字列情報を保持し、
前記第２のステップは、前記演算装置が、前記発話継続文字列情報を参照して、前記変換されたテキストの末尾に前記発話継続文字列が存在するか否かを判定するステップを含み、
前記第３のステップでは、前記演算装置が、前記変換されたテキストの末尾に前記発話継続文字列が存在すると判定した場合、前記記憶装置に前記変換されたテキストを蓄積することを特徴とする言語解析方法。
【請求項８】
請求項６に記載の言語解析方法であって、
前記計算機は、前記発話継続文字列を管理するための発話継続文字列情報を保持し、
前記発話継続文字列情報は、前記発話継続文字列及びテキストにおける前記発話継続文字列の出現位置から構成されるエントリを複数含み、
前記第２のステップは、
前記演算装置が、前記発話継続文字列情報を参照して、前記変換されたテキストに前記発話継続文字列が含まれるか否かを判定するステップと、
前記演算装置が、前記変換されたテキストに前記発話継続文字列が含まれると判定した場合、前記変換されたテキストに含まれる前記発話継続文字列の前記変換されたテキスト中の位置が、当該発話継続文字列に対応するエントリに設定される出現位置に一致するか否かを判定するステップと、を含み、
前記第３のステップでは、前記演算装置が、前記変換されたテキストに含まれる前記発話継続文字列の前記変換されたテキスト中の位置が、当該発話継続文字列に対応するエントリに設定される出現位置に一致すると判定した場合、前記記憶装置に前記変換されたテキストを蓄積することを特徴とする言語解析方法。
【請求項９】
請求項６に記載の言語解析方法であって、
前記第３のステップは、
前記演算装置が、前記記憶装置に前記変換されたテキストを蓄積した後に、待ち時間を計測するタイマが起動中か否かを判定するステップと、
前記タイマが起動中でないと判定された場合、前記演算装置が、前記タイマを起動するステップと、
前記タイマが起動中であると判定された場合、前記演算装置が、前記待ち時間が閾値より大きいか否かを判定するステップと、
前記待ち時間が閾値以下であると判定された場合、前記演算装置が、前記待ち時間を初期化して、前記待ち時間の計測を継続するステップと、
前記待ち時間が閾値より大きいと判定された場合、前記演算装置が、前記出力テキストを生成するステップと、を含むことを特徴とする言語解析方法。
【請求項１０】
請求項６に記載の言語解析方法であって、
前記第４のステップは、
前記記憶装置に複数の前記変換されたテキストが格納される場合、前記演算装置が、前記複数の変換されたテキストから前記発話継続文字列を削除し、結合することによって前記出力テキストを生成するステップと、
前記記憶装置に一つの前記変換されたテキストが格納される場合、前記演算装置が、前記一つの変換されたテキストを前記出力テキストとして生成するステップと、を含むことを特徴とする言語解析方法。
【請求項１１】
ユーザが発した音声に対応する音声信号を処理する計算機に実行させるためのプログラムであって、
前記計算機は、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信インタフェースを備え、
前記プログラムは、
前記通信インタフェースを介して前記音声信号を受信し、前記受信した音声信号を複数の文字列から構成されるテキストに変換する第１の手順と、
前記変換されたテキストを解析することによって、前記ユーザの発話が継続中であることを示す発話継続文字列が前記変換されたテキストに含まれるか否かを判定する第２の手順と、
前記発話継続文字列が前記変換されたテキストに含まれると判定された場合、前記記憶装置に前記変換されたテキストを蓄積する第３の手順と、
前記発話継続文字列が前記変換されたテキストに含まれないと判定された場合、一つ以上の前記変換されたテキストを用いて出力テキストを生成する第４の手順と、
前記出力テキストに基づいて、前記受信した音声信号に対応する音声を発した前記ユーザの発話意図を特定する第５の手順と、
前記ユーザの発話に対する応答を行う装置に、前記特定されたユーザの発話意図を示す情報を送信する第６の手順と、を前記計算機に実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムであって、
前記計算機は、前記発話継続文字列を管理するための発話継続文字列情報を保持し、
前記第２の手順は、前記発話継続文字列情報を参照して、前記変換されたテキストの末尾に前記発話継続文字列が存在するか否かを判定する手順を含み、
前記第３の手順では、前記変換されたテキストの末尾に前記発話継続文字列が存在すると判定された場合、前記記憶装置に前記変換されたテキストを蓄積させることを特徴とするプログラム。
【請求項１３】
請求項１１に記載のプログラムであって、
前記計算機は、前記発話継続文字列を管理するための発話継続文字列情報を保持し、
前記発話継続文字列情報は、前記発話継続文字列及びテキストにおける前記発話継続文字列の出現位置から構成されるエントリを複数含み、
前記第２の手順は、
前記発話継続文字列情報を参照して、前記変換されたテキストに前記発話継続文字列が含まれるか否かを判定する手順と、
前記変換されたテキストに前記発話継続文字列が含まれると判定された場合、前記テキストに含まれる前記発話継続文字列の前記変換されたテキスト中の位置が、当該発話継続文字列に対応するエントリに設定される出現位置に一致するか否かを判定する手順と、を含み、
前記第３の手順では、前記変換されたテキストに含まれる前記発話継続文字列の前記変換されたテキスト中の位置が、当該発話継続文字列に対応するエントリに設定される出現位置に一致すると判定された場合、前記記憶装置に前記変換されたテキストを蓄積することを特徴とするプログラム。
【請求項１４】
請求項１１に記載のプログラムであって、
前記第３の手順は、
前記記憶装置に前記変換されたテキストを蓄積した後に、待ち時間を計測するタイマが起動中か否かを判定する手順と、
前記タイマが起動中でないと判定された場合、前記タイマを起動する手順と、
前記タイマが起動中であると判定された場合、前記待ち時間が閾値より大きいか否かを判定する手順と、
前記待ち時間が閾値以下であると判定された場合、前記待ち時間を初期化して、前記待ち時間の計測を継続する手順と、
前記待ち時間が閾値より大きいと判定された場合、前記出力テキストを生成する手順と、を含むことを特徴とするプログラム。
【請求項１５】
請求項１１に記載のプログラムであって、
前記第４の手順は、
前記記憶装置に複数の前記変換されたテキストが格納される場合、前記複数の変換されたテキストから前記発話継続文字列を削除し、結合することによって前記出力テキストを生成する手順と、
前記記憶装置に一つの前記変換されたテキストが格納される場合、前記一つの変換されたテキストを前記出力テキストとして生成する手順と、を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが発した音声（言語）を解析し、解析結果に基づいてユーザに対する応答を行う計算機システムに関する。
【背景技術】
【０００２】
近年、施設に設置されたロボット等の対話装置を活用した技術が注目されている。対話装置は、ユーザが発した音声の情報（音声信号）を取得し、音声信号を解析することによってユーザの発話意図を特定する。また、対話装置は、発話意図に応じてユーザに対するコミュニケーションを行い、又は、ユーザに対してサービスを提供する。
【０００３】
サービスの提供又はコミュニケーションを適切に行うためには、ユーザの発話意図を正確に特定する必要がある。ユーザの発話意図を理解する方法として、例えば、特許文献１及び特許文献２に記載の技術が知られている。
【０００４】
特許文献１には、「音声処理装置は、音声信号を取得する音声入力部と、音声入力部によって取得された音声信号に対して音声認識を行う音声認識部と、音声認識部によって認識された認識結果に基づいて、利用者の意図を理解する意図理解部と、意図理解部によって理解された理解結果に基づいて利用者に対して質問を行う質問部と、を備え、質問部は、理解結果と所定の優先度に応じて利用者に対する質問内容を変更する。」ことが記載されている。
【０００５】
特許文献２には、「解析可能な単位の自然言語文の一部が入力するごとに、各解析処理部で逐次的かつ並列的に解析処理を実行する逐次解析処理部１０と、逐次解析処理部の各解析処理部での解析結果に基づいて、対話応答文などの出力を得る出力部３、４とを備える。逐次解析処理部に用意された各処理部は、自らの処理部での直前又はそれより前の過去の解析結果と、他の処理部での直前又はそれより前の過去の解析結果とを取得し、取得した解析結果を参照しながら先読みをしつつ解析結果を得る。」ことが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−５８５４５号公報
【特許文献２】特開２０１７−１０２７７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１及び特許文献２に記載の技術では、ユーザの発話におけるフィラー及び間が考慮されていない。フィラー及び間が含まれる発話が行われた場合、対話装置は発話の区切れを正しく認識できない。すなわち、処理単位の音声信号（文字列）を特定できない。したがって、フィラー及び間を含む発話が行われた場合、従来の対話装置はユーザの発話意図を正確に特定できない。
【０００８】
本発明は、適切なサービスの提供又はコミュニケーションを行うために、フィラー及び間を考慮した言語解析を実現する装置、方法、及びプログラムを提供する。
【課題を解決するための手段】
【０００９】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ユーザが発した音声に対応する音声信号を処理する計算機であって、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信インタフェースを備え、前記演算装置は、前記通信インタフェースを介して前記音声信号を受信し、前記受信した音声信号を複数の文字列から構成されるテキストに変換し、前記変換されたテキストを解析することによって、前記ユーザの発話が継続中であることを示す発話継続文字列が前記変換されたテキストに含まれるか否かを判定し、前記発話継続文字列が前記変換されたテキストに含まれると判定された場合、前記記憶装置に前記変換されたテキストを蓄積し、前記発話継続文字列が前記変換されたテキストに含まれないと判定された場合、一つ以上の前記変換されたテキストを用いて出力テキストを生成し、前記出力テキストに基づいて、前記受信した音声信号に対応する音声を発した前記ユーザの発話意図を特定し、前記ユーザの発話に対する応答を行う装置に、前記特定されたユーザの発話意図を示す情報を送信することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、フィラー及び間を考慮した言語解析を実現できる。したがって、適切にユーザの発話意図を特定し、サービスの提供又はコミュニケーションを行うことが可能となる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】実施例１の計算機システムの構成例を示す図である。
【図２】実施例１の計算機のハードウェア構成の一例を示す図である。
【図３Ａ】実施例１の計算機が保持する発話継続文字列情報のデータ構造の一例を示す図である。
【図３Ｂ】実施例１の計算機が保持する発話継続文字列情報のデータ構造の一例を示す図である。
【図４】実施例１の計算機が保持する意図理解情報のデータ構造の一例を示す図である。
【図５】実施例１の計算機が保持する回答生成情報のデータ構造の一例を示す図である。
【図６】実施例１のテキスト送信判定部が実行する処理の一例を説明するフローチャートである。
【図７Ａ】実施例１の計算機システムにおける処理の流れの一例を示すシーケンス図である。
【図７Ｂ】実施例１の計算機システムにおける処理の流れの一例を示すシーケンス図である。
【図８】実施例２のテキスト送信判定部が実行する処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１３】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【００１４】
本明細書等における「第１」、「第２」、「第３」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【００１５】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例１】
【００１６】
図１は、実施例１の計算機システムの構成例を示す図である。
【００１７】
計算機システムは、計算機１００、通信装置１０１、及び対話装置１０２から構成される。計算機１００及び通信装置１０１は、ネットワーク１０５を介して互いに接続される。また、通信装置１０１及び対話装置１０２は、図示しない無線ネットワークを介して互いに接続される。なお、通信装置１０１及び対話装置１０２は、有線ネットワークを介して接続されてもよい。
【００１８】
なお、ネットワーク１０５は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等であり、接続方式は無線及び有線のいずれでもよい。
【００１９】
対話装置１０２は、ユーザ１０３とコミュニケーションを行う装置である。対話装置１０２は、例えば、ロボット及びタブレット端末等である。対話装置１０２は、ユーザ１０３が発する音声を取得する音声取得装置（図示省略）、ユーザ１０３に対して音声を出力する音声出力装置（図示省略）、及び通信装置１０１と通信するためのネットワークインタフェース（図示省略）を有する。
【００２０】
通信装置１０１は、計算機１００及び対話装置１０２の間の通信を制御する装置である。通信装置１０１は、例えば、ルータ及びゲートウェイ装置等である。
【００２１】
計算機１００は、ユーザ１０３の発話意図を特定し、発話意図に沿ったコミュニケーションを行うための情報（テキスト）を生成する。計算機１００のハードウェア構成は図２を用いて説明する。ここで、テキストは一つ以上の文字列から構成されるデータである。
【００２２】
計算機１００は、音声処理部１１０及び言語処理部１１１を有する。また、計算機１００は、発話継続文字列情報１３０、意図理解情報１３１、及び回答生成情報１３２を保持する。
【００２３】
発話継続文字列情報１３０は、発話継続文字列を管理するための情報である。ここで、発話継続文字列は、フィラー及び間を含む発話を検知するための文字列である。後述するように、計算機１００は、テキスト中の発話継続文字列の有無に基づいて、ユーザ１０３の発話が継続しているか否かを判定する。発話継続文字列情報１３０のデータ構造は図３Ａ及び図３Ｂを用いて説明する。
【００２４】
意図理解情報１３１は、ユーザ１０３の発話意図を特定するための情報である。意図理解情報１３１のデータ構造は図４を用いて説明する。
【００２５】
回答生成情報１３２は、ユーザ１０３の発話に対する回答を生成するための情報である。回答生成情報１３２のデータ構造は図５を用いて説明する。
【００２６】
音声処理部１１０は、ユーザ１０３が発した音声に対応する音声信号をテキストに変換し、また、計算機１００が生成したテキストを音声信号に変換する。
【００２７】
言語処理部１１１は、テキストの解析結果に基づいてユーザ１０３の発話意図を特定し、また、ユーザ１０３に対する回答を音声として対話装置１０２から出力するための回答テキストを生成する。言語処理部１１１は、テキスト受信部１２０、テキスト送信判定部１２１、意図理解部１２２、及び回答生成部１２３を含む。
【００２８】
テキスト受信部１２０は、音声処理部１１０が送信したテキストを受信し、テキスト送信判定部１２１に受信したテキストを送信する。
【００２９】
テキスト送信判定部１２１は、テキスト受信部１２０からテキストを受信した場合、受信したテキストを解析し、発話継続文字列情報１３０及び解析結果に基づいて意図理解部１２２へのテキストの送信タイミングを判定する。また、テキスト送信判定部１２１は、意図理解部１２２にテキストを送信する場合、意図理解処理が処理する一つのまとまった音声に対応する出力テキストを生成し、当該出力テキストを意図理解部１２２に送信する。
【００３０】
意図理解部１２２は、テキスト送信判定部１２１から受信した出力テキスト及び意図理解情報１３１に基づいて、ユーザ１０３の発話意図を特定するための意図理解処理を実行する。意図理解部１２２は、処理結果として、ユーザ１０３の発話意図を示す意図情報（図４参照）を回答生成部１２３に送信する。
【００３１】
回答生成部１２３は、意図理解部１２２から送信された意図情報に基づいて回答生成情報１３２を参照し、対話装置１０２が出力する回答の回答テキストを生成する。
【００３２】
本実施例の計算機システムは、ユーザ１０３の発話に対する応答として、回答（音声）を出力する。これによって、ユーザ１０３と対話装置１０２との間でコミュニケーションが行われる。なお、ユーザ１０３の発話に対する応答はこれに限定されず、映像及び音楽等の再生、商品の提供、並びに行動の補助等、様々なものが考えられる。
【００３３】
なお、複数の計算機１００に各機能部を配置してもよい。例えば、音声処理部１１０、テキスト受信部１２０、テキスト送信判定部１２１、意図理解部１２２を有する第１計算機と、回答生成部１２３を有する第２計算機とから構成される計算機システムでもよい。また、計算機１００が有する情報は、複数の計算機がアクセス可能なストレージシステムに格納してよい。
【００３４】
なお、計算機１００が有する各機能部は、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【００３５】
図２は、実施例１の計算機１００のハードウェア構成の一例を示す図である。
【００３６】
計算機１００は、プロセッサ２００、メモリ２０１、及びネットワークインタフェース２０２を有する。各ハードウェア構成は、内部バスを介して互いに接続される。なお、計算機１００は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置を有してもよい。また、計算機１００は、キーボード、マウス、及びタッチパネル等の入力装置、並びに、ディスプレイ等の出力装置を有してもよい。
【００３７】
プロセッサ２００は、演算装置であり、メモリ２０１に格納されるプログラムを実行する。プロセッサ２００がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部（モジュール）として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ２００が当該機能部を実現するプログラムを実行していることを示す。
【００３８】
メモリ２０１は、記憶装置であり、プロセッサ２００が実行するプログラム及びプログラムが使用する情報を格納する。本実施例のメモリ２０１は、音声処理部１１０及び言語処理部１１１を実現するプログラムを格納する。また、メモリ２０１は、発話継続文字列情報１３０、意図理解情報１３１、及び回答生成情報１３２を格納する。また、メモリ２０１は、プログラムが使用するワークエリアと、テキストを蓄積するためのバッファを含む。
【００３９】
ネットワークインタフェース２０２は、ネットワークを介して外部装置と接続するためのインタフェースである。
【００４０】
図３Ａ及び図３Ｂは、実施例１の計算機１００が保持する発話継続文字列情報１３０のデータ構造の一例を示す図である。
【００４１】
本実施例では、言語の種別毎に発話継続文字列情報１３０が存在する。図３Ａは日本語の発話継続文字列情報１３０−１を示し、図３Ｂは英語の発話継続文字列情報１３０−２を示す。
【００４２】
発話継続文字列情報１３０は、発話継続文字列３０１及び位置３０２から構成されるエントリを一つ以上含む。
【００４３】
発話継続文字列３０１は、発話継続文字列を格納するフィールドである。位置３０２は、ユーザが発した音声の中で発話継続文字列に対応する音声が出現する位置を格納するフィールドである。本実施例の位置３０２には、音声信号が変換されたテキストにおける発話継続文字列の位置（検知範囲）が格納される。なお、位置３０２を用いた処理については実施例２で説明する。
【００４４】
本実施例では、発話継続文字列情報１３０は予め設定されているものとする。発話継続文字列情報１３０は、管理者等が手動で設定してもよいし、ユーザ１０３及び対話装置１０２の会話の履歴を用いた機械学習を実行することによって生成してもよい。
【００４５】
図４は、実施例１の計算機１００が保持する意図理解情報１３１のデータ構造の一例を示す図である。
【００４６】
意図理解情報１３１は、発話内容４０１及び意図４０２から構成されるエントリを一つ以上含む。
【００４７】
発話内容４０１は、発話内容を示すテキストが格納されるフィールドである。意図４０２は、発話内容４０１に対応する発話を行ったユーザ１０３の発話意図を示す情報を格納するフィールドである。以下の説明では、意図４０２に格納される値を意図情報と記載する。
【００４８】
本実施例では、意図理解情報１３１は予め設定されているものとする。意図理解情報１３１は、管理者等が手動で設定する。
【００４９】
図５は、実施例１の計算機１００が保持する回答生成情報１３２のデータ構造の一例を示す図である。
【００５０】
回答生成情報１３２は、意図５０１及び回答内容５０２から構成されるエントリを一つ以上含む。
【００５１】
意図５０１は、意図４０２と同一のフィールドである。回答内容５０２は、対話装置１０２が音声として出力する回答のテキスト（回答テキスト）を格納するフィールドである。なお、一つの発話意図に対して、複数の回答テキストが対応づけられていてもよい。この場合、ランダムに回答テキストを選択する方法、又は、ユーザ１０３の属性等に基づいて回答テキストを選択する方法等が考えられる。
【００５２】
図６は、実施例１のテキスト送信判定部１２１が実行する処理の一例を説明するフローチャートである。
【００５３】
テキスト送信判定部１２１は、テキスト受信部１２０からテキストを受信する（ステップＳ１０１）。受信したテキストは、ワークエリアに一時的に格納される。
【００５４】
次に、テキスト送信判定部１２１は、テキストに対して形態素解析を実行する（ステップＳ１０２）。形態素解析は公知の技術を用いればよいため詳細な説明を省略する。
【００５５】
次に、テキスト送信判定部１２１は、形態素解析の結果及び発話継続文字列情報１３０に基づいて、ユーザ１０３が発した音声に対応するテキストの末尾に発話継続文字列が存在するか否かを判定する（ステップＳ１０３）。
【００５６】
具体的には、テキスト送信判定部１２１は、発話継続文字列情報１３０の各エントリの発話継続文字列３０１と、テキストの末尾に出現する文字列とを比較し、発話継続文字列３０１に一致する文字列がテキストの末尾に存在するか否かを判定する。
【００５７】
テキストの末尾に発話継続文字列が存在しないと判定された場合、テキスト送信判定部１２１は、発話の終了と判定する。テキスト送信判定部１２１は、メモリ２０１（ワークエリア及びバッファ）に格納されるテキストを用いて出力テキストを生成し、意図理解部１２２に出力テキストを送信する（ステップＳ１０８）。その後、テキスト送信判定部１２１は、処理を終了する。
【００５８】
具体的には、テキスト送信判定部１２１は、ワークエリア及びバッファに格納される各テキストから発話継続文字列を削除し、時系列順にテキストを結合することによって出力テキストを生成する。出力テキストが生成された後、メモリ２０１に格納されるテキストは削除される。なお、テキスト送信判定部１２１は、出力テキストの生成時にテキストを削除してもよいし、一連の処理が完了した後にテキストを削除してもよい。
【００５９】
なお、バッファにテキストが格納されていない場合、テキスト送信判定部１２１は、ワークエリアに格納されるテキストを出力テキストとして生成する。
【００６０】
テキストの末尾に発話継続文字列が存在すると判定された場合、テキスト送信判定部１２１は、発話が継続中であると判定し、バッファに受信したテキストを格納する（ステップＳ１０４）。すなわち、意味理解処理が実行される前のテキストがメモリ２０１に蓄積される。
【００６１】
次に、テキスト送信判定部１２１は、タイマが起動中であるか否かを判定する（ステップＳ１０５）。本実施例のタイマは、意図理解部１２２へのテキストの出力タイミングを調整するための待ち時間を計測する。
【００６２】
タイマが起動中でないと判定された場合、テキスト送信判定部１２１は、タイマを起動し（ステップＳ１０７）、その後、ステップＳ１０１に戻る。この場合、テキスト送信判定部１２１は、テキストを受信するまで待ち状態に移行する。
【００６３】
タイマが起動中であると判定された場合、テキスト送信判定部１２１は、タイマが計測した待ち時間が閾値より大きいか否かを判定する（ステップＳ１０６）。
【００６４】
待ち時間が閾値以下であると判定された場合、テキスト送信判定部１２１は、計測時間を初期化し、待ち時間の計測を継続する。その後、テキスト送信判定部１２１は、ステップＳ１０１に戻る。この場合、テキスト送信判定部１２１は、次のテキストを受信するまで待ち状態に移行する。
【００６５】
待ち時間が閾値より大きいと判定された場合、テキスト送信判定部１２１は、発話の終了と判定する。さらに、テキスト送信判定部１２１は、メモリ２０１（ワークエリア及びバッファ）に格納されるテキストを用いて出力テキストを生成し、意図理解部１２２に出力テキストを送信する（ステップＳ１０８）。このとき、テキスト送信判定部１２１は、タイマを停止する。その後、テキスト送信判定部１２１は、処理を終了する。
【００６６】
次に、計算機システムにおける処理の流れについて説明する。図７Ａ及び図７Ｂは、実施例１の計算機システムにおける処理の流れの一例を示すシーケンス図である。図７Ａは、発話継続文字列が含まれる発話が行われた場合の処理の流れを示す。図７Ｂは、発話継続文字列が含まれない発話が行われた場合の処理の流れを示す。
【００６７】
まず、図７Ａに示す処理の流れについて説明する。
【００６８】
対話装置１０２は、ユーザ１０３が発した音声を取得し、当該音声の音声信号を生成する。また、対話装置１０２は、通信装置１０１と通信を行い、ネットワーク１０５を介して接続される計算機１００に音声信号を送信する（ステップＳ２０１）。
【００６９】
計算機１００の音声処理部１１０は、対話装置１０２から送信された音声信号をテキストに変換し、テキストをテキスト受信部１２０に送信する（ステップＳ２０２）。当該テキストは、テキスト受信部１２０からテキスト送信判定部１２１に送信される。なお、テキストの末尾には発話継続文字列が存在するものとする。
【００７０】
テキスト送信判定部１２１は、テキストを受信した場合、図６に示す処理を実行する。テキストの末尾には発話継続文字列が存在するため、テキスト送信判定部１２１は、受信したテキストをメモリ２０１に蓄積する（ステップＳ２０３）。すなわち、バッファにテキストが格納される。また、テキスト送信判定部１２１は、タイマが起動していないため、タイマを起動する（ステップＳ２０４）。
【００７１】
対話装置１０２は、待ち時間が閾値より大きくなった後、発話継続文字列が末尾に存在するテキストに対応する新たな音声をユーザ１０３から取得し、当該音声の音声信号を生成する。対話装置１０２は、音声信号を計算機１００に送信する（ステップＳ２０５）。
【００７２】
音声処理部１１０は、受信した音声信号をテキストに変換し、テキスト受信部１２０を介して、テキスト送信判定部１２１にテキストを送信する（ステップＳ２０６）。
【００７３】
テキスト送信判定部１２１は、テキストの末尾に発話文字列が存在するため、受信したテキストをメモリ２０１に蓄積する（ステップＳ２０７）。この時点では、タイマが起動中であり、かつ、待ち時間が閾値より大きいため、テキスト送信判定部１２１は、バッファに格納される二つのテキストを用いて出力テキストを生成し、意図理解部１２２に当該出力テキストを送信する（ステップＳ２０８）。
【００７４】
なお、テキストの末尾に発話文字列が存在しない場合、テキスト送信判定部１２１は、ワークエリア及びバッファの各々に格納されるテキストを用いて出力テキストを生成する。
【００７５】
意図理解部１２２は、出力テキストを受信した場合、意図理解処理を実行する（ステップＳ２０９）。
【００７６】
意図理解処理では、意図理解部１２２は、意図理解情報１３１の発話内容４０１が出力テキストと一致するエントリを検索する。意図理解部１２２は、検索されたエントリの意図４０２に格納される値を処理結果として取得する。このとき、意図理解部１２２は、類似辞書等の意図理解情報１３１以外の情報を用いてもよい。
【００７７】
意図理解部１２２は、回答生成部１２３に意図情報を送信する（ステップＳ２１０）。
【００７８】
回答生成部１２３は、意図情報を受信した場合、回答生成処理を実行する（ステップＳ２１１）。
【００７９】
回答生成処理では、回答生成部１２３は、回答生成情報１３２を参照し、意図５０１が意図情報に一致するエントリを検索する。回答生成部１２３は、検索されたエントリの回答内容５０２に格納される回答テキストを取得する。
【００８０】
回答生成部１２３は、音声処理部１１０に回答テキストを送信する（ステップＳ２１２）。
【００８１】
音声処理部１１０は、回答テキストを音声信号に変換し、ネットワーク１０５を介して対話装置１０２に音声信号を送信する（ステップＳ２１３）。
【００８２】
図７Ａに示すように、計算機１００は、フィラー及び間を含む発話を検知するための発話継続文字列がテキストの末尾に存在する場合、発話の継続中であると判定し、テキストをメモリ２０１（バッファ）に蓄積する。計算機１００は、発話の終了を検知した場合、メモリ２０１（ワークエリア及びバッファ）に格納される一つ以上のテキストを用いて、意図理解処理の処理単位となる出力テキストを生成する。
【００８３】
このように、計算機１００は、フィラー及び間を考慮して、意図理解処理の処理単位となる出力テキストを生成することによって、ユーザ１０３の発話意図を正確に特定できる。したがって、計算機１００は、ユーザ１０３の発話意図に沿った回答を生成できる。
【００８４】
次に、図７Ｂに示す処理の流れについて説明する。
【００８５】
対話装置１０２は、ユーザ１０３が発した音声を取得し、当該音声の音声信号を生成する。また、対話装置１０２は、通信装置１０１と通信を行い、ネットワーク１０５を介して接続される計算機１００に音声信号を送信する（ステップＳ３０１）。
【００８６】
計算機１００の音声処理部１１０は、対話装置１０２から送信された音声信号をテキストに変換し、テキストをテキスト受信部１２０に送信する（ステップＳ３０２）。当該テキストは、テキスト受信部１２０からテキスト送信判定部１２１に送信される。なお、テキストの末尾には発話継続文字列は存在しないものとする。
【００８７】
テキスト送信判定部１２１は、テキストを受信した場合、図６に示す処理を実行する。テキストの末尾には発話継続文字列が存在しないため、テキスト送信判定部１２１は、ワークエリアに格納されるテキストを出力テキストとして生成し、意図理解部１２２に当該出力テキストを送信する（ステップＳ３０３）。
【００８８】
意図理解部１２２は、出力テキストを受信した場合、意図理解処理を実行する（ステップＳ３０４）。意図理解部１２２は、回答生成部１２３に意図情報を送信する（ステップＳ３０５）。
【００８９】
回答生成部１２３は、意図情報を受信した場合、回答生成処理を実行する（ステップＳ３０６）。回答生成部１２３は、音声処理部１１０に回答テキストを送信する（ステップＳ３０７）。
【００９０】
音声処理部１１０は、回答テキストを音声信号に変換し、ネットワーク１０５を介して対話装置１０２に音声信号を送信する（ステップＳ３０８）。
【００９１】
図７Ｂに示すように、計算機１００は、発話継続文字列がテキストの末尾に存在しない場合、従来技術と同様の処理手順にしたがって処理を実行する。
【００９２】
本実施例では、テキストを蓄積する記憶領域としてバッファを設けているが、ワークエリアに複数のテキストを格納してもよい。この場合、バッファを設けなくてもよい。
【００９３】
実施例１によれば、計算機１００は、フィラー及び間が含まれる発話が行われた場合であっても、意図理解処理の処理単位となる一つのまとまった音声に対応する出力テキストを生成できる。計算機１００は、出力テキストを入力とする意図理解処理を実行することによって、ユーザ１０３の発話意図を正しく特定できる。したがって、対話装置１０２は、ユーザ１０３の発話意図に沿った適切な回答（音声）を出力することができる。
【実施例２】
【００９４】
実施例２では、テキスト送信判定部１２１が実行する処理が一部異なる。以下実施例１との差異を中心に実施例２について説明する。
【００９５】
実施例２の計算機システムの構成は、実施例１の計算機システムの構成と同一である。実施例２の計算機１００のハードウェア構成及びソフトウェア構成は、実施例１の計算機１００のハードウェア構成及びソフトウェア構成と同一である。また、実施例２の計算機１００が保持する情報のデータ構造は、実施例１の計算機１００が保持する情報のデータ構造と同一である。
【００９６】
図８は、実施例２のテキスト送信判定部１２１が実行する処理の一例を説明するフローチャートである。
【００９７】
ステップＳ１０１及びステップＳ１０２の処理は、実施例１と同一の処理である。
【００９８】
ステップＳ１０２の処理が実行された後、テキスト送信判定部１２１は、テキストに発話継続文字列が含まれるか否かを判定する（ステップＳ１５１）。
【００９９】
具体的には、テキスト送信判定部１２１は、形態素解析の結果及び発話継続文字列情報１３０の発話継続文字列３０１に基づいて、テキストに含まれる発話継続文字列を検索する。
【０１００】
テキストに発話継続文字列が含まれないと判定された場合、テキスト送信判定部１２１は、メモリ２０１（ワークエリア及びバッファ）に格納されるテキストを用いて出力テキストを生成し、意図理解部１２２に出力テキストを送信する（ステップＳ１０８）。その後、テキスト送信判定部１２１は、処理を終了する。
【０１０１】
テキストに発話継続文字列が含まれると判定された場合、テキスト送信判定部１２１は、発話継続文字列が検知範囲に存在するか否かを判定する（ステップＳ１５２）。
【０１０２】
具体的には、テキスト送信判定部１２１は、テキストに含まれる発話継続文字列の位置を特定する。テキスト送信判定部１２１は、ステップＳ１０３において検索された発話継続文字列に対応するエントリの位置３０２の値を読み出す。テキスト送信判定部１２１は、テキストにおける発話継続文字列の位置が、エントリの位置３０２に設定された検知範囲に存在するか否かを判定する。
【０１０３】
発話継続文字列が検知範囲に存在しないと判定された場合、テキスト送信判定部１２１は、メモリ２０１（ワークエリア及びバッファ）に格納されるテキストを用いて出力テキストを生成し、意図理解部１２２に出力テキストを送信する（ステップＳ１０８）。その後、テキスト送信判定部１２１は、処理を終了する。
【０１０４】
発話継続文字列が検知範囲に存在すると判定された場合、テキスト送信判定部１２１は、ステップＳ１０４に進む。ステップＳ１０４からステップＳ１０８の処理は実施例１と同一の処理である。
【０１０５】
実施例２の計算機システムの処理の流れは実施例１の計算機システムの処理の流れと同一である。
【０１０６】
実施例２によれば、発話継続文字列及び発話継続文字列の出現位置に基づいて、テキストの出力タイミングを調整することによって、ユーザ１０３の発話意図をより正確に特定できる。また、言語の種別に応じて判定基準を調整できる。
【０１０７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１０８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１０９】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１１０】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１１１】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１１２】
１００  計算機
１０１  通信装置
１０２  対話装置
１０３  ユーザ
１０５  ネットワーク
１１０  音声処理部
１１１  言語処理部
１２０  テキスト受信部
１２１  テキスト送信判定部
１２２  意図理解部
１２３  回答生成部
１３０  発話継続文字列情報
１３１  意図理解情報
１３２  回答生成情報
２００  プロセッサ
２０１  メモリ
２０２  ネットワークインタフェース
【図１】
2019109424.tif 000003
【図２】
2019109424.tif 000004
【図３Ａ】
2019109424.tif 000005
【図３Ｂ】
2019109424.tif 000006
【図４】
2019109424.tif 000007
【図５】
2019109424.tif 000008
【図６】
2019109424.tif 000009
【図７Ａ】
2019109424.tif 000010
【図７Ｂ】
2019109424.tif 000011
【図８】
2019109424.tif 000012