JP2018017936A - 音声対話装置、サーバ装置、音声対話方法、音声処理方法およびプログラム - Google Patents

音声対話装置、サーバ装置、音声対話方法、音声処理方法およびプログラム Download PDF

Info

Publication number
JP2018017936A
JP2018017936A JP2016148984A JP2016148984A JP2018017936A JP 2018017936 A JP2018017936 A JP 2018017936A JP 2016148984 A JP2016148984 A JP 2016148984A JP 2016148984 A JP2016148984 A JP 2016148984A JP 2018017936 A JP2018017936 A JP 2018017936A
Authority
JP
Japan
Prior art keywords
voice
unit
dialogue
output
sentence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016148984A
Other languages
English (en)
Other versions
JP6819988B2 (ja
Inventor
厚夫 廣江
Atsuo Hiroe
厚夫 廣江
拓磨 岡本
Takuma Okamoto
拓磨 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Information and Communications Technology
Original Assignee
National Institute of Information and Communications Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Institute of Information and Communications Technology filed Critical National Institute of Information and Communications Technology
Priority to JP2016148984A priority Critical patent/JP6819988B2/ja
Priority to US16/320,810 priority patent/US11049493B2/en
Priority to PCT/JP2017/026681 priority patent/WO2018021237A1/ja
Priority to CN201780046486.4A priority patent/CN109496332A/zh
Publication of JP2018017936A publication Critical patent/JP2018017936A/ja
Application granted granted Critical
Publication of JP6819988B2 publication Critical patent/JP6819988B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/005Language recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • G10L13/086Detection of language
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/10Speech classification or search using distance or distortion measures between unknown speech and reference templates
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】従来技術において、複数の言語による音声対話を適切に支援できなかった。
【解決手段】2以上の異なる言語により発声された入力音声に対し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、入力音声の言語を識別する言語識別子を取得する言語識別子取得部と、入力音声および言語識別子に応じて音声認識結果であるテキストを生成する音声認識部と、音声認識結果のテキストと言語識別子とを入力し、前回とは言語識別子が変わっても対話の履歴は維持する一方で言語識別子に応じて異なる内容の出力文を生成する対話制御部と、出力文および言語識別子に応じて音声波形を生成する音声合成部と、音声合成部が取得した音声波形に応じた音声を出力する音声出力部とを具備する音声対話装置により、複数の言語による音声対話を適切に支援できる。
【選択図】図1

Description

本発明は、複数の言語を用いた対話を支援する音声対話装置であるクロスリンガルの音声対話装置等に関するものである。
複数言語による音声が混在する場合おいて、異なる言語による対話の履歴を引き継いで、音声の対話文を生成することのできるシステムをクロスリンガル音声対話システムと呼ぶ。従来、重み付き有限状態トランスデューサ(WFST)の枠組みを用いたクロスリンガル音声対話システムがあった(例えば、非特許文献1参照)。
岡本拓磨, 廣江厚夫, 堀智織, 河井恒,"言語理解WFST並列接続に基づくクロスリンガル音声対話", 2015年秋季日本音響学会研究発表会講演論文集, pp.35-38, 2015年9月.
しかしながら、従来技術においては、ユーザが使用する言語(入力言語)が切り替わっても音声対話システムが対話履歴を引き継ぐ一方で、入力言語によって応答を変えることができなかった。また、従来技術においては、音声対話装置をテレビ電話やテレビ会議システム等に利用する場合といった、異なる言語を話す複数のユーザが離れた場所に存在する場合でも、音声対話装置を適切に利用しながら人間同士の通話を行なうことが困難であった。例えば、テレビ電話の最中にユーザの一人が音声対話システムに対して質問を行ない、それにシステムが回答し、その回答に対して別の言語を話すもう一人のユーザがシステムに別の言語で質問し、システムはそれに対しても適切に回答するといったことは困難であった。
以上の課題に鑑み、本発明は、複数の言語による音声対話を適切に支援することを目的とする。
本第一の発明の音声対話装置は、2以上の異なる言語により発声された入力音声に対し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、入力音声の言語を識別する言語識別子を取得する言語識別子取得部と、入力音声および言語識別子に応じて音声認識結果であるテキストを生成する音声認識部と、音声認識結果のテキストと言語識別子とを入力し、前回とは言語識別子が変わっても対話の履歴は維持する一方で言語識別子に応じて異なる内容の出力文を生成する対話制御部と、出力文と言語識別子に応じて音声波形を生成する音声合成部と、音声合成部が取得した音声波形に応じた音声を出力する音声出力部とを具備する音声対話装置である。
かかる構成により、ユーザの使用言語を識別することで、ユーザに応じた適切な応答を返すことができる。
また、本第二の発明の音声対話装置は、第一の発明に対して、対話の繋がりを示す情報であり、第一話者の入力音声を抽象する第一対話行為タグ、および第二話者の出力音声を抽象する第二対話行為タグとを有する対話連結情報を1以上有する対話構造情報を格納し得る対話構造情報格納部と、第二対話行為タグと1以上の文とを有する出力音声情報を格納し得る出力文情報格納部とをさらに具備し、対話制御部は、対話構造情報格納部から、音声認識手段が取得した文字列を用いて、文字列に対応する第一対話行為タグを取得する第一対話行為タグ取得手段と、第一対話行為タグ取得手段が取得した第一対話行為タグに対応する1以上の第二第一対話行為タグ取得手段が取得した第一対話行為タグに対応する1以上の第二対話行為タグのうちの、1の第二対話行為タグを取得する第二対話行為タグ取得手段と、第二対話行為タグ取得手段が取得した第二対話行為タグに対応する文を、出力文情報格納部から取得する文取得手段と、文取得手段が取得した文を、言語識別子取得部が取得した言語識別子に応じて変更し、変更した文を取得する文変更手段とを具備する音声対話装置である。
かかる構成により、ユーザの使用言語を識別することで、ユーザに応じた適切な応答を返すことができる。
また、本第三の発明の音声対話装置は、第一の発明に対して、対話の繋がりを示す情報であり、第一話者の入力音声を抽象する第一対話行為タグ、および第二話者の出力音声を抽象する第二対話行為タグとを有する対話連結情報を1以上有する対話構造情報であり、第一対話行為タグに連結し、言語識別子に対応する2以上の第二対話行為タグを有する対話構造情報を格納し得る対話構造情報格納部と、第二対話行為タグと1以上の文とを有する出力音声情報を格納し得る出力文情報格納部とをさらに具備し、対話制御部は、対話構造情報格納部から、音声認識手段が取得した文字列を用いて、文字列に対応する第一対話行為タグを取得する第一対話行為タグ取得手段と、第一対話行為タグ取得手段が取得した第一対話行為タグに対応する1以上の第二対話行為タグのうちの、言語識別子取得部が取得した言語識別子に対応する1の第二対話行為タグを取得する第二対話行為タグ取得手段と、第二対話行為タグ取得手段が取得した第二対話行為タグに対応する文を、出力文情報格納部から取得する文取得手段とを具備する音声対話装置である。
かかる構成により、ユーザの使用言語を識別することで、ユーザに応じた適切な応答を返すことができる。
また、本第四の発明のサーバ装置は、第一話者の入力音声を第一端末から受信し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、入力音声を音声認識し、文字列を取得する音声認識部と、入力音声に基づく情報を出力する先を決定する出力先決定部と、出力先決定部が決定した出力先が第二端末である場合は、入力音声に基づく情報を第二端末に送信し、出力先決定部が決定した出力先が音声対話装置である場合は、音声認識部が取得した文字列を音声対話装置に渡す送信部と、音声対話装置から文字列に対応する応答を受け付ける応答受付部と、応答受付部が受け付けた応答を第一端末および第二端末に送信する応答送信部とを具備するサーバ装置である。
かかる構成により、異なる言語を話す2以上のユーザが離れた場所に存在する場合であっても、テレビ電話やテレビ会議システム等に音声対話装置を適切に利用した対話ができる。
また、本第五の発明のサーバ装置は、第四の発明に対して、出力先決定部は、音声認識部が取得した文字列に含まれる1以上の用語に応じて、入力音声に基づく情報を出力する先を決定するサーバ装置である。
かかる構成により、異なる言語を話す2以上のユーザが離れた場所に存在する場合であっても、テレビ電話やテレビ会議システム等に音声対話装置を適切に利用した対話ができる。
また、本第六の発明のサーバ装置は、第四の発明に対して、出力先決定部は、第一端末から送信されたユーザの指示に応じて、入力音声に基づく情報を出力する先を決定するサーバ装置である。
かかる構成により、異なる言語を話す2以上のユーザが離れた場所に存在する場合であっても、テレビ電話やテレビ会議システム等において、音声対話装置を適切に利用しながら、人間同士の通話および人間と装置との対話ができる。
本発明による音声対話装置によれば、複数の言語による音声対話を適切に支援することができる。
本発明の実施の形態1における音声対話装置のブロック図 同実施の形態における音声対話装置の動作を示すフローチャート 同実施の形態における第一対話行為タグ取得処理の動作を示すフローチャート 同実施の形態における第二対話行為タグ取得処理の動作を示すフローチャート 同実施の形態における文取得処理の動作を示すフローチャート 同実施の形態における文変更処理の動作を示すフローチャート 同実施の形態における後処理の動作を示すフローチャート 同実施の形態における対話構造情報管理表を示す図 同実施の形態における対話状態遷移図 同実施の形態における文対話行為情報管理表を示す図 同実施の形態における出力文情報管理表を示す図 同実施の形態におけるキーワード管理表を示す図 同実施の形態における出力文変更情報管理表を示す図 本発明の実施の形態2における音声対話装置のブロック図 同実施の形態における音声対話装置の動作を示すフローチャート 同実施の形態における第二対話行為タグ取得処理の動作を示すフローチャート 同実施の形態における対話構造情報管理表を示す図 同実施の形態における対話状態遷移図 同実施の形態における出力文情報管理表を示す図 本発明の実施の形態3におけるサーバ装置のブロック図 同実施の形態におけるサーバ装置の動作を示すフローチャート 同実施の形態における出力先決定処理を示す図 上記実施の形態におけるコンピュータシステムの外観の一例を示す図 上記実施の形態におけるコンピュータシステムの内部構成の一例を示す図
以下、音声対話装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、複数言語による音声が混在する場合おいて、異なる言語による対話の履歴を引き継いで、音声の対話文を生成し、出力する音声対話装置について説明する。また、生成する対話文が言語によって異なる音声対話装置について説明する。音声は、アナログデータでもデジタルデータでも良い。
また、本実施の形態において、対話構造情報、対話行為タグに対応する文の情報を用いて、クロスリンガルの対話を実現する音声対話装置について説明する。
また、本実施の形態において、対話の中で出現している主題に合致した対話文を出力できる音声対話装置について説明する。
また、本実施の形態において説明する対話構造情報は、例えば、有限状態トランスデューサ(FST)、重み付き有限状態トランスデューサ(WFST)の構造を有している。
また、本実施の形態において、行った対話の情報である履歴情報を覚えておくことにより、例えば、ユーザが否定的に考えている対象や一度対話の中で出現した対象についての文が、対話文として出力されないような対話装置についても説明する。なお、主題とは、後述するキーワードであり、例えば、文中の名詞(名詞句を含む)などである。
図1は、本実施の形態における音声対話装置1のブロック図である。音声対話装置1は、格納部11、受付部12、言語識別子取得部13、対話統括制御部14、音声出力部15を備える。格納部11は、対話構造情報格納部111、出力文情報格納部112、カレントノード識別子格納部115、動作手段格納部116、履歴情報格納部117、文対話行為情報格納部113、および出力文変更情報格納部114を備える。対話統括制御部14は、音声認識部1401、対話制御部141、音声合成部1406を備える。対話制御部141は、第一対話行為タグ取得手段1402、第二対話行為タグ取得手段1403、文取得手段1404、文変更手段1405、カレントノード識別子更新手段1407、実行手段1408、履歴情報取得手段1409、および履歴情報蓄積手段1410を備える。文取得手段1404は、用語取得手段14041、および出力文取得手段14042を備える。
音声対話装置1を構成する格納部11は、各種の情報を格納し得る。各種の情報とは、例えば、後述する対話構造情報、後述する出力音声情報、後述するカレントノード識別子、後述する動作手段、後述する履歴情報、後述する文対話行為情報、後述する出力文変更情報などである。
対話構造情報格納部111は、1または2以上の対話構造情報を格納し得る。対話構造情報とは、対話の繋がりを示す情報である。対話構造情報は、対話連結情報を1以上有する。対話連結情報は、第一話者(通常、ユーザ)の入力音声を抽象する第一対話行為タグと、第二話者(通常、音声対話装置1)の出力音声を抽象する第二対話行為タグとを有する。ここで、第一話者は、例えば、音声対話装置1のユーザを示す。第二話者は、音声対話装置1内の仮想的な話者を示す。また、第一対話行為タグと第二対話行為タグのどちらかは空(後述する「eps」)でも良い。また、入力音声又は出力音声の抽象とは、入力音声又は出力音声を構成する文の意義、意味などから、入力音声又は出力音声を種類に分類することをいう。なお、入力音声又は出力音声を種類に分類することは、入力音声又は出力音声に対して、複数の種類の中の1の種類を決定することである。そして、入力音声又は出力音声を抽象した対話行為タグは、対話行為の種類を示す情報であり、例えば、「q.spot」「q.weather」「q.how−to−take」「q.cost」「thanks」などがある。q.spotは観光場所を尋ねる質問、q.weatherは今日の天気を尋ねる質問、q.how−to−takeは目的地までどのように行くかを尋ねる質問、q.costは目的地までに必要な金額を尋ねる質問、thanksはお礼を表す対話行為タグである。第二話者の出力音声は、通常、第一話者の入力音声に対応する応答の音声などである。対話連結情報は、始端ノード識別子と終端ノード識別子と第一対話行為タグと第二対話行為タグとを有しても良い。また、対話連結情報は、始端ノード識別子で識別されるノードから終端ノード識別子で識別されるノードへの遷移の確率を示す情報である重み情報をも有することは好適である。対話連結情報は、動作を示す情報である動作識別子をもさらに有することは好適である。また、対話連結情報は、始端ノード識別子と終端ノード識別子を有し、第一対話行為タグ、第二対話行為タグ、動作識別子のうちの1以上の情報とを有しても良い。動作識別子とは、例えば、関数名、メソッド名、実行モジュール名などである。ここで、ノードは、概念的な対話の状態を示すものである。なお、始端ノード識別子とは、対話の始端を示すノードを識別する情報である。また、終端ノード識別子とは、対話の終端を示すノードを識別する情報である。始端ノード識別子と、終端ノード識別子とにより、1回の対話のキャッチボール(質問と回答など)が実現していることとなる。なお、対話の繋がりを示す情報とは、対話連結情報に含まれる始端ノード識別子と、対話連結情報に含まれる終端ノード識別子とにより繋がりが示されている情報でも良いし、対話連結情報間を有向リンクにより繋げることにより、繋がりが示されている情報でも良い。また、動作識別子は、第一話者が入力した文に対する処理を行う前処理の動作識別子、第二話者の出力文に対する処理を行う後処理の動作識別子、その他の一般的な処理を行う動作識別子など、いくつかの種類があり、適用される文や情報が異なっても良い。
出力文情報格納部112は、1または2以上の出力文情報を格納し得る。出力文情報は、出力音声を構成する文(以下、出力文)の情報である。出力文情報は、第二対話行為タグと1以上の文とを有する。また、出力文情報は、第二対話行為タグと、用語と、1以上の文とを有していても良い。また、出力文情報に含まれる1以上の文は、同一の意味を表す複数の言語で記述された文を含んでも良い。また、出力文情報格納部112は、キーワード管理表を保持していても良い。キーワード管理表は、出力文を検索したり、構成したりするための情報の集合であり、詳細については、後述する。
カレントノード識別子格納部115は、現在の対話の状態を示すノードを識別するカレントノード識別子を格納し得る。カレントノード識別子格納部115には、通常、最初は、対話のスタートポイントを示すノード識別子(例えば、「0」)が記憶されている。
動作手段格納部116は、動作手段を1以上格納している。動作手段は、動作識別子に対応する動作を行う。動作手段とは、プログラム、実行モジュール、関数、メソッド、ハードウェアで実現された処理回路などである。動作手段は、例えば、音声認識、音声合成、機械翻訳、履歴蓄積、観光案内検索、スケジューラー、Web検索、天気予報検索、レストラン検索、チケット予約などの動作を行う。
履歴情報格納部117は、対話の履歴に関する情報である履歴情報を格納し得る。履歴情報とは、例えば、既に出現した対話文の中の情報であり、例えば、話題にあがった用語である既出用語などである。
文対話行為情報格納部113は、文対話行為情報が格納される。文対話行為情報は、第一対話行為タグ取得手段1402が、音声認識部1401が取得したテキストから第一対話行為タグを取得するための情報である。文対話行為情報は、第一対話行為タグと文、または第一対話行為タグと句、または第一対話行為タグと文の構造を示す情報などを含む情報である。
出力文変更情報格納部114は、1または2以上の出力文変更情報が格納される。出力文変更情報は、出力文を変更するための情報である。出力文変更情報は、文変更手段1405が文を変更するために使用する情報である。出力文変更情報は、例えば、言語条件と変更範囲と変更内容を含む情報である。ここで、言語条件とは、言語識別子取得部13が取得した言語識別子に関する条件である。言語条件は、「言語識別子取得部13が取得した言語識別子が特定の1の言語識別子」という条件でも良く、「言語識別子13が取得した言語識別子が複数の言語識別子のいずれか」という条件でも良く、「言語識別子13が取得した言語識別子が特定の1の言語識別子以外」という条件でも良い。また、変更範囲とは、変更の対象となる出力文の一部を特定する情報である。変更範囲は、出力文の一部を特定する情報であれば何でも良く、文字列、単語、複合語、句、節、または、文そのものでも良い。また、変更範囲は、正規表現等のパターンであっても良い。また、変更内容とは、変更の処理に関する情報である。変更内容は、例えば、「変更範囲の削除」、「変更範囲を指定したテキストに置換」等の具体的な変更の内容を示す情報である。変更内容は、例えば、削除、追加又は置換である。変更内容が追加又は置換の場合は、追加又は置換するテキストも同時に指定される。さらに、変更内容が追加の場合、通常、テキストを追加する場所も同時に指定される。ここで、追加又は置換するテキストは特定の文字列であって良いし、「(変更範囲に含まれる数値を中国元として、当該数値を本日の為替レートで日本円に変換した数値)円」のように、変更範囲に含まれる値を用いた関数を含めても良い。
受付部12は、マイク等で入力された音データの中から、ユーザが音声対話システムに対して発話したと推測される区間(発話区間)を検出し、その発話区間の始端から終端までの音データを音声認識部1401に送付する。以下、入力音声を発声した話者を第一話者と呼ぶ。すなわち、受付部12は、第一話者の入力音声を受け付ける。発話区間を検出する手段は、Voice Activity Detection(VAD)と呼ばれる既知の技術を用いるのが好適である。あるいは、装置が押しボタンを備え、ユーザがボタンを押しながら発話した場合のみ、そのタイミングに該当する音データの区間を音声認識部1401に送付するようにしてもよい。あるいは、装置がカメラを備え、ユーザの顔画像を取得し、顔画像の口唇部分の形状や動きによって発話区間を検出するという公知の技術を用いてもよい。または、入力音声以外の命令や情報(例えば、音声対話装置1の起動指示など)を受け付けても良い。入力音声の入力手段は、通常、マイクであるが、音声を入力する手段であれば何でも良い。受付部12は、マイク等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
言語識別子取得部13は、受付部12が受け付けた入力音声の言語識別子を取得する。言語識別子は、言語を識別する情報である。言語識別子は言語を識別可能な情報であれば何でも良い。例えば、日本語に対応する言語識別子として、「ja」を用いても良いし、「日本語」を用いても良い。また、音声の言語を識別する手段については、i−vectorに基づく方法(N. Dehak, P. A. Torres-Carrasquillo, D. Reynolds, and R. Dehak, “Language recognition via ivectors and dimensionality reduction,” in Proc. INTERSPEECH, Aug. 2011, pp.857-860)や、深層学習に基づく方法(J. Gonzalez-Dominguez, I. Lopez-Moreno, P. J. Moreno, and J. Gonzalez-Rodriguez, “Frame-by-frame language identification in short utterances using deep neural networks,” Neural Netw., vol. 64, pp. 49-58, Apr. 2015)等、音声の言語を識別可能な方法ならば何でもよい。言語識別子取得部13の処理は、公知技術であるので、詳細な説明を省略する。
音声認識部1401は、受付部12が受け付けた第一話者の入力音声を音声認識し、テキストを取得する。音声認識部1401は、通常、言語識別子取得部13が取得した言語識別子に応じて、音声認識結果のテキストを取得する。また、音声認識部1401は、音声をその音声に対応するテキストに変換可能な手段であれば何でも良い。例えば、言語ごとに音声認識器が用意されており、音声認識部1401は、言語識別子取得部13が取得した言語識別子に対応する音声認識器を用いて音声を認識しても良い。また、音声認識部1401は、多言語に対応する音声認識器であっても良い。音声認識部1401が行う音声認識技術は、公知技術であるので詳細な説明は省略する。なお、受付部12が受け付けた第一話者の入力音声に対して音声認識処理を行うことは、受付部12が取得した音声データに対して音声認識処理を行うことである。
対話制御部141は、音声認識部1401が取得した音声認識結果のテキスト、および言語識別子取得部13が取得した言語識別子に応じて、第二話者の出力文を生成する。第二話者の出力文を生成とは、出力文の選択や読出し等を含む概念である、とする。対話制御部141は、第一話者の入力音声の内容が同じでも、言語識別子取得部13が取得した言語識別子が異なれば、異なる内容の出力音声を取得することは好適である。かかる場合、対話制御部141が生成する出力文は、例えば、第一話者の入力音声に対する応答を、第一話者が使用した言語に基づいて文変更手段1405により変更した文である。例えば、第一話者が日本についての地理情報について尋ね、その回答が「北海道」を含むものであった場合、第一話者が日本語以外を使用していたならば、その話者は日本の地理について不詳である可能性があるため、「北海道」に対する補足情報(例えば、「北海道は日本の北部に位置する」ことを意味する情報)を追加した方が親切である。一方、第一話者が日本語を使用していたならば、当該補足情報は冗長に感じられる可能性があるため省略した方が良い。また、例えば、レストランを検索・案内する音声対話装置においては、食べ物の嗜好は話者の国籍によって異なると考えられ、さらにそれは第一話者の入力言語によってある程度推定可能だと考えられる。具体的な例として、第一話者が「祇園はどこですか?」を意味する出力文を音声対話装置1に与え、その後、「その付近のレストランを教えてください」を意味する出力文が与えられた場合、第一話者が使用した言語が日本語か中国語かアラビア語かによって、応答の内容すなわち紹介する店を変えた方が良い場合がある。
第一対話行為タグ取得手段1402は、音声認識部1401が認識した音声に対応するテキストから、当該テキストに対応する第一対話行為タグを取得する。第一対話行為タグ取得手段1402は、テキストから対応する第一対話行為タグに変換可能な手段であれば何でも良い。例えば、言語ごとに変換器が用意されており、第一対話行為タグ取得手段1402は、言語識別子取得部13が取得した言語識別子に対応する変換器を用いて第一対話行為タグに変換しても良い。また、第一対話行為タグ取得手段1402は、多言語に対応する変換器であっても良い。以下、受付部12が受け付けた第一話者の入力音声から音声認識部1401が取得したテキストを入力音声テキストと呼ぶ。第一対話行為タグ取得手段1402は、入力音声テキストに対して、例えば、自然言語処理し、第一対話行為タグを取得する。第一対話行為タグ取得手段1402は、例えば、文対話行為情報格納部113に格納された文対話行為情報を検索し、入力音声テキストと対になる対話行為タグを取得する。また、第一対話行為タグ取得手段1402は、例えば、入力音声テキストを形態素解析し、一部の形態素(例えば、文「京都でよろしいでしょうか?」の一部の形態素である「よろしいですか?」)が含まれる文と対になる対話行為タグを取得する。また、第一対話行為タグ取得手段1402は、例えば、入力音声テキストの一部と、文対話行為情報をパターンマッチングし、マッチした(部分一致も含む)文対話行為情報に含まれる対話行為タグを取得する。この取得された対話行為タグが第一対話行為タグである。
第二対話行為タグ取得手段1403は、第一対話行為タグ取得手段1402が取得した第一対話行為タグに対応する1の第二対話行為タグを取得する。また、第二対話行為タグ取得手段1403は、カレントノード識別子格納部115に格納されているカレントノード識別子と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグに対応する1の第二対話行為タグを取得することは好適である。第二対話行為タグ取得手段1403は、取得の候補となる第二対話行為タグが2以上、存在する場合、重み情報を用いて、より高い遷移確率を示す重み情報と対になる第二対話行為タグを選択することは好適である。第二対話行為タグ取得手段1403は、取得の候補となる第二対話行為タグが2以上、存在する場合、例えば、カレントノード識別子で識別されるノードより2以上先の始端ノード識別子に対応する重み情報を用いて、DP(動的計画法)アルゴリズムを適用し、ルート内で累積された重み情報の合計である累積重み情報を用いて、最も高い遷移確率を示す累積重み情報に対応するルートに含まれる第二対話行為タグを取得しても良い。さらに、第二対話行為タグ取得手段1403は、対話の初めに、初期ノード(例えば、後述する始端ノード識別子「0」に対応するノード)に対応する第二対話行為タグを取得しても良い。
文取得手段1404は、第二対話行為タグ取得手段1403が取得した第二対話行為タグに対応する文を、出力文情報格納部112から取得する。また、文取得手段1404は、例えば、音声認識部1401が認識した入力音声に対応するテキスト(入力音声テキスト)から1以上の用語を取得し、当該1以上の用語と第二対話行為タグとを用いて、出力文情報格納部112から文を取得する。また、文取得手段1404は、履歴情報を用いて、第二対話行為タグ取得手段1403が取得した第二対話行為タグに対応する文を、出力文情報格納部112から取得することは好適である。例えば、文取得手段1404は、第二対話行為タグ取得手段1403が取得した第二対話行為タグに対応する文を、出力文情報格納部112から取得する。文取得手段1404は、複数の文のうちの1以上を選択して、取得しても良いし、2以上の文をすべて取得しても良い。
用語取得手段14041は、音声認識部1401が認識した入力音声に対応するテキスト(入力音声テキスト)から用語を取得する。用語取得手段14041は、例えば、入力音声テキストを形態素解析し、入力音声テキストを構成する名詞などを取得する。
出力文取得手段14042は、用語取得手段14041が取得した用語に対応し、かつ、第二対話行為タグ取得手段1403が取得した第二対話行為タグに対応する文を、出力文情報格納部112から取得する。出力文取得手段14042は、履歴情報を用いて、第二対話行為タグ取得手段1403が取得した第二対話行為タグに対応する文を、出力文情報格納部112から取得することは好適である。
文変更手段1405は、文取得手段1404が取得した文を、言語識別子取得部13が取得した言語識別子に応じて変更し、変更した文を取得する。また、文変更手段1405は、文取得手段1404が取得した出力文と、出力文変更情報格納部114の出力文変更情報をパターンマッチングし、マッチした(部分一致も含む)出力文変更情報に基づいて出力分を変更しても良い。
音声合成部1406は、文変更手段1405が取得した出力文の音声波形を取得する。音声合成部1406は、通常、音声合成処理を用いて出力文に対応する音声波形を取得する。音声合成処理は公知技術であるため説明を省略する。音声合成部1406は、テキストから対応する音声波形を取得可能な手段であれば何でも良い。例えば、言語ごとに合成器が用意されており、音声合成部1406は、言語識別子取得部13が取得した言語識別子に対応する合成器を用いて音声波形を取得しても良い。また、音声合成部1406は、多言語に対応する合成器であっても良い。
カレントノード識別子更新手段1407は、文取得手段1404が取得した出力文に対応する第二対話行為タグと対になる終端ノード識別子を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
実行手段1408は、第二対話行為タグ取得手段1403が選択した第二対話行為タグに対応する動作識別子を取得し、当該動作識別子に対応する動作手段を実行する。実行手段1408は、受付部12が受け付けた第一話者の入力音声に対して、予め決められた動作識別子に対応する動作手段を実行しても良い。かかる処理を、適宜、前処理という。実行手段1408は、例えば、関数の呼び出し処理、メソッドの実行処理、実行モジュールの起動処理などの処理を行う。
履歴情報取得手段1409は、受付部12が受け付けた第一話者の入力音声から、履歴情報を取得する。履歴情報取得手段1409は、例えば、第一話者の入力音声から音声認識部1401が取得したテキストから名詞等を取得し、履歴情報とする。また、履歴情報は、話者を区別して取得しても良いし、話者を使用言語等でグループ化し、グループごとに取得しても良いし、話者と使用言語を区別せずに取得しても良い。
履歴情報蓄積手段1410は、履歴情報取得手段1409が取得した履歴情報を履歴情報格納部117に蓄積する。
音声出力部15は、音声合成部1406が生成した音声波形を出力する。なお、ここでの音声波形の出力は、波形に応じた音の出力である、と考えても良い。音声出力部15は、言語識別子取得部13が言語識別子を取得していた場合、当該言語識別子に対応する言語の出力文のみを出力しても良い。また、音声出力部15は、音声合成部1406によって生成された音声波形に加え、対話制御部141によって生成された出力文を取得した場合、音声波形と同時に出力文を出力しても良い。また、出力とは、スピーカー等からの音声出力、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。音声出力部15は、スピーカーやディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。音声出力部15は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
格納部11、対話構造情報格納部111、出力文情報格納部112、カレントノード識別子格納部115、動作手段格納部116、履歴情報格納部117、文対話行為情報格納部113、および出力文変更情報格納部114は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。また、格納部11等について、各種情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が対話構造情報格納部111等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。
言語識別子取得部13、対話統括制御部14、音声認識部1401、対話制御部141、音声合成部1406、第一対話行為タグ取得手段1402、第二対話行為タグ取得手段1403、文取得手段1404、文変更手段1405、カレントノード識別子更新手段1407、実行手段1408、履歴情報取得手段1409、履歴情報蓄積手段1410、用語取得手段14041、および出力文取得手段14042は、通常、MPUやメモリ等から実現され得る。また、言語識別子取得部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。ただし、ハードウェア(専用回路)で実現しても良い。
次に、音声対話装置1の動作について図2のフローチャートを用いて説明する。
(ステップS201)受付部12は、マイク等で入力された音データの中から、ユーザが音声対話システムに対して発話したと推測される区間(発話区間)を検出する。発話区間が検出された場合はステップS202に行き、検出されなかった場合はステップS201に戻る。
(ステップS202)言語識別子取得部13は、ステップS201で検出された発話区間に対して言語識別処理を行ない、第一話者の入力音声の言語識別子を取得する。
(ステップS203)実行手段1408は、前処理を行う。前処理とは、ステップS201で受け付けられた入力音声に対して、予め決められた動作識別子に対応する動作手段を実行することである。なお、例えば、実行手段1408は、ノイズ除去を実行し、入力音声に含まれるノイズを除去する。
(ステップS204)音声認識部1401は、ユーザの入力音声に対して音声認識を実行し、第一話者の入力音声に対応するテキストを取得する。
(ステップS205)第一対話行為タグ取得手段1402は、ステップS204で取得したテキストに対して自然言語処理を行ない、第一対話行為タグを取得する。かかる処理を第一対話行為タグ取得処理という。第一対話行為タグ取得処理の詳細については、図3のフローチャートを用いて説明する。
(ステップS206)第二対話行為タグ取得手段1403は、ステップS205で取得された第一対話行為タグに対応する1の第二対話行為タグを取得する。かかる処理を第二対話行為タグ取得処理という。第二対話行為タグ取得処理の詳細について、図4のフローチャートを用いて説明する。なお、本ステップで、第二対話行為タグが取得できない場合もあり得る。
(ステップS207)対話統括制御部14は、ステップS206において、第二対話行為タグが取得できた場合はステップS208へ行き、取得できなかった場合はステップS212へ行く。なお、第二対話行為タグが取得できなかった場合にS212に直接ジャンプすることは、出力文および音声を何も出力しないことを意味する。その代わりに、出力が「空」であることを表わす特殊なシンボルを出力し、その後にステップS212にジャンプしてもよい。
(ステップS208)文取得手段1404は、ステップS206で取得された第二対話行為タグに対応する出力文を、出力文情報格納部112から取得する。かかる処理を文取得処理という。文取得処理の詳細については、図5のフローチャートを用いて説明する。
(ステップS209)文変更手段1405は、ステップS208で取得した出力文をステップS202で取得した言語識別子に応じて変更し、変更した出力文を取得する。かかる処理を文変更処理という。文変更処理の詳細については、図6のフローチャートを用いて説明する。なお、ステップS208で取得した出力文に変更を要する箇所がなかった場合、文変更手段1405は、ステップS208で取得した文をそのまま取得する。
(ステップS210)音声合成部1406は、ステップS209で取得した出力文に対応する音声波形を生成する。
(ステップS211)音声出力部15は、ステップS210で取得された音声波形を出力する。ここでの出力は、音声対話装置1のスピーカー等への音声出力でも良いし、他のプログラム等へ音声波形を渡す処理などでも良い。
(ステップS212)実行手段1408は、いわゆる後処理を行う。後処理の詳細については、図7のフローチャートを用いて説明する。その後、ステップS201に戻る。なお、ステップS201に戻ることにより、ユーザと音声対話装置1との対話が次々と進んでいく。
なお、図2のフローチャートにおいて、前処理が無い場合がある。
また、図2のフローチャートにおいて、ステップS212の後処理の後、ステップS201に戻った。しかし、ユーザからの入力音声を受け付けるノード(状態)に行くまで(ユーザからの入力音声を受け付ける対話連結情報に進むまで)、対話構造情報格納部111の繋がっている対話連結情報を処理しても良い。かかる処理は、ステップS205からステップS212までの処理である。その詳細は、後述する具体例において説明する。
また、図2のフローチャートにおいて、ステップS206から処理を開始しても良い。
さらに、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS205の第一対話行為タグ取得処理の詳細の具体例について、図3のフローチャートを用いて説明する。
(ステップS301)第一対話行為タグ取得手段1402は、ステップS204で取得されたテキストを形態素解析し、1以上の形態素の列を得る。
(ステップS302)第一対話行為タグ取得手段1402は、カウンタiに1を代入する。
(ステップS303)第一対話行為タグ取得手段1402は、ステップS301で得た1以上の形態素列の中に、i番目の形態素が存在するか否かを判断する。i番目の形態素が存在すればステップS304に行き、i番目の形態素が存在しなければ上位処理にリターンする。なお、上位処理にリターンする前に、対話行為タグが付与されていない形態素には、対話行為タグ「eps」を付与することは好適である。
(ステップS304)第一対話行為タグ取得手段1402は、カウンタjにiを代入する。
(ステップS305)第一対話行為タグ取得手段1402は、ステップS301で取得した形態素列のi番目からj番目までの形態素を部分形態素列として取得し、当該部分形態素列をキーとして、文対話行為情報格納部113を検索する。
(ステップS306)第一対話行為タグ取得手段1402は、文対話行為情報格納部113の中のいずれかの文対話行為情報が、キーとした部分形態素列に合致するか否かを判断する。合致すればステップS307に行き、合致しなければステップS308に行く。なお、合致とは、完全一致でも良いし、部分一致でも良い。また、表現のゆらぎや類義語などでも合致する、と看做すように処理することは好適である。表現のゆらぎや類義語などの処理は公知技術であるので、詳細な説明を省略する。
(ステップS307)第一対話行為タグ取得手段1402は、ステップS306で合致した文対話行為情報に含まれる対話行為タグを取得し、上位処理にリターンする。
(ステップS308)第一対話行為タグ取得手段1402は、j+1番目の形態素が存在するか否かを判断する。j+1番目の形態素が存在すればステップS309に行き、j+1番目の形態素が存在しなければステップS310に行く。
(ステップS309)第一対話行為タグ取得手段1402は、カウンタjを1だけ増加させ、ステップS305に戻る。
(ステップS310)第一対話行為タグ取得手段1402は、i番目の形態素に対話行為タグ「eps」を付与する。
(ステップS311)第一対話行為タグ取得手段1402は、カウンタiを1だけ増加させ、ステップS303に戻る。
次に、ステップS206の第二対話行為タグ取得処理の詳細について、図4のフローチャートを用いて説明する。
(ステップS401)第二対話行為タグ取得手段1403は、カレントノード識別子格納部115に格納されているカレントノード識別子を読み出す。次に、そのカレントノード識別子と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグに対応する1以上の第二対話行為タグを、対話構造情報格納部111から取得する。
(ステップS402)第二対話行為タグ取得手段1403は、カウンタiに1を代入する。
(ステップS403)第二対話行為タグ取得手段1403は、ステップS401で取得された1以上の第二対話行為タグの中に、i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグが存在するか否かを判断する。かかる第二対話行為タグが存在すればステップS404に行き、存在しなければステップS407に行く。なお、かかる判断は、対話構造情報格納部111の対話構造情報を参照することにより行われる。
(ステップS404)第二対話行為タグ取得手段1403は、ステップS401で取得された1以上の第二対話行為タグの中から、i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグを取得し、メモリ上に配置する。
(ステップS405)第二対話行為タグ取得手段1403は、i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグに対応する文を出力したか否か(i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグを処理済みか否か)を判断する。処理済みであればステップS406に行き、処理済みでなければステップS408に行く。
(ステップS406)第二対話行為タグ取得手段1403は、カウンタiを1だけ増加させ、ステップS403に戻る。
(ステップS407)第二対話行為タグ取得手段1403は、デフォルトの第二対話行為タグを、最終的な第二対話行為タグに決定する。デフォルトの第二対話行為タグとは、例えば、音声対話装置1からユーザへの確認を表す「Confirm」等である。上位処理にリターンする。なお、ステップS407を経由することが無い場合には、デフォルトの第二対話行為タグを予め格納する必要は無い。
(ステップS408)第二対話行為タグ取得手段1403は、i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグを、最終的な第二対話行為タグに決定し、上位処理にリターンする。
なお、図4のフローチャートにおいて、例えば、既に処理された第二対話行為タグには、フラグが付されている、とする。
次に、ステップS208の文取得処理の詳細について、図5のフローチャートを用いて説明する。
(ステップS501)文取得手段1404は、第二対話行為タグ取得手段1403が、最終的に決定した第二対話行為タグを取得する。
(ステップS502)用語取得手段14041は、音声認識部1401において取得した入力音声テキストから用語を取得する。ここでの用語は、例えば、入力音声テキストを構成する名詞等である。用語取得手段14041は、入力音声テキストを形態素解析し、文を構成する名詞等を抽出する。なお、文から名詞等を取得する技術は公知技術であるので、詳細な説明を省略する。
(ステップS503)出力文取得手段14042は、用語取得手段14041が取得した用語に対応し、かつ、第二対話行為タグ取得手段1403が取得した第二対話行為タグに対応する1以上の文を、出力文情報格納部112から取得する。
(ステップS504)出力文取得手段14042は、履歴情報格納部117から履歴情報を読み出す。この際、ステップS201が受け付けた入力音声の話者や当該入力音声の言語に対応しない履歴情報は読み出さないことは好適である。
(ステップS505)出力文取得手段14042は、ステップS503で取得した1以上の文から、ステップS504で取得した履歴情報に含まれる用語に対応する文を抽出する。
(ステップS506)出力文取得手段14042は、残っている文から、1以上の文を取得する。ここで、残っている文が1文であれば、出力文取得手段14042は、当該1文を取得する。また、残っている文が2文以上であれば、出力文取得手段14042は、1文を選択して取得しても良いし、2文以上のうちのいくつか、またはすべてを取得しても良い。取得後は上位処理にリターンする。
なお、図5のフローチャートにおいて、履歴情報が存在しなくても良い。かかる場合、出力文取得手段14042は、ステップS503で取得した1以上の文から、最終的に、1文または2文以上の文を取得する。
また、図5のフローチャートのステップS502において、用語が取得できなくても良い。かかる場合、出力文取得手段14042は、第二対話行為タグ取得手段1403が取得した第二対話行為タグに対応する1以上の文を、出力文情報格納部112から取得する。
次に、ステップS209の文変更処理の詳細について、図6のフローチャートを用いて説明する。
(ステップS601)文変更手段1405は、カウンタiに1を代入する。
(ステップS602)文変更手段1405は、出力文変更情報格納部114に、i番目の出力文変更情報が存在するか否かを判断する。i番目の出力文変更情報が存在すればステップS603へ行き、i番目の出力文変更情報が存在しなければ上位処理にリターンする。なお、ステップS208で出力文が取得されなかった場合も、上位処理へリターンする。
(ステップS603)文変更手段1405は、出力文変更情報格納部114から、i番目の出力文変更情報を取得する。
(ステップS604)文変更手段1405は、ステップS202で取得した言語識別子がi番目の出力文変更情報の言語条件を満たし、かつ、出力文に当該出力文変更情報の変更範囲を含む部分があるか否かを判断する。言語条件を満たし、かつ、変更範囲を含む場合、ステップS605へ行き、それ以外の場合、ステップS606へ行く。
(ステップS605)文変更手段1405は、i番目の出力文変更情報に含まれる変更内容に従って出力文を変更する。
(ステップS606)文変更手段1405は、カウンタiを1だけ増加させ、ステップS602に戻る。
次に、ステップS212の後処理の詳細について、図7のフローチャートを用いて説明する。
(ステップS701)カレントノード識別子更新手段1407は、対話制御部141が出力した文に対応する第二対話行為タグと対になる終端ノード識別子を、対話構造情報格納部111から取得し、メモリ上に配置する。
(ステップS702)カレントノード識別子更新手段1407は、ステップS701で取得された終端ノード識別子を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
(ステップS703)実行手段1408は、第二対話行為タグ取得手段1403が選択した第二対話行為タグに対応する1以上の動作識別子を、対話構造情報格納部111から取得する。
(ステップS704)実行手段1408は、ステップS703で取得された1以上の動作識別子が存在するか否かを判断する。1以上の動作識別子が存在すればステップS705に行き、存在しなければステップS706に行く。
(ステップS705)実行手段1408は、ステップS703で取得された1以上の動作識別子に対応する動作手段を実行する。
(ステップS706)履歴情報取得手段1409は、音声認識部1401が取得した入力音声テキストから、キーワードを取得する。なお、キーワードは、例えば、文中の名詞などである。履歴情報の取得方法は問わない。
(ステップS707)履歴情報取得手段1409は、取得したキーワード等を用いて履歴情報を構成する。
(ステップS708)履歴情報蓄積手段1410は、ステップS707で取得された履歴情報を履歴情報格納部117に蓄積し、上位処理にリターンする。
以下、本実施の形態における音声対話装置1の具体的な動作について説明する。
今、対話構造情報格納部111は、図8に示す対話構造情報管理表を格納している。対話構造情報管理表は、1以上の対話連結情報のレコードを保持している。対話連結情報は、「ID」「始端ノード識別子」「終端ノード識別子」「第一対話行為タグ」「第二対話行為タグ」「重み情報」「動作識別子」の属性を有する。なお、対話連結情報は、「始端ノード識別子」「終端ノード識別子」の属性値を有し、かつ、「第一対話行為タグ」「第二対話行為タグ」「動作識別子」のうちの1以上の属性値を有する。また、「重み情報」の属性値は存在しなくても良い。また、図8において、「第一対話行為タグ」「第二対話行為タグ」の「−」はNULLである。また、「動作識別子」の属性値として、記載がない場合も、「動作識別子」がNULLである。さらに、対話連結情報のレコードは、図示していないが、ユーザからの入力音声の入力を待つためのノードであることを示す入力待ちフラグを有しても良い。入力待ちフラグが付与された場合、音声対話装置1は、入力待ちフラグが設定されたレコードに対する処理を行った後、ユーザからの音声の入力を待つ。入力待ちフラグは、図8において、「ID=1,4,6,7,9,10」のレコードに付与されている、とする。
なお、図8に示す対話構造情報管理表の「動作識別子」にある「スポット検索(ユーザ)」は、入力音声の言語識別子に対応するユーザに応じた観光場所を検索する処理を表し、「スポット検索(場所)」は、ユーザの現在地に応じた観光場所を検索する処理である。
さらに、図8に示す対話構造情報管理表は、図9に示す対話状態遷移図で示される。図9に示す対話状態遷移図は、いわゆるWFSTである。図9に示す対話状態遷移図において、網掛けノード(状態)は、ユーザからの文を待っているノードである。また、二重丸の(0)は初期ノードであり、対話の始まりを示すノードである。さらに、二重丸の(8)は終了ノードであり、対話の終了を示すノードである。
また、文対話行為情報格納部113は、図10に示す文対話行為情報管理表を格納している。文対話行為情報管理表は、「ID」と「第一対話行為タグ」と「部分テキスト」とを有する。第一対話行為タグ取得手段1402は、音声認識部1401が取得したテキスト中に、図10の各レコードにおける「部分テキスト」が含まれる場合、当該レコードの第一対話行為タグを取得する。
また、出力文情報格納部112は、図11に示す出力文情報管理表を格納している。出力文情報管理表は、「ID」「出力文情報」を有する。「出力文情報」は、「対話行為タグ」と日本語、英語、中国語の「出力文」を有する。「出力文」において<>内の情報は、内部変数の値が代入されることを示す。内部変数は、例えば、スポットの検索結果を示す<spot>や、天気を示す<weather>や、開始地点を表す<from>や、時間を表す<time>や、交通手段を表す<trans>、金額を表す<cost>等である。
また、出力文情報格納部112は、図12に示すキーワード管理表を保持している。キーワード管理表は、音声対話装置1が行うタスク(ある話題)について、キーワードになり得る情報を格納している表である。図12において、「ranking」「spot」「from」「time」「trans」「cost」などの属性を有するレコードを多数格納している。ここで、音声対話装置1が行うタスクは、日本の観光のガイドである。「ranking」は日本の観光でのスポットの人気の度合いを示す情報である。「spot」「from」「time」「trans」「cost」は各スポットの情報をモデル化したものである。「spot」は観光スポットである。「from」は当該観光スポットへ向かう出発地である。「time」は後述する交通手段を用いて当該出発地から当該観光スポットへ向かう際に要する時間である。「trans」は当該出発地から当該観光スポットへ向かうための交通手段である。「cost」は当該交通手段を用いて当該出発地から当該観光スポットへ行く際に必要な料金である。
後述のように、音声対話システムは日本語の「京都」と英語の“Kyoto”と中国語の「京都」とが対応したキーワードであることを知っている必要がある。同様に、「飛行機」(日本語)と“airplane”(英語)と
Figure 2018017936
(中国語)とがお互いに対応していることを知っている必要がある。それを実現するため、図12の表の各欄では、各国語において対応するキーワードが記述されている。
また、出力文変更情報格納部114は、図13に示す出力文変更情報管理表を保持している。出力文変更情報管理表は、「ID」「出力文変更情報」を有する。「出力文変更情報」は、「言語条件」と「変更範囲」と「変更内容」を有する。「言語条件」において、「Lang=言語L」とは、言語識別子が言語Lであるという条件を意味する。また、「(%d)」は、数値を表す文字列であり、「yuan_to_yen($1)」は当該数値を表す文字列を、中国元を表す数値と仮定し、当該数値を日本円に変換する関数を表す。図13における「タイプ=追加」は、出力文の言語が「言語条件」と一致した場合に、「場所」が表わす出力文の位置に「内容」のテキストを追加することを意味する。この図においては、日本語を除き、出力文に「北海道」に対応するキーワードが含まれていた場合に、「北海道は日本の北部に位置する」ことを意味する一文が追加される。
かかる状況において、「日本語」、「英語」、「中国語」の各言語を話す3名のユーザ(3名の第一話者)が「東京」において、音声対話装置1を用いる実施例について、以下、説明する。
ユーザは、音声対話装置1の電源を入れた、とする。すると、音声対話装置1の第二対話行為タグ取得手段1403は、初期ノード(例えば、始端ノード識別子「0」に対応するノード)に対応する第二対話行為タグ「intro」を、図8の対話構造情報管理表から取得する。
次に、文取得手段1404は、取得された第二対話行為タグ「intro」に対応する出力文「こんにちは。」、「Hello.」、
Figure 2018017936
を、図11の出力文情報管理表から取得する。
次に、文変更手段1405は、出力文変更情報管理表から、出力文にマッチする出力文変更情報を探すが、言語識別子取得部13は言語識別子も取得していないため、出力文の変更は行わない。
次に、音声合成部1406は、出力文を音声に変換し、音声出力部15へ渡す。そして、音声出力部15は、言語識別子取得部13は言語識別子を取得していないため、すべての言語の文の音声を出力する。
次に、カレントノード識別子更新手段1407は、音声出力部15が出力した文に対応する第二対話行為タグ「intro」と対になる終端ノード識別子「1」を、対話構造情報格納部111から取得し、メモリ上に配置する。さらに、カレントノード識別子更新手段1407は、取得された終端ノード識別子「1」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
次に、日本語を話すユーザが「おすすめの観光スポットは?」という音声を音声対話装置1へ入力したとする。
この音声発話に対し、受付部12は発話区間を検出し、その区間に対応した音声データを得る。そして、言語識別子取得部13は、第一話者の入力音声に対応する言語識別子として「日本語」を取得する。さらに、音声認識部1401は、音声認識処理を行い、入力音声テキスト「おすすめの観光スポットは」を得る。
次に、第一対話行為タグ取得手段1402は、以下のように「おすすめの観光スポットは」に対応する第一言語タグを取得する。まず、第一対話行為タグ取得手段1402は、入力音声テキスト「おすすめの観光スポットは」を形態素解析する。そして、第一対話行為タグ取得手段1402は、図10の文対話行為情報管理表を参照し、図3のフローチャートに従って、先頭の形態素から順番に第一対話行為タグを付与し、「おすすめ(eps),の(eps)観光スポット(q.spot)」を得る。次に、第一対話行為タグ取得手段1402は、「おすすめの観光スポットは」に対応する第一対話行為タグを「q.spot」に決定する。ここで、第一対話行為タグ取得手段1402は、第一対話行為タグ(eps)を無視し、(q.spot)を採用する。
次に、第二対話行為タグ取得手段1403は、取得された第一対話行為タグ「q.spot」に対応する1の第二対話行為タグを取得する。具体的には、第二対話行為タグ取得手段1403は、カレントノード識別子格納部115に格納されているカレントノード識別子「1」を読み出し、メモリ上に配置する。
次に、第二対話行為タグ取得手段1403は、取得されたカレントノード識別子「1」と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグ「q.spot」に対応する遷移先として、図8の対話構造情報管理表の「ID=2」と「ID=3」の2つの遷移先を候補として取得する。第二対話行為タグ取得手段1403は、重み情報「1/4」と「3/4」を用いて、より高い遷移確率を示す重み情報「3/4」と対になる「ID=3」を遷移先として選択し、第二対話行為タグは取得しない。したがって、出力文の取得、出力は行われない。
次に、カレントノード識別子更新手段1407は、取得された終端ノード識別子「3」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
次に、実行手段1408は、「ID=3」のレコード内の動作識別子「スポット検索(場所)」を対話構造情報格納部111から取得する。そして、実行手段1408は、取得された動作識別子「スポット検索(場所)」に対応する動作手段を実行する。この検索の結果、図12のキーワード管理表の「Ranking=1」に対応する「日本語:京都, 英語:Kyoto, 中国語:京都」が検索されたとする。
さらに、次のノードに遷移しようとする。つまり、次に、第二対話行為タグ取得手段1403は、カレントノード識別子格納部に格納されているカレントノード識別子「3」と一致する始端ノード識別子に対応する第二対話行為タグを取得する。すなわち、図8の対話構造情報管理表の「ID=7」のレコードがアクセスされ、第二対話行為タグ取得手段1403は、第二対話行為タグ「a.spot」を取得する。
次に、文取得手段1404は、取得された第二対話行為タグ「a.spot」に対応する文日本語:「<spot>がおすすめです。」英語:「I recommend <spot>.」中国語:
Figure 2018017936
を取得する。さらに、文取得手段1404は、先の検索結果から日本語・英語・中国語の<spot>に「京都」、「Kyoto」、「京都」をそれぞれ代入し、「京都がおすすめです。」、「I recommend Kyoto.」、
Figure 2018017936
という文を生成する。さらに、それら3つの文の内、取得した言語識別子「日本語」に対応した「京都がおすすめです。」を選択する。
次に、文変更手段1405は、出力文変更情報管理表から、出力文にマッチする出力文変更情報を探すが、言語識別子取得部13は言語識別子も取得していないため、出力文の変更は行わない。
次に、音声合成部1406は、文変更手段1405が取得した文「京都がおすすめです。」に対応した音声波形を生成する。
次に、音声出力部15は、「京都がおすすめです。」に対応した音声を出力する。
次に、カレントノード識別子更新手段1407は、音声出力部15が出力した文に対応する第二対話行為タグ「a.spot」と対になる終端ノード識別子「4」を、対話構造情報格納部111から取得し、メモリ上に配置する。さらに、カレントノード識別子更新手段1407は、取得された終端ノード識別子「4」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
次に、直前の音声入力を行った日本語を話すユーザが「ありがとう」という音声を音声対話装置1へ入力したとする。
次に、受付部12は、第一話者の入力音声「ありがとう」を受け付ける。そして、言語識別子取得部13は、第一話者の入力音声に対応する言語識別子として「日本語」を取得する。さらに、音声認識部1401は、音声認識処理を行い、入力音声テキスト「ありがとう」を得る。
次に、第一対話行為タグ取得手段1402は、図10の文対話行為情報管理表の「ID=3」の「ありがとう」に対応する第一対話行為タグ「thanks」を取得する。
次に、第二対話行為タグ取得手段1403は、取得された第一対話行為タグ「thanks」とカレントノード識別子格納部115に格納されているカレントノード識別子「4」に対応する1の第二対話行為タグを取得する。図8の対話構造情報管理表の「ID=8」には第二対話行為タグは存在しないため、第二対話行為タグ取得手段1403は、第二対話行為タグを取得しない。したがって、出力文の取得、出力は行われない。
次に、カレントノード識別子更新手段1407は、取得された終端ノード識別子「1」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
次に、別のユーザが音声対話装置1へ「What do you recommend for sightseeing?」と英語で音声入力したとする。
次に、受付部12は、先の日本語の第一話者とは異なる二人目の第一話者の入力音声「What do you recommend for sightseeing?」を受け付ける。そして、言語識別子取得部13は、第一話者の入力音声に対応する言語識別子として「英語」を取得する。さらに、音声認識部1401は、音声認識処理を実行し、入力音声テキスト「What do you recommend for sightseeing?」を得る。
次に、第一対話行為タグ取得手段1402は、以下のように、「What do you recommend for sightseeing?」に対応する第一対話行為タグを取得する。まず、第一対話行為タグ取得手段1402は、入力音声テキスト「What do you recommend for sightseeing?」を形態素解析する。そして、第一対話行為タグ取得手段1402は、図10の文対話行為情報管理表を参照し、図3のフローチャートに従って、先頭の形態素から順番に、第一対話行為タグを付与し、「What(eps) do(eps) you(eps) recommend for sightseeing(q.spot)」を得る。次に、第一対話行為タグ取得手段1402は、「What do you recommend for sightseeing?」に対応する第一対話行為タグを「q.spot」に決定する。ここで、第一対話行為タグ取得手段1402は、第一対話行為タグ(eps)を無視し、(q.spot)を採用する。
次に、第二対話行為タグ取得手段1403は、取得されたカレントノード識別子「1」と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグ「q.spot」に対応する遷移先として、図8の対話構造情報管理表の「ID=2」と「ID=3」の2つの遷移先を候補として取得する。当該候補のうち、「ID=3」は、既に遷移したため、「ID=2」を遷移先として選択し、第二対話行為タグは取得しない。したがって、出力文の取得、出力は行われない。
次に、カレントノード識別子更新手段1407は、取得された終端ノード識別子「2」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
次に、実行手段1408は、「ID=2」のレコード内の動作識別子「スポット検索(ユーザ)」を対話構造情報格納部111から取得する。そして、実行手段1408は、取得された動作識別子「スポット検索(ユーザ)」に対応する動作手段を実行する。この検索の結果、図12のキーワード管理表の「Ranking=2」に対応する「日本語:北海道, 英語:Hokkaido, 中国語:北海道」が検索されたとする。
さらに、次のノードに遷移しようとする。つまり、次に、第二対話行為タグ取得手段1403は、カレントノード識別子格納部に格納されているカレントノード識別子「2」と一致する始端ノード識別子に対応する第二対話行為タグを取得する。すなわち、図8の対話構造情報管理表の「ID=6」のレコードがアクセスされ、第二対話行為タグ取得手段1403は、第二対話行為タグ「a.spot」を取得する。
次に、文取得手段1404は、取得された第二対話行為タグ「a.spot」に対応する文日本語:「<spot>がおすすめです。」、英語:「I recommend <spot>.」、中国語:
Figure 2018017936
を取得する。さらに、文取得手段1404は、先の検索結果から日本語・英語・中国語の<spot>に「北海道」、「Hokkaido」、「北海道」をそれぞれ代入し、「北海道がおすすめです。」、「I recommend Hokkaido.」、
Figure 2018017936
という文をそれぞれ生成する。さらに、それら3つの文の内、取得した言語識別子「英語」に対応した「I recommend Hokkaido.」を選択する。
次に、文変更手段1405は、図13の出力文変更情報管理表からマッチする出力文変更情報を探す。すると、文変更手段1405は、先に言語識別子取得部13が取得した言語識別子「英語」が言語条件を満たし、かつ、先の文取得手段1404が取得し文に「Hokkaido」が含まれることから、図13の「ID=1」がマッチする、と判断する。さらに文変更手段1405は、「ID=1」の出力文変更情報の変更範囲と変更内容に従って、文を変更する。具体的には、文変更手段1405は、変更範囲「Hokkaido」を含む文「I recommend Hokkaido.」の「文末」に「Hokkaido is located in the northern part of Japan.」を「追加」する。この結果、出力文「I recommend Hokkaido.」から「I recommend Hokkaido. Hokkaido is located in the northern part of Japan.」を得る。
次に、音声合成部1406は、文変更手段1405が取得した出力文「I recommend Hokkaido. Hokkaido is located in the northern part of Japan.」に対応した音声波形を生成する。
次に、音声出力部15は、文変更手段1405が取得した出力文を音声出力する。なお、音声出力部15は、言語識別子取得部13が取得した言語識別子「英語」に基づいて、「I recommend Hokkaido. Hokkaido is located in the northern part of Japan.」を音声出力しても良い。
なお、この例では英語以外の出力文は選択されずに破棄されているが、破棄せずに全言語の出力文を出力あるいは画面表示してもよいし、さらに音声波形に変換し、出力してもよい。
次に、カレントノード識別子更新手段1407は、音声出力部15が出力した文に対応する第二対話行為タグ「a.spot」と対になる終端ノード識別子「4」を、対話構造情報格納部111から取得し、メモリ上に配置する。
次に、カレントノード識別子更新手段1407は、取得された終端ノード識別子「2」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
次に、ユーザが音声対話装置1へ「どれくらいかかる?」と日本語で音声入力したとする。この例において重要なことは、以下の3点である。
1.前回の英語話者の「What do you recommend for sightseeing?」という質問への回答は、英語だけでなく日本語や中国語でも出力されており、英語が聞き取れない人でも音声対話システムが観光地として北海道を勧めていることが分かる。
2.そのため今回の日本語話者の質問は、目的地が含まれていないにも関わらず、北海道までの所要時間や料金を聞いている。
3.音声対話システムにおいては、前回の英語話者の質問により、図9においてノード識別子=4まで内部状態が遷移しているため、前回とは入力言語が異なっているにもかかわらず、前回の質問に依存した応答生成が行なわれる。
この音声発話に対し、受付部12は発話区間を検出し、その区間に対応した音声データを得る。そして、言語識別子取得部13は、第一話者の入力音声に対応する言語識別子として「日本語」を取得する。さらに、音声認識部1401は、音声認識処理を実行し、入力音声テキスト「どれくらいかかる」を得る。
次に、第一対話行為タグ取得手段1402は、今回の音声認識結果である「どのくらいかかる」が図10の文対話行為情報管理表の「ID=7」に対応するため、第一対話行為タグ「q.how−to−take」を取得する。
次に、第二対話行為タグ取得手段1403は、取得された第一対話行為タグ「q.how−to−take」に対応する1の第二対話行為タグを取得する。具体的には、第二対話行為タグ取得手段1403は、カレントノード識別子格納部115に格納されているカレントノード識別子「4」を読み出し、メモリ上に配置する。
次に、第二対話行為タグ取得手段1403は、取得されたカレントノード識別子「4」と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグ「q.how−to−take」に対応する第二対話行為タグ「a.how−to−take」を、図8の対話構造情報管理表から取得する。
次に、文取得手段1404は、取得された第二対話行為タグ「a.how−to−take」に対応する文日本語:「<from>から<trans>で<time>かかります。」、英語:「It take <time> by <trans> from <from>.」、中国語:
Figure 2018017936
を取得する。さらに、文取得手段1404は、キーワード管理表を検索する。前回のユーザー発話において図2の「Ranking=2」の項目が選択されたという履歴情報を基に、<from>に日本語:「東京」、英語:「Tokyo」、中国語:「東京」を、<trans>に日本語:「飛行機」、英語:「airplane」、中国語:
Figure 2018017936
を、<time>に日本語:「4時間」、英語:「four hours」、中国語:
Figure 2018017936
という値を得、それぞれ代入することで、日本語:「東京から飛行機で4時間かかります」、英語:「It take four hours by airplane from Tokyo.」、中国語:
Figure 2018017936
を取得する。さらに、それら3つの文の内、取得した言語識別子「日本語」に対応した「東京から飛行機で4時間かかります」を選択する。
次に、文変更手段1405は、出力文変更情報管理表を検索するが、マッチする出力文変更情報は存在しないため、何も変更していない文を取得する。
次に、音声合成部1406は、文変更手段1405が取得した文「東京から飛行機で4時間かかります」に対応した音声波形を生成する。そして、音声出力部15は、「東京から飛行機で4時間かかります」を音声出力する。
以後、同じように、音声対話装置1とユーザは、図8の対話構造情報管理表が示すWFSTに従って、対話を進める。
以上、本実施の形態によれば、音声対話装置1は、ユーザの使用言語に合わせて適切な応答をすることができる。また、ユーザは、音声対話装置1と、より自然に、次々と対話できる。
また、本実施の形態において、ユーザの使用言語によって補足や省略するべき情報は、出力文変更情報として、対話構造情報と出力文情報とは分類している。そのため、出力文変更情報を変更すれば、あらゆる状況において、音声対話装置1は、ユーザの使用言語に合わせて適切な応答をすることができる。
また、本実施の形態によれば、例えば、対話構造情報(対話状態の構造)と対話で用いる文の集合を分離しているので、文の集合を入れ替えれば、種々の話題(タスク)に対応できる。
なお、本実施の形態において、言語識別子の例として日本語や英語をあげたが、言語または、英国の英語と米国の英語といった使用される国ごとに言語を分けてもよいし、標準語と大阪弁といった、より細かい地域ごとに分けてもよい。
また、本実施の形態において、例えば、出力文情報格納部112に格納される出力文情報に含まれる文の一部(文変更情報の変更範囲に対応する)に、入力音声に対応する言語に応じた文の変更方法に関する情報である文変更情報を含んでも良い。かかる文変更情報は、出力文変更情報と同じ言語条件と変更内容を含む。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。
なお、本実施の形態における音声対話装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、コンピュータを、2以上の異なる言語により発声された入力音声に対し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、前記入力音声の言語を識別する言語識別子を取得する言語識別子取得部と、前記入力音声および前記言語識別子に応じて音声認識結果のテキストを生成する音声認識部と、音声認識結果のテキストと言語識別子とを入力し、前回とは言語識別子が変わっても対話の履歴は維持する一方で言語識別子に応じて異なる内容の出力文を生成する対話制御部と、前記出力文および前記言語識別子に応じて音声波形を生成する音声合成部と、前記音声合成部が生成した音声波形に応じた音声を出力する音声出力部として機能させるプログラム、である。
また、コンピュータがアクセス可能な記録媒体は、対話の繋がりを示す情報であり、第一話者の入力音声を抽象する第一対話行為タグ、および第二話者の出力音声を抽象する第二対話行為タグとを有する対話連結情報を1以上有する対話構造情報を格納し得る対話構造情報格納部と、第二対話行為タグと1以上の文とを有する出力音声情報を格納し得る出力文情報格納部とを具備し、上記プログラムにおいて、前記対話制御部は、前記対話構造情報格納部から、前記音声認識手段が取得した文字列を用いて、当該文字列に対応する第一対話行為タグを取得する第一対話行為タグ取得手段と、前記第一対話行為タグ取得手段が取得した第一対話行為タグに対応する1以上の第二前記第一対話行為タグ取得手段が取得した第一対話行為タグに対応する1以上の第二対話行為タグのうちの、1の第二対話行為タグを取得する第二対話行為タグ取得手段と、前記第二対話行為タグ取得手段が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する文取得手段と、前記文取得手段が取得した文を、前記言語識別子取得部が取得した言語識別子に応じて変更し、変更した文を取得する文変更手段とを具備するものとして、コンピュータを機能させるプログラム、であることは好適である。
(実施の形態2)
本実施の形態において、実施の形態1と同様に、複数言語による音声が混在する場合おいて、異なる言語による対話の履歴を引き継いで、音声の対話文を生成し、出力する音声対話装置について説明する。
なお、本実施の形態において、実施の形態1とは、対話構造情報の構造が異なる。本実施の形態において、実施の形態1とは異なる構造を有する対話構造情報を用いて、言語によって、生成する対話文を異なる対話文とすることができる音声対話装置について説明する。
実施の形態1においては、ユーザがどの言語で発話しても、同一内容であれば音声認識結果は同一の第一対話行為タグに変換され、さらに同一の第二対話行為タグが生成されていた。そして、第二対話行為タグの実行時に全言語分の出力文が生成された後、言語識別子に対応した出力文が選択され、さらに言語識別子に依存した文変換処理が行なわれていた。それに対し、実施の形態2においては、同一の第一対話行為タグに変換されるところまでは同じであるが、その後、言語識別子に応じて異なる第二対話行為タグが生成される。そして第二対話行為タグの実行時に単一言語の出力文が生成される。ただし、特定の状況や特定の内容の発話に対して全言語分の出力文を生成させたい場合は、言語識別子に依らずに同一の第二対話行為タグを生成する。特定の状況とは、例えば、装置の起動時にその装置の紹介や使用上の注意などを各国語で音声合成させたい場合などである。
図14は、本実施の形態における音声対話装置2のブロック図である。音声対話装置2は、格納部21、受付部12、言語識別子取得部13、対話統括制御部24、および音声出力部15を備える。格納部21は、対話構造情報格納部211、出力文情報格納部112、カレントノード識別子格納部115、動作手段格納部116、履歴情報格納部117、文対話行為情報格納部113を備える。対話統括制御部24は、音声認識部1401、対話制御部241、音声合成部1406を備える。対話制御部241は、第一対話行為タグ取得手段1402、第二対話行為タグ取得手段2403、文取得手段1404、カレントノード識別子更新手段1407、実行手段1408、履歴情報取得手段1409、および履歴情報蓄積手段1410を備える。文取得手段1404は、用語取得手段14041、および出力文取得手段14042を備える。
上記のとおり、音声対話装置2は、音声対話装置1と一部が異なる。具体的には、音声対話装置1の対話構造情報格納部111を対話構造情報格納部211に、第二対話行為タグ取得手段1403を第二対話行為タグ取得手段2403に変更し、さらに、文変更手段1405を除いたものが音声対話装置2となる。
以下、音声対話装置1とは異なる部分についてのみ解説する。音声対話装置2の各部で、音声対話装置1と同じ記号が付されている要素については、音声対話装置1と同じ情報を格納又は処理する。
対話構造情報格納部211は、対話構造情報格納部111と同様に、対話の繋がりを示す情報である対話構造情報を格納し得る。対話構造情報は、1以上の対話連結情報を有する。対話構造情報格納部211の対話連結情報は、第一話者(通常、ユーザ)の入力音声を抽象する第一対話行為タグと、第一話者の入力音声に対応する言語識別子と、第二話者(通常、音声対話装置2)の出力音声を抽象する第二対話行為タグを有する。ここで、第一話者の入力音声に対応する言語識別子とは、通常、言語識別子取得部13が取得する、第一話者の入力音声の言語を表す識別子である。また、第一対話行為タグと第二対話行為タグのどちらかは空「eps」でも良い。また、入力音声又は出力音声の抽象とは、入力音声又は出力音声を構成する文の意義、意味などから、入力音声又は出力音声を種類に分類することをいう。そして、入力音声又は出力音声を抽象した対話行為タグは、対話行為の種類を示す情報である。対話行為タグの詳細については、既に述べたとおりである。第二話者の出力音声は、通常、第一話者の入力音声に対応する応答の音声などである。また、対話連結情報は、始端ノード識別子と終端ノード識別子と第一対話行為タグと第二対話行為タグと言語識別子を有しても良い。また、対話連結情報は、始端ノード識別子で識別されるノードから終端ノード識別子で識別されるノードへの遷移の確率を示す情報である重み情報をも有することは好適である。対話連結情報は、動作を示す情報である動作識別子をもさらに有することは好適である。また、対話連結情報は、始端ノード識別子と終端ノード識別子を有し、第一対話行為タグ、第二対話行為タグ、言語識別子、動作識別子のうちの1以上の情報とを有しても良い。動作識別子とは、例えば、関数名、メソッド名、実行モジュール名などである。ここで、ノードは、概念的な対話の状態を示すものである。なお、始端ノード識別子とは、対話の始端を示すノードを識別する情報である。また、終端ノード識別子とは、対話の終端を示すノードを識別する情報である。なお、対話の繋がりを示す情報とは、対話連結情報に含まれる始端ノード識別子と、対話連結情報に含まれる終端ノード識別子とにより繋がりが示されている情報でも良いし、対話連結情報間を有向リンクにより繋げることにより、繋がりが示されている情報でも良い。また、動作識別子は、第一話者の入力音声に対する処理を行う前処理の動作識別子、第二話者の出力文に対する処理を行う後処理の動作識別子、その他の一般的な処理を行う動作識別子など、いくつかの種類があり、適用される文や情報が異なっても良い。
第二対話行為タグ取得手段2403は、第一対話行為タグ取得手段1402が取得した第一対話行為タグに対応する1以上の第二対話行為タグのうちの、言語識別子取得部13が取得した言語識別子に対応する1の第二対話行為タグを取得する。また、第二対話行為タグ取得手段2403は、カレントノード識別子格納部115に格納されているカレントノード識別子と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグに対応し、かつ、言語識別子取得部13が取得した言語識別子に対応する1の第二対話行為タグを取得することは好適である。第二対話行為タグ取得手段2403は、取得の候補となる第二対話行為タグが2以上、存在する場合、重み情報を用いて、より高い遷移確率を示す重み情報と対になる第二対話行為タグを選択することは好適である。第二対話行為タグ取得手段2403は、取得の候補となる第二対話行為タグが2以上、存在する場合、例えば、カレントノード識別子で識別されるノードより2以上先の始端ノード識別子に対応する重み情報を用いて、DP(動的計画法)アルゴリズムを適用し、ルート内で累積された重み情報の合計である累積重み情報を用いて、最も高い遷移確率を示す累積重み情報に対応するルートに含まれる第二対話行為タグを取得しても良い。さらに、第二対話行為タグ取得手段1403は、対話の初めに、初期ノード(例えば、後述する始端ノード識別子「0」に対応するノード)に対応する第二対話行為タグを取得しても良い。
また、音声対話装置1と同様に、格納部21は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能であり、対話統括制御部24は、通常、MPUやメモリ等から実現され得る。さらに、対話統括制御部24の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。ただし、ハードウェア(専用回路)で実現しても良い。
次に、音声対話装置2の動作について図15のフローチャートを用いて説明する。
(ステップS1501)受付部12は、マイク等で入力された音データの中から、第一話者であるユーザが音声対話システムに対して発話したと推測される区間(発話区間)を検出し、その発話区間の始端から終端までの音データを音声認識部1401に送信する。発話区間が検出されればステップS1502に行き、発話区間が検出されなければステップS1501に戻る。
(ステップS1502)言語識別子取得部13は、ステップS1501で受け付けた第一話者の入力音声の言語を識別し、言語識別子を取得する。
(ステップS1503)実行手段1408は、前処理を行う。前処理とは、ステップS1501で受け付けられた入力音声に対して、予め決められた動作識別子に対応する動作手段を実行することである。なお、例えば、実行手段1408は、ノイズ除去を実行し、入力音声に含まれるノイズを除去する。
(ステップS1504)音声認識部1401は、入力音声に対して音声認識を実行し、入力音声に対応するテキストを取得する。
(ステップS1505)第一対話行為タグ取得手段1402は、ステップS1504で取得したテキストに対して自然言語処理を行ない、第一対話行為タグを取得する。かかる処理を第一対話行為タグ取得処理という。第一対話行為タグ取得処理の詳細については、既に図3のフローチャートを用いて説明した。
(ステップS1506)第二対話行為タグ取得手段2403は、ステップS1505で取得された第一対話行為タグと、ステップS1502で取得された言語識別子に対応する1の第二対話行為タグを取得する。かかる処理を第二対話行為タグ取得処理という。第二対話行為タグ取得処理の詳細について、図16のフローチャートを用いて説明する。なお、本ステップで、第二対話行為タグが取得できない場合もあり得る。
(ステップS1507)対話統括制御部24は、ステップS1506において、第二対話行為タグが取得できた場合はステップS1508へ行き、取得できなかった場合はステップS1512へ行く。なお、第二対話行為タグが取得できなかった場合にS1512に直接ジャンプすることは、出力文および音声を何も出力しないことを意味する。その代わりに、出力が「空」であることを表わす特殊なシンボルを出力し、その後にステップS1512にジャンプしてもよい。
(ステップS1508)文取得手段1404は、ステップS1506で取得された第二対話行為タグに対応する出力文を、出力文情報格納部112から取得する。かかる処理を文取得処理という。文取得処理の詳細については、既に図5のフローチャートを用いて説明した。
(ステップS1510)音声合成部1406は、ステップS1508で取得した出力文に対応する音声波形を生成する。
(ステップS1511)音声出力部15は、ステップS1510で取得された音声波形に応じた音声を出力する。ここでの出力は、音声対話装置2のスピーカー等への音声出力でも良いし、図示しない音声出力装置への送信でも良いし、他のプログラム等へ音声を渡す処理などでも良い。
(ステップS1512)実行手段1408は、いわゆる後処理を行う。後処理の詳細については、図7のフローチャートを用いて説明した。その後、ステップS1501に戻る。なお、ステップS1501に戻ることにより、ユーザと音声対話装置2との対話が次々と進んでいく。
なお、図15のフローチャートにおいて、前処理が無い場合がある。
また、図15のフローチャートにおいて、ステップS1512の後処理の後、ステップS1501に戻った。しかし、ユーザからの入力音声を受け付けるノード(状態)に行くまで(ユーザからの入力音声を受け付ける対話連結情報に進むまで)、対話構造情報格納部211の繋がっている対話連結情報を処理しても良い。かかる処理は、ステップS1502からステップS1512までの処理である。その詳細は、後述する具体例において説明する。
また、図15のフローチャートにおいて、ステップS1506から処理を開始しても良い。
さらに、図15のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS206の第二対話行為タグ取得処理の詳細について、図16のフローチャートを用いて説明する。
(ステップS1601)第二対話行為タグ取得手段2403は、カレントノード識別子格納部115に格納されているカレントノード識別子を読み出す。次に、そのカレントノード識別子と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグに対応し、かつ、言語識別子取得部13が取得した言語識別子に対応する1以上の第二対話行為タグを、対話構造情報格納部211から取得する。
(ステップS1602)第二対話行為タグ取得手段2403は、カウンタiに1を代入する。
(ステップS1603)第二対話行為タグ取得手段2403は、ステップS1601で取得された1以上の第二対話行為タグの中に、i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグが存在するか否かを判断する。かかる第二対話行為タグが存在すればステップS1604に行き、存在しなければステップS1607に行く。なお、かかる判断は、対話構造情報格納部211の対話構造情報を参照することにより行われる。
(ステップS1604)第二対話行為タグ取得手段2403は、ステップS1601で取得された1以上の第二対話行為タグの中から、i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグを取得し、メモリ上に配置する。
(ステップS1605)第二対話行為タグ取得手段2403は、i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグに対応する文を出力したか否か(i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグを処理済みか否か)を判断する。処理済みであればステップS1606に行き、処理済みでなければステップS1608に行く。
(ステップS1606)第二対話行為タグ取得手段2403は、カウンタiを1だけ増加させ、ステップS1603に戻る。
(ステップS1607)第二対話行為タグ取得手段2403は、デフォルトの第二対話行為タグを、最終的な第二対話行為タグに決定し、上位処理にリターンする。デフォルトの第二対話行為タグとは、例えば、音声対話装置2からユーザへの確認を表す「Confirm」等である。なお、ステップS1607を経由することが無い場合には、デフォルトの第二対話行為タグを予め格納する必要は無い。
(ステップS1608)第二対話行為タグ取得手段2403は、i番目の高い遷移確率を示す重み情報と対になる第二対話行為タグを、最終的な第二対話行為タグに決定し、上位処理にリターンする。
なお、図16のフローチャートにおいて、例えば、既に処理された第二対話行為タグには、フラグが付されている、とする。
以下、本実施の形態における音声対話装置2の具体的な動作について説明する。
今、対話構造情報格納部211は、図17に示す対話構造情報管理表を格納している。対話構造情報管理表は、1以上の対話連結情報のレコードを保持している。対話連結情報は、「ID」「始端ノード識別子」「終端ノード識別子」「第一対話行為タグ」「言語識別子」「第二対話行為タグ」の属性を有する。なお、対話連結情報は、「始端ノード識別子」「終端ノード識別子」の属性値を有し、かつ、「第一対話行為タグ」「言語識別子」「第二対話行為タグ」のうちの1以上の属性値を有する。また、図17において、「第一対話行為タグ」「第二対話行為タグ」の「−」はNULLである。また、「言語識別子」の「−」は、すべての言語識別子を表す。さらに、対話連結情報のレコードは、図示していないが、ユーザからの文の入力を待つためのノードであることを示す入力待ちフラグを有しても良い。入力待ちフラグは、図17において、「ID=1,2,3,4,6,7,8」のレコードに付与されている。
さらに、図17に示す対話構造情報管理表は、図18に示す対話状態遷移図で示される。図17に示す対話状態遷移図は、いわゆるFSTである。図18に示す対話状態遷移図において、網掛けノード(状態)は、ユーザからの文を待っているノードである。また、二重丸の(0)は初期ノードであり、対話の始まりを示すノードである。さらに、二重丸の(8)は終了ノードであり、対話の終了を示すノードである。
また、出力文情報格納部112は、図19に示す出力文情報管理表を格納している。出力文情報管理表は、「ID」「出力文情報」を有する。「出力文情報」は、「対話行為タグ」と日本語、英語、中国語の「出力文」を有する。「出力文」の「−」は、出力文が無いことを表す。
また、文対話行為情報格納部113は、図10に示す文対話行為情報管理表を格納している。
かかる状況において、「日本語」、「英語」、「中国語」の各言語を話す3名のユーザ(3名の第一話者)が音声対話装置2を用いる場合を例にあげて説明する。
ユーザは、音声対話装置2の電源を入れた、とする。すると、音声対話装置2の第二対話行為タグ取得手段2403は、初期ノード(例えば、始端ノード識別子「0」に対応するノード)に対応する第二対話行為タグ「intro」を、図17の対話構造情報管理表から取得する。
次に、文取得手段1404は、取得された第二対話行為タグ「intro」に対応する出力文「こんにちは。」、「Hello.」、
Figure 2018017936
を、図19の出力文情報管理表から取得する。
次に、音声合成部1406は、出力文を音声に変換し、音声出力部15へ渡す。そして、音声出力部15は、言語識別子取得部13は言語識別子を取得していないため、すべての言語の文の音声を出力する。
次に、カレントノード識別子更新手段1407は、音声出力部15が出力した文に対応する第二対話行為タグ「intro」と対になる終端ノード識別子「1」を、対話構造情報格納部211から取得し、メモリ上に配置する。さらに、カレントノード識別子更新手段1407は、取得された終端ノード識別子「1」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
次に、日本語を話すユーザが「今日の天気は?」という音声を音声対話装置2へ入力したとする。
この音声発話に対し、受付部は、発話区間を検出し、その区間に対応した音声データを得る。そして、言語識別子取得部13は、第一話者の入力音声に対応する言語識別子として「日本語」を取得する。さらに、音声認識部1401は、音声認識処理を行い、入力音声テキスト「今日の天気は」を得る。
次に、第一対話行為タグ取得手段1402は、「今日の天気は」の「天気」が図10の文対話行為情報管理表の「ID=8」に対応するため、第一対話行為タグ「q.weather」を取得する。
次に、第二対話行為タグ取得手段2403は、取得された第一対話行為タグ「q.weather」と、言語識別子「日本語」に対応する1の第二対話行為タグを取得する。具体的には、第二対話行為タグ取得手段2403は、カレントノード識別子格納部115に格納されているカレントノード識別子「1」を読み出し、メモリ上に配置する。
次に、第二対話行為タグ取得手段2403は、取得されたカレントノード識別子「1」と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグ「q.weather」に対応し、かつ、言語識別子取得部13が取得した言語識別子「日本語」に対応する遷移先として、図17の対話構造情報管理表の「ID=2」のレコードにアクセスされ、第二対話行為タグ取得手段2403は、第二対話行為タグ「a.weather.ja」を取得する。
次に、文取得手段1404は、取得された第二対話行為タグ「a.weather.ja」に対応する文「今日は、黄砂に注意して下さい。」を、図19の出力文情報管理表から取得する。
次に、音声合成部1406は、文取得手段1404が取得した文「今日は、黄砂に注意して下さい。」を変換した音声波形を取得する。そして、音声出力部15は、当該音声波形を出力する。
次に、カレントノード識別子更新手段1407は、音声出力部15が出力した文に対応する第二対話行為タグ「a.weather.ja」と対になる終端ノード識別子「7J」を、対話構造情報格納部211から取得し、メモリ上に配置する。さらに、カレントノード識別子更新手段1407は、取得された終端ノード識別子「7J」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
次に、直前の音声入力を行った日本語を話すユーザが「了解」という音声を音声対話装置2へ入力したとする。
この音声発話に対し、受付部は発話区間を検出し、その区間に対応した音声データを得る。そして、言語識別子取得部13は、第一話者の入力音声に対応する言語識別子として「日本語」を取得する。さらに、音声認識部1401は、音声認識処理を行い、入力音声テキスト「了解」を得る。
次に、第一対話行為タグ取得手段1402は、「了解」に対応する第一対話行為タグを取得しようとする。形態素「了解」は、図10のいずれのレコードにも合致しないため、形態素「了解」の第一対話行為タグは「eps」となる。さらに入力音声は「了解」という1の形態素で構成されるため、第一対話行為タグ取得手段1402は、第一対話行為タグ「eps」を最終的に取得する。
次に、第二対話行為タグ取得手段2403は、取得されたカレントノード識別子「7J」と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグ「eps」に対応し、かつ、言語識別子取得部13が取得した言語識別子「日本語」に対応する遷移先として、図17の対話構造情報管理表の「ID=6」のレコードにアクセスする。図17の対話構造情報管理表の「ID=6」には第二対話行為タグは存在しないため、第二対話行為タグ取得手段2403は、第二対話行為タグを取得しない。したがって、出力文の取得、出力は行われない。
次に、カレントノード識別子更新手段1407は、取得された終端ノード識別子「1」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
次に、英語を話すユーザが「How's today's weather?」という音声を音声対話装置2へ入力したとする。
この音声発話に対し、受付部は発話区間を検出し、その区間に対応した音声データを得る。そして、言語識別子取得部13は、第一話者の入力音声に対応する言語識別子として「英語」を取得する。さらに、音声認識部1401は、音声認識処理を行い、入力音声テキスト「How's today's weather」を得る。
次に、第一対話行為タグ取得手段1402は、「How's today's weather」の「weather」が図10の文対話行為情報管理表の「ID=9」に対応するため、第一対話行為タグ「q.weather」を取得する。
次に、第二対話行為タグ取得手段2403は、取得された第一対話行為タグ「q.weather」と、言語識別子「英語」に対応する1の第二対話行為タグを取得する。具体的には、第二対話行為タグ取得手段2403は、カレントノード識別子格納部115に格納されているカレントノード識別子「1」を読み出し、メモリ上に配置する。
次に、第二対話行為タグ取得手段2403は、取得されたカレントノード識別子「1」と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得手段1402が取得した第一対話行為タグ「q.weather」に対応し、かつ、言語識別子取得部13が取得した言語識別子「英語」に対応する遷移先として、図17の対話構造情報管理表の「ID=3」のレコードにアクセスされ、第二対話行為タグ取得手段2403は、第二対話行為タグ「a.weather.en」を取得する。
次に、文取得手段1404は、取得された第二対話行為タグ「a.weather.en」に対応する文「Today, note the yellow sand phenomenon. The yellow sand phenomenon is dust carried on high winds from China.」を取得する。
次に、音声合成部1406は、文取得手段1404が取得した文「Today, note the yellow sand phenomenon. The yellow sand phenomenon is dust carried on high winds from China. 」を変換した音声波形を取得する。そして、音声出力部15は、当該音声波形を出力する。
次に、カレントノード識別子更新手段1407は、音声出力部15が出力した文に対応する第二対話行為タグ「a.weather.en」と対になる終端ノード識別子「7E」を、対話構造情報格納部211から取得し、メモリ上に配置する。さらに、カレントノード識別子更新手段1407は、取得された終端ノード識別子「7E」を、カレントノード識別子格納部115のカレントノード識別子に書き換える。
以後、同様に、音声対話装置2とユーザは、図17の対話構造情報管理表が示すFSTに従って、対話を進める。
以上、本実施の形態によれば、音声対話装置2は、ユーザの使用言語に合わせて適切な応答をすることができる。また、ユーザは、音声対話装置2と、より自然に、次々と対話できる。
また、本実施の形態によれば、ユーザの使用言語により異なった状態遷移が可能となるため、より細やかにユーザに適応した応答を出力できる。
また、本実施の形態によれば、例えば、対話構造情報(対話状態の構造)と対話で用いる文の集合を分離しているので、文の集合を入れ替えれば、種々の話題(タスク)に対応できる。
なお、本実施の形態において、言語識別子の例として日本語や英語をあげたが、言語また子は、英国の英語と米国の英語といった使用される国ごとに言語を分けてもよいし、標準語と大阪弁といった、より細かい地域ごとに分けてもよい。
また、本実施の形態において、音声対話装置2は、文変更情報格納部117と文変更手段1405とを有していても良い。音声対話装置2が文変更情報格納部117と文変更手段1405とを有している場合、音声対話装置2は、文取得手段1404で取得した出力文に対して、文変更情報格納部117を用いて文変更手段1405と同一の処理を行い、出力文を変更する。その後、当該変更した文を音声合成部1406とへ渡す。
なお、本実施の形態における音声対話装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、2以上の異なる言語により発声された入力音声に対し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、前記入力音声の言語を識別する言語識別子を取得する言語識別子取得部と、前記入力音声および前記言語識別子に応じて音声認識結果であるテキストを生成する音声認識部と、音声認識結果のテキストと言語識別子とを入力し、前回とは言語識別子が変わっても対話の履歴は維持する一方で言語識別子に応じて異なる内容の出力文を生成する対話制御部と、前記出力文および前記言語識別子に応じて音声波形を生成する音声合成部と、前記音声合成部が生成した音声を出力する音声出力部としてコンピュータを機能させるプログラム、である。
また、コンピュータがアクセス可能な記録媒体は、対話の繋がりを示す情報であり、第一話者の入力音声を抽象する第一対話行為タグ、および第二話者の出力音声を抽象する第二対話行為タグとを有する対話連結情報を1以上有する対話構造情報であり、第一対話行為タグに連結し、言語識別子に対応する2以上の第二対話行為タグを有する対話構造情報を格納し得る対話構造情報格納部と、第二対話行為タグと1以上の文とを有する出力音声情報を格納し得る出力文情報格納部とを具備し、上記プログラムにおいて、前記対話制御部は、前記対話構造情報格納部から、前記音声認識手段が取得した文字列を用いて、当該文字列に対応する第一対話行為タグを取得する第一対話行為タグ取得手段と、前記第一対話行為タグ取得手段が取得した第一対話行為タグに対応する1以上の第二対話行為タグのうちの、前記言語識別子取得部が取得した言語識別子に対応する1の第二対話行為タグを取得する第二対話行為タグ取得手段と、前記第二対話行為タグ取得手段が取得した第二対話行為タグに対応する文を前記出力文情報格納部から取得する文取得手段とを具備するものとして、コンピュータを機能させるプログラム、であることは好適である。
(実施の形態3)
本実施の形態において、2以上のユーザが2以上の言語を話し、かつユーザが2以上の離れた場所にいる環境において、音声対話装置を交えた通話を実現する音声システムについて説明する。
図20は、本実施の形態における音声システムのブロック図である。音声システムは、サーバ装置3、1または2以上の第一端末4、1または2以上の第二端末5、および音声対話装置6を有する。
サーバ装置3は、1又は2以上の第一端末4、1又は2以上の第二端末5及び音声対話装置6と、直接もしくはネットワークを介して接続されている。当該ネットワークは、有線、または無線の通信回線であり、例えば、インターネットやイントラネット、LAN(Local Area Network)、公衆電話回線等である。また、第一端末4、第二端末5及び音声対話装置6は、サーバ装置3と接続可能であれば何でも良い。第一端末4、第二端末5及び音声対話装置6は、例えば、デスクトップパソコン、ノートパソコン、スマートフォン、タブレット、またはPDA等であっても良い。なお、サーバ装置3と1の第一端末4とが1つの装置で実現されていても良い。また、サーバ装置3と音声対話装置6と1の第一端末4とが1つの装置で実現されていても良い。
音声対話装置6は、入力音声に基づく情報を受け付け、応答を出力する装置である。入力音声に基づく情報とは、例えば、入力音声そのものか、入力音声の音声認識結果である文字列の一方または両方である。それらに、入力音声の言語を識別する言語識別子を追加してもよい。さらに、音声対話装置6において行なわれる処理の一部をサーバ装置3で行ない、その結果を追加してもよい。例えば、入力音声を抽象する第一対話行為タグの取得処理をサーバ装置3で行ない、得られた第一対話行為タグを前述の入力音声に基づく情報に追加してもよい。また、音声対話装置6が出力する応答は、通常、音声とテキストであるが、どちらか一方でも良い。音声対話装置6は、例えば、実施の形態1で述べた音声対話装置1または実施の形態2で述べた音声対話装置2であるが、他の公知のクロスリンガル音声対話装置等でも良いことは言うまでもない。なお、音声対話装置6は複数のサーバ装置3と直接もしくはネットワークを介して接続されていても良い。
図20のサーバ装置3は、受付部31、音声認識部32、出力先決定部33、送信部34、応答受付部35、応答送信部36、および機械翻訳部37を備える。
受付部31は、第一話者の入力音声を第一端末4から受け付ける。ここで、第一端末4とは、第一端末4のうち、音声の入力を行った端末である。また、受け付けとは、通常、有線もしくは無線の通信回線を介して送信された情報の受信であるが、サーバ装置3と第一端末4が1つの装置で実現されている場合等では、当該装置が有するマイクから音声を直接受け付けても良く、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報を受け付けても良い。
音声認識部32は、受付部31が受け付けた入力音声に対して音声認識し、文字列を取得する。文字列は、音声認識の結果である。ここでの文字列は、通常、入力音声の各文を構成する語が認識された文字列である。また、音声認識部32は、複数の言語に対応した音声認識技術を用いて、認識した音声の言語を識別する言語識別子と文字列とを取得しても良い。音声認識技術および言語識別技術は公知技術であるため説明を省略する。
また、音声認識部32は、第一対話行為タグ取得手段1402を備えても良い。この場合、音声対話装置6は、例えば、実施の形態1および実施の形態2で述べた、第一話者の入力音声を抽象した第一対話行為タグを受け付け、第一対話行為タグに対応する第二対話行為タグが表す文を出力する。音声認識部32が、第一対話行為タグ取得手段1402を備える場合、音声認識部32は、入力音声を音声認識した文字列を第一対話行為タグ取得手段1402へ渡し、第一対話行為タグを取得する。また、音声認識部32が第一対話行為タグ取得手段1402を備える場合、音声認識部32は、通常、文対話行為情報格納部113も備える。
出力先決定部33は、入力音声に基づく情報を用いて、入力音声に基づく情報の出力する先を決定する。出力先決定部33は、音声認識部32が取得した文字列の情報を基に、入力音声に基づく情報の出力先を第二端末5または音声対話装置6のいずれかに決定する。出力先決定部33は、音声認識部32が取得した文字列に含まれる1以上の用語に応じて、入力音声に基づく情報を出力する先を決定することは好適である。なお、入力音声に基づく情報とは、例えば、入力音声の音声認識結果である文字列、入力音声の音声認識結果である文字列から取得され得る情報である。文字列から取得され得る情報とは、例えば、上述した第一対話行為タグ、上述した第一対話行為タグと言語識別子等である。
出力先決定部33は、例えば、予め格納されている予約情報が、音声認識部32が取得した文字列に含まれる場合、出力先を音声対話装置6と決定する。予約情報は、例えば、音声対話装置6の名前を示す文字列、ニックネームを示す文字列、「おい」等の呼びかけを表す文字列等である。出力先決定部33は、例えば、予め格納されている予約情報が、音声認識部32が取得した文字列に含まれない場合、出力先を第二端末5と決定する。なお、1以上の予約情報は、図示しない格納部に格納されている。
また、出力先決定部33は、第一端末4から送信されたユーザの指示に応じて、入力音声に基づく情報を出力する先を決定しても良い。例えば、第一端末4の画面上に「音声対話装置へ質問する」というボタンを表示し、当該ボタンが選択(クリックやタップ等)されている間に入力された音声について、出力先決定部33は、出力先を音声対話装置6と決定し、それ以外の場合は、出力先を第二端末5と決定する。かかる場合、受付部31は、第一端末4から出力先を識別する出力先識別フラグを受け付ける。出力先識別フラグは、第二端末5を示す情報、または音声対話装置6を示す情報である。あるいは、出力先を決定するための別の手段として、端末に備えられたカメラからユーザの顔画像を取得し、その画像からユーザの顔の方向や視線の方向などを検出した上で、それらが所定の方向であるときのみ入力音声を音声対話装置6に送信するようにしてもよい。例えば、端末に備えられたディスプレイ装置の所定の場所(例えば右下)に音声対話システムのエージェントが表示されており、ユーザがその方向を向きながら発話した場合には入力音声を音声対話装置6に送信するようにする。
送信部34は、出力先決定部33が決定した出力先が第二端末5である場合は、入力音声に基づく情報を第二端末5に送信する。ここで、入力音声に基づく情報は、例えば、入力音声である。ただし、ここでの入力音声に基づく情報は、例えば、音声認識部32が取得した文字列であっても良く、入力音声を後述する機械翻訳部37が機械翻訳した文字列であっても良く、さらにその文字列を図示しない音声合成手段によって変換した結果である音声波形でもよい。また、ここでの入力音声に基づく情報は、例えば、入力音声、音声認識部32が取得した文字列、機械翻訳部37が機械翻訳した文字列、図示しない音声合成手段が生成した音声波形のうちの2以上の情報でも良い。
また、送信部34は、出力先決定部33が決定した出力先が音声対話装置6である場合は、入力音声に基づく情報を音声対話装置6へ送信する。ここで、入力音声に基づく情報は、例えば、音声認識部32が取得した文字列である。また、入力音声に基づく情報は、例えば、第一対話行為タグ取得手段1402が取得した第一対話行為タグでも良い。また、ここでの入力音声に基づく情報は、受付部31が受け付けた入力音声の言語を表す言語識別子を有しても良い。
応答受付部35は、送信部34が音声対話装置6へ送信した入力音声に基づく情報(通常、文字列)に対する応答を受け付ける。ここで、受け付けとは、通常、有線もしくは無線の通信回線を介して送信された情報の受信であるが、サーバ装置3と音声対話装置6が1つの装置で実現されている場合、同一コンピュータ上の別のプログラムまたはモジュール、関数等を通じて情報を受信しても良い。
応答送信部36は、応答受付部35が受け付けた応答を第一端末4および第二端末5に送信する。ここで、第二端末5へ送信する応答は、音声対話装置6の応答そのものであっても良く、音声対話装置6の応答を後述する機械翻訳部37が機械翻訳した文字列であっても良く、当該文字列を図示しない音声合成手段によって変換した音声波形であっても良く、又はこれらの組み合わせであっても良い。また、第二端末5へ送信する応答は、音声対話装置6の応答に関する情報以外に、受付部31が受け付けた入力音声を含んでも良く、音声認識部32が取得した文字列を含んでも良く、入力音声を後述する機械翻訳部37が機械翻訳した文字列を含んでも良く、該文字列を図示しない音声合成手段によって変換した音声波形であっても良い。また、音声対話装置6の応答が複数の言語の文を含んでいる場合、すべての言語の文を各端末へ送信しても良く、各端末のユーザが使用している言語に対応する文のみを各端末へ送信しても良い。
機械翻訳部37は、音声認識部32が取得した文字列を機械翻訳する。また、機械翻訳部37は、応答受付部35が受け付けた応答を機械翻訳しても良い。つまり、機械翻訳部37は、送信部34又は応答送信部36が第二端末5へ送信する文字列を機械翻訳処理により取得する。ここで、機械翻訳部37は、第二端末5ごとに異なる言語へ翻訳し、当該言語は第二端末5を利用しているユーザが用いる言語であることが好適である。また、機械翻訳処理は、直接もしくはネットワークを介した別のコンピュータで実行しても良い。この場合、機械翻訳部37は当該機械翻訳処理を実行するコンピュータとサーバ装置3を繋ぐインターフェースである。機械翻訳については公知技術であるため説明を省略する。
音声認識部32、および出力先決定部33は、通常、MPUやメモリ等から実現され得る。また、さらに、音声認識部32、および出力先決定部33の各処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。ただし、ハードウェア(専用回路)で実現しても良い。また、文対話行為情報格納部113は、音声対話装置1と同様に、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
また、受付部31、送信部34、応答受付部35、および応答送信部36は、通常、無線または有線の通信手段で実現されるが、放送受信手段で実現されても良い。
次に、サーバ装置3の動作について図21のフローチャートを用いて説明する。
(ステップS2101)受付部31は、第一端末4から、入力音声を受け付けたか否かを判断する。入力音声を受け付ければ、ステップS2102に行き、入力音声を受け付けなければステップS2101に戻る。
(ステップS2102)音声認識部32は、第一端末4の入力音声に対して音声認識を実行し、テキストを取得する。
(ステップS2104)出力先決定部33は、出力先を第二端末5か音声対話装置6のいずれかに決定する。かかる処理を出力先決定処理という。出力先決定処理の詳細は、図22のフローチャートを用いて説明する。
(ステップS2105)送信部34は、ステップS2104で決定した出力先が第二端末5か否かを判断する。出力先が第二端末5ならば、ステップS2106へ行き、出力先が音声対話装置6ならば、ステップS2108へ行く。
(ステップS2106)機械翻訳部37は、ステップS2102で取得したテキストを機械翻訳する。
(ステップS2107)送信部34は、ステップS2101で受け付けられた入力音声を第二端末5へ送信し、ステップS2101へ戻る。
(ステップS2108)送信部34は、ステップS2102で取得した入力音声を音声認識したテキストを音声対話装置6へ送信する。
(ステップS2109)応答受付部35は、音声対話装置6から、ステップS2108で送信した情報に対する応答がないか判断する。応答があった場合はステップS2110へ行き、応答がない場合はステップS2109へ戻る。
(ステップS2110)応答送信部36は、ステップS2109で受信した音声対話装置6の応答を第一端末4へ送信する。
(ステップS2111)機械翻訳部37は、ステップS2109で受信した音声対話装置6の応答を機械翻訳する。なお、機械翻訳において翻訳先となる言語は、送信先の第二端末5に対応する言語である。また、送信先の1以上の各第二端末5に対応付けて、言語を識別する言語識別子が図示しない格納部に格納されている、とする。なお前述の通り、翻訳する代わりに音声対話装置が複数言語分の応答を生成してもよく、その場合はS2111をスキップする。
(ステップS2112)応答送信部36は、ステップS2111で取得した機械翻訳された結果であるテキストを第二端末5へ送信する。
なお、図21のフローチャートにおいて、音声対話装置6が第一対話行為タグを受け付ける場合、ステップS2018の送信処理が行われる前に、ステップS2102で取得した入力音声を音声認識したテキストに対して、図3のフローチャートで示した第一対話行為タグ取得処理を行い、第一対話行為タグを取得し、取得した第一対話行為タグを音声対話装置6へ送信する。
また、図21のフローチャートにおいて、ステップS2109は、音声対話装置6からの応答が一定時間無かった場合にステップS2101へ戻るよう処理しても良い。同様に、「応答なし」を表わす特殊なシンボルを音声対話装置6から受け取った場合も、ステップS2101へ戻るよう処理しても良い。
さらに、図21のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS2104の出力先決定処理の詳細について、図22のフローチャートを用いて説明する。
(ステップS2201)出力先決定部33は、ステップS2102で取得したテキストに対して形態素解析を行い、テキストの形態素列を取得する。
(ステップS2202)出力先決定部33は、ステップS2201で取得した形態素列の部分形態素列の中に予め定めた特定の予約情報と一致するものがあるかを判断する。ここで、特定の予約情報は、例えば、音声対話装置6に付けられた名前やニックネーム等である。
(ステップS2203)出力先決定部33は、出力先を音声対話装置6と決定する。その後、上位処理へリターンする。
(ステップS2204)出力先決定部33は、出力先を第二端末5と決定する。その後、上位処理へリターンする。
以下、本実施の形態におけるサーバ装置3の具体的な動作について説明する。
今、出力先決定部33は、第一端末4の入力音声に特定の予約情報がある場合に、当該入力音声の出力先を音声対話装置6と判断するとし、特定の予約情報は、「はんな(Hanna)」とする。なお、特定の予約情報「はんな(Hanna)」は、サーバ装置3の図示しない格納部に格納されている、とする。
また、音声対話装置6は、実施の形態1の具体例の音声対話装置1と同じデータを用いた音声対話装置であるとする。すなわち、音声対話装置6は、図8の対話構造情報に基づき対話を進め、図11の出力文情報の文を出力する。なお、実施の形態1の具体例の音声対話装置1では、入出力として、音声を用いていたが、本具体例の音声対話装置6は、入力音声のテキストと言語識別子を入力として、出力文のテキストを出力するものとする。
また、文対話行為情報格納部113は、図10の文対話行為情報管理表を格納している、とする。
かかる状況において、2名のユーザがそれぞれ日本語と英語を話し、日本語を話すユーザをjと、英語を話すユーザをeとし、ユーザjは端末Jから、ユーザeは端末Eから、音声対話装置6を交えて対話を行う実施例について、以下説明する。
はじめに、ユーザjが音声「こんにちは」を端末Jから入力したとする。ここで、端末Jは第一端末4となる。
すると、サーバ装置3の受付部31は、受信した音データの中から音声発話「こんにちは」に相当する発話区間を検出する。次に、音声認識部32は、当該発話区間を音声認識し、テキスト「こんにちは」と言語識別子「日本語」を取得する。
次に、出力先決定部33は、テキスト「こんにちは」を解析して、以下のように出力先を決定する。出力先決定部33は、当該テキストを形態素解析し、形態素解析列「こんにちは」を得る。なお、ここでの形態素解析列は1つの形態素で構成される。そして、当該形態素解析列には「はんな」が含まれないため、出力先決定部33は、出力先を第二端末5となる端末Eに決定する。
次に、機械翻訳部37は、テキスト「こんにちは」を機械翻訳し、テキスト「Hello」を取得する。そして、送信部34は、テキスト「Hello」を端末Eへ送信する。
次に、ユーザeが音声「Good evening」を端末Eから入力したとする。ここで、端末Eは第一端末4となる。
すると、サーバ装置3の受付部31は、音声「Good evening」を受け付ける。次に、音声認識部32は、当該音声を音声認識し、テキスト「Good evening」と言語識別子「英語」を取得する。
次に、出力先決定部33は、テキスト「Good evening」を解析して、出力先を決定する。「Good evening」には「Hanna」は含まれないため、出力先決定部33は、出力先を第二端末5となる端末Jに決定する。
次に、機械翻訳部37は、テキスト「Good evening」を機械翻訳し、テキスト「こんばんは」を取得する。そして、送信部34は、テキスト「こんばんは」を端末Eへ送信する。
次に、ユーザjが音声「はんな、おすすめの観光スポットは?」を端末Jから音声により入力したとする。ここで、端末Jは第一端末4となる。
すると、サーバ装置3の受付部31は、受信した音データの中から音声発話「はんな、おすすめの観光スポットは?」に対応した発話区間を検出する。次に、音声認識部32は、当該発話区間を音声認識し、テキスト「はんな、おすすめの観光スポットは」と言語識別子「日本語」を取得する。
次に、出力先決定部33は、テキスト「はんな、おすすめの観光スポットは」を解析して、以下のように出力先を決定する。出力先決定部33は、当該テキストを形態素解析し、形態素解析列「はんな|、|おすすめ|の|観光|スポット|は」を得る。ここで、「|」は形態素境界を表す。当該形態素列には「なんな」が含まれるため、出力先決定部33は、出力先を音声対話装置6に決定する。
次に、送信部34は、テキスト「はんな、おすすめの観光スポットは」と言語識別子「日本語」とを音声対話装置6へ送信する。
次に、音声対話装置6は、テキスト「はんな、おすすめの観光スポットは」と言語識別子「日本語」とを受信する。
そして、音声対話装置6は、テキスト「はんな、おすすめの観光スポットは」と言語識別子「日本語」とを用いて、第一対話行為タグ「q.spot」を取得し、最終的に、応答「京都がおすすめです」を取得する。具体的には、音声対話装置6は、図8の対話構造情報管理表を参照し、「ID=3」のレコードを取得し、当該レコードの動作識別子に対応する動作であるスポット検索を行う。次に、音声対話装置6は、当該対話構造情報管理表の「ID=7」のレコードを取得し、第二対話行為タグ「a.spot」を取得する。次に、音声対話装置6は、図11の出力文情報管理表を参照し、第二対話行為タグ「a.spot」と言語識別子「日本語」を用いて、出力文「京都がおすすめです。」を取得する。
次に、音声対話装置6は、応答「京都がおすすめです。」をサーバ装置3に送信する。
次に、サーバ装置3の応答受付部35は、音声対話装置6からの応答「京都がおすすめです」を取得する。
次に、応答送信部36は、当該応答「京都がおすすめです。」を端末Jへ送信する。そして、機械翻訳部37は、当該応答を機械翻訳し「I recommend Kyoto.」を取得する。さらに、応答送信部36は、当該機械翻訳した結果「I recommend Kyoto.」を端末Eへ送信する。なお、前述の通り、音声対話装置が日本語の応答の他に英語の応答「I recommend Kyoto.」を生成し、それを端末Eへ送信してもよく、その場合は機械翻訳処理をスキップする。
次に、ユーザeが音声「Hanna, how long does it take? 」を端末Eから入力したとする。ここで、端末Eは第一端末4となる。
すると、サーバ装置3の受付部31は、音声「Hanne, how long does it take?」を受け付ける。次に、音声認識部32は、当該音声を音声認識し、テキスト「Hanna, how long does it take?」と言語識別子「英語」を取得する。
次に、出力先決定部33は、テキスト「Hanne, how long does it take?」を解析して、出力先を決定する。出力先決定部33は、当該テキストに「Hanna」が含まれるため、出力先を音声対話装置6に決定する。
次に、送信部34は、テキスト「Hanne, how long does it take?」と言語識別子「英語」とを音声対話装置6へ送信する。
次に、音声対話装置6は、テキスト「Hanne, how long does it take?」と言語識別子「英語」とを受信する。
そして、音声対話装置6は、テキスト「Hanne, how long does it take?」と言語識別子「英語」とを用いて、第一対話行為タグ「q.how−to−take」を取得し、最終的に、応答「It take 2.5 hours by Shinkansen from Tokyo.」を取得する。具体的には、音声対話装置6は、図8の対話構造情報管理表を参照し、「ID=9」のレコードを取得し、第二対話行為タグ「a.how−to−take」を取得する。次に、音声対話装置6は、図11の出力文情報管理表と図13のキーワード管理表を参照し、第二対話行為タグ「a.how−to−take」と言語識別子「英語」を用いて、出力文「It take 2.5 hours by Shinkansen from Tokyo.」を取得する。
次に、音声対話装置6は、応答「It take 2.5 hours by Shinkansen from Tokyo.」をサーバ装置3に送信する。
次に、サーバ装置3の応答受付部35は、音声対話装置6からの応答「It take 2.5 hours by Shinkansen from Tokyo.」を取得する。
次に、応答送信部36は、当該応答「It take 2.5 hours by Shinkansen from Tokyo.」を端末Eへ送信する。そして、機械翻訳部37は、当該応答を機械翻訳し「東京から新幹線で2.5時間かかります。」を取得する。さらに、応答送信部36は、当該機械翻訳した応答を端末Jへ送信する。
以後、上記と同様に、ユーザjとユーザeは、音声対話装置6を交えて対話を進める。
以上、本実施の形態によれば、異なる言語を話す2以上のユーザが離れた場所に存在する場合であっても、テレビ電話やテレビ会議システム等に音声対話装置を適切に利用した対話ができる。
また、本実施の形態によれば、異なる言語を話す2以上のユーザが離れた場所に存在する場合であっても、テレビ電話やテレビ会議システム等に、クロスリンガルの音声対話装置を適切に利用した対話ができる。
また、本実施の形態によれば、音声認識処理を分離できるため、負荷を分散したクロスリンガル音声対話システムを実現できる。
なお、本実施の形態によれば、第一端末4と第二端末5へテキストを送信したが、送信部34と応答送信部36が音声合成部1406を備えることで、第一端末4と第二端末5へ音声を送信しても良い。
また、本実施の形態によれば、クロスリンガル音声対話装置を交えた通話を単一のサーバ装置3によって実現したが、代わりに複数のサーバ装置3を用いても良い。この場合、図20において、第二端末5の各端末は、図示しない別のサーバ装置3と、直接もしくはネットワークを介して第一端末として接続する。すなわち、第一端末4と第二端末5の各端末は、それぞれ1つのサーバ装置3に対して第一端末として接続されており、当該サーバ装置3以外のサーバ装置3と第二端末として接続されている、ことになる。
なお、本実施の形態におけるサーバ装置を実現するソフトウェアは、以下のようなプログラムである。つまり、コンピュータを、第一話者の入力音声を第一端末から受信し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、前記入力音声を音声認識し、文字列を取得する音声認識部と、前記入力音声に基づく情報を出力する先を決定する出力先決定部と、前記出力先決定部が決定した出力先が第二端末である場合は、前記入力音声に基づく情報を前記第二端末に送信し、前記出力先決定部が決定した出力先が音声対話装置である場合は、前記音声認識部が取得した文字列を前記音声対話装置に渡す送信部と、前記音声対話装置から前記文字列に対応する応答を受け付ける応答受付部と、前記応答受付部が受け付けた応答を前記第一端末および前記第二端末に送信する応答送信部として機能させるプログラム、である。
また、上記プログラムにおいて、前記出力先決定部は、前記音声認識部が取得した文字列に含まれる1以上の用語に応じて、前記入力音声に基づく情報を出力する先を決定するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記出力先決定部は、前記第一端末から送信されたユーザの指示に応じて、前記入力音声に基づく情報を出力する先を決定するものとして、コンピュータを機能させるプログラムであることは好適である。
以上、すべての実施の形態において、各プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を受け付ける受付部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には少なくとも含まれない。
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
図23は、上記プログラムを実行して、上記実施の形態による音声対話装置1等を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図23において、コンピュータシステム3000は、CD−ROMドライブ3005を含むコンピュータ3001と、キーボード3002と、マウス3003と、モニタ3004とを備える。
図24は、コンピュータシステム3000の内部構成を示す図である。図24において、コンピュータ3001は、CD−ROMドライブ3005に加えて、MPU(Micro Processing Unit)3011と、ブートアッププログラム等のプログラムを記憶するためのROM3012と、MPU3011に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM3013と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク3014と、MPU3011、ROM3012等を相互に接続するバス3015とを備える。なお、コンピュータ3001は、LANやWAN等への接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム3000に、上記実施の形態による音声対話装置1等の機能を実行させるプログラムは、CD−ROM3021に記憶されて、CD−ROMドライブ3005に挿入され、ハードディスク3014に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ3001に送信され、ハードディスク3014に記憶されてもよい。プログラムは実行の際にRAM3013にロードされる。なお、プログラムは、CD−ROM3021、またはネットワークから直接、ロードされてもよい。また、CD−ROM3021に代えて他の記録媒体(例えば、USBメモリ等)を介して、プログラムがコンピュータシステム3000に読み込まれてもよい。
プログラムは、コンピュータ3001に、上記実施の形態による音声対話装置1等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム3000がどのように動作するのかについては周知であり、詳細な説明は省略する。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
以上のように、本発明にかかる音声対話装置は、複数の言語による音声対話を適切に支援することができるという効果を有し、音声対話装置等として有用である。
1、2、6 音声対話装置
3 サーバ装置
4 第一端末
5 第二端末
11、21 格納部
12、31 受付部
13 言語識別子取得部
14、24 対話統括制御部
15 音声出力部
111、211 対話構造情報格納部
112 出力文情報格納部
113 文対話行為情報格納部
114 出力文変更情報格納部
115 カレントノード識別子格納部
116 動作手段格納部
117 履歴情報格納部
141、241 対話制御部
32 音声認識部
33 出力先決定部
34 送信部
35 応答受付部
36 応答送信部
37 機械翻訳部
1401 音声認識部
1402 第一対話行為タグ取得手段
1403、2403 第二対話行為タグ取得手段
1404 文取得手段
1405 文変更手段
1406 音声合成部
1407 カレントノード識別子更新手段
1408 実行手段
1409 履歴情報取得手段
1410 履歴情報蓄積手段
14041 用語取得手段
14042 出力文取得手段

Claims (10)

  1. 2以上の異なる言語により発声された入力音声に対し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、
    前記入力音声の言語を識別する言語識別子を取得する言語識別子取得部と、
    前記入力音声および前記言語識別子に応じて音声認識結果であるテキストを生成する音声認識部と、
    音声認識結果のテキストと言語識別子とを入力し、前回とは言語識別子が変わっても対話の履歴は維持する一方で言語識別子に応じて異なる内容の出力文を生成する対話制御部と、
    出力文と言語識別子に応じて音声波形を生成する音声合成部と、
    前記音声合成部が取得した音声波形に応じた音声を出力する音声出力部とを具備する音声対話装置。
  2. 対話の繋がりを示す情報であり、第一話者の入力音声を抽象する第一対話行為タグ、および第二話者の出力音声を抽象する第二対話行為タグとを有する対話連結情報を1以上有する対話構造情報を格納し得る対話構造情報格納部と、
    第二対話行為タグと1以上の文とを有する出力音声情報を格納し得る出力文情報格納部とをさらに具備し、
    前記対話制御部は、
    前記対話構造情報格納部から、前記音声認識手段が取得した文字列を用いて、当該文字列に対応する第一対話行為タグを取得する第一対話行為タグ取得手段と、
    前記第一対話行為タグ取得手段が取得した第一対話行為タグに対応する1以上の第二前記第一対話行為タグ取得手段が取得した第一対話行為タグに対応する1以上の第二対話行為タグのうちの、1の第二対話行為タグを取得する第二対話行為タグ取得手段と、
    前記第二対話行為タグ取得手段が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する文取得手段と、
    前記文取得手段が取得した文を、前記言語識別子取得部が取得した言語識別子に応じて変更し、変更した文を取得する文変更手段とを具備する請求項1記載の音声対話装置。
  3. 対話の繋がりを示す情報であり、第一話者の入力音声を抽象する第一対話行為タグ、および第二話者の出力音声を抽象する第二対話行為タグとを有する対話連結情報を1以上有する対話構造情報であり、第一対話行為タグに連結し、言語識別子に対応する2以上の第二対話行為タグを有する対話構造情報を格納し得る対話構造情報格納部と、
    第二対話行為タグと1以上の文とを有する出力音声情報を格納し得る出力文情報格納部とをさらに具備し、
    前記対話制御部は、
    前記対話構造情報格納部から、前記音声認識手段が取得した文字列を用いて、当該文字列に対応する第一対話行為タグを取得する第一対話行為タグ取得手段と、
    前記第一対話行為タグ取得手段が取得した第一対話行為タグに対応する1以上の第二対話行為タグのうちの、前記言語識別子取得部が取得した言語識別子に対応する1の第二対話行為タグを取得する第二対話行為タグ取得手段と、
    前記第二対話行為タグ取得手段が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する文取得手段とを具備する請求項1記載の音声対話装置。
  4. 第一話者の入力音声を第一端末から受信し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、
    前記入力音声を音声認識し、文字列を取得する音声認識部と、
    前記入力音声に基づく情報を出力する先を決定する出力先決定部と、
    前記出力先決定部が決定した出力先が第二端末である場合は、前記入力音声に基づく情報を前記第二端末に送信し、前記出力先決定部が決定した出力先が音声対話装置である場合は、前記音声認識部が取得した文字列を前記音声対話装置に渡す送信部と、
    前記音声対話装置から前記文字列に対応する応答を受け付ける応答受付部と、
    前記応答受付部が受け付けた応答を前記第一端末および前記第二端末に送信する応答送信部とを具備するサーバ装置。
  5. 前記出力先決定部は、
    前記音声認識部が取得した文字列に含まれる1以上の用語に応じて、前記入力音声に基づく情報を出力する先を決定する請求項4記載のサーバ装置。
  6. 前記出力先決定部は、
    前記第一端末から送信されたユーザの指示に応じて、前記入力音声に基づく情報を出力する先を決定する請求項4記載のサーバ装置。
  7. 受付部、言語識別子取得部、音声認識部、対話制御部、音声合成部、および音声出力部により実現される音声対話方法であって、
    前記受付部が、2以上の異なる言語により発声された入力音声を受け付ける受付ステップと、
    前記言語識別子取得部が、前記入力音声の言語を識別する言語識別子を取得する言語識別子取得ステップと、
    前記音声認識部が、前記入力音声および前記言語識別子に応じて音声認識結果であるテキストを生成する音声認識ステップと、
    前記対話制御部が、前記音声認識結果および前記言語識別子に応じて出力文を生成する対話制御ステップと、
    前記出力文と前記言語識別子に応じて音声波形を生成する音声合成ステップと、
    前記音声出力部が、前記合成取得ステップで取得された音声波形に応じた音声を出力する音声出力ステップとを具備する音声対話方法。
  8. 受付部、音声認識部、出力先決定部、送信部、応答受付部、および応答送信部により実現される方法であって、
    前記受付部が、第一話者の入力音声を第一端末から受信し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付ステップと、
    前記音声認識部が、前記入力音声を音声認識し、文字列を取得する音声認識ステップと、
    前記出力先決定部が、前記入力音声に基づく情報を出力する先を決定する出力先決定ステップと、
    前記送信部が、前記出力先決定ステップで決定された出力先が第二端末である場合は、前記入力音声に基づく情報を前記第二端末に送信し、前記出力先決定ステップで決定された出力先が音声対話装置である場合は、前記音声認識ステップで取得された文字列を前記音声対話装置に渡す送信ステップと、
    前記応答受付部が、前記音声対話装置から前記文字列に対応する応答を受け付ける応答受付ステップと、
    前記応答送信部が、前記応答受付ステップで受け付けられた応答を前記第一端末および前記第二端末に送信する応答送信ステップとを具備する音声処理方法。
  9. コンピュータを、
    2以上の異なる言語により発声された入力音声に対し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、
    前記入力音声の言語を識別する言語識別子を取得する言語識別子取得部と、
    前記入力音声および前記言語識別子に応じて音声認識結果であるテキストを生成する音声認識部と、
    音声認識結果のテキストと言語識別子とを入力し、前回とは言語識別子が変わっても対話の履歴は維持する一方で言語識別子に応じて異なる内容の出力文を生成する対話制御部と、
    前記出力文と前記言語識別子に応じて音声波形を生成する音声合成部と、
    前記音声合成部が取得した音声波形に応じた音声を出力する音声出力部として機能させるためのプログラム。
  10. コンピュータを、
    第一話者の入力音声を第一端末から受信し、その発話の始端から終端までを検出して該当区間の音声データを取得する受付部と、
    前記入力音声を音声認識し、文字列を取得する音声認識部と、
    前記入力音声に基づく情報を出力する先を決定する出力先決定部と、
    前記出力先決定部が決定した出力先が第二端末である場合は、前記入力音声に基づく情報を前記第二端末に送信し、前記出力先決定部が決定した出力先が音声対話装置である場合は、前記音声認識部が取得した文字列を前記音声対話装置に渡す送信部と、
    前記音声対話装置から前記文字列に対応する応答を受け付ける応答受付部と、
    前記応答受付部が受け付けた応答を前記第一端末および前記第二端末に送信する応答送信部として機能させるためのプログラム。
JP2016148984A 2016-07-28 2016-07-28 音声対話装置、サーバ装置、音声対話方法、音声処理方法およびプログラム Active JP6819988B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016148984A JP6819988B2 (ja) 2016-07-28 2016-07-28 音声対話装置、サーバ装置、音声対話方法、音声処理方法およびプログラム
US16/320,810 US11049493B2 (en) 2016-07-28 2017-07-24 Spoken dialog device, spoken dialog method, and recording medium
PCT/JP2017/026681 WO2018021237A1 (ja) 2016-07-28 2017-07-24 音声対話装置、音声対話方法、および記録媒体
CN201780046486.4A CN109496332A (zh) 2016-07-28 2017-07-24 语音对话装置、语音对话方法以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016148984A JP6819988B2 (ja) 2016-07-28 2016-07-28 音声対話装置、サーバ装置、音声対話方法、音声処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2018017936A true JP2018017936A (ja) 2018-02-01
JP6819988B2 JP6819988B2 (ja) 2021-01-27

Family

ID=61017447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016148984A Active JP6819988B2 (ja) 2016-07-28 2016-07-28 音声対話装置、サーバ装置、音声対話方法、音声処理方法およびプログラム

Country Status (4)

Country Link
US (1) US11049493B2 (ja)
JP (1) JP6819988B2 (ja)
CN (1) CN109496332A (ja)
WO (1) WO2018021237A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019150583A1 (ja) * 2018-02-05 2019-08-08 日本電気株式会社 質問群抽出方法、質問群抽出装置および記録媒体
JP2021022928A (ja) * 2019-07-24 2021-02-18 ネイバー コーポレーションNAVER Corporation 人工知能基盤の自動応答方法およびシステム
JP2021131826A (ja) * 2020-02-21 2021-09-09 株式会社Pid 情報検索システム、情報検索プログラム、及び情報検索方法
US11205415B2 (en) 2018-11-15 2021-12-21 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
JP2022516491A (ja) * 2018-12-29 2022-02-28 華為技術有限公司 音声対話の方法、装置、及びシステム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10565981B2 (en) * 2017-09-26 2020-02-18 Microsoft Technology Licensing, Llc Computer-assisted conversation using addressible conversation segments
CN107919130B (zh) * 2017-11-06 2021-12-17 百度在线网络技术(北京)有限公司 基于云端的语音处理方法和装置
US11663420B2 (en) * 2018-04-17 2023-05-30 Ntt Docomo, Inc. Dialogue system
WO2019207912A1 (ja) * 2018-04-23 2019-10-31 ソニー株式会社 情報処理装置及び情報処理方法
EP3576084B1 (de) * 2018-05-29 2020-09-30 Christoph Neumann Effiziente dialoggestaltung
WO2020105317A1 (ja) * 2018-11-22 2020-05-28 株式会社Nttドコモ 対話装置及び対話プログラム
CN111798832A (zh) * 2019-04-03 2020-10-20 北京京东尚科信息技术有限公司 语音合成方法、装置和计算机可读存储介质
US20220229996A1 (en) * 2019-05-20 2022-07-21 Ntt Docomo, Inc. Interactive system
JP6841535B1 (ja) * 2020-01-29 2021-03-10 株式会社インタラクティブソリューションズ 会話解析システム
US11663422B2 (en) * 2020-06-10 2023-05-30 Paypal, Inc. Systems and methods for providing multilingual support in an automated online chat system
US12020710B2 (en) * 2021-03-05 2024-06-25 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
US20230298566A1 (en) * 2022-03-15 2023-09-21 Microsoft Technology Licensing, Llc End-to-end streaming speech translation with neural transducer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211629A (ja) * 2008-03-06 2009-09-17 National Institute Of Information & Communication Technology 対話装置、重み情報学習装置、対話方法、重み情報学習方法、およびプログラム
JP2015118710A (ja) * 2015-01-09 2015-06-25 株式会社東芝 対話装置、方法及びプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6922670B2 (en) * 2000-10-24 2005-07-26 Sanyo Electric Co., Ltd. User support apparatus and system using agents
JP2004355226A (ja) * 2003-05-28 2004-12-16 Nippon Telegr & Teleph Corp <Ntt> 異言語間対話装置および異言語間対話方法
JP2005342862A (ja) * 2004-06-04 2005-12-15 Nec Corp ロボット
WO2006040971A1 (ja) * 2004-10-08 2006-04-20 Matsushita Electric Industrial Co., Ltd. 対話支援装置
US7930182B2 (en) * 2005-03-15 2011-04-19 Nuance Communications, Inc. Computer-implemented tool for creation of speech application code and associated functional specification
US20060253272A1 (en) * 2005-05-06 2006-11-09 International Business Machines Corporation Voice prompts for use in speech-to-speech translation system
KR20100037119A (ko) * 2007-06-27 2010-04-08 카렌 날리스 엔터프라이지즈 피티와이 엘티디 통신 방법, 시스템, 및 제품
US8166081B2 (en) * 2008-02-05 2012-04-24 Stratosaudio, Inc. System and method for advertisement transmission and display
US9721563B2 (en) * 2012-06-08 2017-08-01 Apple Inc. Name recognition system
KR102014665B1 (ko) * 2013-03-15 2019-08-26 애플 인크. 지능형 디지털 어시스턴트에 의한 사용자 트레이닝
EP3399521B1 (en) * 2013-05-31 2020-04-15 Yamaha Corporation Technology for responding to remarks using speech synthesis
US9936916B2 (en) * 2013-10-09 2018-04-10 Nedim T. SAHIN Systems, environment and methods for identification and analysis of recurring transitory physiological states and events using a portable data collection device
US10162813B2 (en) * 2013-11-21 2018-12-25 Microsoft Technology Licensing, Llc Dialogue evaluation via multiple hypothesis ranking
JP2016057986A (ja) * 2014-09-11 2016-04-21 株式会社東芝 音声翻訳装置、方法およびプログラム
CN104505091B (zh) * 2014-12-26 2018-08-21 湖南华凯文化创意股份有限公司 人机语音交互方法及系统
CN105223851A (zh) * 2015-10-09 2016-01-06 韩山师范学院 基于方言识别的智能插座系统及控制方法
US10579733B2 (en) * 2018-05-10 2020-03-03 Google Llc Identifying codemixed text

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211629A (ja) * 2008-03-06 2009-09-17 National Institute Of Information & Communication Technology 対話装置、重み情報学習装置、対話方法、重み情報学習方法、およびプログラム
JP2015118710A (ja) * 2015-01-09 2015-06-25 株式会社東芝 対話装置、方法及びプログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019150583A1 (ja) * 2018-02-05 2019-08-08 日本電気株式会社 質問群抽出方法、質問群抽出装置および記録媒体
JPWO2019150583A1 (ja) * 2018-02-05 2021-01-14 日本電気株式会社 質問群抽出方法、質問群抽出装置および質問群抽出プログラム
US11416678B2 (en) 2018-02-05 2022-08-16 Nec Corporation Question group extraction method, question group extraction device, and recording medium
US11205415B2 (en) 2018-11-15 2021-12-21 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
US11615780B2 (en) 2018-11-15 2023-03-28 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
JP2022516491A (ja) * 2018-12-29 2022-02-28 華為技術有限公司 音声対話の方法、装置、及びシステム
JP7348288B2 (ja) 2018-12-29 2023-09-20 華為技術有限公司 音声対話の方法、装置、及びシステム
JP2021022928A (ja) * 2019-07-24 2021-02-18 ネイバー コーポレーションNAVER Corporation 人工知能基盤の自動応答方法およびシステム
JP7113047B2 (ja) 2019-07-24 2022-08-04 ネイバー コーポレーション 人工知能基盤の自動応答方法およびシステム
JP2021131826A (ja) * 2020-02-21 2021-09-09 株式会社Pid 情報検索システム、情報検索プログラム、及び情報検索方法

Also Published As

Publication number Publication date
US20190172444A1 (en) 2019-06-06
CN109496332A (zh) 2019-03-19
US11049493B2 (en) 2021-06-29
JP6819988B2 (ja) 2021-01-27
WO2018021237A1 (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
WO2018021237A1 (ja) 音声対話装置、音声対話方法、および記録媒体
US11997344B2 (en) Translating a media asset with vocal characteristics of a speaker
KR101683943B1 (ko) 음성번역 시스템, 제1 단말장치, 음성인식 서버장치, 번역 서버장치, 및 음성합성 서버장치
JP4398966B2 (ja) 機械翻訳を行う装置、システム、方法およびプログラム
CN100424632C (zh) 用于高级交互接口的语义对象同步理解
WO2018040501A1 (zh) 基于人工智能的人机交互方法和装置
Liu et al. Hkust/mts: A very large scale mandarin telephone speech corpus
JP2017107078A (ja) 音声対話方法、音声対話装置及び音声対話プログラム
JP2008225068A (ja) 議事録作成方法、その装置及びそのプログラム
KR20120107933A (ko) 음성번역 시스템, 제어장치, 및 제어방법
JP2008083459A (ja) 音声翻訳装置、音声翻訳方法及び音声翻訳プログラム
JP2000137596A (ja) 対話型音声応答システム
JP2014071769A (ja) 表現変換装置、方法およびプログラム
US8688447B1 (en) Method and system for domain-specific noisy channel natural language processing (NLP)
JP2011504624A (ja) 自動同時通訳システム
JP5327737B2 (ja) 対話装置、重み情報学習装置、対話方法、重み情報学習方法、およびプログラム
US20240055003A1 (en) Automated assistant interaction prediction using fusion of visual and audio input
JP5713782B2 (ja) 情報処理装置、情報処理方法及びプログラム
WO2018135302A1 (ja) 情報処理装置および情報処理方法、並びにプログラム
WO2021161856A1 (ja) 情報処理装置及び情報処理方法
JP6383748B2 (ja) 音声翻訳装置、音声翻訳方法、及び音声翻訳プログラム
KR20210029383A (ko) 음성인식에 기반한 부가 서비스 제공 시스템 및 그 방법
JP7352491B2 (ja) ユーザ周辺データに応じて雑談のような対話を進行させる対話装置、プログラム及び方法
US20170185587A1 (en) Machine translation method and machine translation system
WO2020240905A1 (ja) 音声処理装置、音声の対のコーパスの生産方法、およびプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200824

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201222

R150 Certificate of patent or registration of utility model

Ref document number: 6819988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250