(57)【要約】【課題】音声対話システムにおいて、システム発話とユーザ発話が重なったときにユーザの発話意図を的確に判断する。【解決手段】音声対話システムは、ユーザ発話を取得する音声入力手段と、前記音声入力手段によって取得された音声の発話意図を理解する意図理解手段と、システム発話文のテキストを作成する対話文作成手段と、前記システム発話文を音声データとして出力する音声出力手段と、を備え、前記対話文作成手段は、システム発話文のテキストを作成する際に、システム発話文中のいずれかの位置にタグを挿入して作成し、前記意図理解手段は、ユーザ発話がされたタイミングが前記タグに対応する位置のシステム発話文が前記音声出力手段から出力される前か後かに応じて、ユーザの発話意図を理解する。【選択図】図３
2018054791.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ発話を取得する音声入力手段と、
前記音声入力手段によって取得された音声の発話意図を理解する意図理解手段と、
システム発話文のテキストを作成する対話文作成手段と、
前記システム発話文を音声データとして出力する音声出力手段と、
を備え、
前記対話文作成手段は、システム発話文のテキストを作成する際に、システム発話文中のいずれかの位置にタグを挿入して作成し、
前記意図理解手段は、ユーザ発話がされたタイミングが前記タグに対応する位置のシステム発話文が前記音声出力手段から出力される前か後かに応じて、ユーザの発話意図を理解する、
音声対話システム。
【請求項２】
前記意図理解手段は、
ユーザ発話がされたタイミングが前記タグに対応する位置のシステム発話文が前記音声出力手段から出力される後であれば、ユーザ発話は前記システム発話文に応答するものであると理解し、
ユーザ発話が入力されたタイミングが前記タグに対応する位置のシステム発話文が前記音声出力手段から出力される前であれば、ユーザ発話は前記システム発話文に応答するものではないと理解する、
請求項１に記載の音声対話システム。
【請求項３】
前記対話文作成手段は、前記システム発話文をつなぎ言葉部分と内容部分を組み合わせたものとして生成し、前記タグを前記つなぎ言葉部分と前記内容部分のあいだに挿入する、
請求項１または２に記載の音声対話システム。
【請求項４】
前記意図理解手段は、
前記システム発話文が前記音声出力手段から出力されてから、前記タグよりも前のテキストが全て前記音声出力手段から出力されるまでの時間である第１時間を算出し、
前記システム発話文が前記音声出力手段から出力されてから、前記ユーザ発話の入力が開始されるまでの時間である第２時間を取得し、
前記第１時間と前記第２時間の比較により、前記ユーザ発話がされたタイミングが前記タグに対応する位置のシステム発話文が前記音声出力手段から出力される前であるか後であるかを判断する、
請求項１から３のいずれか１項に記載の音声対話システム。
【請求項５】
前記音声出力手段は、前記システム発話文のテキストにおける前記タグは音声として出力しない、
請求項１から４のいずれか１項に記載の音声対話システム。
【請求項６】
ユーザ発話を取得する音声入力ステップと、
前記音声入力ステップにおいて取得された音声の発話意図を理解する意図理解ステップと、
システム発話文のテキストを作成する対話文作成ステップと、
前記システム発話文を音声データとして出力する音声出力ステップと、
を含み、
前記対話文作成ステップでは、システム発話文のテキストを作成する際に、システム発話文中のいずれかの位置にタグを挿入して作成し、
前記意図理解ステップでは、ユーザ発話がされたタイミングが前記タグに対応する位置のシステム発話文が出力される前か後かに応じて、ユーザの発話意図を理解する、
発話意図理解方法。
【請求項７】
請求項６に記載の方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声対話システムに関し、バージイン発話に対応した音声対話システムに関する。
【背景技術】
【０００２】
音声対話システムでは、システム発話とユーザ発話が重なったときに、ユーザが現在のシステム発話に対する応答をしているのかそうではないのかを判定することが望まれる。
【０００３】
特許文献１は、システム発話とユーザ発話が重複した場合に、対象とするユーザ発話の長さ、対象とするユーザ発話と直前の発話の時間関係、システムの状態などに基づいて、対象とするユーザ発話が対話システムに向けられたものであるか否かを判断することを開示する。この手法によれば、対話システムが応答する必要のあるユーザ発話と、独り言などのように応答の必要がないユーザ発話とを区別することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−７７９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の手法では、システム発話と重複するユーザ発話が音声対話システムに向けられたものであると判断できたとしても、そのユーザ発話が現在出力中のシステム発話に応答するものであるか否かは判断できない。
【０００６】
ユーザ発話は、現在出力中のシステム発話に応答するもの、一つ前のシステム発話に応答するもの、およびユーザが自発的に音声対話システムに話しかけるものなどに分類できる。システム発話とユーザ発話が重なった場合において、ユーザが現在のシステム発話に応答する意図があるのかないのかを判断できることが望ましい。
【０００７】
本発明は、音声対話システムにおいて、システム発話とユーザ発話が重なったときにユーザの発話意図を的確に判断することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第一の態様は、
ユーザ発話を取得する音声入力手段と、
前記音声入力手段によって取得された音声の発話意図を理解する意図理解手段と、
システム発話文のテキストを作成する対話文作成手段と、
前記システム発話文を音声データとして出力する音声出力手段と、
を備え、
前記対話文作成手段は、システム発話文のテキストを作成する際に、システム発話文中のいずれかの位置にタグを埋め込んで作成し、
前記意図理解手段は、ユーザ発話がされたタイミングが前記タグに対応する位置のシステム発話文が前記音声出力手段から出力される前か後かに応じて、ユーザの発話意図を理解する、
音声対話システムである。
【０００９】
このように、システム発話文の中にタグを埋め込むことで、ユーザ発話の開始タイミン
グが当該タグに対応する位置の文章（単語）の発話の前か後かによって、ユーザ発話が現在出力中のシステム発話に応答するものであるかそうでないかを判定可能となる。
【００１０】
本発明において、前記意図理解手段は、ユーザ発話がされたタイミングが前記タグに対応する位置のシステム発話文が前記音声出力手段から出力される後であれば、ユーザ発話は前記システム発話文に応答するものであると理解し、ユーザ発話が入力されたタイミングが前記タグに対応する位置のシステム発話文が前記音声出力手段から出力される前であれば、ユーザ発話は前記システム発話文に応答するものではないと理解することができる。
【００１１】
また、本発明において、前記対話文作成手段は、前記システム発話文をつなぎ言葉部分と内容部分を組み合わせたものとして生成し、前記タグを前記つなぎ言葉部分と前記内容部分のあいだに埋め込むことができる。ただし、タグの位置はつなぎ言葉部分と内容部分のあいだでなくてもよく、例えば、内容部分のうちその位置までの内容を聞けばユーザがシステム発話の意図を理解できると想定される位置であってもよい。
【００１２】
また、本発明において、前記意図理解手段は、前記システム発話文が前記音声出力手段から出力されてから、前記タグよりも前のテキストが全て前記音声出力手段から出力されるまでの時間である第１時間を算出し、前記システム発話文が前記音声出力手段から出力されてから、前記ユーザ発話の入力が開始されるまでの時間である第２時間を取得し、前記第１時間と前記第２時間の比較により、前記ユーザ発話がされたタイミングが前記タグに対応する位置のシステム発話文が前記音声出力手段から出力される前であるか後であるかを判断することができる。
【００１３】
また、本発明において、前記音声出力手段は、前記システム発話文のテキストにおける前記タグは音声として出力しないことが望ましい。
【００１４】
なお、本発明は、上記手段の少なくとも一部を備える音声対話システムとして捉えることもできる。本発明は、また、上記処理の少なくとも一部を実行する音声対話方法として捉えることができる。また、本発明は、この方法をコンピュータに実行させるためのコンピュータプログラム、あるいはこのコンピュータプログラムを非一時的に記憶したコンピュータ可読記憶媒体として捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００１５】
本発明によれば、音声対話システムにおいて、応答までの間が不自然に長くなることを防止可能となる。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施形態に係る音声対話システムの構成を示す図である。
【図２】図２は、変形例に係る音声対話システムの構成を示す図である。
【図３】図３は、実施形態に係る音声対話システムにユーザ発話の意図理解を説明する図である。
【図４】図４は、実施形態に係る音声対話システムにおける対話文作成および出力処理の流れの例を示す図である。
【図５】図５は、実施形態に係る音声対話システムにおけるユーザ発話の意図理解処理の流れを説明する図である。
【発明を実施するための形態】
【００１７】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。以下
で説明される実施形態は音声対話ロボットを音声対話端末として用いたシステムであるが、音声対話端末はロボットである必要はなく任意の情報処理装置や音声対話インタフェースなどを用いることができる。
【００１８】
＜システム構成＞
図１は、本実施形態に係る音声対話システム（音声対話ロボット）の構成を示す図である。本実施形態に係る音声対話ロボット１００は、マイク（音声入力部）１０１、スピーカー（音声出力部）１０７、およびマイクロプロセッサなどの演算装置、メモリ、通信装置などを含むコンピュータである。マイクロプロセッサがプログラムを実行することにより、音声対話ロボット１００は、音声認識部１０２、意図理解部１０３、対話管理部１０４、対話文作成部１０５、音声合成部１０６として機能する。図示はしていないが、音声対話ロボット１００は、画像取得装置（カメラ）や可動関節部や移動手段などを備えていてもよい。
【００１９】
音声認識部１０２は、マイク１０１から入力されたユーザ発話の音声データに対して、雑音除去、音源分離、特徴量抽出などの処理を行い、ユーザ発話の内容をテキスト化する。音声認識部１０２は、マイク１０１にユーザ発話がされたタイミング（時刻）も取得する。
【００２０】
なお、音声認識部１０２は、システム発話の最中に発せられたユーザ発話を理解できるように構成される。システム発話中のユーザ発話はバージイン発話（割り込み発話）と呼ばれる。音声認識部１０２は、バージイン発話に対応しており、マイク１０１に入力される音声データから自己発話を抑圧することでユーザ発話を取り出して認識できる。
【００２１】
意図理解部１０３は、音声認識部１０２の認識結果（発話内容のテキストや発話特徴量など）に基づいて、ユーザの発話意図を理解する。意図理解部１０３は、発話内容の理解のためのコーパスあるいは辞書を記憶しており、これを参照することでユーザの発話を理解する。
【００２２】
意図理解部１０３は、ユーザによるバージイン発話が現在のシステム発話に応答するものであるのかそうではないのかということも判断する。なお、バージイン発話が現在のシステム発話に応答するものではないというのは、バージイン発話が現在のシステム発話よりも前のシステム発話に応答するものである場合と、ユーザが自発的にロボットに話しかける場合の両方を含む。バージイン発話が現在のシステム発話に応答するものかどうかを判断する処理の詳細については後述する。意図理解部１０３によるユーザ発話の発話意図理解の結果は、対話管理部１０４および対話文作成部１０５に送られる。
【００２３】
対話管理部１０４には、過去にシステムとユーザのあいだで行われた対話の履歴が記憶される。対話管理部１０４には、対話の内容だけでなく、その対話がどのような状況（例えば、日時や場所）で行われたのかも管理する。対話管理部１０４によって、ユーザとのあいだでどのような会話を行ったかを把握でき、過去の対話を参考した応答の生成が可能となる。
【００２４】
対話文作成部１０５は、意図理解部１０３からユーザ発話の意図理解の結果を受け、ユーザ発話に応答する発話（システム発話）の対話文テキストを作成する。本明細書において、システム発話の対話文テキストのことを、システム発話文あるいはシステム対話文とも称する。対話文作成部１０５は、対話管理部１０４に格納されている過去の対話の内容（現在の対話内容も含む）や、ユーザ情報などを参照してシステム対話文を作成する。対話文作成部１０５は、対話シナリオデータベースを保有しており、データベースに格納されている対話シナリオに沿って応答文を作成してもよい。対話文作成部１０５が作成した
対話文は、対話管理部１０４に送られ記憶される。
【００２５】
システム応答の対話文テキストを作成する際に、ユーザのバージイン発話が現在の発話に応答するものか否かを判断するためのタイミングを知らせるための「タグ」を埋め込んで作成する。対話文作成部１０５は、応答文をつなぎ言葉部分と本文（内容部分）の足し合わせとして作成する。この際、つなぎ言葉と本文のあいだにタグを挿入する。たとえば、「ねぇねぇ」というつなぎ言葉と、「あなたの名前は？」という本文をつなぎ合わせてテキストを作成する場合には、「ねぇねぇ、＜１＞あなたの名前は？」というテキストを生成する。ここでは「＜１＞」がタグに相当する。また、「そーいえばさぁ」と「明日の天気知ってる？」をつなぎ合わせる場合には「そーいえばさあ、＜２＞明日の天気知ってる？」となる。ここでタグ内の数字はタグを特定するものであるが、１つの文章（応答）の中に１つのタグしか含めないのであれば、必ずしも数字のような可変記号を用いる必要はない。
【００２６】
音声合成部１０６は、発話内容のテキストを受け取り、音声合成を行って応答音声データを生成する。音声合成部１０６によって生成された応答音声データは、スピーカー１０７から再生される。この際、テキストに含まれるタグは音声としては出力しない。
【００２７】
音声合成部１０６は、また、発話内容のテキストに含まれるタグの直前までの音声の出力が完了する時刻、あるいはテキストの先頭からタグの直前までの音声の出力に要する時間を算出する。この時刻あるいは時間は、発話内容のテキストと発話速度から算出することができる。算出された時間あるいは時刻は意図理解部１０３に送られる。
【００２８】
なお、音声対話ロボット１００は、１つの装置として構成される必要はない。例えば図２に示すように、マイク１０１、スピーカー１０７、カメラ、可動関節部などを含むロボット装置１０９（フロントエンド装置）と、各種の処理を実行するスマートフォン１１０（あるいはその他のコンピュータ）の２つの装置から構成することができる。この場合、ロボット装置とコンピュータは、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線通信により接続され、ロボット装置が取得したデータはコンピュータに送られ、コンピュータによる処理結果に基づいて応答文などの再生がロボット装置から行われる。
【００２９】
また、音声認識処理や対話文作成処理を音声対話ロボット１００で行う必要は無く、図２に示すように、音声認識サーバ２００や対話サーバ３００においてこれらの処理を行ってもよい。またこれらの処理は１つのサーバによって行われてもよい。このように外部サーバを用いて処理を行う場合、スマートフォン１１０（あるいはロボット装置１０９）がサーバとのあいだの連携を制御する。
【００３０】
＜処理＞
図３は、本実施形態においてシステム発話とユーザ発話が重なったときのユーザ発話の意図を判断する処理を模式的に説明する図である。ここでは、システムが「○○君の趣味は何？」という発話３０１を行った後にユーザが応答を返さなかったので、続けて「ねぇねぇ、じゃあ、出身地はどこ？」という発話３０２を行う例を取り扱う。ユーザは、発話３０２の開始タイミングから少し遅れたタイミングで、「ドライブだよ」という発話３０３を行う。発話３０２と発話３０３が重複しており、ユーザ発話３０３が発話３０１に応答するものなのか、発話３０２に応答するものなのかを判断する必要がある。
【００３１】
ここで、発話３０２のテキストは対話文作成部１０５によってタグが埋め込まれて作成されており、「ねぇねぇ、じゃあ、＜１＞出身地はどこ？」というテキストとして作成されている。そして、音声合成部１０６において、発話３０２の開始からタグ＜１＞の直前までの出力に要する時間Ａが算出される。なお、上述のようにタグは音声として出力され
ないが、以下では説明を簡略するために、タグの直前までの出力が完了するタイミングのことをタグの出力タイミングと称するなど、あたかもタグが音声として出力されるように記載することがある。
【００３２】
システムは、発話３０２の開始と発話３０３の開始のあいだの時間Ｂも取得できる。ここで、ユーザの発話３０３の開始がタグ出力タイミングよりも前であれば（時間Ａ≧時間Ｂ）、ユーザの発話３０３はシステムの前の発話３０１に応答するものであると判断できる。タグは、応答文の本文よりも前に挿入されるので、本文の出力よりも前に応答は、現在の発話３０２に対する応答ではなく、その前の発話３０１に対するものであると捉えるのが妥当であるためである。
【００３３】
また、ユーザの発話３０３の開始がタグ出力タイミングよりも後であれば（時間Ａ＜時間Ｂ）、ユーザの発話３０３はシステムの現在の発話３０２に応答するものであると判断できる。システムが応答文の本文の出力を開始した後は、現在の発話３０２にユーザが応答していると捉えるのが妥当であるためである。
【００３４】
以下、図３に示す処理を実現するための詳細は、図４および図５のフローチャートを参照して説明する。
【００３５】
図４は、音声対話ロボット１００における対話文の作成および出力の処理の流れを示すフローチャートである。ステップＳ１１において、対話文作成部１０５が、状況に応じた対話シナリオ（会話テンプレート）を決定する。ここでいう状況は、例えば、ユーザ発話の認識結果、それまでの対話の内容、現在の時刻や位置など種々の要因によって決定される。対話文作成部１０５は、対話シナリオ（会話テンプレート）を複数格納した対話シナリオデータベースを有しており、対話シナリオには、システム発話の内容と、想定するユーザの応答に応じた更なるシステム発話の内容が記述される。対話シナリオにおけるシステム発話の一部の内容は、ユーザの応答やその他の状況に応じて決定するように指定される。対話文作成部１０５は、現在の状況に即した対話シナリオを選択する。
【００３６】
ステップＳ１２において、対話文作成部１０５は、選択された対話シナリオに基づいて発話文のテキストを決定する。発話文テキストの決定方法は特に問われないが、ここでは、発話文のテキストが最終的に、つなぎ言葉と本文の組み合わせとして決定される。つなぎ言葉の例は、「うん」「そんなんだぁ」「そういえばさぁ」といったような簡易的な返事や相づちや会話の切り出し、あるいはユーザの発話内容の一部の繰り返しである。対話文作成部１０５は、つなぎ言葉と本文のあいだにタグを挿入して発話文のテキストを作成する。例えば、「ねぇねぇ、＜１＞あなたの名前は？」や「そーいえばさあ、＜２＞明日の天気知ってる？」といったテキストが生成される。
【００３７】
なお、つなぎ言葉とタグと本文の組み合わせが対話シナリオ（会話テンプレート）に格納されていてもよいし、対話シナリオには本文のみが格納されていて適当なつなぎ言葉が選択されてタグと共に本文に付け足されてもよい。
【００３８】
ステップＳ１３において、対話文作成部１０５が決定した発話テキストを出力した際に発話開始からタグの直前部分までの発話に要する時間が算出され記憶される。音声合成処理における発話速度の設定と、発話テキストの内容から、発話開始からタグ直前までの時間を求めることができる。
【００３９】
ステップＳ１４において、音声合成部１０６が発話文テキストを音声データに変換して、スピーカー１０７から出力する。ステップＳ１５において、発話の開始タイミングが記憶される。
【００４０】
図５は、ユーザのバージイン発話（すなわちシステム発話と重なるユーザ発話）が、現在のシステム発話に応答することを意図したものであるか否かを判断する意図理解処理のフローチャートである。なお、音声対話ロボット１００におけるユーザ発話の意図理解処理は、現在のシステム発話に応答するものであるか否かの判断以外も含まれるが、ここではこの点に注目して説明する。
【００４１】
ステップＳ２１において、マイク１０１からユーザの発話を取得する。この際、ユーザ発話の開始タイミングが記憶される。
【００４２】
ステップＳ２２において、意図理解部１０３は、現在出力中のシステム発話の発話開始タイミングから当該システム発話内のタグの出力タイミングまでのあいだの時間（図３における時間Ａ）と、当該システム発話の発話開始タイミングからユーザ発話の発話開始タイミングまでのあいだの時間（図３における時間Ｂ）を比較する。
【００４３】
ユーザ発話がシステム発話内のタグの出力開始タイミング前、すなわち時間Ａ≧時間Ｂであれば（Ｓ２３−ＹＥＳ）、ステップＳ２４において意図理解部１０３は、ユーザ発話が現在のシステム発話の１つ前のシステム発話に応答するものであると判断する。
【００４４】
一方、ユーザ発話がシステム発話内のタグの出力開始タイミングより後、すなわち時間Ａ＜時間Ｂであれば（Ｓ２３−ＮＯ）、ステップＳ２５において意図理解部１０３は、ユーザ発話が現在のシステム発話に応答するものであると判断する。
【００４５】
＜効果＞
本実施形態によれば、ユーザ発話とシステム発話が重なった場合に、このユーザ発話が現在のシステム発話に対する応答であるのか否かを、簡易な処理によって判断することができる。したがって、システムとユーザのあいだの対話をより適切に実現することが可能となる。
【００４６】
＜変形例＞
上記の実施形態では、ユーザ発話が現在のシステム発話に応答するものか否かを判断するために、ユーザ発話のタイミングとタグの出力タイミングとの比較結果のみを考慮しているが、その他の要素を考慮して最終的な判断を下しても構わない。例えば、１つ前および現在のシステム発話の内容と、ユーザのバージイン発話の内容の関連性を考慮に入れて判断することが考えられる。図３の例のように、システムが「趣味は何？」という質問と「出身地はどこ？」という質問を続けてしているときに、ユーザが「ドライブだよ」と発話した場合には、ユーザ発話のタイミングに関わらずに、内容の関連性から前のシステム発話（「趣味は何？」）に対する応答であると判断できる。このようにユーザ発話のタイミングと発話内容の関連性の両方を考慮して、最終的な判断をすることも好ましい。
【００４７】
また、ここではシステムが２つの質問を続けて発話する例を挙げて説明したが、システムが発話を切り出す場合にも同様の処理が適用可能である。この場合は、ユーザ発話がシステム発話に応答するものであるか、自発的な会話の切り出しであるかが判断される。すなわち、ユーザのバージイン発話がシステム発話に応答するものではない場合には、ユーザが会話の切り出しを意図したものと理解される。
【００４８】
また、対話文の作成において対話シナリオ（会話テンプレート）を用いているが、対話文の作成方法は特に限定されない。対話シナリオを用いずに対話文を決定するようにしても構わない。また、対話文テキストにおけるタグの挿入位置は、つなぎ言葉と本文のあいだに限られず、本発明の効果が得られる位置に挿入されればよい。また、１つの応答文の
中に複数のタグが挿入されてもよく、その場合、ユーザ発話の開始がタグによって規定される３つ以上の区間のうちのどの部分に該当するかによってユーザの発話意図を決定することもできる。
【００４９】
上記の説明において「タグ」という用語を用い、応答文テキストにおいて「＜１＞」などのような表現を採用しているが、本発明における「タグ」とは、応答文における位置を指定するものが該当し、応答文テキストにおいて具体的にどのように表現されるかは限定されない。応答文における位置を特定するために、あらかじめ定められた任意の文字列、あるいはあらかじめ定められた規則に基づく任意の文字列を採用することができ、これらはいずれも本発明における「タグ」に相当する。
【００５０】
＜その他＞
上記の実施形態および変形例の構成は、本発明の技術的思想を逸脱しない範囲内で、適宜組み合わせて利用することができる。また、本発明は、その技術的思想を逸脱しない範囲で適宜変更を加えて実現しても構わない。
【符号の説明】
【００５１】
１００：音声対話ロボット
１０１：マイク
１０２：音声認識部
１０３：意図理解部
１０４：対話管理部
１０５：対話文作成部
１０６：音声合成部
１０７：スピーカー
【図１】
2018054791.tif 000003
【図２】
2018054791.tif 000004
【図３】
2018054791.tif 000005
【図４】
2018054791.tif 000006
【図５】
2018054791.tif 000007