(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025031496
(43)【公開日】2025-03-07
(54)【発明の名称】対話システム、対話方法及び対話プログラム
(51)【国際特許分類】
G06F 40/279 20200101AFI20250228BHJP
G06F 40/216 20200101ALI20250228BHJP
G06F 40/56 20200101ALI20250228BHJP
G06F 16/90 20190101ALI20250228BHJP
【FI】
G06F40/279
G06F40/216
G06F40/56
G06F16/90 100
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2024047636
(22)【出願日】2024-03-25
(31)【優先権主張番号】P 2023134388
(32)【優先日】2023-08-22
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】521077624
【氏名又は名称】株式会社IVRy
(74)【代理人】
【識別番号】110004093
【氏名又は名称】弁理士法人アクセル特許事務所
(72)【発明者】
【氏名】奥西亮賀
(72)【発明者】
【氏名】神山拓也
(72)【発明者】
【氏名】花木健太郎
(72)【発明者】
【氏名】町田雄一郎
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA01
5B175GC03
(57)【要約】
【課題】 対話システムが誤った情報を出力することを抑制する。
【解決手段】
一実施形態に係る対話システムは、推定モデルを利用して、音声情報又はテキスト情報から意図を推定する意図推定部と、前記意図が手続きである場合、抽出モデルを利用して、前記音声情報又はテキスト情報から当該手続きに対応するスロット情報を抽出するスロット抽出部と、前記意図が質問である場合、当該質問に対応する回答情報を取得する回答取得部と、前記スロット情報及び前記回答情報の少なくとも一方に基づいて、第1テキストを生成する第1テキスト生成部と、前記スロット情報に基づいて、第2テキストを生成する第2テキスト生成部と、前記第1テキスト及び前記第2テキストを出力する出力部と、を備える。
【選択図】
図11
【特許請求の範囲】
【請求項1】
推定モデルを利用して、音声情報又はテキスト情報から意図を推定する意図推定部と、
前記意図が手続きである場合、抽出モデルを利用して、前記音声情報又はテキスト情報から当該手続きに対応するスロット情報を抽出するスロット抽出部と、
前記意図が質問である場合、当該質問に対応する回答情報を取得する回答取得部と、
前記スロット情報及び前記回答情報の少なくとも一方に基づいて、第1テキストを生成する第1テキスト生成部と、
前記スロット情報に基づいて、第2テキストを生成する第2テキスト生成部と、
前記第1テキスト及び前記第2テキストを出力する出力部と、
を備える対話システム。
【請求項2】
前記第1テキストは、予め設定された第1応答ルールに従って生成される
請求項1に記載の対話システム。
【請求項3】
前記第2テキストは、予め設定された第2応答ルールに従って生成される
請求項1に記載の対話システム。
【請求項4】
前記回答情報は、予め設定される
請求項1に記載の対話システム。
【請求項5】
前記推定モデルは、自然言語処理モデルである
請求項1に記載の対話システム。
【請求項6】
前記抽出モデルは、自然言語処理モデルである
請求項1に記載の対話システム。
【請求項7】
音声情報をテキスト情報に変換するテキスト変換部を更に備える
請求項1に記載の対話システム。
【請求項8】
前記手続きは、予約、注文、購入、申請又はこれらの変更若しくはキャンセルである
請求項1に記載の対話システム。
【請求項9】
前記手続きは、1又は複数のスロット情報を予め設定される
請求項1に記載の対話システム。
【請求項10】
前記出力部は、前記第1テキスト及び第2テキストに対応する音声情報を出力する
【請求項11】
前記出力部は、前記第1テキスト及び第2テキストに対応するテキスト情報を出力する
【請求項12】
前記手続きを実行する手続き部を更に備える
請求項1に記載の対話システム。
【請求項13】
前記手続き部が実行した手続きの内容を通知する通知部を更に備える
請求項1に記載の対話システム。
【請求項14】
対話システムが実行する対話方法であって、
推定モデルを利用して、音声情報又はテキスト情報の意図を推定する意図推定ステップと、
前記意図が手続きである場合、抽出モデルを利用して、前記音声情報又はテキスト情報から当該手続きに対応するスロット情報を抽出するスロット抽出ステップと、
前記意図が質問である場合、当該質問に対応する回答情報を取得する回答取得ステップと、
前記スロット情報及び前記回答情報の少なくとも一方に基づいて、第1テキストを生成する第1テキスト生成ステップと、
前記スロット情報に基づいて、第2テキストを生成する第2テキスト生成ステップと、
前記第1テキスト及び前記第2テキストを出力する出力ステップと、
を備える対話方法。
【請求項15】
対話システムに、
推定モデルを利用して、音声情報又はテキスト情報の意図を推定する意図推定ステップと、
前記意図が手続きである場合、抽出モデルを利用して、前記音声情報又はテキスト情報から当該手続きに対応するスロット情報を抽出するスロット抽出ステップと、
前記意図が質問である場合、当該質問に対応する回答情報を取得する回答取得ステップと、
前記スロット情報及び前記回答情報の少なくとも一方に基づいて、第1テキストを生成する第1テキスト生成ステップと、
前記スロット情報に基づいて、第2テキストを生成する第2テキスト生成ステップと、
前記第1テキスト及び前記第2テキストを出力する出力ステップと、
を備える対話方法を実行させる対話プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対話システム、対話方法及び対話プログラムに関する。
【背景技術】
【0002】
近年、自然言語処理(Natural Language Processing)モデルの一種である大規模言語モデル(Large Language Models)を利用した対話システムが実用化されている。例えば、引用文献1には、電子装置において遂行される応答生成方法であって、少なくとも1つの発話(utterance)データを獲得する段階と、コンテキスト候補セットから前記発話データに対応する第1コンテキストを獲得する段階と、前記第1コンテキストおよび前記発話データを含む1つ以上の対話(dialogue)セットを生成する段階と、ユーザーから第2コンテキストを受信する段階と、前記1つ以上の対話セットに基づいて、言語モデルを使用して前記第2コンテキストに対応する応答を獲得する段階と、を含む、応答生成方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記従来技術では、ユーザへの応答が言語モデルにより生成される。しかしながら、言語モデルは、誤った情報を出力する場合があるため、予約システムなどの、手続きを自動化するための対話システムでの利用は困難であった。
【0005】
本発明は、上記の課題を鑑みてなされたものであり、対話システムが誤った情報を出力することを抑制することを目的とする。
【課題を解決するための手段】
【0006】
一実施形態に係る対話システムは、推定モデルを利用して、音声情報又はテキスト情報から意図を推定する意図推定部と、前記意図が手続きである場合、抽出モデルを利用して、前記音声情報又はテキスト情報から当該手続きに対応するスロット情報を抽出するスロット抽出部と、前記意図が質問である場合、当該質問に対応する回答情報を取得する回答取得部と、前記スロット情報及び前記回答情報の少なくとも一方に基づいて、第1テキストを生成する第1テキスト生成部と、前記スロット情報に基づいて、第2テキストを生成する第2テキスト生成部と、前記第1テキスト及び前記第2テキストを出力する出力部と、を備える。
【発明の効果】
【0007】
一実施形態によれば、対話システムが誤った情報を出力することを抑制することができる。
【図面の簡単な説明】
【0008】
【
図1】対話システム1000の構成の一例を示す図である。
【
図2】対話装置1のハードウェア構成の一例を示す図である。
【
図3】ユーザ端末2のハードウェア構成の一例を示す図である。
【
図4】対話装置1の機能構成の一例を示す図である。
【
図8】対話システム1000が実行する処理の一例を示すフローチャートである。
【
図9】第1テキストの生成方法の一例を示すフローチャートである。
【
図10】第2テキストの生成方法の一例を示すフローチャートである。
【
図12】手続き情報124’の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0010】
<システム構成>
まず、本実施形態に係る対話システム1000の概要について説明する。対話システム1000は、自然言語処理モデルを利用して、ユーザとの対話を自動で行うシステムである。対話システム1000は、ユーザがテキストチャット、ボイスチャット又は通話(電話)で対象者に対して手続きを実行するための対話システムとして利用できる。チャットはテキスト入力であっても音声入力であってもよい。
【0011】
ユーザとは、対話システム1000の利用者であり、手続きを行う者である。
【0012】
対象者とは、ユーザからの手続きを受け付ける者である。対象者は、例えば、サービス提供者(宿泊施設、飲食店など)、商品又はサービスの販売者(商店など)、公共機関、行政機関又はこれらから手続きの受付の代行を受けたものであるが、これに限られない。
【0013】
手続きとは、ユーザが対象者に対して実行することである。手続きは、例えば、予約、注文、購入、申請又はこれらの変更若しくはキャンセルであるが、これに限られない。
【0014】
図1は、対話システム1000の構成の一例を示す図である。
図1に示すように、対話システム1000は、ネットワークNを介して相互に通信可能に接続された、対話装置1と、ユーザ端末2と、を備える。ネットワークNは、例えば、有線LAN(Local Area Network)、無線LAN、インターネット、公衆回線網、モバイルデータ通信網、又はこれらの組み合わせである。
図1の例では、対話システム1000は、対話装置1及びユーザ端末2をそれぞれ1つずつ備えるが、それぞれ複数備えてもよい。
【0015】
対話装置1は、ユーザからの入力に対して自動で応答する情報処理装置である。対話装置1は、例えば、PC(Personal Computer)、スマートフォン、タブレット端末、サーバ装置、又はマイクロコンピュータであるが、これに限られない。
図1の例では、対話装置1は、1の情報処理装置であるが、ネットワークNを介して接続された複数の情報処理装置からなるシステムとして実現されてもよい。
【0016】
ユーザ端末2は、ユーザが手続きを実行するための情報処理装置である。ユーザ端末2は、例えば、PC、スマートフォン又はタブレット端末であるが、これに限られない。ユーザは、ユーザ端末2を介して、手続きのための入力を行う。ユーザの入力は、例えば、音声、テキスト又はボタン操作であるが、これに限られない。
【0017】
<対話装置1のハードウェア構成>
次に、対話装置1のハードウェア構成について説明する。
図2は、対話装置1のハードウェア構成の一例を示す図である。
図2に示すように、対話装置1は、バスB1を介して相互に接続された、プロセッサ101と、メモリ102と、ストレージ103と、通信I/F104と、入力装置105と、出力装置106と、ドライブ装置107と、を備える。
【0018】
プロセッサ101は、ストレージ103に記憶されたOS(Operating System)及び対話プログラムを含む各種のプログラムをメモリ102に展開して実行することにより、対話装置1の各構成を制御し、対話装置1の機能を実現する。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)又はDSP(Digital Signal Processor)であるが、これに限られない。
【0019】
メモリ102は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、又はこれらの組み合わせである。ROMは、例えば、PROM(Programmable ROM)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、又はこれらの組み合わせである。RAMは、例えば、DRAM(Dynamic RAM)又はSRAM(Static RAM)であるが、これに限られない。
【0020】
ストレージ103は、OS及び対話プログラムを含む各種のプログラム及びデータを記憶する。ストレージ103は、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)又はSCM(Storage Class Memories)であるが、これに限られない。
【0021】
通信I/F104は、対話装置1を、ネットワークNを介して外部装置に接続し、通信を制御するためのインタフェースである。通信I/F104は、例えば、Bluetooth(登録商標)、Wi-Fi(登録商標)、ZigBee(登録商標)又はEthernet(登録商標)であるが、これに限られない。
【0022】
入力装置105は、対話装置1に情報を入力するための装置である。入力装置105は、例えば、マウス、キーボード、タッチパネル、マイク、スキャナ、撮影装置(カメラ)、各種センサ又は操作ボタンであるが、これに限られない。
【0023】
出力装置106は、対話装置1から情報を出力するための装置である。出力装置106は、例えば、表示装置(ディスプレイ)、プロジェクタ、プリンタ、スピーカ又はバイブレータであるが、これに限られない。
【0024】
ドライブ装置107は、記録メディア108のデータを読み書きする装置である。ドライブ装置107は、例えば、磁気ディスクドライブ、光学ディスクドライブ、光磁気ディスクドライブ又はSDカードリーダであるが、これに限られない。記録メディア108は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、FD(Floppy Disk)、MO(Magneto-Optical disk)、BD(Blu-ray(登録商標) Disc)、USB(登録商標)メモリ又はSDカードであるが、これに限られない。
【0025】
なお、本実施形態において、対話プログラムは、対話装置1の製造段階でメモリ102又はストレージ103に書き込まれてもよいし、ネットワークNを介して対話装置1に提供されてもよいし、記録メディア108などの非一時的でコンピュータ読み取り可能な記録媒体を介して対話装置1に提供されてもよい。
【0026】
<ユーザ端末2のハードウェア構成>
次に、ユーザ端末2のハードウェア構成について説明する。
図3は、ユーザ端末2のハードウェア構成の一例を示す図である。
図3に示すように、ユーザ端末2は、バスB2を介して相互に接続された、プロセッサ201と、メモリ202と、ストレージ203と、通信I/F204と、入力装置205と、出力装置206と、を備える。
【0027】
プロセッサ201は、ストレージ203に記憶されたOS及び対話プログラムを含む各種のプログラムをメモリ202に展開して実行することにより、ユーザ端末2の各構成を制御し、ユーザ端末2の機能を実現する。プロセッサ201は、例えば、CPU、MPU、GPU、ASIC又はDSPであるが、これに限られない。
【0028】
メモリ202は、例えば、ROM、RAM、又はこれらの組み合わせである。ROMは、例えば、PROM、EPROM、EEPROM、又はこれらの組み合わせである。RAMは、例えば、DRAM又はSRAMであるが、これに限られない。
【0029】
ストレージ203は、OS及び対話プログラムを含む各種のプログラム及びデータを記憶する。ストレージ203は、例えば、フラッシュメモリ、HDD、SSD又はSCMであるが、これに限られない。
【0030】
通信I/F204は、ユーザ端末2を、ネットワークNを介して外部装置に接続し、通信を制御するためのインタフェースである。通信I/F204は、例えば、Bluetooth(登録商標)、Wi-Fi(登録商標)、ZigBee(登録商標)又はEthernet(登録商標)であるが、これに限られない。
【0031】
入力装置205は、ユーザ端末2に情報を入力するための装置である。入力装置205は、例えば、マウス、キーボード、タッチパネル、マイク、スキャナ、撮影装置(カメラ)、各種センサ又は操作ボタンであるが、これに限られない。
【0032】
出力装置206は、ユーザ端末2から情報を出力するための装置である。出力装置206は、例えば、表示装置(ディスプレイ)、プロジェクタ、プリンタ、スピーカ又はバイブレータであるが、これに限られない。
【0033】
なお、本実施形態において、対話プログラムは、ユーザ端末2の製造段階でメモリ202又はストレージ203に書き込まれてもよいし、ネットワークNを介してユーザ端末2に提供されてもよいし、記録メディア208などの非一時的でコンピュータ読み取り可能な記録媒体を介してユーザ端末2に提供されてもよい。
【0034】
<対話装置1の機能構成>
次に、対話装置1の機能構成について説明する。
図4は、対話装置1の機能構成の一例を示す図である。
図4に示すように、対話装置1は、通信部11と、記憶部12と、制御部13と、を備える。
【0035】
通信部11は、通信I/F104により実現される。通信部11は、ネットワークNを介して、ユーザ端末2との間で情報の送受信を行う。通信部11は、ユーザ端末2から入力を受信し、ユーザ端末2に応答を送信する。
【0036】
記憶部12は、メモリ102及びストレージ103により実現される。記憶部12は、音声情報121と、テキスト情報122と、推定モデル123と、手続き情報124と、抽出モデル125と、対象者情報126と、Q&A情報127と、第1応答ルール128と、第2応答ルール129と、手続き内容情報130と、を記憶する。
【0037】
音声情報121は、ユーザが発話した音声の情報である。
【0038】
テキスト情報122は、ユーザが入力したテキストを示す情報又は音声情報121をテキストに変換した情報である。
【0039】
推定モデル123は、テキスト情報122からユーザの意図(コンテキスト)を推定する自然言語処理モデルである。推定モデル123は、例えば、大規模言語モデルであるが、これに限られない。推定モデル123は、テキスト情報122を入力されると、予め設定された1又は複数の意図の中から、入力されたテキスト情報122に対応する意図を出力するように学習される。推定モデル123は、例えば、テキスト情報122と意図の関係を学習してファインチューニングされたGPT(Generative Pretrained Transformer)であるが、これに限られない。
【0040】
意図は、テキスト情報122が示すテキストの目的、すなわち、発話又はテキストを入力したユーザの目的に相当する。意図は、例えば、手続き、質問、肯定又は否定であるが、これに限られない。手続きは、例えば、予約、注文、購入、申請又はこれらの変更若しくはキャンセルであるが、これに限られない。質問は、営業時間、金額、期限、人数、空席状況、キャンセル条件又は予約の可否に関する質問であるが、これに限られない。
【0041】
なお、推定モデル123は、音声情報121からユーザの意図を推定する自然言語処理モデルであってもよい。この場合、推定モデル123は、音声情報121を入力されると、予め設定された1又は複数の意図の中から、入力された音声情報121に対応する意図を出力するように学習される。推定モデル123は、例えば、音声情報121と意図の関係を学習してファインチューニングされたマルチモーダルLLM(Large Language Model)であるが、これに限られない。
【0042】
手続き情報124は、手続き(意図)ごとに設定されたスロット情報を示す情報である。スロット情報は、手続きを実行するために必要な情報として予め設定された情報である。手続き情報124は、予め設定されていてもよいし、対象者により任意に設定可能であってもよい。
【0043】
図5は、手続き情報124の一例を示す図である。
図5の手続き情報124は、情報項目として、「PID」と、「手続き」と、1又は複数の「スロット」と、「確定フラグ」と、を含む。
【0044】
「PID」は、手続きを一意に識別する識別情報である。以下では、「PID」が「Pxxx」である手続きを、手続きPxxxと称する場合がある。
【0045】
「手続き」は、手続き(意図)の名称である。
【0046】
「スロット」は、手続きを実行するために必要なスロット情報の名称である。
【0047】
「確定フラグ」は、手続き情報124のスロット情報が確定したか否かを示す情報である。「on」は確定していることを示し、「off」は確定していないことを示す。
【0048】
図5の例では、手続きP001の「手続き」は「予約」、「スロット1」は「日付」、「スロット2」は「時間」、「スロット3」は「名前」、「スロット4」は「人数」、「確定フラグ」は「off」である。これは、手続きP001は予約の手続きであり、予約を実行するために必要な情報として「日付」、「時間」、「名前」及び「人数」が設定され、手続き情報124が確定していないことを示している。
【0049】
なお、手続き情報124に含まれる情報は、上記の例に限られない。手続き情報124には、上記の情報の一部が含まれなくてもよいし、上記以外の情報が含まれてもよい。
【0050】
抽出モデル125は、テキスト情報122からスロット情報を抽出する自然言語処理モデルである。抽出モデル125は、例えば、大規模言語モデルであるが、これに限られない。抽出モデル125は、テキスト情報122を入力されると、予め設定された1又は複数のスロット情報の中から、入力されたテキスト情報122に対応するスロット情報を抽出するように学習される。抽出モデル125は、例えば、テキスト情報122と意図とスロット情報の関係を学習してファインチューニングされたGPTであるが、これに限られない。
【0051】
対象者情報126は、対象者に関する情報である。対象者情報126は、対象者ごとに記憶される。
【0052】
図6は、対象者情報126の一例を示す図である。
図6の対象者情報126は、情報項目として、「TID」と、「名前」と、「住所」と、「電話番号」と、「営業時間」と、を含む。
【0053】
「TID」は、対象者を一意に識別する識別情報である。以下では、「TID」が「Txxx」である対象者を、対象者Txxxと称する場合がある。
【0054】
「名前」は、対象者の名前である。
【0055】
「住所」は、対象者の住所である。
【0056】
「電話番号」は、対象者の電話番号である。
【0057】
「営業時間」は、対象者の営業時間である。
【0058】
なお、対象者情報126に含まれる情報は、上記の例に限られない。対象者情報126には、上記の情報の一部が含まれなくてもよいし、上記以外の情報が含まれてもよい。
【0059】
Q&A情報127は、質問を示す質問情報と、回答を示す回答情報と、の対応関係を示す情報である。Q&A情報127は、予め設定されていてもよいし、対象者により任意に設定可能であってもよい。
【0060】
図7は、Q&A情報127の一例を示す図である。
図7のQ&A情報127は、情報項目として、「QID」と、「質問」と、「回答」と、を含む。
【0061】
「QID」は、質問(意図)を一意に識別する識別情報である。以下では、「QID」が「Qxxx」である質問を、質問Qxxxと称する場合がある。
【0062】
「質問」は、質問の名称や内容を示す質問情報である。
【0063】
「回答」は、質問に対応する回答となるテキストを示す回答情報である。「回答」は、予め設定されていてもよいし、対象者により任意に設定可能であってもよい。また、「回答」は、対象者情報126を参照していてもよい。
【0064】
図7の例では、質問Q001の「質問」は「座席」、「回答」は「お席に関するご質問ですね。テーブル席、個室をご用意しております。」である。これは、質問Q001は座席に関する質問であり、この質問に対応する回答として「お席に関するご質問ですね。テーブル席、個室をご用意しております。」というテキストが設定されていることを示している。
【0065】
また、質問Q002の「質問」は「営業時間」、「回答」は「営業時間に関するご質問ですね。営業時間は{営業時間}です。」である。これは、質問Q002は営業時間に関する質問であり、この質問に対応する回答として「営業時間に関するご質問ですね。営業時間は{営業時間}です。」というテキストが設定されていることを示している。ここで、{営業時間}は、対象者情報126の「営業時間」を参照することを意味する。
【0066】
なお、Q&A情報127に含まれる情報は、上記の例に限られない。Q&A情報127には、上記の情報の一部が含まれなくてもよいし、上記以外の情報が含まれてもよい。
【0067】
第1応答ルール128は、第1テキストを生成するために予め設定されたルールである。第1テキストは、ユーザからの直前の入力に応答するテキストである。第1テキストは、例えば、相槌を示すテキスト、ユーザの入力内容を確認するテキストであるが、これに限られない。第1応答ルール128について、詳しくは後述する。
【0068】
第2応答ルール129は、第2テキストを生成するために予め設定されたルールである。第2テキストは、ユーザからの一連の入力に応じた生成される次のテキストである。第2テキストは、例えば、ユーザにスロット情報の入力を要求するテキスト、又はユーザにスロット情報の確認を要求するテキスト、又はユーザに手続きが確定したことを通知するテキストであるが、これに限られない。第2応答ルール129について、詳しくは後述する。
【0069】
手続き内容情報130は、対話装置1が実行した手続きの内容に関する情報である。手続き内容情報130は、スロット情報を含む。
【0070】
制御部13は、プロセッサ101がメモリ102からプログラムを読み出して実行し、他のハードウェア構成と協働することにより実現される。制御部13は、テキスト変換部131と、意図推定部132と、スロット抽出部133と、回答取得部134と、第1テキスト生成部135と、第2テキスト生成部136と、出力部137と、手続き部138と、通知部139と、を備える。
【0071】
テキスト変換部131は、音声認識処理により、音声情報121をテキスト情報122に変換する。
【0072】
意図推定部132は、推定モデル123を利用して、テキスト情報122からユーザの意図を推定する。
【0073】
スロット抽出部133は、いわゆるスロットフィリングを実行する。すなわち、スロット抽出部133は、ユーザの意図が手続きである場合、抽出モデル125を利用して、テキスト情報122からその手続きに対応するスロット情報を抽出し、その手続きのスロット情報として記憶部12に一時的に保存する。
【0074】
回答取得部134は、ユーザの意図が質問である場合、Q&A情報127を参照して、その質問に対応する回答情報を取得する。
【0075】
第1テキスト生成部135は、第1応答ルール128に従って、スロット情報及び回答情報の少なくとも一方に基づいて、第1テキストを生成する。
【0076】
第2テキスト生成部136は、第2応答ルール129に従って、スロット情報に基づいて、第2テキストを生成する。
【0077】
出力部137は、第1テキスト及び第2テキストを出力する。具体的には、ユーザとの対話が音声で行われる場合、出力部137は、第1テキスト及び第2テキストに対応する音声を音声合成し、得られた音声情報を出力する。出力された音声情報は、ユーザ端末2に送信され、出力装置206(スピーカ)から出力される。また、ユーザとの対話がテキストで行われる場合、出力部137は、第1テキスト及び第2テキストに対応するテキスト情報を生成して出力する。ここで生成されるテキスト情報は、出力されたテキスト情報は、ユーザ端末2に送信され、出力装置206(表示装置)に出力される。
【0078】
手続き部138は、手続き情報124の内容で手続きを実行する。例えば、手続きが予約である場合、手続き部138は、手続き情報124の内容で予約を実行する。ここでは、手続き部138が手続きを実行する手続きシステム(例えば、予約システム)として機能する場合を想定しているが、ネットワークNを介して対話装置1と接続された手続きシステムが、対話装置1とは別に設けられていてもよい。この場合、手続き部138は、手続き情報124の内容で手続きを実行するように、手続きシステムに指示を行う。
【0079】
通知部139は、実行された手続きの内容をユーザ端末2に通知する。通知は、例えば、SMS、チャット、電子メール、音声又はプッシュ通知で行われる。
【0080】
なお、対話装置1の機能構成は、上記の例に限られない。例えば、対話装置1は、上記の機能構成の一部を備え、残りをユーザ端末2が備えてもよい。また、対話装置1は、上記以外の機能構成を備えてもよい。また、対話装置1の各機能構成は、上記の通り、ソフトウェアにより実現されてもよいし、ICチップ、SoC(System on Chip)、LSI(Large Scale Integration)、マイクロコンピュータ等のハードウェアによって実現されてもよい。
【0081】
<対話システム1000が実行する学習処理>
次に、対話システム1000が実行する処理について説明する。
図8は、対話システム1000が実行する処理の一例を示すフローチャートである。以下では、ユーザが通話(電話)で手続きする場合を例に説明する。対話システム1000は、通話が終了するまで以下の処理を繰り返し実行する。
【0082】
(ステップS101)
ユーザ端末2は、入力装置205(マイク)により、ユーザが発話した音声の音声情報を取得する(ステップS101)。
【0083】
(ステップS102)
ユーザ端末2の通信部21は、取得した音声情報を対話装置1に送信する(ステップS102)。
【0084】
(ステップS103)
対話装置1の通信部11は、ユーザ端末2から音声情報を受信(取得)し(ステップS103)、音声情報121として記憶部12に保存する。
【0085】
(ステップS104)
テキスト変換部131は、音声認識処理により、音声情報121をテキスト情報122に変換し(ステップS104)、記憶部12に保存する。
【0086】
(ステップS105)
意図推定部132は、推定モデル123を利用して、テキスト情報122からユーザの意図を推定する(ステップS105)。意図推定部132は、例えば、ユーザの意図を手続き、質問、肯定、否定、又はこれらの組み合わせと推定する。意図推定部132は、例えば、ユーザが「3人で予約したいのですが、テーブル席は空いていますか?」と発話した場合、ユーザの意図は手続きかつ質問と推定する。
【0087】
ユーザの意図が手続きであった場合、処理はステップS106に進む。ユーザの意図が質問であった場合、処理はステップS109に進む。ユーザの意図が肯定であった場合、処理はステップS118に進む。ユーザの意図が手続き、質問及び肯定の少なくとも1つの組み合わせでであった場合、処理はそれぞれ対応するステップに進む。
【0088】
(ステップS106)
スロット抽出部133は、ステップS105で推定された手続きに対応する手続き情報124が設定済みであるか確認する(ステップS106)。手続き情報124が設定されていない場合(ステップS106:NO)、処理はステップS107に進む。手続き情報124が設定されている場合(ステップS106:YES)、処理はステップS108に進む。
【0089】
(ステップS107)
スロット抽出部133は、手続き情報124を参照して、ステップS105で推定された手続きに対応する手続き情報124を、この通話のための手続き情報124として設定する(ステップS107)。以下、ここで設定された手続き情報124を、手続き情報124’と称する。なお、この時点では、設定された手続き情報124’に含まれるスロット情報の値はブランクである。
【0090】
(ステップS108)
スロット抽出部133は、抽出モデル125を利用して、テキスト情報122から手続き情報124’に対応するスロット情報を抽出し(ステップS108)、手続き情報124’に追加する。その後、処理はステップS110に進む。
【0091】
(ステップS109)
回答取得部134は、Q&A情報127を参照して、ステップS105で推定された質問に対応する回答情報を取得する(ステップS109)。
【0092】
(ステップS110)
第1テキスト生成部135は、第1応答ルール128に従って、ステップS108で抽出したスロット情報及びステップS109で取得した回答情報の少なくとも一方に基づいて、第1テキストを生成する(ステップS111)。より詳細には、第1テキスト生成部135は、ユーザの意図が手続きであった場合、ステップS108で抽出したスロット情報に基づいて、第1テキストを生成する。また、第1テキスト生成部135は、ユーザの意図が質問であった場合、ステップS109で取得した回答情報に基づいて、第1テキストを生成する。また、第1テキスト生成部135は、ユーザの意図が手続きかつ質問であった場合、ステップS108で抽出したスロット情報及びステップS109で取得した回答情報に基づいて、第1テキストを生成する。第1テキスト生成部135は、予め設定された手続きと質問の優先度に基づいて、第1テキストを生成すればよい。例えば、手続きの優先度が質問の優先度より高い場合、第1テキスト生成部135は、スロット情報に基づいてテキストを生成し、その後に回答情報に基づいてテキストを生成し、これらの全体を第1テキストとして出力すればよい。
【0093】
(ステップS111)
第2テキスト生成部136は、第2応答ルール129に従って、手続き情報124’のスロット情報に基づいて、第2テキストを生成する(ステップS111)。手続き情報124’が設定されていない場合、処理はステップS112に進む。
【0094】
(ステップS112)
出力部137は、第1テキスト及び第2テキストに対応する音声を音声合成する(ステップS112)。
【0095】
(ステップS113)
出力部137は、ステップS112で得られた音声情報を、通信部11を介してユーザ端末2に送信する(ステップS113)。
【0096】
(ステップS114)
ユーザ端末2は、出力装置206(スピーカ)により、対話装置1から受信した音声情報を音声出力する(ステップS114)。以上の処理により、ユーザと対話装置1との音声による対話(通話)が実現される。
【0097】
(ステップS115)
一方、対話装置1の手続き部138は、手続き情報124’を参照して、スロット情報が確定したか判定する(ステップS115)。具体的には、手続き情報124’の「確定フラグ」が「on」である場合、スロット情報が確定したと判定し(ステップS115:YES)、処理はステップS116に進む。一方、手続き情報124’の「確定フラグ」が「off」である場合、又は手続き情報124’が設定されていない場合、スロット情報が確定していないと判定し(ステップS115:NO)、処理は終了する。
【0098】
(ステップS116)
手続き部138は、手続き情報124’の内容で手続きを実行する(ステップS116)。以上の処理により、音声(通話)による手続の実行が実現される。
【0099】
(ステップS117)
通知部139は、ステップS117で実行された手続きの内容をユーザ端末2に通知する。通知される内容には、手続き情報124’のスロット情報が含まれる。
【0100】
なお、ユーザが対話装置1とテキストで対話する場合、ユーザ端末2は、ユーザが入力したテキスト情報を取得し(ステップS101)、対話装置1に送信する(ステップS102)。そして、対話装置1は、ステップS103,S104を省略し、対話装置1から受信したテキスト情報からユーザの意図を推定する(ステップS105)。対話装置1は、第1テキスト及び第2テキストを生成した後(ステップS110,S111)、第1テキスト及び第2テキストに対応するテキスト情報を生成し(ステップS113)、テキスト情報をユーザ端末2に送信する(ステップS113)。ユーザ端末2は、対話装置1から受信したテキスト情報を出力装置206(表示装置)に表示する(ステップS114)。
【0101】
(ステップS118)
意図推定部132は、手続き情報124’を参照して、スロット情報に空き(値がブランクの「スロット」)があるか確認する(ステップS118)。スロット情報に空きがある場合(ステップS118:YES)、処理はステップS110に進む。スロット情報に空きがない場合(ステップS118:NO)、処理はステップS119に進む。
【0102】
(ステップS119)
意図推定部132は、手続き情報124’の「確定フラグ」を「on」にする(ステップS119)。これにより、手続き情報124’のスロット情報が確定する。その後、処理はステップS110に進む。
【0103】
<第1テキストの生成方法>
次に、第1テキストの生成方法(第1応答ルール128)について説明する。
図9は、第1応答ルール128により定められた第1テキストの生成方法の一例を示すフローチャートである。
図9は、
図8のステップS110の内部処理に相当する。
【0104】
(ステップS201)
ステップS105で推定されたユーザの意図が質問である場合(ステップS201:YES)、処理はステップS202に進む。ステップS105で推定されたユーザの意図が質問でない場合(ステップS201:NO)、処理はステップS203に進む。
【0105】
(ステップS202)
第1テキスト生成部135は、ステップS109で取得した回答情報に基づいて、第1テキストを生成する(ステップS202)。第1テキスト生成部135は、回答情報をそのまま第1テキストとしてもよいし、対象者情報126を参照して第1テキストを生成してもよい。これにより、第1テキストとして、相槌と質問への回答を含むテキストが生成される。
【0106】
(ステップS203)
ステップS105で推定されたユーザの意図が手続きである場合(ステップS203:YES)、処理はステップS204に進む。ステップS105で推定されたユーザの意図が手続きでない場合(ステップS203:NO)、処理はステップS208に進む。
【0107】
(ステップS204)
ユーザの意図が手続きと推定されたのが初めてである場合(ステップS204:YES)、処理はステップS205に進む。ユーザの意図が手続きと推定されたのが初めてでない、すなわち、それまでの対話でユーザの意図が手続きと推定済みであった場合(ステップS204:NO)、処理はステップS206に進む。
【0108】
(ステップS205)
第1テキスト生成部135は、第1テキストとして「{手続き名}ですね」というテキストを生成する。{手続き名}は、手続きの名称である。{手続き名}として、例えば、手続き情報124’の「手続き」が参照される。手続きが予約であり、
図5の手続き情報124が参照される場合、「予約ですね」というテキストが生成される。また、手続き情報124に、「手続き」とは別に、{手続き名}が参照する情報項目が設けられてもよい。これにより、例えば、「ご予約ですね」と言った敬語表現が可能となる。これにより、第1テキストとして、相槌を示すテキストが生成される。
【0109】
(ステップS206)
ステップS108でスロット情報が抽出された場合(ステップS206:YES)、処理はステップS207に進む。ステップS108でスロット情報が抽出されなかった場合(ステップS206:NO)、処理は終了する。
【0110】
(ステップS207)
第1テキスト生成部135は、手続き情報124’を参照して、第1テキストとして「{S}は{s}ですね」というテキストを生成する。{S}は抽出されたスロット情報の名称、{s}は抽出されたスロット情報の値である。手続き情報124’に、「スロット」とは別に、{S},{s}が参照する情報項目が設けられてもよい。これにより、例えば、「お名前はサトウ様ですね」と言った敬語表現が可能となる。複数のスロット情報が抽出された場合、各スロット情報について「{S}は{s}」を繰り返したテキストが生成される。これにより、第1テキストとして、ユーザの入力内容を確認するテキストが生成される。
【0111】
(ステップS208)
第1テキスト生成部135は、手続き情報124’を参照して、「確定フラグ」が「on」があるか確認する(ステップS208)。「確定フラグ」が「on」である場合(ステップS208:YES)、処理はステップS209に進む。「確定フラグ」が「off」である場合(ステップS208:NO)、処理は終了する。
【0112】
(ステップS209)
第1テキスト生成部135は、第1テキストとして「{S}が{s}で{手続き名}を確定いたします」というテキストを生成する(ステップS209)。{S}は手続き情報124’のスロット情報の名称である。{s}は手続き情報124’のスロット情報の値である。手続き情報124’に、「スロット」,「手続き」とは別に、{S},{s},{手続き名}が参照する情報項目が設けられてもよい。これにより、例えば、「お名前がサトウ様でご予約を確定いたします」と言った敬語表現が可能となる。スロット情報が複数設定されている場合、各スロット情報について「{S}が{s}」を繰り返したテキストが生成される。これにより、第1テキストとして、ユーザに手続きが確定したことを通知するテキストが生成される。
【0113】
このように、第1テキストは、第1応答ルール128に従って生成される。より詳細には、第1テキストは、既定のテキストのフォーマットに、予め設定された回答情報及びスロット情報を当てはめることにより生成される。このように第1テキストを生成することにより、第1テキストとして誤った情報が出力されること(ハルシネーション)を抑制することができる。また、第1テキストは自然言語処理モデルにより生成されるわけではないため、対話システム1000に対するプロンプトインジェクションのような攻撃を防ぐことができる。
【0114】
<第2テキストの生成方法>
次に、第2テキストの生成方法(第2応答ルール129)について説明する。
図10は、第2応答ルール129により定められた第2テキストの生成方法の一例を示すフローチャートである。
図10は、
図8のステップS111の内部処理に相当する。
【0115】
(ステップS301)
第2テキスト生成部136は、手続き情報124’を参照して、スロット情報に空き(値がブランクの「スロット」)があるか確認する(ステップS301)。スロット情報に空きがある場合(ステップS301:YES)、処理はステップS302に進む。スロット情報に空きがない場合(ステップS301:NO)、処理はステップS303に進む。
【0116】
(ステップS302)
第2テキスト生成部136は、手続き情報124’を参照して、第2テキストとして「{S}を教えてください」というテキストを生成する(ステップS302)。{S}は手続き情報124’における値がブランクのスロット情報の名称(「スロット」)である。手続き情報124’に、「スロット」とは別に、{S}が参照する情報項目が設けられてもよい。これにより、例えば、「お名前を教えてください」と言った敬語表現が可能となる。また、複数のスロット情報がブランクである場合、各スロット情報について同様のテキストが生成される。これにより、第2テキストとして、ユーザにスロット情報の入力を要求するテキストが生成される。
【0117】
(ステップS303)
第2テキスト生成部136は、手続き情報124’を参照して、「確定フラグ」が「on」があるか確認する(ステップS303)。「確定フラグ」が「on」である場合(ステップS303:YES)、処理はステップS304に進む。「確定フラグ」が「off」である場合(ステップS303:NO)、処理は終了する。
【0118】
(ステップS304)
第2テキスト生成部136は、手続き情報124’を参照して、第2テキストとして「{S}が{s}でお間違いありませんか」というテキストを生成する(ステップS304)。{S}は手続き情報124’のスロット情報の名称(「スロット」)である。{s}は手続き情報124’のスロット情報の値である。手続き情報124’に、「スロット」とは別に、{S},{s}が参照する情報項目が設けられてもよい。これにより、例えば、「お名前がサトウ様でお間違いありませんか」と言った敬語表現が可能となる。スロット情報が複数設定されている場合、各スロット情報について「{S}が{s}」を繰り返したテキストが生成される。これにより、第2テキストとして、ユーザにスロット情報の確認を要求するテキストが生成される。
【0119】
このように、第2テキストは、第2応答ルール129に従って生成される。より詳細には、第2テキストは、既定のテキストのフォーマットに、予め設定された回答情報及びスロット情報を当てはめることにより生成される。このように第2テキストを生成することにより、第2テキストとして誤った情報が出力されること(ハルシネーション)を抑制することができる。また、第2テキストは自然言語処理モデルにより生成されるわけではないため、対話システム1000に対するプロンプトインジェクションのような攻撃を防ぐことができる。
【0120】
<対話の具体例>
次に、ユーザと対話装置1との対話の具体例について説明する。
図11は、対話の具体例を示す模式図である。以下では、ユーザが通話により予約を行う場合を例に説明する。
【0121】
(ステップS401)
対話装置1とユーザ端末2との通話の開始後、ユーザが「すみません、予約したいのですが」と発話すると、ユーザ端末2がその発話の音声情報を取得し(ステップS101)、音声情報を対話装置1に送信する(ステップS102)。
【0122】
(ステップS402)
対話装置1は、ユーザ端末2から音声情報121を取得すると(ステップS103)、テキスト変換部131が音声情報121をテキスト情報122に変換し(ステップS104)、意図推定部132が推定モデル123を利用してユーザの意図を推定する(ステップS105)。ここでは、ユーザの意図は「予約」と推定される(ステップS105:手続き)。この時点では、「予約」の手続き情報124’は設定されていないため(ステップS106:NO)、スロット抽出部133は、手続き情報124を参照して、「予約」の手続き情報124’を設定する(ステップS107)。
【0123】
図12は、「予約」の手続き情報124’の一例を示す図である。
図12の例では、手続き情報124’はスロット情報として「日付」と、「時間」と、「名前」と、「人数」と、を有する。ステップS402の時点では、「日付」、「時間」、「名前」はブランク、「確定フラグ」は「off」である。
【0124】
スロット抽出部133は、手続き情報124’の設定後、テキスト情報122から、手続き情報124’に含まれるスロット情報を抽出する(ステップS108)。ここでは、いずれのスロット情報も抽出されない。
【0125】
第1テキスト生成部135は、ユーザの意図が手続きと推定されたのが初めてであり(ステップS201:NO,ステップS203:YES,ステップS204:YES)、スロット情報が抽出されていないため(ステップS206:NO)、第1テキストとして「ご予約ですね」というテキストを生成する(ステップS205)。以上により、第1テキストが生成される(ステップS110)。
【0126】
第2テキスト生成部136は、手続き情報124’のスロット情報に空きがあるため(ステップS301:YES)、第2テキストとして「お日にちを教えてください」というテキストを生成する(ステップS302)。以上により、第2テキストが生成される(ステップS111)。なお、ここでは、値がブランクのスロット情報を先頭から順に確認することを想定しているが、値がブランクのスロット情報をまとめて確認してもよい。
【0127】
出力部137は、第1テキスト及び第2テキストに対応する音声情報を音声合成し(ステップS112)、通信部11は、得られた音声情報をユーザ端末2に送信する(ステップS113)。ユーザ端末2は、音声情報を受信すると、「ご予約ですね。お日にちを教えてください」というメッセージを音声出力する(ステップS114)。
【0128】
対話装置1の手続き部138は、手続き情報124’のスロット情報が確定していないため(ステップS115:NO)、予約を実行せず、処理を終了する。
【0129】
(ステップS403)
ユーザが「8月10日でお願いします」と発話すると、ユーザ端末2がその発話の音声情報を取得し(ステップS101)、音声情報を対話装置1に送信する(ステップS102)。
【0130】
(ステップS404)
対話装置1は、ユーザ端末2から音声情報121を取得すると(ステップS103)、テキスト変換部131が音声情報121をテキスト情報122に変換し(ステップS104)、意図推定部132が推定モデル123を利用してユーザの意図を推定する(ステップS105)。ここでは、ユーザの意図は「予約」と推定される(ステップS105:手続き)。すでに「予約」の手続き情報124’は設定済みであるため(ステップS106:YES)、スロット抽出部133は、テキスト情報122から、手続き情報124’に含まれるスロット情報を抽出する(ステップS108)。ここでは、「日付」として「8月10日」が抽出される。スロット抽出部133は、抽出されたスロット情報を手続き情報124’に追加する。
【0131】
第1テキスト生成部135は、ユーザの意図が手続きと推定されたのが初めてではなく(ステップS201:NO,ステップS203:YES,ステップS204:NO)、「日付」として「8月10日」が抽出されたため(ステップS206:YES)、第1テキストとして「お日にちは8月10日ですね」というテキストを生成する(ステップS207)。以上により、第1テキストが生成される(ステップS110)。
【0132】
第2テキスト生成部136は、手続き情報124’のスロット情報に空きがあるため(ステップS301:YES)、第2テキストとして「お時間を教えてください」というテキストを生成する(ステップS302)。以上により、第2テキストが生成される(ステップS111)。
【0133】
出力部137は、第1テキスト及び第2テキストに対応する音声情報を音声合成し(ステップS112)、通信部11は、得られた音声情報をユーザ端末2に送信する(ステップS113)。ユーザ端末2は、音声情報を受信すると、「お日にちは8月10日ですね。お時間を教えてください」というメッセージを音声出力する(ステップS114)。
【0134】
対話装置1の手続き部138は、手続き情報124’のスロット情報が確定していないため(ステップS115:NO)、予約を実行せず、処理を終了する。
【0135】
(ステップS405)
ユーザが「何時からやっていますか?」と発話(質問)すると、ユーザ端末2がその発話の音声情報を取得し(ステップS101)、音声情報を対話装置1に送信する(ステップS102)。
【0136】
(ステップS406)
対話装置1は、ユーザ端末2から音声情報121を取得すると(ステップS103)、テキスト変換部131が音声情報121をテキスト情報122に変換し(ステップS104)、意図推定部132が推定モデル123を利用してユーザの意図を推定する(ステップS105)。ここでは、ユーザの意図は「営業時間」に関する質問と推定され(ステップS105:質問)、回答取得部134は、Q&A情報127を参照して、「営業時間」に対応する回答情報(「営業時間に関するご質問ですね。営業時間は{営業時間}です」というテキスト)を取得する(ステップS109)。
【0137】
第1テキスト生成部135は、ユーザの意図が質問と推定されたため(ステップS201:YES,ステップS203:NO)、回答情報に基づいて、第1テキストとして「営業時間に関するご質問ですね。営業時間は9時から17時です」というテキストを生成する(ステップS202)。ここでは、回答情報に{営業時間}が含まれるため、第1テキスト生成部135は、対象者情報126を参照して、第1テキストを生成している。以上により、第1テキストが生成される(ステップS110)。
【0138】
第2テキスト生成部136は、手続き情報124’のスロット情報に空きがあるため(ステップS301:YES)、第2テキストとして「お時間を教えてください」というテキストを生成する(ステップS302)。以上により、第2テキストが生成される(ステップS111)。
【0139】
出力部137は、第1テキスト及び第2テキストに対応する音声情報を音声合成し(ステップS112)、通信部11は、得られた音声情報をユーザ端末2に送信する(ステップS113)。ユーザ端末2は、音声情報を受信すると、「営業時間に関するご質問ですね。営業時間は9時から18時です。お時間を教えてください」というメッセージを音声出力する(ステップS114)。
【0140】
対話装置1の手続き部138は、手続き情報124’のスロット情報が確定していないため(ステップS115:NO)、予約を実行せず、処理を終了する。
【0141】
(ステップS407)
ユーザが「17時から3名でお願いします」と発話すると、ユーザ端末2がその発話の音声情報を取得し(ステップS101)、音声情報を対話装置1に送信する(ステップS102)。
【0142】
(ステップS408)
対話装置1は、ユーザ端末2から音声情報121を取得すると(ステップS103)、テキスト変換部131が音声情報121をテキスト情報122に変換し(ステップS104)、意図推定部132が推定モデル123を利用してユーザの意図を推定する(ステップS105)。ここでは、ユーザの意図は「予約」と推定される(ステップS105:手続き)。すでに「予約」の手続き情報124’は設定済みであるため(ステップS106:YES)、スロット抽出部133は、テキスト情報122から、手続き情報124’に含まれるスロット情報を抽出する(ステップS108)。ここでは、「時間」として「17時」、「人数」として「3」が抽出される。スロット抽出部133は、抽出されたスロット情報を手続き情報124’に追加する。
【0143】
第1テキスト生成部135は、ユーザの意図が手続きと推定されたのが初めてではなく(ステップS201:NO,ステップS203:YES,ステップS204:NO)、「時間」として「17時」、「人数」として「3」が抽出されたため(ステップS206:YES)、第1テキストとして「お時間は17時、人数は3名様ですね」というテキストを生成する(ステップS207)。以上により、第1テキストが生成される(ステップS110)。
【0144】
第2テキスト生成部136は、手続き情報124’のスロット情報に空きがあるため(ステップS301:YES)、第2テキストとして「お名前を教えてください」というテキストを生成する(ステップS302)。以上により、第2テキストが生成される(ステップS111)。
【0145】
出力部137は、第1テキスト及び第2テキストに対応する音声情報を音声合成し(ステップS112)、通信部11は、得られた音声情報をユーザ端末2に送信する(ステップS113)。ユーザ端末2は、音声情報を受信すると、「お時間は17時、人数は3名様ですね。お名前を教えてください」というメッセージを音声出力する(ステップS114)。
【0146】
対話装置1の手続き部138は、手続き情報124’のスロット情報が確定していないため(ステップS115:NO)、予約を実行せず、処理を終了する。
【0147】
(ステップS409)
ユーザが「佐藤です」と発話すると、ユーザ端末2がその発話の音声情報を取得し(ステップS101)、音声情報を対話装置1に送信する(ステップS102)。
【0148】
(ステップS410)
対話装置1は、ユーザ端末2から音声情報121を取得すると(ステップS103)、テキスト変換部131が音声情報121をテキスト情報122に変換し(ステップS104)、意図推定部132が推定モデル123を利用してユーザの意図を推定する(ステップS105)。ここでは、ユーザの意図は「予約」と推定される(ステップS105:手続き)。すでに「予約」の手続き情報124’は設定済みであるため(ステップS106:YES)、スロット抽出部133は、テキスト情報122から、手続き情報124’に含まれるスロット情報を抽出する(ステップS108)。ここでは、「名前」として「サトウ」が抽出される。スロット抽出部133は、抽出されたスロット情報を手続き情報124’に追加する。
【0149】
第1テキスト生成部135は、ユーザの意図が手続きと推定されたのが初めてではなく(ステップS201:NO,ステップS203:YES,ステップS204:NO)、「名前」として「サトウ」が抽出されたため(ステップS206:YES)、第1テキストとして「お名前はサトウ様ですね」というテキストを生成する(ステップS207)。以上により、第1テキストが生成される(ステップS110)。
【0150】
第2テキスト生成部136は、手続き情報124’のスロット情報に空きがなく(ステップS301:NO)、「確定フラグ」が「off」であるため(ステップS303:NO)、第2テキストとして「お日にちが8月10日、お時間が17時、お名前がサトウ様、人数が3名様でお間違いありませんか」というテキストを生成する(ステップS304)。以上により、第2テキストが生成される(ステップS111)。
【0151】
出力部137は、第1テキスト及び第2テキストに対応する音声情報を音声合成し(ステップS112)、通信部11は、得られた音声情報をユーザ端末2に送信する(ステップS113)。ユーザ端末2は、音声情報を受信すると、「お名前はサトウ様ですね。お日にちが8月10日、お時間が17時、お名前がサトウ様、人数が3名様でお間違いありませんか」というメッセージを音声出力する(ステップS114)。
【0152】
対話装置1の手続き部138は、手続き情報124’のスロット情報が確定していないため(ステップS115:NO)、予約を実行せず、処理を終了する。
【0153】
(ステップS411)
ユーザが「はい」と発話すると、ユーザ端末2がその発話の音声情報を取得し(ステップS101)、音声情報を対話装置1に送信する(ステップS102)。
【0154】
(ステップS412)
対話装置1は、ユーザ端末2から音声情報121を取得すると(ステップS103)、テキスト変換部131が音声情報121をテキスト情報122に変換し(ステップS104)、意図推定部132が推定モデル123を利用してユーザの意図を推定する(ステップS105)。ここでは、ユーザの意図は「肯定」と推定される(ステップS105:肯定)。手続き情報124’のスロット情報には空きがないため(ステップS118:NO)、意図推定部132は、手続き情報124’の「確定フラグ」を「on」にする(ステップS119)。
【0155】
第1テキスト生成部135は、ユーザの意図が質問でも手続きでもなく(ステップS201:NO,ステップS203:NO)、「確定フラグ」が「on」であるため(ステップS208:YES)、第1テキストとして「お日にちが8月10日、お時間が17時、お名前がサトウ様、人数が3名様で予約を確定いたします」というテキストを生成する(ステップS209)。以上により、第1テキストが生成される(ステップS110)。
【0156】
第2テキスト生成部136は、手続き情報124’のスロット情報に空きがなく(ステップS301:NO)、「確定フラグ」が「on」であるため(ステップS303:YES)、第2テキストを生成せずに処理を終了する。
【0157】
出力部137は、第1テキストに対応する音声情報を音声合成し(ステップS112)、通信部11は、得られた音声情報をユーザ端末2に送信する(ステップS113)。ユーザ端末2は、音声情報を受信すると、「お日にちが8月10日、お時間が17時、お名前がサトウ様、人数が3名様で予約を確定いたします」というメッセージを音声出力する(ステップS114)。
【0158】
対話装置1の手続き部138は、手続き情報124’のスロット情報が確定しているため(ステップS115:YES)、手続き情報124’の内容で予約を実行し(ステップS116)、その内容を手続き内容情報130として記憶部12に保存する。これにより、8月10日の17時にサトウという名前で3名の予約が行われる。
【0159】
その後、通知部139は、手続き内容情報130を、SMS、プッシュ通知、電子メールなどの方法で、ユーザ端末2に通知する(ステップS117)。
【0160】
<まとめ>
以上説明した通り、本実施形態によれば、推定モデル123を利用して、テキスト情報122から意図を推定する意図推定部132と、意図が手続きである場合、抽出モデル125を利用して、テキスト情報122から当該手続きに対応するスロット情報を抽出するスロット抽出部133と、意図が質問である場合、当該質問に対応する回答情報を取得する回答取得部134と、スロット情報及び回答情報の少なくとも一方に基づいて、第1テキストを生成する第1テキスト生成部135と、スロット情報に基づいて、第2テキストを生成する第2テキスト生成部136と、第1テキスト及び第2テキストを出力する出力部137と、を備える対話システム1000が実現される。
【0161】
対話システム1000によれば、第1テキスト及び第2テキストが第1応答ルール128及び第2応答ルール129に従って生成される。より詳細には、第1テキスト及び第2テキストは、既定のテキストのフォーマットに、予め設定された回答情報及びスロット情報を当てはめることにより生成される。このように第1テキスト及び第2テキストを生成することにより、第1テキスト及び第2テキストとして誤った情報が出力されること(ハルシネーション)を抑制することができる。また、第1テキスト及び第2テキストは自然言語処理モデルにより生成されるわけではないため、対話システム1000に対するプロンプトインジェクションのような攻撃を防ぐことができる。
【0162】
<付記>
本実施形態は、以下の開示を含む。
【0163】
(付記1)
推定モデルを利用して、音声情報又はテキスト情報から意図を推定する意図推定部と、
前記意図が手続きである場合、抽出モデルを利用して、前記音声情報又はテキスト情報から当該手続きに対応するスロット情報を抽出するスロット抽出部と、
前記意図が質問である場合、当該質問に対応する回答情報を取得する回答取得部と、
前記スロット情報及び前記回答情報の少なくとも一方に基づいて、第1テキストを生成する第1テキスト生成部と、
前記スロット情報に基づいて、第2テキストを生成する第2テキスト生成部と、
前記第1テキスト及び前記第2テキストを出力する出力部と、
を備える対話システム。
【0164】
(付記2)
前記第1テキストは、予め設定された第1応答ルールに従って生成される
付記1に記載の対話システム。
【0165】
(付記3)
前記第2テキストは、予め設定された第2応答ルールに従って生成される
付記1に記載の対話システム。
【0166】
(付記4)
前記回答情報は、予め設定される
付記1に記載の対話システム。
【0167】
(付記5)
前記推定モデルは、自然言語処理モデルである
付記1に記載の対話システム。
【0168】
(付記6)
前記抽出モデルは、自然言語処理モデルである
付記1に記載の対話システム。
【0169】
(付記7)
音声情報を前記テキスト情報に変換するテキスト変換部を更に備える
付記1に記載の対話システム。
【0170】
(付記8)
前記手続きは、予約、注文、購入、申請又はこれらの変更若しくはキャンセルである
付記1に記載の対話システム。
【0171】
(付記9)
前記手続きは、1又は複数のスロット情報を予め設定される
付記1に記載の対話システム。
【0172】
(付記10)
前記出力部は、前記第1テキスト及び第2テキストに対応する音声情報を出力する
【0173】
(付記11)
前記出力部は、前記第1テキスト及び第2テキストに対応するテキスト情報を出力する
【0174】
(付記12)
前記手続きを実行する手続き部を更に備える
付記1に記載の対話システム。
【0175】
(付記13)
前記手続き部が実行した手続きの内容を通知する通知部を更に備える
付記1に記載の対話システム。
【0176】
(付記14)
対話システムが実行する対話方法であって、
推定モデルを利用して、音声情報又はテキスト情報の意図を推定する意図推定ステップと、
前記意図が手続きである場合、抽出モデルを利用して、前記音声情報又はテキスト情報から当該手続きに対応するスロット情報を抽出するスロット抽出ステップと、
前記意図が質問である場合、当該質問に対応する回答情報を取得する回答取得ステップと、
前記スロット情報及び前記回答情報の少なくとも一方に基づいて、第1テキストを生成する第1テキスト生成ステップと、
前記スロット情報に基づいて、第2テキストを生成する第2テキスト生成ステップと、
前記第1テキスト及び前記第2テキストを出力する出力ステップと、
を備える対話方法。
【0177】
(付記15)
対話システムに、
推定モデルを利用して、音声情報又はテキスト情報の意図を推定する意図推定ステップと、
前記意図が手続きである場合、抽出モデルを利用して、前記音声情報又はテキスト情報から当該手続きに対応するスロット情報を抽出するスロット抽出ステップと、
前記意図が質問である場合、当該質問に対応する回答情報を取得する回答取得ステップと、
前記スロット情報及び前記回答情報の少なくとも一方に基づいて、第1テキストを生成する第1テキスト生成ステップと、
前記スロット情報に基づいて、第2テキストを生成する第2テキスト生成ステップと、
前記第1テキスト及び前記第2テキストを出力する出力ステップと、
を備える対話方法を実行させる対話プログラム。
【0178】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0179】
1:対話装置
2:ユーザ端末
11:通信部
12:記憶部
13:制御部
121:音声情報
122:テキスト情報
123:推定モデル
124:手続き情報
125:抽出モデル
126:対象者情報
127:Q&A情報
128:第1応答ルール
129:第2応答ルール
130:手続き内容情報
131:テキスト変換部
132:意図推定部
133:スロット抽出部
134:回答取得部
135:第1テキスト生成部
136:第2テキスト生成部
137:出力部
138:手続き部
139:通知部