図1に示すように、本発明の実施形態の音声認識装置は音声対話ユニット1から成り、車両10に搭載されている。この音声対話ユニット1には、車両10の運転者から発話が入力されるマイク2が接続されると共に、車両10の状態を検出する車両状態検出部3が接続されている。また、音声対話ユニット1には、運転者への応答を出力するスピーカ4と、運転者への表示を行うディスプレイ5とが接続されている。さらに、音声対話ユニット1には、運転者が音声等で操作可能な複数の機器6a〜6cが接続されている。
マイク2は、車両10の運転者の音声が入力されるものであり、車内の所定位置に設置されている。マイク2は、例えば、トークスイッチにより音声の入力開始が指令されると、入力される音声を運転者の発話として取得する。トークスイッチは、車両10の運転者により操作されるON・OFFスイッチであり、押下してON操作されることによって音声の入力開始が指令される。
車両状態検出部3は、車両10の状態を検出するセンサ等である。車両10の状態とは、例えば、車両10の速度や加減速等の走行状態、車両10の位置や走行道路等の走行環境情報、車両10に装備された機器(ワイパー、ウィンカー、ナビゲーションシステム、オーディオ等)の動作状態、或いは車両10の車内温度等の車内の状態をいう。具体的には、例えば、車両10の走行状態を検出するセンサとして、車両10の走行速度(車速)を検出する車速センサ、車両10のヨーレートを検出するヨーレートセンサ、車両10のブレーキ操作(ブレーキペダルが操作されているか否か)を検出するブレーキセンサ等が挙げられる。さらに、車両10の状態として、車両10の運転者の状態(運転者の手掌部の発汗、運転負荷等)を検出してもよい。
スピーカ4は、車両10の運転者への応答(音声ガイド)を出力するものである。なお、このスピーカ4としては、後述のオーディオ6aが有するスピーカを用いることができる。
ディスプレイ5は、例えば、車両10のフロントウィンドウに画像等の情報を表示するHUD(ヘッドアップディスプレイ)、車両10の車速などの走行状態を表示するメータに一体的に設けられたディスプレイ、或いは後述のナビゲーションシステム6bに備えられたディスプレイ等である。なお、ナビゲーションシステム6bのディスプレイは、タッチスイッチが組み込まれたタッチパネルとなっている。
機器6a〜6cは、具体的には、車両10に装備されたオーディオ、ナビゲーションシステム、エアコンディショナである。各機器6a〜6cには、制御可能な構成要素(デバイス,コンテンツ等)、機能、動作等が予め定められている。
例えば、オーディオ6aには、デバイスとして「CD」「MP3」「ラジオ」「スピーカ」等がある。また、オーディオ6aの機能として「音量」等がある。また、オーディオ6aの動作として「変更」「オン」「オフ」等がある。さらに、「CD」「MP3」の動作として、「再生」「停止」等がある。また、「ラジオ」の機能として「選局」等がある。また、「音量」の動作として「上げる」「下げる」等がある。
また、ナビゲーションシステム6bには、コンテンツとして「画面表示」「経路誘導」「POI検索」等がある。さらに、「画面表示」の動作として「変更」「拡大」「縮小」等がある。なお、「経路誘導」は音声ガイド等により目的地へ誘導する機能であり、「POI検索」は、例えばレストラン、ホテル等の目的地を検索する機能である。
また、エアコンディショナ6cには、その機能として「風量」「設定温度」等がある。また、エアコンディショナ6cの動作として「オン」「オフ」等がある。さらに、「風量」「設定温度」の動作として「変更」「上げる」「下げる」等がある。
これらの機器6a〜6cは、対象を制御するための情報(機器や機能の種別、動作の内容等)を指定することにより制御される。制御対象となる各機器6a〜6cのデバイス、コンテンツ、機能は複数のドメインに分類されている。「ドメイン」とは認識対象のカテゴリに応じた分類を意味し、具体的には、制御対象である機器やその機能を表す。ドメインは、例えば「オーディオ」のドメインが、その下位で「CD」「ラジオ」のドメインに分類されるといったように、階層的に指定することができる。
音声対話ユニット1は、詳細の図示は省略するが、A/D変換回路、マイクロコンピュータ(CPU、RAM、ROM)等を含む電子回路により構成され、マイク2の出力(アナログ信号)がA/D変換回路を介してデジタル信号に変換されて入力される。そして、音声対話ユニット1は、入力されたデータに基づいて、運転者から入力された発話を認識する処理、この認識結果に基づいて、スピーカ4やディスプレイ5を介して運転者との対話や運転者への情報提示を行う処理、機器6a〜6cを制御する処理等を実行する。これらの処理は、音声対話ユニット1のメモリに予め実装されたプログラムを音声対話ユニット1により実行することにより実現される。このプログラムは、本発明の音声認識プログラムを含んでいる。なお、当該プログラムはCD−ROM等の記録媒体を介してメモリに格納されてもよい。或いは、当該プログラムは外部のサーバからネットワークや人工衛星を介して配信または放送され、車両10に搭載された通信機器により受信された上でメモリに格納されてもよい。
より詳しくは、音声対話ユニット1は、上記プログラムにより実現される機能として、入力された音声を音響モデル15、言語モデル16、構文モデル17、辞書20、及び固有名詞辞書21を用いて認識して発話の意味を理解する音声認識部11と、音声認識部11による認識結果に基づいてシナリオデータベース18を用いてシナリオを決定し、運転者への応答や機器の制御等を行うシナリオ制御部13と、運転者に出力する音声による応答を音素モデル21を用いて合成する音声合成部14とを備えている。
音声認識部11は、その機能として、図2に示すように、言語モデル16、構文モデル17を用いて音声を言語的な特徴に基づいて認識する処理を実行する第1の音声認識手段31と、音声を辞書20に格納された認識対象語彙と比較して認識する処理を実行する第2の音声認識手段32と、音声を固有名詞辞書21に格納された認識対象語彙と比較して認識する処理を実行する第3の音声認識手段33とを備えている。また、音声認識部11は、シナリオ制御部13の機能である状態遷移検知手段34の検知結果に基づいて第1〜第3の音声認識手段31〜33の処理結果に対する第1〜第3の重み係数α,β,γをそれぞれ決定する重み決定手段35と、第1〜第3の音声認識手段31〜33による処理結果及び第1〜第3の重み係数α,β,γを用いて、最終的な認識結果を決定する認識結果決定手段36とを備えている。
さらに、第1の音声認識手段31は、入力された音声を言語モデル16を用いて認識しテキストとして出力するテキスト変換手段37と、認識されたテキストから構文モデル17を用いて発話の意味を理解する構文解析手段38とを備えている。ここで、「テキスト」とは、単語の列で表現された、所定の意味を有する有意構文である。
なお、図1に示された状態遷移検知手段34は、シナリオ制御部13で行われる運転者への応答や機器の制御等の制御処理の状態の遷移を検知する。
また、図1において、音響モデル15、言語モデル16、構文モデル17、シナリオデータベース18、音素モデル19、辞書20、固有名詞辞書21は、それぞれ、CD−ROM、DVD、HDD等の記録媒体に格納されるデータベースである。
音声認識部11は、マイク2に入力された発話の音声を示す波形データを周波数分析して特徴ベクトルを抽出する。そして、音声認識部11は、抽出された特徴ベクトルに基づいて、入力された音声を認識して発話の意味を理解する「音声認識処理」を実行する。この音声認識処理は、次に説明するような確率統計的な手法を用いて、入力音声の音響的な特徴と言語的な特徴とを総合的に判断することにより実行される。
すなわち、音声認識部11は、まず、音響モデル15を用いて、抽出された特徴ベクトルに応じた発音データの尤度(以下、「音響スコア」という。)を評価し、当該音響スコアに基づいて発音データを決定する。
そして、音声認識部11は、「第1の音声認識処理」として、入力された音声を言語モデル16を用いて認識しテキストとして出力する「テキスト変換処理」と、認識されたテキストから構文モデル17を用いて発話の意味を理解する「構文解析処理」とを実行する。まず、音声認識部11は、テキスト変換処理で、言語モデル16を用いて、決定された発音データに応じた単語列で表現されたテキストの尤度(以下、「言語スコア」という。)を評価し、当該言語スコアに基づいてテキストを決定する。さらに、音声認識部11は、決定された全てのテキストについて、当該テキストの音響スコアと言語スコアとに基づいてテキスト変換の確信度(以下、「テキスト変換スコア」という。)を算出する。そして、音声認識部11は、このテキスト変換スコアが所定の条件を満たす単語列で表現されたテキストを、認識されたテキスト(Recognized Text)として決定する。
さらに、音声認識部11は、構文解析処理で、次に説明するように確率統計的な手法を用いて、認識されたテキストにおける単語間の関係(構文)を解析する。すなわち、音声認識部11は、構文モデル17を用いて、認識されたテキストの尤度(以下、「構文解析スコア」という。)を評価し、当該構文解析スコアに基づいて、当該認識されたテキストの意味に対応するクラスに分類されたテキストを決定する。そして、音声認識部11は、構文解析スコアが所定の条件を満たすクラス分類されたテキスト(Categorized Text)を、第1の音声候補群として、そのスコア(構文解析スコア)と共に出力する。
ここで、「音声候補」は、入力音声を認識して発話の意味を理解することにより得られる、制御対象や制御内容を指すコマンドの候補を示している。また、「クラス」は、認識対象のカテゴリに応じた分類に相当し、具体的には、上述のドメインやタスクに相当するものである。例えば、認識されたテキストが「設定変更」「設定変更する」「設定を変える」「セッティング変更」である場合には、いずれも、クラス分類されたテキストは{setup}となる。
また、音声認識部11は、「第2の音声認識処理」として、辞書20を用いて入力音声を認識して第2の音声候補群を決定する。具体的には、決定された発音データと辞書20に登録された語彙の発音データとの類似の度合に基づいて語彙を認識し、当該語彙の意味に対応するクラス分類されたテキストを決定する。さらに、音声認識部11は、認識された語彙の音響スコアと類似の度合とに基づいて、当該語彙の意味に対応するクラス分類されたテキストのスコアを算出する。そして、音声認識部11は、算出されたスコアが所定の条件を満たすクラス分類されたテキストを、第2の音声候補群としてそのスコアと共に出力する。
また、音声認識部11は、「第3の音声認識処理」として、第2の音声認識処理と同様に、固有名詞辞書21を用いて入力音声を認識してクラス分類されたテキストを決定し、第3の音声候補群としてそのスコアと共に出力する。
そして、音声認識部11は、第1〜第3の音声候補群から、各音声候補のスコアと第1〜第3の重み係数とを用いて、最終的な認識結果(クラス分類されたテキスト)としての音声候補群を決定する。
シナリオ制御部13は、音声認識部11により決定される最終的な音声候補群と、車両状態検出部3から取得される車両10の状態とに基づいて、シナリオデータベース18に記録されたデータを用いて、運転者に対する応答出力や機器制御のシナリオを決定する。シナリオデータベース18には、応答出力や機器制御のための複数のシナリオが、音声候補や車両状態の条件と共に予め記録されている。そして、シナリオ制御部13は、決定されたシナリオに従って、音声や画像表示による応答を制御する処理や、機器を制御する処理を実行する。具体的には、シナリオ制御部13は、例えば、音声による応答では、出力する応答の内容(運転者の次の発話を促すための応答文や、操作の完了等を使用者に報知するための応答文)や、応答を出力する際の速度や音量を決定する。
音声合成部14は、シナリオ制御部13で決定された応答文に応じて、音素モデル19を用いて音声を合成して、音声を示す波形データとして出力する。音声は、例えばTTS(Text to Speech)等の処理を用いて合成される。具体的には、音声合成部14は、シナリオ制御部13で決定された応答文のテキストを音声出力に適した表現に正規化し、この正規化したテキストの各単語を発音データに変換する。そして、音声合成部14は、音素モデル19を用いて発音データから特徴ベクトルを決定し、この特徴ベクトルにフィルタ処理を施して波形データに変換する。この波形データは、スピーカ4から音声として出力される。
音響モデル(Acoustic Model)15には、特徴ベクトルと発音データとの確率的な対応を示すデータが記録されている。詳細には、音響モデル15には、認識単位(音素、形態素、単語等)毎に用意された複数のHMM(Hidden Markov Model、隠れマルコフモデル)がデータとして記録されている。HMMは、音声を定常信号源(状態)の連結で表し、時系列をある状態から次の状態への遷移確率で表現する統計的信号源モデルである。HMMにより、時系列で変動する音声の音響的な特徴を簡易な確率モデルで表現することができる。HMMの遷移確率等のパラメータは、対応する学習用の音声データを与えて学習させることにより予め決定される。また、音素モデル19にも、発音データから特徴ベクトルを決定するための、音響モデル15と同様のHMMが記録されている。
言語モデル(Language Model)16には、認識対象である単語の出現確率や接続確率を示すデータが、この単語の発音データ及びテキストと共に記録されている。認識対象である単語とは、対象を制御するための発話で使用される可能性のある単語として予め定められるものである。単語の出現確率や接続確率等のデータは、大量の学習テキストコーパスを解析することにより統計的に作成される。また、単語の出現確率は、例えば、学習テキストコーパスにおけるその単語の出現頻度等に基づいて算出される。
この言語モデル16には、例えば、特定のN個の単語が連続して出現する確率により表現されるNグラム(N-gram)の言語モデルが用いられる。本実施形態では、言語モデル16には、入力された発話に含まれる単語数に応じたNグラムが用いられる。具体的には、言語モデル16では、Nの値が発音データに含まれる単語数以下のNグラムが用いられる。例えば発音データに含まれる単語数が2である場合、1単語の出現確率で表現されるユニグラム(Uni-gram,N=1)、及び2つの単語の列の生起確率(先行する1単語についての条件付き出現確率)で表現されるバイグラム(Bi-gram,N=2)が用いられる。
さらに、言語モデル16では、Nの値を所定の上限値に制限してNグラムを用いることもできる。所定の上限値としては、例えば、予め定められた所定値(例えばN=2)や、入力された発話に対する音声認識処理の処理時間が所定時間以内になるように逐次設定される値等を用いることができる。例えばN=2を上限値としてNグラムを用いる場合、発音データに含まれる単語数が2より大きいときにも、ユニグラム及びバイグラムのみが用いられる。これにより、音声認識処理の演算コストが過大になることを防止して、運転者の発話に対して適切な応答時間で応答を出力することができる。
構文モデル(Parser Model)17には、認識対象である単語の出現確率や接続確率を示すデータが、この単語のテキスト及びクラスと共に記録されている。この構文モデル17には、例えば、言語モデル16と同様にNグラムの言語モデルが用いられる。本実施形態では、具体的には、構文モデル17では、N=3を上限値として、Nの値が認識されたテキストに含まれる単語数以下のNグラムが用いられる。すなわち、構文モデル17では、ユニグラム、バイグラム、及び3つの単語の列の生起確率(先行する2単語についての条件付き出現確率)で表現されるトライグラム(Tri-gram,N=3)が用いられる。なお、上限値は3以外でもよく、任意に設定可能である。また、上限値に制限せずに、Nの値が認識されたテキストに含まれる単語数以下のNグラムを用いるものとしてもよい。
図3に示すように、言語モデル16と構文モデル17とは、それぞれ、ドメインの種類毎に分類されて作成されている。図3の例では、ドメインの種類は、{Audio,Climate,Passenger Climate,POI,Ambiguous,Navigation,Clock,Help}の8種類である。{Audio}は制御対象がオーディオ6aであること、{Climate}は制御対象がエアコンディショナ6cであること、{Passenger Climate}は制御対象が助手席のエアコンディショナ6cであること、{POI}は制御対象がナビゲーションシステム6bのPOI検索機能であること、{Navigation}は制御対象がナビゲーションシステム6bの経路誘導や地図操作等の機能であること、{Clock}は制御対象が時計機能であること、{Help}は制御対象が機器6a〜6cや音声認識装置の操作方法を知るためのヘルプ機能であること、{Ambiguous}は制御対象が不明であることを、それぞれ示している。
再び図1において、辞書20には、認識対象語彙として、一般的な名詞、動詞、形容詞等の単語と、当該単語を含む単語列の発音データ及びテキストが登録されている。また、固有名詞辞書21には、認識対象語彙として、人名、地名、店名等の特定の名称(固有名詞等)と、当該名称を含む単語列の発音データ及びテキストが登録されている。これらの辞書20及び固有名詞辞書21には、それぞれ、図4に示すように認識対象語彙が複数のカテゴリに分類されて格納されている。格納されている語彙にはタグが付されており、当該タグの内容は、辞書20、固有名詞辞書21に登録された各語彙のクラスを示す。
例えば、辞書20のうち{Set destination}に分類された部分には、<目的地>というタグが付けられた語彙として「そこにいく」が登録され、「そこにいく」という語彙に関連する語彙として「目的地」が登録されている。また、「目的地」という語彙に関連するタグとして<セット><に設定>が登録されている。また、<経由地>というタグが付けられた語彙として「そこに立ち寄る」が登録され、「そこに立ち寄る」に関連する語彙として「ちょっとよる」「途中たちよる」が登録されている。
同様に、辞書20のうち{Affirmation}に分類された部分には、<Yes>というタグが付けられた語彙として「Yes」が登録され、「Yes」に関連する語彙として「はい」「そうして」「ん」が登録されている。また、<No>というタグが付けられた語彙として「No」が登録され、「No」に関連する語彙として「ちがう」「まちがい」「いや」が登録されている。
また、例えば、固有名詞辞書21のうち{POI}に分類された部分には、<POI>というタグが付けられた語彙として「コンビニ」が登録され、「コンビニ」に関連する語彙として「スーパー」「ディスカウントショップ」「レストラン」「ラーメン」が登録されている。
同様に、固有名詞辞書21のうち{コンビニ}に分類された部分には、<コンビニ>というタグが付けられた語彙として「セブン」が登録され、「セブン」に関連する語彙として「セブンマート」「ローストップ」…「トップスパー」が登録されている。さらに、<コンビニ>というタグが付けられた語彙と他の語彙(「に行きたい」「探して」)とを連結した語彙「<コンビニ>に行きたい」「<コンビニ>探して」が登録されている。
次に、本実施形態の音声認識装置の作動(音声対話処理)について説明する。図5に示すように、まず、STEP1で、車両10の運転者から、対象を制御するための発話がマイク2に入力される。具体的には、運転者がトークスイッチをON操作して発話の入力開始を指令し、マイク2に音声を入力する。
次に、STEP2で、音声対話ユニット1は、運転者への応答や機器の制御等の制御処理の状態の遷移を検知する。次に、STEP3で、音声対話ユニット1は、STEP2の検知結果に基づいて、第1〜第3の音声認識処理に対する第1〜第3の重み係数α,β,γを決定する。このとき、音声対話ユニット1は、辞書20,固有名詞辞書21のうちのSTEP2の検知結果に関連する語彙が含まれるカテゴリの部分のデータを有効にする。
ここで、図6を用いてSTEP2〜3の処理について説明する。図6(a)〜(c)には、決定される第1〜第3の重み係数α,β,γの相対的な大きさが示されている。
図6(a)の例は、STEP2での検知結果が、運転者からの音声入力に対して待機している「待機状態」となる場合である。具体的には、運転者から対象を制御するための最初の発話が入力された状態や、運転者からの操作に応じた処理が完了して対話が終了した状態等が該当する。この場合、全ての語彙と言い回しについて入力される可能性があるので、辞書20,固有名詞辞書21に関連する特定のカテゴリの語彙はない。よって、図6(a)に示すように、第1の重み係数αは0より大きい所定値に決定され、第2,第3の重み係数β,γはβ=γ=0に決定される。これにより、後述のSTEP5〜6(第1の音声認識処理)による第1の音声候補群から、多様な語彙や言い回しに対応して発話が適切に認識される。
また、図6(b)の例は、STEP2での検知結果が、所定の制御対象の制御内容等についての確認がなされる「確認状態」となる場合である。具体的には、前回までの発話の認識結果に基づいて決定された制御対象の制御内容について、運転者の確認を促す確認応答(Yes/Noで返答可能な質問文)が出力されている状態等が該当する。この場合、入力音声は確認応答に対する返答である可能性が高い。よって、辞書20のうち制御対象の制御内容を確認する音声入力に応じた語彙({Affirmation}に分類された語彙)に関連する度合が高い。一方、固有名詞辞書21には関連する語彙がない。よって、図6(b)に示すように、第1の重み係数αは比較的低い所定値に決定され、第2の重み係数βは比較的高い所定値に決定され、第3の重み係数γは0に決定される。これにより、蓋然性の高い確認応答への返答が入力された場合には、後述のSTEP7(第2の音声認識処理)による第2の音声候補群から高い認識率で認識されると共に、蓋然性の低い他の発話が入力された場合にも、後述のSTEP5〜6(第1の音声認識処理)による第1の音声候補群から適切に認識される。
また、図6(c)の例は、STEP2での検知結果が、所定の制御対象について詳細な制御内容を問い合わせる「問い合わせ状態」となる場合である。具体的には、所定の制御対象の制御内容に関する詳細な情報の入力を促す応答や、複数の選択候補を提示して選択を促す応答が出力されている状態等が該当する。この場合、入力音声は所定の制御対象の制御内容を詳細に指示する返答であるか、或いは選択候補のうちいずれか又は当該選択候補と同じカテゴリに分類された他の候補を選択する返答である可能性が高い。よって、辞書20のうち所定の制御対象の制御内容を指示する音声入力に応じた語彙に関連する度合と、固有名詞辞書21のうち選択候補と同じカテゴリに分類された特定の名称を含む語彙に関連する度合とが高い。よって、図6(c)に示すように、第1の重み係数αは比較的低い所定値に決定され、第2,第3の重み係数β,γは関連する度合に応じた比較的高い所定値に決定される。これにより、蓋然性の高い上記出力されている応答への返答が入力された場合には、後述のSTEP7,8(第2,第3の音声認識処理)による第2,第3の音声候補群から高い認識率で認識されると共に、蓋然性の低い他の発話が入力された場合にも、後述のSTEP5〜6(第1の音声認識処理)による第1の音声候補群から適切に認識される。
次に、図5のSTEP4で、音声対話ユニット1は、後述の第1〜第3の音声認識処理(STEP5〜8)の前処理として、入力された音声から発音データを決定する。まず、音声対話ユニット1は、マイク2に入力された音声をA/D変換して音声を示す波形データを取得する。次に、音声対話ユニット1は、音声を示す波形データを周波数分析して特徴ベクトルを抽出する。これにより、音声を示す波形データは、例えば短時間スペクトル分析の手法によってフィルタ処理を施され、特徴ベクトルの時系列に変換される。この特徴ベクトルは、各時刻における音声スペクトルの特微量を抽出したもので、一般に10次元〜100次元の範囲の次数(例えば39次元)であり、線形予測分析メルケプストラム(Linear Predictive Coding Mel Cepstrum)係数等が用いられる。
次に、音声対話ユニット1は、抽出された特徴ベクトルに対し、音響モデル15に記録された複数のHMMのそれぞれについて、当該特徴ベクトルの尤度(音響スコア)を評価する。そして、音声対話ユニット1は、当該複数のHMMのうちの音響スコアの高いHMMに対応する発音データを決定する。これにより、例えば「千歳」という発話が入力された場合、その音声の波形データから、「ti-to-se」という発音データがその音響スコアと共に得られる。このとき、例えば「マークセット」という発話が入力された場合、「ma-a-ku-se-t-to」という発音データと共に、「ma-a-ku-ri-su-to」のような音響的に類似の度合が高い発音データがそれぞれ音響スコアと共に得られる。
次に、STEP5〜6で、音声対話ユニット1は、言語モデル16、構文モデル17を用いて発音データから第1の音声候補群を決定する第1の音声認識処理を実行する。
まず、STEP5で、音声対話ユニット1は、言語モデル16全体のデータを用いて、発音データからテキストを決定するテキスト変換処理を実行する。このとき、複数の発音データが決定されている場合には、各発音データについて、それぞれテキストが決定される。
具体的には、まず、音声対話ユニット1は、決定された発音データと言語モデル16に記録された発音データとを比較して、類似の度合の高い単語を抽出する。次に、音声対話ユニット1は、抽出された単語の言語スコアを、発音データに含まれる単語数に応じたNグラムを用いて算出する。そして、音声対話ユニット1は、発音データにおける各単語について、算出した言語スコアが所定の条件(例えば所定値以上)を満たすテキストを決定する。例えば、図7に示すように、入力された発話が「Set the station ninety nine point three FM.」である場合に、この発話から決定された発音データに応じたテキストとして、「set the station ninety nine point three FM」が決定される。
このとき、ユ二グラムでは、「set」「the」…「FM」のそれぞれの出現確率a1〜a8が与えられる。また、バイグラムでは、「set the」「the station」…「three FM」のそれぞれの2単語の生起確率b1〜b7が与えられる。同様に、N=3〜8について、N単語の生起確率c1〜c6,d1〜d5,e1〜e4,f1〜f3,g1〜g2,h1が与えられる。そして、例えばテキスト「ninety」の言語スコアは、発音データに含まれる単語「ninety」と当該単語に先行する単語とを合わせた単語数4に応じて、N=1〜4のNグラムから得られるa4,b3,c2,d1に基づいて算出される。
次に、音声対話ユニット1は、決定された全てのテキストについて、音響スコアと言語スコアとの重み付き和を、テキスト変換スコアとして算出する。なお、重み係数としては、例えば実験的に予め定められた値が用いられる。次に、音声対話ユニット1は、算出したテキスト変換スコアが所定の条件を満たす単語列で表現されるテキストを、認識されたテキストとして決定する。所定の条件は、例えば、テキスト変換スコアが最も高いテキスト、テキスト変換スコアが上位から所定順位までのテキスト、或いはテキスト変換スコアが所定値以上のテキスト等のように予め定められている。
次に、STEP6で、音声対話ユニット1は、認識されたテキストから発話の意味を理解する構文解析処理を実行する。まず、音声対話ユニット1は、構文モデル17を用いて、認識されたテキストからクラス分類されたテキストを決定する。
具体的には、まず、音声対話ユニット1は、構文モデル17全体のデータを用いて、認識されたテキストに含まれる単語について、それぞれ、1単語における各ドメインの尤度を算出する。次に、音声対話ユニット1は、当該尤度に基づいて1単語におけるドメインをそれぞれ決定する。次に、音声対話ユニット1は、構文モデル17のうち決定された種類のドメインに分類された部分のデータを用いて、1単語における各クラスの組(クラス分類されたテキスト)の尤度(単語スコア)を算出する。そして、音声対話ユニット1は、当該単語スコアに基づいて、1単語におけるクラス分類されたテキストを決定する。
同様に、音声対話ユニット1は、認識されたテキストに含まれる2単語列について、それぞれ、2単語における各ドメインの尤度を算出し、当該尤度に基づいて2単語におけるドメインを決定する。さらに、音声対話ユニット1は、2単語における各クラスの組の尤度(2単語スコア)を算出し、当該2単語スコアに基づいて2単語におけるクラスの組(クラス分類されたテキスト)を決定する。また、同様に、音声対話ユニット1は、認識されたテキストに含まれる3単語列について、それぞれ、3単語における各ドメインの尤度を算出し、当該尤度に基づいて3単語におけるドメインを決定する。さらに、音声対話ユニット1は、3単語における各クラスの組の尤度(3単語スコア)を算出し、当該3単語スコアに基づいて3単語におけるクラスの組(クラス分類されたテキスト)を決定する。
次に、音声対話ユニット1は、1単語、2単語、3単語で決定された各クラスの組と当該クラスの組のスコア(1単語スコア、2単語スコア、3単語スコア)とに基づいて、認識されたテキスト全体における各クラスの組の尤度(構文解析スコア)を算出する。そして、音声対話ユニット1は、当該構文解析スコアに基づいて、認識されたテキスト全体におけるクラスの組(クラス分類されたテキスト)を決定する。
次に、音声対話ユニット1は、算出された構文解析スコアが所定の条件を満たすようなクラス分類されたテキスト(Categorized Text)を、第1の音声候補群として決定する。所定の条件は、例えば、構文解析スコアが最も高いテキスト、構文解析スコアが上位から所定順位までのテキスト、或いは構文解析スコアが所定値以上のテキスト等のように予め定められている。これにより、クラス分類されたテキストが、第1の音声候補群としてスコアと共に得られる。例えば、上述のように「AC on floor to defrost」という発話が入力された場合に、第1の音声候補として{Climate_Defrost_Front}が得られる。
このように、入力された発話を、単語毎の確率統計的な言語モデルを用いてテキストとして書き起こす手法(ディクテーション)を用いることで、予め決められた言い回しの発話に限定されない、運転者の自然な発話の認識が可能となる。
ここで、図8に示す例を用いて、構文モデル17を用いてクラス分類されたテキストを決定する処理について説明する。図8の例では、認識されたテキストが「AC on floor to defrost」である。
このとき、構文モデル17全体を用いて、ユニグラムで、「AC」「on」…「defrost」について、それぞれ、1単語における各ドメインの尤度が算出される。そして、当該尤度に基づいて1単語におけるドメインが決定される。例えば、第1位の(尤度の最も高い)ドメインは、「AC」については{Climate}、「on」については{Ambiguous}、「defrost」については{Climate}と決定される。
さらに、構文モデル17のうちの決定されたドメインの種類に分類された部分のデータを用いて、ユニグラムで、「AC」「on」…「defrost」について、1単語における各クラスの組に対する尤度がそれぞれ算出される。そして、当該尤度に基づいて1単語におけるクラスの組が決定される。例えば、「AC」について、第1位の(尤度の最も高い)クラスの組は、{Climate_ACOnOff_On}と決定され、このクラスの組に対する尤度(単語スコア)i1が得られる。同様に、「on」…「defrost」について、クラスの組が決定され、このクラスの組に対する尤度(単語スコア)i2〜i5が得られる。
同様に、バイグラムで、「AC on」「on floor」…「to defrost」について、それぞれ、2単語における各ドメインの尤度が算出され、当該尤度に基づいて2単語におけるドメインが決定される。そして、2単語におけるクラスの組とその尤度(2単語スコア)j1〜j4が決定される。また、同様に、トライグラムで、「AC on floor」「on floor to」「floor to defrost」について、それぞれ、3単語における各ドメインの尤度が算出され、当該尤度に基づいて3単語におけるドメインが決定される。そして、3単語におけるクラスの組とその尤度(3単語スコア)k1〜k3が決定される。
次に、1単語、2単語、3単語で決定された各クラスの組について、例えば、各クラスの組の単語スコアi1〜i5、2単語スコアj1〜j4、3単語スコアk1〜k3の和が、テキスト全体における各クラスの組に対する尤度(構文解析スコア)として算出される。例えば、{Climate_Fan-Vent_Floor}に対する構文解析スコアは、i3+j2+j3+k1+k2となる。また、例えば、{Climate_ACOnOff_On}に対する構文解析スコアは、i1+j1となる。また、例えば、{Climate_Defrost_Front}に対する構文解析スコアは、i5+j4となる。そして、算出された構文解析スコアに基づいて、テキスト全体についてのクラスの組(クラス分類されたテキスト)が決定される。これにより、認識されたテキストから、{Climate_Defrost_Front}{Climate_Fan-Vent_Floor}{Climate_ACOnOff_On}といったクラス分類されたテキストが決定される。
次に、STEP7で、音声対話ユニット1は、辞書20のうちSTEP3で有効にされた部分のデータを用いて、発音データから第2の音声候補群を決定する第2の音声認識処理を実行する。なお、STEP3で決定された第2の重み係数βが0の場合は、このSTEP7の処理は省略される。
具体的には、まず、音声対話ユニット1は、決定された発音データと、辞書20に登録された語彙の発音データとの類似の度合を算出する。そして、登録された複数の語彙のうち、類似の度合が所定の条件を満たす語彙を、認識された語彙として決定する。所定の条件は、例えば発音データが明らかに一致すると考えられる所定値以上等のように予め定められている。
次に、音声対話ユニット1は、認識された語彙、及び当該語彙に付けられたタグの内容に基づいて、クラス分類されたテキストを決定する。このとき、音声対話ユニット1は、認識された語彙の音響スコアと類似の度合とに基づいて、決定されたクラス分類されたテキストの確信度(スコア)を算出する。
次に、音声対話ユニット1は、算出されたスコアが所定の条件を満たすようなクラス分類されたテキストを、第2の音声候補群として決定する。所定の条件は、例えば、スコアが最も高いテキスト、スコアが上位から所定順位までのテキスト、或いはスコアが所定値以上のテキスト等のように予め定められている。これにより、クラス分類されたテキストが、第2の音声候補群としてスコアと共に得られる。このように、辞書20を用いることにより、入力された発話に予め登録された一般的な単語が含まれる場合に、高い認識率で認識することができる。
次に、STEP8で、音声対話ユニット1は、固有名詞辞書21のうちSTEP3で有効にされた部分のデータを用いて、発音データから第3の音声候補群を決定する第3の音声認識処理を実行する。なお、STEP3で決定された第3の重み係数γが0の場合は、このSTEP8の処理は省略される。
具体的には、STEP7と同様に、まず、音声対話ユニット1は、決定された発音データと、固有名詞辞書21に登録された語彙の発音データとの類似の度合を算出する。そして、登録された複数の語彙のうち、類似の度合が所定の条件を満たす語彙を、認識された語彙として決定する。
次に、音声対話ユニット1は、STEP7と同様に、認識された語彙、及び当該語彙に付けられたタグの内容に基づいて、クラス分類されたテキストを決定する。このとき、音声対話ユニット1は、認識された語彙の音響スコアと類似の度合とに基づいて、決定されたクラス分類されたテキストの確信度(スコア)を算出する。
次に、音声対話ユニット1は、STEP7と同様に、算出されたスコアが所定の条件を満たすようなクラス分類されたテキストを、第3の音声候補群として決定する。これにより、クラス分類されたテキストが、第3の音声候補群としてスコアと共に得られる。このように、固有名詞辞書21を用いることにより、入力された発話に予め登録された固有名詞等の特定の名称が含まれる場合に、高い認識率で認識することができる。
次に、STEP9で、音声対話ユニット1は、STEP5〜8でそれぞれ得られた第1〜第3の音声候補群から、STEP3で決定された第1〜第3の重み係数α,β,γを用いて、最終的な認識結果としての音声候補群を決定する。具体的には、まず、音声対話ユニット1は、第1の音声候補群の各音声候補のスコアに第1の重み係数αを乗じた値と、第2の音声候補群の各音声候補のスコアに第2の重み係数βを乗じた値と、第3の音声候補群の各音声候補のスコアに第3の重み係数γを乗じた値とを、それぞれ算出する。そして、算出された値が所定の条件を満たす音声候補を決定する。所定の条件は、例えば、算出された値が最も高い音声候補、算出された値が上位から所定順位までの音声候補、或いは算出された値が所定値以上の音声候補等のように予め定められている。これにより、最終的な認識結果(クラス分類されたテキスト)としての音声候補群が得られる。
次に、STEP10で、音声対話ユニット1は、車両状態検出部3により検出される、車両10の状態(車両10の走行状態、車両10に搭載された機器の状態、車両10の運転者の状態等)の検出値を取得する。
次に、STEP11で、音声対話ユニット1は、STEP9で決定された最終的な音声候補群と、STEP10で検出された車両10の状態とに基づいて、シナリオデータベース18を用いて、運転者への応答や機器の制御を行うためのシナリオを決定する。
まず、音声対話ユニット1は、最終的な音声候補群と車両10の状態とから、対象を制御するための情報を取得する。図9に示すように、音声対話ユニット1には、対象を制御するための情報を格納する複数のフォームが備えられている。各フォームには、必要な情報のクラスに対応した所定数のスロットが設けられている。例えば、ナビゲーションシステム6bを制御するための情報を格納するフォームとして、「Plot a route」「Traffic info.」等が備えられ、エアコンディショナ6cを制御するための情報を格納するフォームとして「Climate control」等が備えられている。また、フォーム「Plot a route」には、4つのスロット「From」「To」「Request」「via」が設けられている。
音声対話ユニット1は、運転者との対話における各回の発話の認識結果から決定された音声候補と車両10の状態とに基づいて、該当するフォームのスロットに値を入力していく。これと共に、各フォームについての確信度(フォームに入力された値の信頼の度合)を算出してフォームに記録する。フォームの確信度は、例えば、各回の発話の認識結果から決定された音声候補のスコアと、各フォームのスロットの埋まり具合とに基づいて算出される。例えば、図9に示すように、「千歳空港まで最短ルートで案内して」という発話が運転者から入力された場合には、フォーム「Plot a route」の3つのスロット「From」「To」「Request」に値「ここ」「千歳空港」「最短」が入力される。また、フォーム「Plot a route」の「Score」に、算出されたフォームの確信度80が記録される。
次に、音声対話ユニット1は、フォームの確信度と、STEP10で検出された車両10の状態とに基づいて、実際の制御処理に用いるフォームを選択する。そして、選択されたフォームに基づいて、シナリオデータベース18に格納されたデータを用いて、シナリオを決定する。図10に示すように、シナリオデータベース18には、例えば運転者へ出力する応答文等が、スロットの埋まり具合やレベル毎に分類されて格納されている。なお、レベルは、例えばフォームの確信度や車両10の状態(車両10の走行状態、運転者の状態等)等に基づいて設定される値である。
例えば、選択されたフォーム内に空きスロット(値が入力されていないスロット)がある場合には、運転者へフォーム内の空きスロットの入力を促すような応答文を出力するシナリオが決定される。このとき、レベルに応じて、すなわちフォームの確信度や車両10の状態を考慮して、運転者の次回の発話を促す適切な応答文が決定される。例えば、運転者の運転負荷に応じて、運転負荷が高いと考えられる状態では、入力を促すスロットの数が少なめに設定された応答文がが決定される。そして、このように決定された応答文の出力により使用者の次の発話を促すことで、効率の良い対話が行われる。
図10に示す例では、フォーム「Plot a route」の第1〜第3のスロット「From」「To」「Request」には値が入力され、第4のスロット「via」には値が入力されていない。また、レベル=2に設定されている。このとき、シナリオデータベース18から応答文「<To>を<Request>設定します」が選択され、「千歳空港を高速優先設定します」という応答文の内容が決定される。
また、例えば、選択されたフォーム内の全てのスロットが全て埋まっている(値が入力されている)場合には、内容を確認するような応答文(例えば各スロットの入力値を運転者に報知して確認を促す応答文)を出力するシナリオが決定される。
次に、STEP12で、音声対話ユニット1は、決定したシナリオに基づいて、機器制御の内容が特定されたか否かを判断する。STEP12の判断結果がNOの場合には、STEP13に進み、音声対話ユニット1は、決定された応答文の内容や応答文を出力する際の条件に応じて音声を合成する。そして、次のSTEP14で、生成された応答文(必要な情報の入力を使用者に促すような応答文等)が、スピーカ4から出力される。
次に、STEP1に戻り、2回目の発話が運転者から入力される。以下、STEP12の判断結果がYESとなるまで、上述のSTEP1〜14と同様の処理が繰り返される。
上記STEP12の判断結果がYESの場合(機器制御の内容が特定されている場合)には、STEP15に進み、音声対話ユニット1は、決定されたシナリオに基づいて機器を制御する。このとき、例えば、特定された機器制御の内容等を使用者に報知するシナリオが決定されている場合には、音声対話ユニット1は、決定された応答文の内容や応答文を出力する際の条件に応じて音声を合成する。そして、生成された応答文(機器制御の内容等を使用者に報知する応答文等)がスピーカ4から出力される。
次に、STEP16で、音声対話ユニット1は、決定されたシナリオに基づいて、運転者との対話が終了したか否かを判断する。例えば、STEP15の機器制御の結果に関連した次の制御処理の指示や、STEP15の機器制御の結果に対する運転者からの当否確認のために、運転者の次の発話を促す必要がある場合には、対話が終了していないと判断される。STEP16の判断結果がNOの場合には、前述のSTEP13に進み、音声対話ユニット1は、決定された応答文の内容や応答文を出力する際の条件に応じて音声を合成する。そして、STEP14で、生成された応答文(機器制御の結果を提示して次の制御の指示を促す応答文等)がスピーカ4から出力される。
その後、STEP1に戻り、次の発話が運転者から入力される。以下、STEP16の判断結果がYESとなるまで、上述のSTEP1〜15と同様の処理が繰り返される。
最後に、STEP16の判断結果がYESの場合には音声対話処理を終了する。このとき、例えば、機器制御の完了等を使用者に報知するシナリオが決定されている場合には、音声対話ユニット1は、決定された応答文の内容や応答文を出力する際の条件に応じて音声を合成する。そして、生成された応答文(機器制御の完了等を使用者に報知する応答文等)がスピーカ4から出力される。
以上の処理によって、制御処理の状態の遷移に基づいて第1〜第3の音声認識処理の重みが決定されて最終的な認識結果が決定され、対話の遷移状態を適切に反映して発話が精度良く認識されるので、効率の良い対話を介して機器の制御が行われる。
[対話例]
次に、上述した音声対話処理について、図11〜図13に示す対話例を用いて具体的に説明する。図11は、対話中に運転者が「話題の変更を行わない」例であり、図12,図13は対話中に運転者が「話題の変更を行う」例である。また、図11,図13は、上述の音声対話処理による対話例を示し、図12は、参考例として、言語モデル16を用いた第1の音声認識処理を行わず、且つ、制御処理の状態遷移に基づいた重みの変更を行わない場合における対話例を示している。また、第1〜第3の重み係数α,β,γは、それぞれ、{0,「低」,「中」,「高」}の4段階の値をとる(0<「低」<「中」<「高」)。
まず、図11の対話例について説明する。まず、実行中の制御処理はなく状態1の「待機状態」にあり、図5のSTEP1で、運転者(ユーザ)から「近くのコンビニ」という最初の発話が入力される。次に、STEP2で、制御処理は「待機状態」と検知され、STEP3で、第1の重み係数αが「低」、第2,第3の重み係数β,γが0と決定される。
次に、STEP4で、入力された音声「近くのコンビニ」の特徴ベクトルから、発音データが音響スコアと共に決定される。
次に、STEP5で、言語モデル16全体のデータを用いて第1の音声認識処理におけるテキスト変換処理が実行され、発音データから認識されたテキスト「近く の コンビニ」が得られる。次に、STEP6で、テキスト「近く の コンビニ」について構文解析処理が実行され、当該テキストの意味に対応する音声候補が第1の音声候補群としてスコアと共に得られる。
次に、第2,第3の重み係数β,γは0であるから、STEP7,8の第2,第3の音声認識処理は省略され、STEP9に進む。
次に、STEP9で、第1の音声候補群から、テキスト「近く の コンビニ」の意味に対応する音声候補が、最終的な音声候補群として決定される。このように、多様な語彙と言い回しが想定される最初の発話が適切に認識される。
次に、STEP10で、車両10の状態が検出され、STEP11で、最終的な音声候補群と車両10の状態とに基づいてシナリオが決定される。これにより、実行中の制御処理が「POI検索」となる。具体的には、「ナビゲーションシステム6bのPOI検索機能で、車両10の現在位置から所定距離内のコンビニエンスストアを検索する」「POI検索の結果を運転者に提示する」等の制御処理がシナリオとして決定される。
次に、STEP12で、機器制御の内容は特定されているので判断結果はYESとなり、STEP15で、決定されたシナリオに基づいてナビゲーションシステム6bでPOI検索が実行され、検索結果としてコンビニエンスストアの候補が2つ得られる。検索結果として複数の候補が得られるので、音声対話ユニット1の制御処理は、「検索結果を運転者に提示し、絞込検索等の詳細な制御内容の指示、或いは目的地として検索結果のうち1つの選択を促す」状態(状態2の「問い合わせ状態」)に遷移する。
次に、STEP16に進み、運転者の次の発話を促す必要があるため、対話は終了していないと判断され、STEP13で、音声対話ユニット1(システム)により「ローストップとセブンマートの2つが近いです」という応答文の音声が合成され、STEP14でスピーカ4から出力される。
次に、STEP1に戻り、運転者から「mmショップに行きたい」という2回目の発話が入力される。
次に、STEP2で、制御処理は「問い合わせ状態」と検知される。このとき、実行中の制御処理は「POI検索」であり、検索結果として複数のコンビニエンスストアを提示する応答が出力されているので、入力音声は、「POI検索の詳細入力を指示する」「検索結果として提示したコンビニエンスストアの候補のうち1つを選択して目的地として設定する」等の返答である可能性が高い。よって、辞書20のうちPOI検索の目的地設定を指示する音声入力に応じた語彙{Set destination}に関連する度合と、固有名詞辞書21のうち{コンビニ}{POI}の語彙に関連する度合とが高い。したがって、STEP3で、第1の重み係数αは「低」に決定され、第2,第3の重み係数β,γは「中」に決定される。また、辞書20のうち{Set destination}のデータが有効にされ、固有名詞辞書21のうち{コンビニ}{POI}のデータが有効にされる。
次に、STEP4で、入力された音声「mmショップに行きたい」の特徴ベクトルから、発音データが音響スコアと共に決定される。
次に、STEP5で、言語モデル16全体のデータを用いて第1の音声認識処理におけるテキスト変換処理が実行され、発音データから認識されたテキスト「mmショップ に 行きたい」が得られる。次に、STEP6で、認識されたテキスト「mmショップ に 行きたい」について構文解析処理が実行され、当該テキストの意味に対応する音声候補が第1の音声候補群としてスコアと共に得られる。このとき、「mmショップ」という特定のコンビニエンスストアを表す固有名詞は、多様な言い回しがされ易い一般語に比べてテキストコーパスにおける出現頻度が比較的低いので、第1の音声認識処理では、「mmショップ」という単語は認識されにくく、テキスト「mmショップ に 行きたい」の意味に対応する音声候補のスコアは低くなる。
次に、STEP7で、辞書20のうち{Set Destination}のデータを用いて第2の音声認識処理が実行される。これにより、発音データから語彙「行きたい」の意味に対応する音声候補が第2の音声候補群としてスコアと共に得られる。このとき、辞書20には「mmショップ」という固有名詞は登録されていないので、語彙「mmショップ」の意味に対応する音声候補は得られない。
次に、STEP8で、固有名詞辞書21のうち{POI検索}{コンビニ}のデータを用いて第3の音声認識処理が実行される。このとき、固有名詞辞書21には語彙「mmショップ」「mmショップに行きたい」が登録されているので、発音データから語彙「mmショップ」「mmショップに行きたい」の意味に対応する音声候補が第3の音声候補群として高いスコアと共に得られる。
次に、STEP9で、第1〜第3の音声候補群から、スコアと第1〜第3の重み係数α,β,γとに基づいて、最終的な音声候補群が決定される。このとき、発話全体と合致する第3の音声候補群の語彙「mmショップに行きたい」の意味に対応する音声候補のスコアが高く、且つ第3の重み係数γが比較的高いので、当該音声候補が最終的な音声候補群として得られる。
次に、STEP10で、車両10の状態が検出され、STEP11で、最終的な音声候補群と車両10の状態とに基づいてシナリオが決定される。これにより、実行中の制御処理は「POI検索」が継続し、具体的には、「ナビゲーションシステム6bのPOI検索機能で、車両10の現在位置の周辺のmmショップを検索する」「POI検索の結果を運転者に提示する」等の制御処理がシナリオとして決定される。
次に、STEP12で、機器制御の内容は特定されているので判断結果はYESとなり、STEP15に進み、決定されたシナリオに基づいてナビゲーションシステム6bでPOI検索が実行され、検索結果として車両10の周辺のmmショップとその情報(車両10からの距離等)が得られる。検索結果としてmmショップの候補が得られるので、音声対話ユニット1の制御処理は、「検索結果を運転者に提示し、目的地として設定するか確認を促す」状態(状態3の「確認状態」)に遷移する。
次に、STEP16に進み、運転者の次の発話を促す必要があるため、対話は終了していないと判断され、STEP13で、「1キロ程先ですけどよろしいですか?」という応答文の音声が合成され、STEP14でスピーカ4から出力される。
次に、STEP1に戻り、運転者から「はい」という3回目の発話が入力される。次に、STEP2で、制御処理は「確認状態」と検知される。このとき、検索結果を目的地として設定するか運転者の確認を促す確認応答(Yes/Noで返答可能な質問文)が出力されているので、入力音声は、「Yes」「No」等の返答である可能性が高い。よって、辞書20のうち{Affirmation}に関連する度合が高い。一方、固有名詞辞書21には関連する語彙がない。したがって、STEP3で、第1の重み係数αは「低」に決定され、第2の重み係数βは「高」に決定され、第3の重み係数γは0に決定される。また、辞書20のうち{Affirmation}のデータが有効にされる。
次に、STEP4で、入力された音声「はい」の特徴ベクトルから、発音データが音響スコアと共に決定される。
次に、STEP5で、言語モデル16全体のデータを用いて第1の音声認識処理におけるテキスト変換処理が実行され、発音データから認識されたテキスト「はい」が得られる。次に、STEP6で、認識されたテキスト「はい」について構文解析処理が実行され、当該テキストの意味に対応する音声候補が第1の音声候補群としてスコアと共に得られる。このとき、「はい」という音声入力は、1単語なので単語列を反映した言語的な特徴が現れにくいため、第1の音声認識処理では、「はい」という発話は認識されにくく、テキスト「はい」の意味に対応する音声候補のスコアは低くなる。
次に、STEP7で、辞書20のうち{Affirmation}のデータを用いて第2の音声認識処理が実行される。このとき、辞書20には語彙「はい」が登録されているので、発音データから語彙「はい」の意味に対応する音声候補が第2の音声候補群として高いスコアと共に得られる。
次に、第3の重み係数γは0であるから、STEP8の第3の音声認識処理は省略され、STEP9に進む。
次に、STEP9で、第1,第2の音声候補群から、スコアと第1,第2の重み係数α,βとに基づいて、最終的な音声候補群が決定される。このとき、第2の音声候補群の語彙「はい」の意味に対応する音声候補のスコアが高く、且つ第2の重み係数βが比較的高いので、当該音声候補が最終的な音声候補群として得られる。
次に、STEP10で、車両10の状態が検出され、STEP11で、最終的な音声候補群と車両10の状態とに基づいてシナリオが決定される。これにより、実行中の制御処理は「目的地設定」となり、具体的には、「ナビゲーションシステム6bの目的地設置機能で、mmショップを設定する」「ナビゲーションシステム6bの経路誘導機能で、mmショップに誘導する」等の制御処理がシナリオとして決定される。
次に、STEP12で、機器制御の内容が特定されているので、判断結果はYESとなり、STEP15に進み、決定されたシナリオに基づいてナビゲーションシステム6bで目的地が設定され、経路誘導が開始される。これにより、運転者からの操作に応じた処理が完了して対話が終了するので、音声対話ユニット1の制御処理は、「目的地の設定及び経路誘導の開始を運転者に報知する」状態(状態4の「待機状態」)に遷移する。
次に、STEP16に進み、対話終了と判断され、「目的地に設定しました。あと10分です」という応答文の音声が合成され、スピーカ4から出力されて、音声対話処理が終了される。
次に、図12の対話例について説明する。図12の対話例では、運転者の最初の発話「近くのコンビニ」から、音声対話ユニット1の2回目の応答「1キロ程先ですけどよろしいですか?」までは、図11の対話例と同じである。
図12の対話例では、運転者からの1回目の発話「近くのコンビニ」は辞書20と固有名詞辞書21の全体のデータを用いて認識され、実行中の制御処理は「POI検索」となり、「ローストップとセブンマートの2つが近いです」という応答が出力される。運転者からの2回目の発話「mmショップに行きたい」は、辞書20と固有名詞辞書21の「POI検索」に関連するカテゴリ{Set destination}{POI検索}{コンビニ}のデータを用いて認識され、2回目の応答「1キロ程先ですけどよろしいですか?」が出力される。
しかし、図12の対話例では、運転者から「天気は?」という3回目の発話が入力される。この3回目の発話は、2回目までの発話の話題(実行中の制御処理)「POI検索」とは関連がないものである。このとき、図12の対話例では、3回目の発話「天気は?」は、2回目の発話と同様に、辞書20と固有名詞辞書21の「POI検索」に関連するカテゴリ{Set destination}{POI検索}{コンビニ}のデータを用いて認識される。そして、「天気は?」という入力音声に応じた語彙はこれらのデータには登録されていないので、認識結果が得られず、「認識できませんでした」という応答が出力され、音声対話処理が終了される。
次に、図13の対話例について説明する。図13の対話例では、運転者の最初の発話「近くのコンビニ」から、音声対話ユニット1の2回目の応答「1キロ先ですけどよろしいですか?」までは、図11の対話例と同様に音声対話処理が進む。そして、STEP1に戻り、図12の対話例と同様に、運転者から「天気は?」という3回目の発話が入力される。
このとき、図13の対話例では、STEP2で、図11の対話例と同様に、制御処理は「確認状態」と検知され、STEP3で、第1の重み係数αは「低」に決定され、第2の重み係数βは「高」に決定され、第3の重み係数γは0に決定される。また、辞書20のうち{Affirmation}のデータが有効にされる。
次に、STEP4で、入力された音声「天気は?」の特徴ベクトルから、発音データが音響スコアと共に決定される。
次に、STEP5で、言語モデル16全体のデータを用いて第1の音声認識処理におけるテキスト変換処理が実行され、発音データから認識されたテキスト「天気 は」が得られる。次に、STEP6で、認識されたテキスト「天気 は」について構文解析処理が実行され、当該テキストの意味に対応する音声候補が第1の音声候補群としてスコアと共に得られる。
次に、STEP7で、辞書20のうち{Affirmation}のデータを用いて第2の音声認識処理が実行される。このとき、辞書20のうち{Affirmation}のデータには「天気は」という語彙は登録されていないので、語彙「天気は」の意味に対応する音声候補は得られない。また、第3の重み係数γは0であるから、STEP8の第3の音声認識処理は省略され、STEP9に進む。
次に、STEP9で、第1,第2の音声候補群から、スコアと第1,第2の重み係数α,βとに基づいて、最終的な音声候補群が決定される。このとき、第2の音声認識処理からは音声候補が得られていないが、第1の音声候補群からテキスト「天気 は」の意味に対応する音声候補が最終的な音声候補群として得られる。このように、蓋然性の高い確認応答に対する返答以外の発話(蓋然性の低い発話)が入力されても、適切に認識することができる。
次に、STEP10で、車両10の状態が検出され、STEP11で、最終的な音声候補群と車両10の状態とに基づいてシナリオが決定される。これにより、実行中の制御処理は「天気予報」となり、具体的には、「ナビゲーションシステム6bの天気予報機能で、車両10の走行する地域の天気予報情報を取得する」「取得した結果を運転者に報知する」等の制御処理がシナリオとして決定される。
次に、STEP12で、機器制御の内容が特定されているので、判断結果はYESとなり、STEP13に進み、決定されたシナリオに基づいてナビゲーションシステム6bで天気予報情報が取得される。
これにより、運転者からの操作に応じた処理が完了して対話が終了するので、音声対話ユニット1の制御処理は、「取得した天気予報情報を運転者に報知する」状態(状態4の「待機状態」)に遷移する。
次に、STEP16に進み、対話終了と判断され、「今日は午後から雨です」という応答文の音声が合成され、スピーカ4から出力されて、音声対話処理が終了される。
以上の図11〜図13の対話例で示したように、上述の音声対話処理によれば、図11の対話例のように同じ話題が継続される場合に、発話を精度良く認識できると共に、図13の対話例のように対話中に話題が変換されても、発話を適切に認識できる。このように、本実施形態では、運転者との対話の遷移状態に適切に対応して発話を精度良く認識することが可能となり、効率の良い対話を介して機器の制御が行われる。
なお、本実施形態においては、第3の音声認識手段33を備えるものとしたが、第3の音声認識手段33を備えず、第1,第2の音声認識手段31,32の処理結果のみを用いて最終的な認識手段を決定するものとしてもよい。また、第2の音声認識手段32を備えず、第1,第3の音声認識手段31,33の処理結果のみを用いて最終的な認識手段を決定するものとしてもよい。
また、本実施形態においては、第2の音声認識手段32は一般的な単語が登録された辞書20を用い、第3の音声認識手段33は固有名詞等が登録された固有名詞辞書21を用いるものとしたが、辞書に登録される語彙は任意に変更可能である。
また、本実施形態においては、車両状態検出部3を備え、シナリオ制御部13は、発話の認識結果(制御候補群)と検出した車両状態とに応じてシナリオを決定するものとしたが、車両状態検出部3を備えず、シナリオ制御部13は発話の認識結果から特定される制御候補のみからシナリオを決定するものとしてもよい。
また、本実施形態においては、音声入力する使用者は、車両10の運転者としたが、運転者以外の乗員としてもよい。
また、本実施形態においては、音声認識装置は、車両10に搭載されるものとしたが、車両以外の移動体に搭載されるものとしてもよい。さらに、移動体に限らず、使用者が発話により対象を制御するシステムに適用可能である。
1…音声対話ユニット、2…マイク、3…車両状態検出部、4…スピーカ、5…ディスプレイ、6a〜6c…機器、10…車両、11…音声認識部、13…シナリオ制御部、14…音声合成部、15…音響モデル、16…言語モデル、17…構文モデル、18…シナリオデータベース、19…音素モデル、20…辞書、21…固有名詞辞書、31…第1の音声認識手段、32…第2の音声認識手段、33…第3の音声認識手段、34…状態遷移検知手段、35…重み決定手段、36…認識結果決定手段、37…テキスト変換手段、38…構文解析手段。