(57)【要約】【課題】システムが理解したことを逐次ユーザに伝達し、スムーズな対話を可能とすることができる。【解決手段】発話生成部４０が、検出結果、及び認識結果に基づいて、音声認識が行われていることを示す発話を生成する相槌生成部４２、認識結果に基づいて、認識された文字列を示す発話を生成する焦点抽出部４４、及び認識結果に基づいて、システムが理解した内容を示す発話を生成する復唱生成部４６のいずれか少なくとも一つを含む。通信部２８が、音声認識部３２及び音声区間検出部３２の両方又は何れかからの出力を、発話生成部４０へ出力し、発話生成部４０からの出力を発話出力部５０へ出力する。【選択図】図１
2018022075.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力する音声区間検出部と、
前記音声区間検出部によって検出された音声の開始に対応する区間の音声について音声認識を行い、前記区間の途中の認識結果を含む、前記区間の終了までの認識結果を逐次出力する音声認識部と、
前記音声区間検出部による検出結果、及び前記音声認識部による認識結果に基づいて、前記音声認識が行われていることを示す発話を生成する相槌生成部、前記音声認識部による認識結果に基づいて、認識された文字列を示す発話を生成する焦点抽出部、及び前記音声認識部による認識結果に基づいて、システムが理解した内容を示す発話を生成する復唱生成部の少なくとも一つを含む発話生成部と、
発話出力部と、
前記音声認識部及び前記音声区間検出部の両方又は何れかからの出力を、前記発話生成部へ出力し、前記発話生成部からの出力を前記発話出力部へ出力する通信部と、
を含む発話生成装置。
【請求項２】
ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力する音声区間検出部と、
前記音声区間検出部によって検出された音声の開始に対応する区間の音声について音声認識を行い、前記区間の途中の認識結果を含む、前記区間の終了までの認識結果を逐次出力する音声認識部と、
前記音声区間検出部による検出結果、及び前記音声認識部による認識結果に基づいて、前記音声認識が行われていることを示す発話を生成する相槌生成部、前記音声認識部による認識結果に基づいて、認識された文字列を示す発話を生成する焦点抽出部、及び前記音声認識部による認識結果に基づいて、システムが理解した内容を示す発話を生成する復唱生成部の少なくとも一つを含む発話生成部と、
前記音声認識部による認識結果に基づいて、前記ユーザ発話に対応する応答発話を生成する応答部と、
発話出力部と、
前記音声認識部及び前記音声区間検出部の両方又は何れかからの出力を、前記発話生成部及び前記応答部へ出力し、前記発話生成部及び前記応答部の両方又は何れかからの出力を前記発話出力部へ出力する通信部と、
を含む発話生成装置。
【請求項３】
前記発話出力部は、前記発話生成部によって生成された前記発話を出力しているときに、前記発話生成部によって生成された新たな前記発話が入力されると、前記新たな前記発話の出力は行わない請求項１記載の発話生成装置。
【請求項４】
前記発話出力部は、前記発話生成部によって生成された前記発話を出力しているときに、前記発話生成部によって生成された新たな前記発話が入力されると、前記新たな前記発話の出力は行わず、
前記発話生成部によって生成された前記発話を出力しているときに、前記応答部によって生成された前記応答発話が入力されると、前記発話生成部によって生成された前記発話を出力した後に、前記応答発話の出力を行う請求項２記載の発話生成装置。
【請求項５】
前記復唱生成部は、前記音声認識部による認識結果を表す文字列から、述語項構造を抽出し、前記抽出された述語項構造に基づいて、前記システムが理解した内容を示す発話を生成する請求項１〜請求項４の何れか１項記載の発話生成装置。
【請求項６】
前記相槌生成部は、前記音声区間検出部によって前記音声の開始が検出されたときに、前記音声認識が行われていることを示す発話を生成する請求項１〜請求項５の何れか１項記載の発話生成装置。
【請求項７】
前記音声認識部は、ショートポーズを検知したとき、又は前記区間の終了までの期間における一定時間おきに、認識結果を出力し、
前記相槌生成部は、前記音声認識部による、ショートポーズを検知したときの認識結果の出力、又は前記音声認識部による一定時間おきの認識結果の出力があったときに、前記音声認識が行われていることを示す発話を生成する請求項１〜請求項６の何れか１項記載の発話生成装置。
【請求項８】
前記相槌生成部は、前記音声認識部によって前記区間が終了したときの認識結果が出力されたときに、前記音声認識が行われていることを示す発話を生成する請求項１〜請求項７の何れか１項記載の発話生成装置。
【請求項９】
前記発話出力部は、音声により出力する請求項１〜請求項８の何れか１項記載の発話生成装置。
【請求項１０】
前記発話出力部は、ディスプレイ表示により出力する請求項１〜請求項８の何れか１項記載の発話生成装置。
【請求項１１】
音声区間検出部と、音声認識部、相槌生成部、及び焦点抽出部の少なくとも一つを含む発話生成部と、復唱生成部と、発話出力部と、通信部とを含む発話生成装置における発話生成方法であって、
前記音声区間検出部が、ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力するステップと、
前記音声認識部が、前記音声区間検出部によって検出された音声の開始に対応する区間の音声について音声認識を行い、前記区間の途中の認識結果を含む、前記区間の終了までの認識結果を逐次出力するステップと、
前記通信部が、前記音声認識部及び前記音声区間検出部の両方又は何れかからの出力を、前記発話生成部へ出力するステップと、
前記発話生成部において、前記相槌生成部が、前記音声区間検出部による検出結果、及び前記音声認識部による認識結果に基づいて、前記音声認識が行われていることを示す発話を生成するステップ、前記焦点抽出部が、前記音声認識部による認識結果に基づいて、認識された文字列を示す発話を生成するステップ、及び前記復唱生成部が、前記音声認識部による認識結果に基づいて、システムが理解した内容を示す発話を生成するステップの少なくとも一つを実行するステップを含み、
前記通信部が、前記発話生成部からの出力を前記発話出力部へ出力するステップと、
を含む発話生成方法。
【請求項１２】
音声区間検出部と、音声認識部、相槌生成部、及び焦点抽出部の少なくとも一つを含む発話生成部と、復唱生成部と、発話出力部と、応答部と、通信部とを含む発話生成装置における発話生成方法であって、
前記音声区間検出部が、ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力するステップと、
前記音声認識部が、前記音声区間検出部によって検出された音声の開始に対応する区間の音声について音声認識を行い、前記区間の途中の認識結果を含む、前記区間の終了までの認識結果を逐次出力するステップと、
前記通信部が、前記音声認識部及び前記音声区間検出部の両方又は何れかからの出力を、前記発話生成部及び前記応答部へ出力するステップと、
前記発話生成部において、前記相槌生成部が、前記音声区間検出部による検出結果、及び前記音声認識部による認識結果に基づいて、前記音声認識が行われていることを示す発話を生成するステップ、前記焦点抽出部が、前記音声認識部による認識結果に基づいて、認識された文字列を示す発話を生成するステップ、及び前記復唱生成部が、前記音声認識部による認識結果に基づいて、システムが理解した内容を示す発話を生成するステップの少なくとも一つを実行するステップを含み、
前記応答部が、前記音声認識部による認識結果に基づいて、前記ユーザ発話に対応する応答発話を生成するステップと、
前記通信部が、前記発話生成部及び前記応答部の両方又は何れかからの出力を前記発話出力部へ出力するステップと、
を含む発話生成方法。
【請求項１３】
コンピュータを、請求項１〜請求項９のいずれか１項に記載の発話生成装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発話生成装置、方法、及びプログラムに係り、特に、ユーザと対話するための発話生成装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
音声対話システムは、ユーザ発話を音声認識し、その認識結果を処理することで理解を行い、その理解結果に基づいて、何を話すかを決定し、決定した内容を音声合成することでユーザに応答を行う。対話システムの基本的な構成は非特許文献１に記載されている。
【０００３】
従来の音声対話システムで問題になることの一つとして、ユーザが発話を行ったあと、システムが発話を行うまでに間が空いてしまうという問題がある。そこで、すぐに応答するための工夫として、音声認識器とその他のモジュールを密に結合し，逐次的に理解をしたり、ユーザが自身の発話をすぐに訂正したりすることができる枠組みが提案されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】中野幹生, 駒谷和範, 船越孝太郎, 中野有紀子, 奥村 学(監修) . 対話システム. コロナ社, 2015.
【非特許文献２】Schlangen, David, and Gabriel Skantze. "A general,abstract model of incremental dialogue processing." Proceedings of the 12th Conference of the European Chapter of the Association for Computational Linguistics. Association for Computational Linguistics, 2009.
【非特許文献３】Skantze, Gabriel, and Anna Hjalmarsson. "Towards incremental speech generation in dialogue systems." Proceedings of the 11th Annual Meeting of the Special Interest Group on Discourse and Dialogue. Association for Computational Linguistics, 2010.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来の手法は、ユーザ発話にすぐに反応できるような枠組みを提案しているが、すぐに反応するだけでは、ユーザ発話をシステムが理解したかを伝えるには不十分であるという課題があった。
【０００６】
本発明は、上記問題点を解決するために成されたものであり、システムが理解したことをユーザに伝達し、スムーズな対話を可能とすることができる発話生成装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、第１の発明に係る発話生成装置は、ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力する音声区間検出部と、前記音声区間検出部によって検出された音声の開始に対応する区間の音声について音声認識を行い、前記区間の途中の認識結果を含む、前記区間の終了までの認識結果を逐次出力する音声認識部と、前記音声区間検出部による検出結果、及び前記音声認識部による認識結果に基づいて、前記音声認識が行われていることを示す発話を生成する相槌生成部、前記音声認識部による認識結果に基づいて、認識された文字列を示す発話を生成する焦点抽出部、及び前記音声認識部による認識結果に基づいて、システムが理解した内容を示す発話を生成する復唱生成部の少なくとも一つを含む発話生成部と、発話出力部と、前記音声認識部及び前記音声区間検出部の両方又は何れかからの出力を、前記発話生成部へ出力し、前記発話生成部からの出力を前記発話出力部へ出力する通信部と、を含んで構成されている。
【０００８】
また、第２の発明に係る発話生成装置は、ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力する音声区間検出部と、前記音声区間検出部によって検出された音声の開始に対応する区間の音声について音声認識を行い、前記区間の途中の認識結果を含む、前記区間の終了までの認識結果を逐次出力する音声認識部と、前記音声区間検出部による検出結果、及び前記音声認識部による認識結果に基づいて、前記音声認識が行われていることを示す発話を生成する相槌生成部、前記音声認識部による認識結果に基づいて、認識された文字列を示す発話を生成する焦点抽出部、及び前記音声認識部による認識結果に基づいて、システムが理解した内容を示す発話を生成する復唱生成部の少なくとも一つを含む発話生成部と、前記音声認識部による認識結果に基づいて、前記ユーザ発話に対応する応答発話を生成する応答部と、発話出力部と、前記音声認識部及び前記音声区間検出部の両方又は何れかからの出力を、前記発話生成部及び前記応答部へ出力し、前記発話生成部及び前記応答部の両方又は何れかからの出力を前記発話出力部へ出力する通信部と、を含んで構成されている。
【０００９】
また、第１の発明に係る発話生成装置において、前記発話出力部は、前記発話生成部によって生成された前記発話を出力しているときに、前記発話生成部によって生成された新たな前記発話が入力されると、前記新たな前記発話の出力は行わないようにしてもよい。
【００１０】
また、第２の発明に係る発話生成装置において、前記発話出力部は、前記発話生成部によって生成された前記発話を出力しているときに、前記発話生成部によって生成された新たな前記発話が入力されると、前記新たな前記発話の出力は行わず、前記発話生成部によって生成された前記発話を出力しているときに、前記応答部によって生成された前記応答発話が入力されると、前記発話生成部によって生成された前記発話を出力した後に、前記応答発話の出力を行うようにしてもよい。
【００１１】
また、第１及び第２の発明に係る発話生成装置において、前記復唱生成部は、前記音声認識部による認識結果を表す文字列から、述語項構造を抽出し、前記抽出された述語項構造に基づいて、前記システムが理解した内容を示す発話を生成するようにしてもよい。
【００１２】
また、第１及び第２の発明に係る発話生成装置において、前記相槌生成部は、前記音声区間検出部によって前記音声の開始が検出されたときに、前記音声認識が行われていることを示す発話を生成するようにしてもよい。
【００１３】
また、第１及び第２の発明に係る発話生成装置において、前記音声認識部は、ショートポーズを検知したとき、又は前記区間の終了までの期間における一定時間おきに、認識結果を出力し、前記相槌生成部は、前記音声認識部による、ショートポーズを検知したときの認識結果の出力、又は前記音声認識部による一定時間おきの認識結果の出力があったときに、前記音声認識が行われていることを示す発話を生成するようにしてもよい。
【００１４】
また、第１及び第２の発明に係る発話生成装置において、前記相槌生成部は、前記音声認識部によって前記区間が終了したときの認識結果が出力されたときに、前記音声認識が行われていることを示す発話を生成するようにしてもよい。
【００１５】
また、第１及び第２の発明に係る発話生成装置において、前記発話出力部は、音声により出力するようにしてもよい。
【００１６】
また、第１及び第２の発明に係る発話生成装置において、前記発話出力部は、ディスプレイ表示により出力するようにしてもよい。
【００１７】
第３の発明に係る発話生成方法は、音声区間検出部と、音声認識部、相槌生成部、及び焦点抽出部の少なくとも一つを含む発話生成部と、復唱生成部と、発話出力部と、通信部とを含む発話生成装置における発話生成方法であって、前記音声区間検出部が、ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力するステップと、前記音声認識部が、前記音声区間検出部によって検出された音声の開始に対応する区間の音声について音声認識を行い、前記区間の途中の認識結果を含む、前記区間の終了までの認識結果を逐次出力するステップと、前記通信部が、前記音声認識部及び前記音声区間検出部の両方又は何れかからの出力を、前記発話生成部へ出力するステップと、前記発話生成部において、前記相槌生成部が、前記音声区間検出部による検出結果、及び前記音声認識部による認識結果に基づいて、前記音声認識が行われていることを示す発話を生成するステップ、前記焦点抽出部が、前記音声認識部による認識結果に基づいて、認識された文字列を示す発話を生成するステップ、及び前記復唱生成部が、前記音声認識部による認識結果に基づいて、システムが理解した内容を示す発話を生成するステップの少なくとも一つを実行するステップを含み、前記通信部が、前記発話生成部からの出力を前記発話出力部へ出力するステップと、を含んで実行することを特徴とする。
【００１８】
第４の発明に係る発話生成方法は、音声区間検出部と、音声認識部、相槌生成部、及び焦点抽出部の少なくとも一つを含む発話生成部と、復唱生成部と、発話出力部と、応答部と、通信部とを含む発話生成装置における発話生成方法であって、前記音声区間検出部が、ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力するステップと、前記音声認識部が、前記音声区間検出部によって検出された音声の開始に対応する区間の音声について音声認識を行い、前記区間の途中の認識結果を含む、前記区間の終了までの認識結果を逐次出力するステップと、前記通信部が、前記音声認識部及び前記音声区間検出部の両方又は何れかからの出力を、前記発話生成部及び前記応答部へ出力するステップと、前記発話生成部において、前記相槌生成部が、前記音声区間検出部による検出結果、及び前記音声認識部による認識結果に基づいて、前記音声認識が行われていることを示す発話を生成するステップ、前記焦点抽出部が、前記音声認識部による認識結果に基づいて、認識された文字列を示す発話を生成するステップ、及び前記復唱生成部が、前記音声認識部による認識結果に基づいて、システムが理解した内容を示す発話を生成するステップの少なくとも一つを実行するステップを含み、前記応答部が、前記音声認識部による認識結果に基づいて、前記ユーザ発話に対応する応答発話を生成するステップと、前記通信部が、前記発話生成部及び前記応答部の両方又は何れかからの出力を前記発話出力部へ出力するステップと、を含んで実行することを特徴とする。
【００１９】
第５の発明に係るプログラムは、コンピュータを、上記第１及び第２の発明に係る発話生成装置の各部として機能させるためのプログラムである。
【発明の効果】
【００２０】
本発明の発話生成装置、方法、及びプログラムによれば、ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力し、検出された音声の開始に対応する区間の音声について音声認識を行い、区間の途中の認識結果を含む、区間の終了までの認識結果を逐次出力し、音声区間検出部による検出結果、及び音声認識部による認識結果に基づいて、音声認識が行われていることを示す発話を生成する相槌生成部、音声認識部による認識結果に基づいて、認識された文字列を示す発話を生成する焦点抽出部、及び音声認識部による認識結果に基づいて、システムが理解した内容を示す発話を生成する復唱生成部の少なくとも一つを含む発話生成部を持ち、音声認識部及び音声区間検出部の両方又は何れかからの出力を、発話生成部へ出力し、発話生成部からの出力を発話出力部へ出力することにより、システムが理解したことをユーザに伝達し、スムーズな対話を可能とすることができる、という効果が得られる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態に係る発話生成装置の構成を示すブロック図である。
【図２】音声区間検出部と音声認識部がpublishするチャネルとそのタイミングを示す図である。
【図３】ＣＲＦの学習データに一例を示す図である。
【図４】本発明の実施の形態に係る発話生成装置における発話生成処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２３】
＜本発明の実施の形態に係る発話生成装置の構成＞
【００２４】
まず、本発明の実施の形態に係る発話生成装置の構成について説明する。図１に示すように、本発明の実施の形態に係る発話生成装置１００は、ＣＰＵと、ＲＡＭと、後述する発話生成処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この発話生成装置１００は、機能的には図１に示すように入力部１０と、演算部２０と、発話出力部５０とを備えている。
【００２５】
入力部１０は、ユーザ発話を表す音のストリームを入力として受け付ける。
【００２６】
演算部２０は、通信部２８と、音声区間検出部３０と、音声認識部３２と、発話生成部４０と、応答部４８とを含んで構成されている。
【００２７】
まず、はじめに通信部２８について説明する。なぜなら、この部はすべての部の橋渡しとなる部だからである。
【００２８】
通信部２８は、後述する音声認識部３２及び音声区間検出部３０の両方又は何れかからの出力を、発話生成部４０及び応答部４８へ出力する。具体的には、音声区間検出部３０の区間の検出結果及び音声認識部３２の音声の認識結果の出力を、発話生成部４０に出力し、音声認識部３２の音声の認識結果の出力を応答部４８へ出力する。また、発話生成部４０及び応答部４８の両方又は何れかからの出力を発話出力部５０へ出力する。この場合、発話生成部４０及び応答部４８では順次発話及び応答発話が生成されるため、受け付けたものを順次出力すればよい。
【００２９】
通信部２８で用いられる音声対話システムのモジュール群はPublisher-Subscriberモデルに基づいて通信を行う。このモデルでは、publisherとなったモジュールは特定のチャネルに対し情報を流す（publishするという）。subscriberとなったモジュールが、チャネルを事前にsubscribe（購読）しておくと、そのチャネルに流れてきた情報を受け取ることができる。あるモジュールは、publisherかつsubscriberになってもよい。また、一つのモジュールが複数のチャネルに情報を流してもよいし、複数のチャネルから情報を受け取ってもよい。通信部２８は、publisherとsubscriberの管理を行い、チャネルの制御を行う。このような制御を行うソフトウェアとして、ActiveMQというフリーソフトウェアがあり、ここではこの実装を通信部として用いる。以降に述べるすべてのモジュールはpublisherまたはsubscriberであり、特定のチャネルに情報を流すことで連携する仕組みとなっている。もちろん、モジュールの連携ではpeer to peerモデルなどがあり、他のものを用いてもよい。
【００３０】
音声区間検出部３０は、入力部１０で受け付けたユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力（publish）する。
【００３１】
音声区間検出部３０においては、検出した区間の音声を、音声認識部３２に逐次送る。音声区間の検出には、音声のパワーや、ゼロクロスといった一般な音声の特徴を用いればよい。音声の開始時と音声の終了時には、通信部２８を介し、VAD STARTとVAD ENDというチャネルにメッセージをpublishする。ここでは、開始と終了が他のモジュールに伝わればよいため、メッセージの中身は空でよい。
【００３２】
音声認識部３２は、以下に説明するように、音声区間検出部３０によって検出された音声の開始に対応する区間の音声について音声認識を行い、当該区間の途中の認識結果を含む、当該区間の終了までの認識結果を逐次出力（publish）する。また、音声認識部３２は、ショートポーズを検知したとき、又は区間の終了までの期間における一定時間おきに、認識結果を出力（publish）する。
【００３３】
音声認識部３２の音声認識では、音声認識器にはNTT(R)が開発したものを用いる。これは、深層学習と大規模な重み付き有限状態オートマトンを用いた高精度な音声認識器である。この詳細は、以下の非特許文献に記載されている。
【００３４】
非特許文献４：久保陽太郎, 小川厚徳, 堀貴明, 中村篤. 音声と言語の一体型学習に基づく音声認識技術.NTT技術ジャーナル, Vol.25 No.9 pages 22-25, 2013.
【００３５】
音声認識というのは、内部的には、ネットワークの探索処理である。複数の単語列の仮説を展開しながら、音響的、言語的に尤度が高いものを残しながら探索を行う。音声が入力される度に探索は進む。音声認識器の内部状態を参照しながら、音声認識部３２は、音声認識開始時、ショートポーズ検知時（100ms〜200ms 程度のポーズを検知した時）、ロングポーズ検知時（200ms以上の長いポーズを検知した時とする。この時点で、音声認識は終了する）、及び、一定時間おき（たとえば、100msおき）に認識結果を出力する。それぞれのタイミングにおいて、通信部２８を介し、RECG START、RECG SP、RECG LP、及びRECG NPというチャネルに認識結果をpublishする。SPはショートポーズ、LPはロングポーズ、NPはポーズではない（not a pause）のことをそれぞれ表している。
【００３６】
図２に音声区間検出部３０と音声認識部３２がpublishするチャネルとそのタイミングを示す。
【００３７】
発話生成部４０は、相槌生成部４２と、焦点抽出部４４と、復唱生成部４６とを含んで構成されている。発話生成部４０の各構成部は、それぞれ非同期に処理が行われ、各構成部によって生成した発話を順次、通信部２８を介してpublishする。なお、発話生成部４０は、相槌生成部４２と、焦点抽出部４４と、復唱生成部４６との各部をいずれか少なくとも一つを含んでいればよい。
【００３８】
相槌生成部４２は、以下に説明するように、音声区間検出部３０による検出結果、及び音声認識部３２による認識結果に基づいて、音声認識が行われていることを示す発話を生成する。また、音声区間検出部３０によって音声の開始が検出されたときに、音声認識が行われていることを示す発話を生成する。また、音声認識部３２による、ショートポーズを検知したときの認識結果の出力、又は音声認識部３２による一定時間おきの認識結果の出力があったときに、音声認識が行われていることを示す発話を生成する。また、音声認識部３２によって区間が終了したときの認識結果が出力されたときに、音声認識が行われていることを示す発話を生成する。
【００３９】
相槌生成部４２では、相槌生成部はVAD START、RECG SP、RECG LP、RECG NPのいずれか少なくとも一つをsubscribeして、これらのチャネルのメッセージが届いていたら、正しく音声区間が検出された、もしくは、正しく認識が行われている旨を表すための相槌発話を生成する。具体的には、「はい」や「ええ」を含む数発話の相槌のリストからランダムに一つを選択して相槌発話とする。一つを選択したら、通信部２８を介し、UTT BCというチャネルに、この発話内容をpublishする。UTTはutterance（発話）のことであり、BCとはback-channel（相槌）を表す。なお、確率的に相槌発話を生成してもよい。たとえば、ランダムに、二回に一回程度相槌を生成してもよい。VAD STARTで相槌を打つと、音声が始まったことを理解したということをユーザに伝えることができる。また、RECG SP、RECG NPで相槌を打つことは、発話の途中でもシステムがユーザの発話を聞いているということを伝えることができる。また、RECG LPに相槌を打つことで発話が終わったことがシステムに理解されたことを伝えることができる。
【００４０】
焦点抽出部４４は、以下に説明するように、音声認識部３２による認識結果に基づいて、認識された文字列を示す発話を生成する。
【００４１】
焦点抽出部４４では、RECG SP、RECG LP、RECG NPのいずれか少なくとも一つをsubscribeして、これらのチャネルからメッセージが届いたら、そのメッセージの内容である部分的、もしくは、最終的な音声認識結果に対して、焦点抽出を行う。焦点抽出とは、発話文字列に含まれる対話の話題として相応しい単語列やフレーズのことである。
【００４２】
焦点を抽出する問題は、発話文字列中の部分文字列と捉えることができるため、系列ラベリングの手法によって焦点を抽出する。具体的には、多くの発話文を事前に収集し、それらの発話文中の焦点として相応しい単語やフレーズをラベル付けする。例えば、以下は焦点がタグ付けされたデータの例である。
【００４３】
<cand>キャンプ</cand>みたいですね。
今週末とかはうってつけですね。
<cand>バラエティー</cand>もよく見るんですよ。
【００４４】
ここで、<cand>と</cand>に囲まれている箇所が、焦点として相応しいとされた単語やフレーズである。このようなデータを大量に作成し、未知の発話文についても、これらの箇所を同定できるようなモデルを系列ラベリングの手法によって学習する。具体的には、条件付き確率場（conditional random field,CRF）と呼ばれる手法を用いた。この手法は文書について、それに含まれる特定の系列をラベル付けする一般的な方法である。
【００４５】
学習にあたっては、上記のようなタグ付きデータについて、形態素解析し、それぞれの形態素について、焦点として相応しい単語やフレーズであるかのラベルを付与することで、図４のようなCRFの学習データを作成する。
【００４６】
ここで、各カラムはそれぞれ、単語表記、品詞、NTT(R)の日本語語彙大系における一般名詞の意味属性、日本語語彙大系における固有名詞の意味属性、焦点（焦点の開始であるか（B-cand)、焦点の中間であるか(I-cand)、焦点ではないか(O)）を表す。空行は発話文の区切りを表す。意味属性は概念を表す番号である。該当する意味属性が当該単語に付与されていない場合には、Oが付与される。
【００４７】
学習には、既存のツールであるCRF++などを用いればよい。また、CRFSuiteといった他のフリーソフトを用いてもよい。
【００４８】
このデータからCRFのモデルが学習でき、未知の文について、このモデルを適用することで、焦点を得ることができる。具体的には、未知の文について、形態素解析を行い、上記学習データと同様のデータを作成し（この場合正解が分からないため、焦点に関わる情報はすべてOとする）、CRFのモデルに、最も尤度が高くなるように、形態素毎に、焦点の開始であるか、中間であるか、焦点ではないかというラベルを推定させる。
【００４９】
「ラーメンが食べたい」について、ラーメンの単語に、B-candが付与されたのであれば、「ラーメン」が焦点として抽出される。また、名詞句の場合にはB-cand及びI-candを連結したものを焦点として抽出する。
【００５０】
このように、焦点抽出部４４は、入力された音声の認識結果について焦点抽出を行い、その結果、焦点が得られたら通信部２８を介し、UTT BCのチャネルに、焦点の文字列をpublishする。
【００５１】
復唱生成部４６は、以下に説明するように、音声認識部３２による認識結果に基づいて、システムが理解した内容を示す発話を生成する。ここでは、音声認識部３２による認識結果を表す文字列から、述語項構造を抽出し、抽出された述語項構造に基づいて、システムが理解した内容を示す発話を生成する。
【００５２】
復唱生成部４６では、RECG SP、RECG LP、RECG NPのいずれか少なくとも一つから得られる音声認識結果について、述語項構造解析を行い、得られた構造から、相手の発話内容を繰り返す（復唱する）文を生成する。
【００５３】
述語項構造解析とは、「何がどうした」を抽出する処理で、文章から述語およびその項となる名詞句を抽出する処理である。下記の非特許文献５には、その処理の詳細な記述がある。
【００５４】
非特許文献５：今村賢治,東中竜一郎,泉朋子. 対話解析のためのゼロ代名詞照応解析付き述語項構造解析. 自然言語処理, 2015, 22.1: 3-26.
【００５５】
「太郎が動物園に行くんです」という文であれば、「行く」が述語、「太郎」が主語（ガ格の項）、「動物園」が（間接）目的語（ニ格の項）と解析される。
【００５６】
入力文の述語項構造が分かれば、そこから文を生成することができる。例えば、ガ格、二格（それ以外の格）、述語の順番で並べることで、「太郎が動物園に行く」という文が生成できる。この文について、手作業による文末調整のルールを適用することで、「太郎が動物園に行くんだね」「太郎が動物園に行くんですね」といった、復唱に相応しい、共感調の文を作成することができる。これはたとえば、「んだね」や「んですね」を付与するというルールで実現できる。これ以外にも、より複雑なルールを用いて、任意の文末表現に変換してもよい。たとえば、質問調にしてみたり、方言や特殊な語尾を付与することにより、キャラクタ付けを行ってもよい。
【００５７】
述語項構造からの発話文生成手法については、以下の非特許文献６で説明されている。
【００５８】
非特許文献６：HIGASHINAKA, Ryuichiro, et al. Towards an open-domain conversational system fully based on natural language processing. In: COLING. 2014. pp.928-939.
【００５９】
なお、述語項構造に一人称が入っていれば二人称に変換する。また、二人称が入っていれば一人称に変換する処理を行う。そうすることで、「私は元気です」とユーザが言った場合、「あなたは元気なんですね」といった適切な復唱を行うことができる。
【００６０】
復唱生成部４６は、上記ようにして、復唱文を生成してから、通信部２８を介し、UTT BCのチャネルに復唱文をpublishする。
【００６１】
応答部４８は、以下に説明するように、音声認識部３２による認識結果に基づいて、ユーザ発話に対応する応答発話を生成する。
【００６２】
応答部４８は、RECG LP（すなわち、音声区間が終わった後の音声認識結果であり、基本的に最も信頼できる認識結果）をsubscribeして受け取ると、その発話内容をもとに、次のシステム発話を生成する。応答部４８は任意の対話システムでよい。たとえば、応答ルールに基づく手法（非特許文献６）や、大規模なテキストデータに基づく発話生成の手法（前述の非特許文献５）によって応答を行うものである。
【００６３】
非特許文献７：R. S. Wallace, The Anatomy of A.L.I.C.E. A.L.I.C.E. Artificial Intelligence Foundation, Inc., 2004.
【００６４】
応答部４８が生成する応答発話は相手に理解が進んでいることを伝えるためのフィードバックを目的とした発話ではなく、システムが対話を進める上で熟考した発話であることが望ましい。生成した発話文は、通信部２８を介し、UTT GENのチャネルにpublishされる。GENとは、システムの次発話として、生成（generate）された発話文という意味である。
【００６５】
発話出力部５０は、発話生成部４０によって生成された発話又は応答部４８によって生成された応答発話を、音声合成して音声として出力するか、又はディスプレイ表示により出力する。本実施の形態では音声合成して音声として出力する。また、発話生成部４０によって生成された発話を出力しているときに、発話生成部４０によって生成された新たな発話が入力されると、新たな発話の出力は行わない。これは、相槌生成部４２、焦点抽出部４４、復唱生成部４６のいずれかの発話が行われている場合には、他の発話を行わないということである。また、発話生成部４０によって生成された発話を出力しているときに、応答部４８によって生成された応答発話が入力されると、発話生成部４０によって生成された発話を出力した後に、応答発話の出力を行う。
【００６６】
本実施の形態では、発話出力部５０は、音声合成部としての機能をもつ。発話出力部５０は、UTT BC（発話生成部４０が生成した発話）とUTT GEN（応答部４８が生成した応答発話）のチャネルをsubscribeしている。これらから通信部２８を介してメッセージを受け取ると、UTT BCであれば、その発話内容を音声合成する。すでにUTT BCの内容を音声合成中や発話中であれば、新たなUTT BCの音声合成は取りやめる。UTT GENのチャネルでメッセージを受け取ると、それはシステムが熟考した応答であるから、必ず音声合成を行い発話する。もしUTT BCの処理中であれば、その処理を待って、UTT GENの内容を発話する。なお、音声合成には、市販の音声合成エンジンを用いればよい。
【００６７】
なお、ディスプレイ表示により出力する場合には、表示の仕方としては、例えば、システムの発話をディスプレイに表示するとき、発話を表示した後、発話を音声出力した場合にかかる時間分たった後に、最新のメッセージを出力（発話出力部５０でメッセージの出力中に到着したメッセージはスキップされる動き相当）することができる。また、文字を人が読み上げる標準的な速さで（例えば４文字／秒）１文字づつ表示してもよい。ディスプレイに発話を表示すると、それまでのシステムの発話をユーザが確認できるというメリットがある。また、音声出力とあわせてディスプレイに発話を表示すると、ユーザの聞き間違いを防ぐことができ好適である。
【００６８】
＜本発明の実施の形態に係る発話生成装置の作用＞
【００６９】
次に、本発明の実施の形態に係る発話生成装置１００の作用について説明する。入力部１０においてユーザ発話を表す音のストリームを入力として受け付けると、発話生成装置１００は、図５に示す発話生成処理ルーチンを実行する。
【００７０】
まず、ステップＳ１００では、音声区間検出部３０が、入力部１０で受け付けたユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力（publish）する。
【００７１】
次に、ステップＳ１０２では、音声認識部３２が、ステップＳ１００によって検出された音声の開始に対応する区間の音声について音声認識を行い、当該区間の途中の認識結果を含む、当該区間の終了までの認識結果を逐次出力（publish）する。また、ショートポーズを検知したとき、又は区間の終了までの期間における一定時間おきに、認識結果を出力（publish）する。
【００７２】
ステップＳ１０４では、通信部２８が、ステップＳ１００の区間の検出結果及びＳ１０２の音声の認識結果の出力を、発話生成部４０に出力し、ステップＳ１０２の音声の認識結果の出力を応答部４８へ出力する。
【００７３】
ステップＳ１０６では、発話生成部４０において、相槌生成部４２が、音声区間検出部３０による検出結果、及び音声認識部３２による認識結果に基づいて、音声認識が行われていることを示す発話を生成し、焦点抽出部４４が、音声認識部３２による認識結果に基づいて、認識された文字列を示す発話を生成し、復唱生成部４６が、音声認識部３２による認識結果に基づいて、システムが理解した内容を示す発話を生成し、それぞれで順次生成された発話を生成順にpublishする。
【００７４】
ステップＳ１０８では、応答部４８が、音声認識部３２による認識結果に基づいて、ユーザ発話に対応する応答発話を生成しpublishする。
【００７５】
ステップＳ１１０では、通信部２８が、発話生成部４０及び応答部４８の両方又は何れかからの出力を順次、発話出力部５０へ出力する。
【００７６】
ステップＳ１１２では、ステップＳ１０６で発話生成部４０によって生成された発話又はステップＳ１０８で応答部４８によって生成された応答発話を、音声合成して音声として出力する。ここでは、発話生成部４０によって生成された新たな発話が入力されると、新たな発話の出力は行わない。また、発話生成部４０によって生成された発話を出力しているときに、応答部４８によって生成された応答発話が入力されると、発話生成部４０によって生成された発話を出力した後に、応答発話の出力を行う。
【００７７】
以上説明したように、本発明の実施の形態に係る発話生成装置によれば、ユーザ発話を表す音のストリームを入力とし、音声の開始と音声の終了を検出し、検出された音声の開始と音声の終了とで規定される区間の音声を逐次出力し、かつ、音声の開始を検出したとき、あるいは音声の終了を検出したときに、検出結果を出力し、検出された音声の開始に対応する区間の音声について音声認識を行い、区間の途中の認識結果を含む、区間の終了までの認識結果を逐次出力し、音声区間検出部３０による検出結果、及び音声認識部３２による認識結果に基づいて、音声認識が行われていることを示す発話を生成する相槌生成部４２、音声認識部３２による認識結果に基づいて、認識された文字列を示す発話を生成する焦点抽出部４４、及び音声認識部３２による認識結果に基づいて、システムが理解した内容を示す発話を生成する復唱生成部の少なくとも一つを含む発話生成部４０を持ち、応答部４８によりユーザ発話に対応する応答発話を生成し、音声認識部３２及び音声区間検出部３０の両方又は何れかからの出力を、発話生成部４０又は応答部４８へ出力し、発話生成部４０又は応答部４８からの出力を発話出力部５０へ出力することにより、システムが理解したことをユーザに伝達し、スムーズな対話を可能とすることができる。
【００７８】
実際に本発明の実施の形態の技術を実装した対話システムと会話してみたところ、音声区間が適切に検出されている、もしくは、音声認識が進んでいることがユーザに伝わる音声対話システムが実現できた。また、音声認識の途中であっても、焦点抽出を行う事ができるため、ユーザが話した対話の話題として相応しい単語が、正しく認識されているかどうかがユーザに伝わることが確認できた。
【００７９】
さらに、音声認識の途中であっても、復唱文生成によって、ユーザが話した命題（何がどうした）という内容が、正しく認識されているかどうかがユーザに伝わることも確認できた。これらの仕組みによって、ユーザはシステムが正しく認識、理解しているかどうかを確認しながら対話を行うことができ、ユーザとスムーズな音声コミュニケーションが取れるシステムが実現できた。
【００８０】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【００８１】
１０   入力部
２０   演算部
２８   通信部
３０   音声区間検出部
３２   音声認識部
４０   発話生成部
４２   相槌生成部
４４   焦点抽出部
４６   復唱生成部
４８   応答部
５０   発話出力部
１００ 発話生成装置
【図１】
2018022075.tif 000003
【図２】
2018022075.tif 000004
【図３】
2018022075.tif 000005
【図４】
2018022075.tif 000006