音声認識装置および音声認識方法
【課題】音声認識処理で間違って認識された文字列に対する変換候補を、上記音声認識処理とは異なる根拠に従って決定すること。
【解決手段】音声認識装置は、音声データを取得する音声データ取得部と、音響モデルおよび第1言語モデルを参照して、音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識部と、認識文字列に含まれる一部の文字列を、変換対象文字列として決定する変換対象文字列決定部と、認識文字列において、決定された変換対象文字列の前または後に接続された文字列を、参照文字列として決定する参照文字列決定部と、第2言語モデルを参照して、決定された参照文字列との接続関係が示されている文字列を、変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定部と、決定された変換候補文字列を出力する出力部とを備える。
【解決手段】音声認識装置は、音声データを取得する音声データ取得部と、音響モデルおよび第1言語モデルを参照して、音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識部と、認識文字列に含まれる一部の文字列を、変換対象文字列として決定する変換対象文字列決定部と、認識文字列において、決定された変換対象文字列の前または後に接続された文字列を、参照文字列として決定する参照文字列決定部と、第2言語モデルを参照して、決定された参照文字列との接続関係が示されている文字列を、変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定部と、決定された変換候補文字列を出力する出力部とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声認識装置および音声認識方法に関する。
【背景技術】
【0002】
マイクから入力された音声から、この音声の内容を示す文字列を生成して出力する音声認識技術が知られている。具体的には、音響モデルおよび言語モデルを参照して、入力された音声と文字列とのマッチング処理をおこなうことで、統計的に尤もらしい文字列を認識結果として出力する。音響モデルとは、音声の特徴量と文字との対応関係およびその統計情報を示すものである。また、言語モデルは、文字列間の接続関係およびその統計情報を示すものである。
【0003】
このような音声認識技術では、周囲の雑音などにより音声に歪みが生じた場合や、言語モデルに登録されていない語彙が発音された場合などには、音声が誤認識されて、間違った文字列を認識結果として出力してしまう。この場合、ユーザは、出力された認識結果のうちの間違っている文字列を、キーボードなどの入力デバイスを操作して、手作業で訂正する必要があった。
【0004】
そこで、特許文献1には、このようなユーザの操作負担を軽減することを目的とし、認識結果の単語に対して、この単語との競合確率が近い単語を訂正候補単語として提示し、認識結果の単語をこの訂正候補単語に変換するかをユーザに選択させる技術が開示されている。この技術によれば、ユーザは訂正候補単語を選択するだけで認識結果の単語を訂正することができるので、ユーザの操作負担を軽減することができるとされている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−146008号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の技術では、音声認識処理についてもその訂正処理についても、1つの言語モデルの内容に基づいておこなっているから、なおも正しい単語となる訂正単語が言語モデルに登録されていない場合には、正しい単語をユーザに提示することができない。従って、結局、ユーザは、出力された認識結果のうちの間違っている文字列を、キーボードなどの入力デバイスを操作して、手作業で訂正する必要があった。
【0007】
本発明の目的は、音声認識処理で間違って認識された文字列に対する変換候補を、上記音声認識処理とは異なる根拠に従って決定することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明にかかる音声認識装置は、音声データを取得する音声データ取得部と、音声の特徴量と文字との対応関係を示す音響モデルおよび文字列間の接続関係を示す第1言語モデルを参照して、前記音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識部と、前記認識文字列のうち、ユーザによって指定された文字列、認識結果としての信頼度が所定の閾値よりも低い文字列、または、認識結果としての信頼度が所定の閾値よりも低い文字列の組み合わせからなる文字列を、変換対象文字列として決定する変換対象文字列決定部と、前記認識文字列において、決定された前記変換対象文字列の直前または直後に接続された文字列から予め定められた条件に従って参照文字列を決定する参照文字列決定部と、ユーザが過去に入力した文字列から抽出された文字列同士の接続関係を示す第2言語モデルを参照して、決定された前記参照文字列との接続関係が示されている文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定部と、決定された前記変換候補文字列を出力する出力部とを備えることを特徴とする。
【0009】
好ましくは、前記第2言語モデルにおいて、前記参照文字列に対して所定の範囲外の数の前記変換候補文字列が得られた場合、前記参照文字列決定部は、前記認識文字列において、前記変換対象文字列の直前または直後に接続された文字列の数を増減して、その増減後の数の文字列を新たな参照文字列として決定し、前記変換候補文字列決定部は、前記第2言語モデルにおいて前記新たな参照文字列との接続関係が示されている文字列を、前記変換候補文字列として決定するとよい。
【0010】
好ましくは、前記出力部は、前記認識文字列における前記変換対象文字列を、前記変換候補文字列に変換して、変換後の前記認識文字列を出力するとよい。
【0011】
好ましくは、前記変換候補文字列決定部は、前記第2言語モデルにおいて前記参照文字列との接続関係が示されている文字列のそれぞれについて、前記変換対象文字列との相関度を算出し、少なくとも、当該相関度が最も高い文字列または当該相関度が閾値よりも高い文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定するとよい。
【0012】
好ましくは、前記出力部は、前記変換候補文字列の音素のうち、前記変換対象文字列の音素と一致しない音素が削除された変換候補文字列、または、前記変換候補文字列と前記参照文字列との接続関係について文法チェックをおこなうことにより特定された前記変換候補文字列に含まれる出力不要な文字が削除された変換候補文字列を出力するとよい。
【0013】
好ましくは、前記音響モデルおよび前記第1言語モデルを記憶したサーバ装置との通信をおこなう通信部を備え、前記音声認識部は、前記通信部による前記サーバ装置との通信によって、前記サーバ装置が記憶している前記音響モデルおよび前記第1言語モデルを参照し、前記音声認識処理をおこなうとよい。
【0014】
また、本発明にかかる音声認識方法は、音声認識装置による音声認識方法であって、音声データを取得する音声データ取得工程と、音声の特徴量と文字との対応関係を示す音響モデルおよび文字列間の接続関係を示す第1言語モデルを参照して、前記音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識工程と、前記認識文字列のうち、ユーザによって指定された文字列、認識結果としての信頼度が所定の閾値よりも低い文字列、または、認識結果としての信頼度が所定の閾値よりも低い文字列の組み合わせからなる文字列を、変換対象文字列として決定する変換対象文字列決定工程と、前記認識文字列において、決定された前記変換対象文字列の直前または直後に接続された文字列から予め定められた条件に従って参照文字列を決定する参照文字列決定工程と、ユーザが過去に入力した文字列から抽出された文字列同士の接続関係を示す第2言語モデルを参照して、決定された前記参照文字列との接続関係が示されている文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定工程と、決定された前記変換候補文字列を出力する出力工程とを備えることを特徴とする。
【発明の効果】
【0015】
本発明によれば、音声認識処理で間違って認識された文字列に対する変換候補を、上記音声認識処理とは異なる根拠に従って決定することができる。
【図面の簡単な説明】
【0016】
【図1】第1実施形態にかかる音声認識装置100の構成を示す。
【図2】音声認識装置100のハードウェア構成の一例を示す。
【図3】音声認識装置100の機能構成を示す。
【図4】第2言語モデルの一例を示す。
【図5】音声認識装置100による処理の手順を示す。
【図6】音声認識部314による音声認識処理の一例を示す。
【図7】音声認識部314によって算出された信頼度の一例を示す。
【図8】変換候補文字列の相関度の一例を示す。
【図9】変換候補文字列の出力例を示す。
【図10】変換対象文字列の変換例を示す。
【図11】第2実施形態にかかる第2言語モデルの一例を示す。
【図12】第3実施形態にかかる第2言語モデルの一例を示す。
【図13】第4実施形態にかかる音声認識装置100の機能構成を示す。
【発明を実施するための形態】
【0017】
本発明は、一実施形態のために示された添付図面を参照して以下の詳細な記述を考慮することによって容易に理解することができる。引き続き、添付図面を参照しながら本発明の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
【0018】
(第1実施形態)
まず、第1実施形態を説明する。図1は、第1実施形態にかかる音声認識装置100の構成を示す。音声認識装置100は、入力された音声を認識して、認識した音声に応じた文字を出力する装置である。この第1実施形態では、音声認識機能を有するパーソナル・コンピュータを、音声認識装置100として用いている。
【0019】
音声認識装置100は、本体110、マイク120、ディスプレイ130、スピーカ140、キーボード150、およびマウス160を備える。たとえば、ユーザが音声を発すると、この音声がマイク120によって本体110へ入力される。本体110は、入力された音声に対する音声認識処理をおこなうことにより、入力された音声を認識して、認識した音声に応じた文字を出力する。たとえば、本体110は、認識された文字を示す画像をディスプレイ130に表示させたり、認識された文字に応じた音声をスピーカ140から発せさせたりする。キーボード150およびマウス160は、音声認識処理をおこなう際、ユーザからの指示の入力が必要な場合に、当該入力をおこなうための入力装置として利用される。
【0020】
図2は、音声認識装置100のハードウェア構成の一例を示す。音声認識装置100は、すでに説明した本体110、マイク120、ディスプレイ130、スピーカ140、キーボード150、およびマウス160に加え、本体110の内部に、CPU1505、ROM1510、RAM1520、外部メモリドライブ1540、外部メモリ1542、通信インターフェース1550、および入出力機器インターフェース1560を備える。
【0021】
ROM1510、RAM1520、および外部メモリ1542は、各種データおよび各種プログラムを格納する。CPU1505は、ROM1510、RAM1520、または外部メモリ1542に格納されたプログラムを実行することで、各種データ処理および各種ハードウェア制御をおこなう。
【0022】
通信インターフェース1550は、外部装置との通信を制御する。外部メモリドライブ1540は、外部メモリ1542に接続し、外部メモリ1542に対するデータの読み書きをおこなう。外部メモリ1542としては、たとえば、CD(Compact Disc)、DVD(Digital Versatile Disc)、メモリカード等が挙げられる。
【0023】
入出力機器インターフェース1560は、本体110に接続された各種入出力機器による、データの入出力を制御する。すでに説明したとおり、本体110には、入出力機器として、マイク120、ディスプレイ130、スピーカ140、キーボード150、およびマウス160が接続されている。よって、入出力機器インターフェース1560は、これらの入出力機器による、データの入出力を制御する。
【0024】
たとえば、音声認識装置100においては、ROM1510、RAM1520、または外部メモリ1542が、図3以降で説明する音響モデル格納部302、第1言語モデル格納部304、および第2言語モデル格納部306として機能する。また、音声認識装置100においては、CPU1505が、ROM1510、RAM1520、または外部メモリ1542に格納されている音声認識プログラムを実行して、マイク120を制御することにより、図3以降で説明する音声データ取得部312として機能する。また、音声認識装置100においては、CPU1505が、上記音声認識プログラムを実行することにより、図3以降で説明する音声認識部314、変換対象文字列決定部316、参照文字列決定部318、および変換候補文字列決定部320として機能する。また、音声認識装置100においては、CPU1505が、上記音声認識プログラムを実行して、ディスプレイ130またはスピーカ140を制御することにより、図3以降で説明する出力部322として機能する。また、音声認識装置100においては、CPU1505が、上記音声認識プログラムを実行して、通信インターフェース1550を制御することにより、図13で説明する通信部330として機能する。
【0025】
上記音声認識プログラムは、たとえば、音声認識装置100にインストールされた状態で、ユーザに提供される。他の例として、上記音声認識プログラムは、コンピュータ読み取り可能な記録媒体に格納されてユーザに提供され、音声認識装置100にインストールされてもよい。この他にも、上記音声認識プログラムは、CPU1505が実行するプログラムは、外部装置から通信ネットワークを介してユーザに提供され、音声認識装置100にインストールされてもよい。
【0026】
図3は、音声認識装置100の機能構成を示す。ここでは、音声認識装置100が備える機能のうち、音声認識処理に関連する機能を中心に説明する。音声認識装置100は、音響モデル格納部302、第1言語モデル格納部304、第2言語モデル格納部306、音声データ取得部312、音声認識部314、変換対象文字列決定部316、参照文字列決定部318、変換候補文字列決定部320、および出力部322を備える。
【0027】
音響モデル格納部302は、音声の特徴量と文字との対応関係およびその統計情報が示されたいわゆる音響モデルを格納する。音声の特徴量としては、MFCC(Mel Frequency Cepstrum Coefficient:メル周波数ケプストラム係数)が挙げられる。第1言語モデル格納部304は、文字列間の接続関係およびその統計情報が示されたいわゆる言語モデルを格納する。第2言語モデル格納部306は、少なくとも文字列間の接続関係が示された言語モデルを格納する。
【0028】
ここで、上記接続関係および上記統計情報について説明すると、たとえば、文字列「私に」は、文字列「私」と文字列「に」とが接続されたものといえる。また、文字列「私が」は、文字列「私」と文字列「が」とが接続されたものといえる。そこで、第1言語モデルおよび第2言語モデルには、上記した文字列「私」と文字列「に」との接続関係や、文字列「私」と文字列「が」との接続関係といったような、各文字列間の接続関係が示される。統計情報とは、多数の文章データにおいて、形態素や単語といった単位での文字列の接続がどの程度の確率で起こりうるかを示すものである。たとえば、上記例でいえば、多数の文章データにおける、「私」に「に」が続く確率や、「私」に「が」が続く確率などがこれに該当する。ただし、言語モデルは上記例のような2つの形態素間の接続関係に限らず、「私に」や「私が」を1文字列として接続関係を保ってもよく、その接続数も1、2、3、…のいずれでもよく、音声認識の処理が実行できればよい。
【0029】
第2言語モデル格納部306に格納されている言語モデルは、第1言語モデル格納部304に格納されている言語モデルとは別に設けられている言語モデルであり、第1言語モデル格納部304に格納されている言語モデルを補うものであるが、その内容は第1言語モデルと異なるものであっても同じものであってもよい。以降、これらを区別するため、第1言語モデル格納部304に格納されている言語モデルを「第1言語モデル」と示す。また、第2言語モデル格納部306に格納されている言語モデルを「第2言語モデル」と示す。上記において第1言語モデルと第2言語モデルとが別に設けられているとは論理上のことを意味しており、物理的には同一の装置に設けられていてもよく、別々の装置に設けられていてもよい。
【0030】
図4は、第2言語モデルの一例を示す。図4は、第2言語モデル格納部306に格納されている第2言語モデルの一例を示すものである。ここで、すでに説明したとおり、第2言語モデルは、少なくとも文字列の接続関係が示されている。この第2言語モデルは、たとえば、ユーザが過去に入力した文章データベースを分析することにより、予め生成することや、ユーザの入力によって逐次更新するものである。なお、第2言語モデルには、文字列の接続関係のほか、統計情報が示されていてもよい。また、第2言語モデルにおいては、その情報量を抑制するため、統計確率の低い接続関係や、時系列的に古い接続関係が削除されてもよい。図4に示す例では、第2言語モデルとして、形態素単位の文字列間の接続関係が示されている。たとえば、図4に示す例では、第1の文字列「京都」の後方に接続する第2の文字列として、「府」、「市」、「駅」、「の」のそれぞれが対応付けられている。これらの接続関係は、たとえば、ユーザが過去に入力した「京都府の県庁所在地は京都市です」という文字列と、「京都駅は京都の中心ですか」という文字列とが分析されて、これらの文字列に含まれる形態素単位の文字列間の接続関係として、第2言語モデルに加えられたものである。このように、ユーザが過去に入力した文字列に基づいて、ユーザオリジナルの第2言語モデルを形成することで、そのユーザによってまた利用される可能性の高い文字列を、変換候補文字列として提示できる。
【0031】
図5は、音声認識装置100による処理の手順を示す。以降、図5に示す処理手順にしたがって、図3に示した各機能部の詳細について説明する。
【0032】
(ステップS502)
音声データ取得部312が、音声認識処理の対象とする音声データを取得する。具体的には、音声データ取得部312は、マイク120から入力された音声信号を、音声認識処理の対象とする音声データとして取得する。既に音声データがメモリ等の記憶媒体に格納されている場合、音声データ取得部312は、この記憶媒体に格納されている音声データを、音声認識処理の対象とする音声データとして取得してもよい。
【0033】
(ステップS504)
音声認識部314が、音響モデル格納部302に格納された音響モデルおよび第1言語モデル格納部304に格納された第1言語モデルに基づく音声認識処理をおこなうことで、ステップS502で取得された音声データが示す音声を認識して、尤もらしい文字列を、当該認識結果を示す認識文字列として生成する。ここで、音声認識部314による音声認識処理の一例について説明する。図6は、音声認識部314による音声認識処理の一例を示す。この例では、音声認識部314によって、「今から京都駅に行きます」という音声の音声データから、「今から京都的に行きます」という認識文字列が生成されている。この例では、音声認識部314は、「駅」を「的」と誤って認識してしまっている。この理由としては、たとえば、「駅」という単語が第1言語モデルに示されていない、音声データに含まれている雑音などにより音声に歪みが生じて「駅」が認識結果およびその候補とされなかった等、様々な理由が挙げられる。なお、音響モデルの構成、第1言語モデルの構成、および音声認識部314による音声認識処理の具体的な方法は様々である。本実施形態では、音声データから認識文字列を生成することができればよいため、これを実現することができるものであれば、これらについてどのようなものを用いてもよい。
【0034】
(ステップS506)
音声認識部314が、ステップS504で生成された認識文字列を構成する文字列のそれぞれについて、音声認識の信頼度を算出する。ここで、音声認識部314によって算出された信頼度の一例について説明する。図7は、音声認識部314によって算出された信頼度の一例を示す。図7は、音声認識部314によって生成された「今から京都的に行きます」という認識文字列を構成する形態素のそれぞれについての、音声認識部314が算出した音声認識の信頼度を示す。ここでいう信頼度とは、音声データから文字列が正しく認識された可能性の度合いを示す。信頼度が高いほど、その文字列が正しく認識された可能性が高いことを示す。たとえば、図7に示す例では、「今から京都的に行きます」という認識文字列を構成する、「今」、「から」、「京都」、「的」、「に」、「行き」、「ます」の各形態素のそれぞれについて、信頼度が示されている。この例では、「今」の信頼度は「95」、「から」の信頼度は「92」、「京都」の信頼度は「80」、「的」の信頼度は「50」、「に」の信頼度は「70」、「行き」の信頼度は「93」、「ます」の信頼度は「93」である。
【0035】
たとえば、音声認識部314は、音声データの特徴量と音響モデルの特徴量との一致度が高いほど、その文字列の信頼度を高く算出する。また、音声認識部314は、第1言語モデルに示されている統計情報に基づいて、この文字列の出現確率や出現頻度が高いほど、この文字列の信頼度を高く算出する。さらに、音響モデルと言語モデルの双方を参照し複合的に信頼度を決定することも考えられる。たとえば、「京都」、「的」、「に」、「行き」、「ます」からなる認識文字列について、「京都」と「に」と「行き」と「ます」とが組み合わせてよく利用される場合は、これらの文字列の出現確率が高いということであるから、これらの信頼度を高める。一方、「的」については、「京都」、「行き」、「ます」との組み合わせはほとんど使用されないとすると、この文字列「的」の出現確率が低いということであるから、この文字列「的」の信頼度を低める。
【0036】
上記以外にも、文法上の不自然さが少ないものほど信頼性を高く算出したり、同音異義語が多いほど、信頼性を低く算出したりするようにしてもよい。要するに、間違っている可能性が低いものであるほど、その文字列の信頼度を高く算出すればよく、その方法はどのようなものであってもよい。
【0037】
(ステップS508)
変換対象文字列決定部316が、ステップS504で生成された認識文字列のうちの、変換対象とする変換対象文字列を決定する。たとえば、変換対象文字列決定部316は、音声認識部314が生成した認識文字列のうちの、認識結果としての信頼度が所定の閾値よりも低い文字列、あるいはその組み合わせからなる文字列を、変換対象文字列として決定する。この方法を適用した場合、間違っている可能性の高い文字列を、変換対象文字列として決定することができる。また、変換対象文字列をユーザに選択させるようなことがないので、ユーザの操作負担を軽減することができる。たとえば、所定の閾値として「60」が設定されており、図7に示したとおり、「今から京都的に行きます」という認識文字列を構成する、「今」、「から」、「京都」、「的」、「に」、「行き」、「ます」の各形態素のそれぞれについての信頼度が算出されている場合、変換対象文字列決定部316は、これら形態素のうち、信頼度として「60」よりも低い「50」が算出されている「的」を、変換対象文字列として決定する。
【0038】
他の例として、変換対象文字列決定部316は、音声認識部314が生成した認識文字列のうちの、任意の文字列をユーザに指定させ、ユーザによって指定された文字列を、変換対象文字列として決定するようにしてもよい。たとえば、変換対象文字列決定部316は、音声認識部314が生成した認識文字列をディスプレイ130に表示させる。ユーザは、ディスプレイ130に表示された認識文字列に対して、キーボード150またはマウス160を用いて、誤認識されたと判断した任意の文字列を指定する。そして、変換対象文字列決定部316は、このようにしてユーザによって指定された任意の文字列を、変換対象文字列として決定する。この方法を適用した場合、変換対象文字列をユーザが選択するので、間違っていることが確実な文字列を、変換対象文字列として決定することができる。すなわち、高い精度で変換対象文字列を決定することができる。なお、ユーザによる任意の文字列の指定方法は、上記したものに限らない。たとえば、ディスプレイ130の表面にタッチパネルが設けられている場合、このタッチパネルによってユーザが任意の文字列を指定するようにしてもよい。
【0039】
(ステップS510)
参照文字列決定部318が、ステップS504で生成された認識文字列のうちの、ステップS508で決定された変換対象文字列の前または後ろに接続された一部の文字列を参照文字列として決定する。具体的には、参照文字列決定部318は、音声認識部314が生成した認識文字列の前または後ろに接続された文字列のうちの、予め定められた条件に合致する文字列を、参照文字列として決定する。この条件には、変換対象文字列を基準とした参照文字列の方向、参照文字列を構成する文字列の単位、および参照文字列を構成する文字列の数が含まれる。たとえば、認識文字列を基準とした参照文字列の方向には、「前方」、「後方」、または「前方と後方の双方」のいずれかが設定される。また、参照文字列を構成する文字列の単位には、「文字」、「単語」、「形態素」、「文節」等が設定される。また、参照文字列を構成する文字列の数としては、「1」等の任意の整数が設定される。これらが組み合わされて、たとえば「変換対象文字列の前方の1形態素を参照文字列とする」といった条件が予めメモリ等の記憶媒体に格納されているのである。この「変換対象文字列の前方の1形態素を参照文字列とする」という条件によれば、たとえば、上記したとおり、「今から京都的に行きます」という認識文字列のうちの、「的」が変換対象文字列として決定された場合、この「的」の前方にある1つの形態素である「京都」が、参照文字列として決定される。また、「変換対象文字列の前方および後方の1文字を参照文字列とする」という条件によれば、この「的」の前方の1文字である「都」と、後方の1文字である「に」とが、参照文字列として決定される。
【0040】
(ステップS512)
変換候補文字列決定部320が、第2言語モデルを参照して、当該第2言語モデルにおいてステップS510で決定された参照文字列との接続関係が示されている文字列を、ステップS508で決定された変換対象文字列を変換する候補の変換候補文字列として決定する。たとえば、上記したとおり、変換対象文字列として「的」が決定され、参照文字列として「京都」が決定されたとする。そして、図4に示すとおり、第2言語モデルにおいて、文字列「京都」と、「府」、「市」、「駅」、「の」のそれぞれとの対応関係が示されているとする。この場合、変換候補文字列決定部320は、これら「府」、「市」、「駅」、「の」のそれぞれを変換候補文字列として決定する。変換候補文字列には、変換対象文字列と同じ文字列が含まれていてもよい。たとえば、上記例では、変換対象文字列「的」に対し、変換候補文字列「的」が含まれていてもよい。
【0041】
ここで、変換候補文字列決定部320は、これら複数の変換候補文字列を、変換対象文字列を変換する候補の変換候補文字列として決定するようにしてもよい。また、変換候補文字列決定部320は、変換候補文字列の出力数を抑えるべく、これら複数の変換候補文字列のうちの一部を、変換対象文字列を変換する候補の変換候補文字列として決定するようにしてもよい。
【0042】
たとえば、変換候補文字列決定部320は、参照文字列に対応付けられている複数の文字列のそれぞれについて、変換対象文字列との相関度を算出し、算出した相関度に基づいて、複数の文字列の中から、変換候補文字列を決定してもよい。たとえば、変換候補文字列決定部320は、変換対象文字列との相関度の最も高い文字列を変換候補文字列として決定してもよい。また、変換候補文字列決定部320は、変換対象文字列との相関度が閾値よりも高い文字列を変換候補文字列として決定してもよい。また、変換対象文字列との相関度の高い順に所定数の文字列を変換候補文字列として決定してもよい。また、変換対象文字列との相関度が閾値以上の文字列を変換候補文字列として決定してもよい。
【0043】
図8は、変換候補文字列の相関度の一例を示す。図8は、変換対象文字列「的」に対して、変換候補文字列決定部320が決定した「府」、「市」、「駅」、「の」という変換候補文字列のそれぞれについての、変換候補文字列決定部320が算出した相関度を示す。ここでいう相関度とは、変換対象文字列の類似度を示すものである。たとえば、変換候補文字列決定部320は、変換対象文字列との発音の類似度がより高い変換候補文字列の相関度をより高く算出する。この例では、変換候補文字列決定部320は、変換対象文字列との発音の類似度を、変換対象文字列と一致する音素(よみがなを示すローマ字)の数に基づいて算出する。すなわち、変換対象文字列との音素の一致度を、変換対象文字列との発音の類似度として算出する。たとえば、「的」の音素は「t」、「e、「k」、「i」である。これに対し、「府」の音素は「h」、「u」である。このように、「的」と「府」とでは、一致する音素の数が「0」であるから、変換候補文字列決定部320は、この「0」を、変換候補文字列「府」の相関度として決定する。一方、「駅」の音素は「e」、「k」、「i」である。このように、「的」と「駅」とでは、一致する音素の数が「3」であるから、変換候補文字列決定部320は、この「3」を、変換候補文字列「駅」の相関度として決定する。このようにして、変換候補文字列決定部320は、複数の変換候補文字列のそれぞれの相関度を算出するのである。そして、たとえば、変換候補文字列決定部320は、複数の変換候補文字列のうち、相関度が最も高い文字列、閾値よりも高い文字列、あるいは相関度の高い順に所定数の文字列を、変換対象文字列を変換する候補の変換候補文字列として決定したりするのである。なお、変換候補文字列決定部320は、変換対象文字列との発音の類似度を、変換対象文字列と一致するよみがなの数に基づいて算出するなど、上記した変換対象文字列との音素の一致度による方法以外の方法によって算出してもよい。
【0044】
変換候補文字列決定部320は、算出した相関度をそのまま用いて変換候補文字列を決定するのではなく、算出した相関度に対して、所定の係数を乗じたり、加算するなどしてから、変換候補文字列を決定するようにしてもよい。たとえば、子音の一致数に対して、この子音に応じた係数を乗じたり、加算したりし、母音の一致数に対して、この母音に応じた係数を乗じたり、加算したりして、最終的に相関度を決定してもよい。たとえば、変換対象文字列が「的」(teki)で、変換候補文字列が「劇」(geki)であれば、音素の一致数のみで判断すると、変換候補文字列が「劇」の相関度は「3」となる。このうち、子音の一致数は「1」である。また、母音の一致数は、「2」である。たとえば、子音に応じた係数が「1」であり、母音に応じた係数が「2」であるとする。子音の一致数である「1」に対して、この子音に応じた係数「1」を乗じると、子音の一致数に基づく相関度は「1」となる。また、母音の一致数である「2」に対して、この母音に応じた係数「2」を乗じると、母音の一致数に基づく相関度は「4」となる。これらの相関度を合計することで、最終的な変換候補文字列の相関度を「5」とすることができる。
【0045】
(ステップS514)
出力部322が、ステップS512で決定された変換候補文字列を出力する。たとえば、出力部322は、変換候補文字列を、認識文字列とともに、ユーザが視認できるよう、ディスプレイ130に表示させる。ここで、変換候補文字列が一つの場合、出力部322は、認識文字列における変換対象文字列を変換候補文字列に変換するか否かをユーザが選択可能な形態で出力する。また、変換候補文字列が複数の場合、出力部322は、これら複数の変換候補文字列を、いずれの変換候補文字列で変換対象文字列を変換するかをユーザが選択可能な形態で出力する。
【0046】
ここで、変換候補文字列決定部320が決定した変換候補文字列が一つであれば、出力部322は、認識文字列における変換対象文字列をこの変換候補文字列に変換して、変換後の認識文字列を出力してもよい。また、変換候補文字列が複数であれば、出力部322は、これら複数の変換候補文字列を、相関度の高い順に出力するようにしてもよい。この場合、出力部322は、相関度の最も高い変換候補文字列だけを出力するようにしてもよく、相関度の高い順に所定数の変換候補文字列を出力するようにしてもよく、相関度の高い順に相関度が閾値以上の変換候補文字列を出力するようにしてもよい。また、出力部322は、認識文字列における変換対象文字列を相関度の最も高い変換候補文字列に変換して、変換後の認識文字列を出力してもよい。
【0047】
図9は、変換候補文字列の出力例を示す。図9に示す画面900は、出力部322による出力処理によって、ディスプレイ130に表示された画面である。この画面900は、認識文字列に含まれる変換対象文字列を、変換候補文字列に変換するための画面である。この画面900には、認識文字列として「今から京都的に行きます」が表示されている。このうち、変換対象文字列である「的」については、これが変換対象文字列であることをユーザが認識できるように、太字および下線によって、強調表示されている。また、画面900には、変換候補文字列として「府」、「市」、「駅」、「の」が表示されている。ここで、図8に示したように、これらの変換候補文字列に対して、予め相関度が求められているから、画面900において、これらの変換候補文字列は、相関度の高い順に表示されている。ユーザは、複数の変換候補文字列の中から任意の変換候補文字列を選択することで、変換対象文字列を、選択した変換候補文字列に変換して、認識文字列を確定することができる。また、ユーザは、任意の変換候補文字列を選択せずに、「確定」ボタン910を選択することで、変換対象文字列を変換せずに、認識文字列「今から京都的に行きます」を確定することができる。
【0048】
(ステップS516)
変換対象文字列が変更され、もしくは変更されずに、認識文字列が確定すると、音声認識装置100は、この認識文字列をユーザが利用できるように、メモリ等の記憶媒体に格納したり、他のアプリケーションの入力文字列としたりして、一連の音声認識処理を終了する。
【0049】
図10は、変換対象文字列の変換例を示す。図10に示す画面900においては、認識文字列として「今から京都駅に行きます」が表示されている。これは、図9に示した画面900において、変換候補文字列「駅」をユーザが選択したことにより、変換対象文字列「的」が、変換候補文字列「駅」に変換され、この変換後の認識文字列が表示されたからである。ユーザは、「確定」ボタン910を選択することで、この認識文字列「今から京都駅に行きます」を、認識文字列として確定することができる。なお、音声認識装置100は、すでに説明したとおり、このようにユーザの選択によって変換対象文字列「的」を変換するのではなく、変換対象文字列「的」を、最も相関度の高い変換候補文字列「駅」に自動的に変換し、変換後の認識文字列「今から京都駅に行きます」を最初から表示するようにしてもよい。
【0050】
以上説明したように、第1実施形態の音声認識装置100は、変換対象文字列に接続された参照文字列を決定し、第2言語モデルにおいて参照文字列との接続関係が示されている文字列を、変換候補文字列として出力することとした。すなわち、第1実施形態の音声認識装置100は、音声認識処理で間違って認識された文字列に対する変換候補を、上記音声認識処理とは異なる根拠に従って決定することができるものである。これにより、音声認識処理で参照した第1言語モデルにおいて、変換対象文字列を変換するための正しい文字列が登録されていない場合であっても、この正しい文字列が第2言語モデルに登録されていれば、これを変換候補文字列として出力することができる。よって、第1実施形態の音声認識装置100は、音声認識処理で間違って認識された文字列に対する訂正候補として、より適切な文字列を出力することができる。
【0051】
(第2実施形態)
次に、第2実施形態を説明する。第1実施形態では、第2言語モデルにおいて文字列間の接続関係が形態素単位で示されていた。これに対し、第2実施形態では、第2言語モデルにおいて文字列間の接続関係がユーザ入力単位で示されている。ユーザがある文字列を入力する場合に、この文字列を複数の部分的な文字列に区切って段階的に入力する場合がある。たとえば、「京都府の県庁所在地は京都市です」という文字列を入力する場合に、この文字列を「京都」、「府の」、「県庁所在地」、「は」、「京都」、「市です」、という複数の部分的な文字列に区切って段階的に入力するといった具合である。
【0052】
図11は、第2実施形態にかかる第2言語モデルの一例を示す。図11は、第2言語モデル格納部306に格納されている第2言語モデルの一例を示すものであり、この例では、第2言語モデルとして、ユーザ入力単位の文字列間の接続関係が示されている。たとえば、図11に示す例では、第1の文字列「京都」の後方に接続する第2の文字列として、「府の」、「市です」、「駅は」、「の」のそれぞれが対応付けられている。これらの接続関係は、たとえば、ユーザが過去に入力した「京都府の県庁所在地は京都市です」という文字列と、「京都駅は京都の中心ですか」という文字列とが分析されて、これらの文字列に含まれるユーザ入力単位の文字列の接続関係として、第2言語モデルに加えられたものである。
【0053】
部分的な文字列の区切りは、たとえば、ユーザがENTERキーを押したタイミングや、文字列を変換した単位などによって決定される。たとえば、「京都」、ENTERキーを押下、「府の」、ENTERキーを押下という順番で入力がなされば、「京都」、「府の」といった単位で部分的な文字列が決定される。また、「きょうとふの」と入力された後に、「京都ふの」、「京都府の」といった順番で部分的な変換がなされた場合も同様に、「京都」、「府の」といった単位で部分的な文字列が決定される。
【0054】
ここで、「今から京都的に行きます」という認識文字列から、変換対象文字列決定部316によって変換対象文字列として「的」が決定され、参照文字列決定部318によって参照文字列として「京都」が決定されたとする。そして、図11に示すとおり、第2言語モデルにおいて、文字列「京都」に後続する文字列として、「府の」、「市です」、「駅は」、「の」のそれぞれが対応付けられているとする。そして、変換候補文字列決定部320が、これらの文字列の中から、「駅は」を変換候補文字列として決定したとする。この場合、「今から京都的に行きます」という認識文字列に対し、変換対象文字列「的」が、変換候補文字列「駅は」に変換されてしまうと、変換後の認識文字列は「今から京都駅はに行きます」となり、「は」が余分に含まれたものとなってしまう。この余分な文字を、ユーザが手作業で削除するようにしてもよいが、この場合、変換候補文字列の前後関係を考慮して手作業で不要な文字を削除する必要があり、ユーザの手間となってしまう。
【0055】
そこで、この第2実施形態では、このように変換候補文字列に含まれている余分な文字列を、出力部322が自動的に削除してから、変換後の変換候補文字列を出力することとした。以下、その具体的な方法を説明する。なお、変換候補文字列決定部320が変換候補文字列を決定するまでの処理は、これまで説明したとおりである。
【0056】
まず、変換候補文字列と変換対象文字列との相関関係に基づいて、変換候補文字列に含まれる不要な文字を削除する自動的に認識し、これを削除する第1の方法および第2の方法について説明する。
【0057】
第1の方法は、変換対象文字列のよみがなの文字数にあわせて、変換候補文字列から不要な文字を削除する方法である。たとえば、上記例でいえば、変換対象文字列「的」はよみがなで2文字であり、変換候補文字列「駅は」はよみがなで3文字であるから、これにあわせて、変換候補文字列「駅は」の後端1文字である「は」を削除するといった具合である。
【0058】
第2の方法は、変換候補文字列から変換対象文字列との相関性の高い部分を残しておき、その他の部分を削除する方法である。たとえば、上記例でいえば、変換対象文字列「的」の音素(よみがなを示すローマ字)は「t」、「e」、「k」、「i」である。また、変換候補文字列「駅は」の音素は「e」、「k」、「i」、「w」、「a」である。変換候補文字列「駅は」の音素のうち、変換対象文字列「的」の音素との相関性の高い音素として「e」、「k」、「i」を残しておき、その他の音素である「w」、「a」を削除する。その結果、変換候補文字列「駅は」から、「は」が削除される。
【0059】
つぎに、変換候補文字列と参照文字列との接続関係に基づいて、変換候補文字列に含まれる不要な文字を削除する自動的に認識し、これを削除する第3の方法について説明する。
【0060】
第3の方法は、変換後の認識文字列を仮生成し、これに対して(特に、変換候補文字列と参照文字列との接続関係について)文法チェックをおこなうことにより、変換候補文字列における不要な文字を特定し、これを削除する方法である。たとえば、上記例でいえば、「今から京都的に行きます」という認識文字列に対し、変換対象文字列「的」を、変換候補文字列「駅は」に変換して、変換後の認識文字列として「今から京都駅はに行きます」を仮生成する。そして、これに対して文法チェック処理をおこなえば、「は」が不要になることは明らかであるから、変換候補文字列「駅は」から「は」を削除する。
【0061】
このように、第2実施形態の音声認識装置は、変換候補文字列と変換対象文字列との相関関係、または変換候補文字列と参照文字列との接続関係に基づいて、変換候補文字列における不要な文字を自動的に認識し、これを削除してから、削除後の変換候補文字列を出力するので、変換候補文字列の前後関係を考慮して手作業で不要な文字を削除する、などといった、ユーザの手間を省くことができる。
【0062】
(第3実施形態)
次に、第3実施形態を説明する。第1実施形態では、第2言語モデルにおいて、参照文字列と複数の文字列との接続関係が示されている場合、これら複数の文字列の一部または全てを変換候補文字列として出力することとした。ここで、参照文字列との接続関係が示されている文字列が膨大な数の場合、これら複数の文字列の全てを変換候補文字列として出力してしまうと、ユーザが混乱してしまう。また、これら複数の文字列の一部を変換候補文字列として出力すると、膨大な数の文字列の中から変換候補文字列を決定するための処理に時間がかかってしまうばかりか、適切な変換候補文字列を決定することができない。
【0063】
図12は、第3実施形態にかかる第2言語モデルの一例を示す。図12は、第2言語モデル格納部306に格納されている第2言語モデルの一例を示すものである。たとえば、図12に示す例では、第2の文字列「に」は、第1の文字列として、「東京」、「京都」、「教頭」、「犬」、「音声」、「学校」、「どこか」、・・・というように、膨大な数の文字列との接続関係を有する。このために、この第2の文字列「に」を参照文字列として、この第2の文字列「に」との接続関係を有する第1の文字列の全部を変換候補文字列として出力してしまうと、ユーザが混乱してしまう。また、この第2の文字列「に」との接続関係を有する第1の文字列の一部を変換候補文字列として出力すると、変換候補文字列を決定するための処理に時間がかかってしまうばかりか、適切な変換候補文字列を決定することができない。
【0064】
このように、一つの参照文字列からでは、適切な変換候補文字列を決定できない場合がある。そこで、この第3実施形態では、文字列の範囲が異なる複数の参照文字列を決定し、決定された複数の参照文字列のうちの、適切な変換候補文字列が得られる参照文字列を用いて、変換対象文字列を変換する候補の変換候補文字列を決定することで、適切な変換候補文字列を決定することができる構成とした。以下、その具体的な方法の一例として、上記したように参照文字列との接続関係を有する文字列が膨大な数である場合、参照文字列の範囲を拡張し、これを新たな参照文字列としてから、あらためて、参照文字列との接続関係を有する文字列の一部または全部を変換候補文字列として出力する例を説明する。
【0065】
この第3実施形態では、第2言語モデルにおいて、参照文字列決定部318が決定した参照文字列が所定数以上の文字列との接続関係を有する場合、参照文字列決定部318は、認識文字列のうちの、参照文字列とした文字列の範囲を拡張して、拡張後の文字列を新たな参照文字列として決定する。そして、変換候補文字列決定部320は、第2言語モデルを参照して、当該第2言語モデルにおいて上記新たな参照文字列との接続関係が示されている文字列を、変換候補文字列として決定する。
【0066】
たとえば、参照文字列決定部318が、「変換対象文字列の後方の1形態素を参照文字列とする」といった条件にしたがって、「今から京都的に行きます」という認識文字列の中から、変換対象文字列である「的」に後続する「に」を参照文字列として決定したとする。
【0067】
この場合、変換候補文字列決定部320が、第2言語モデルを参照して、当該第2言語モデルにおいて参照文字列「に」が後続する文字列として、参照文字列「に」との接続関係が示されている複数の第1の文字列を、変換候補文字列として決定する。たとえば、図12に示す第2言語モデルによると、「東京」、「京都」、「教頭」、「犬」、「音声」、「学校」、「どこか」・・・といった膨大な数の文字列が、変換候補文字列として仮決定される。
【0068】
ここで、仮決定された変換候補文字列の数が所定数よりも少ない場合は、この仮決定された変換候補文字列の一部または全部が、正式な変換候補文字列として決定される。一方、仮決定された変換候補文字列の数が所定数よりも多い場合、参照文字列決定部318が、「今から京都的に行きます」という認識文字列のうちの、参照文字列とした文字列の範囲を拡張して、拡張後の文字列を新たな参照文字列として決定することとなる。具体的には、参照文字列決定部318は、「変換対象文字列の後方の1形態素を参照文字列とする」という条件のうちの形態素の数を増やして、新たな参照文字列を決定する。たとえば、参照文字列決定部318は、「変換対象文字列の後方の1形態素を参照文字列とする」という条件のうちの形態素の数を1つ増やして、「変換対象文字列の後方の2形態素を参照文字列とする」と条件に変更し、これに該当する「に行き」を新たな参照文字列とするのである。
【0069】
この場合、変換候補文字列決定部320が、第2言語モデルを参照して、当該第2言語モデルにおいて参照文字列「に行き」が後続する文字列として、参照文字列「に行き」との接続関係が示されている複数の第1の文字列を、変換候補文字列として決定する。たとえば、図12に示す第2言語モデルによると、「東京」、「京都」、「学校」、「どこか」といった4つの文字列が、変換候補文字列として仮決定される。
【0070】
ここで、仮決定された変換候補文字列の数が所定数よりも少ない場合は、この仮決定された変換候補文字列の一部または全部が、正式な変換候補文字列として決定される。なおも、仮決定された変換候補文字列の数が所定数よりも多い場合、参照文字列決定部318が、「今から京都的に行きます」という認識文字列のうちの、参照文字列とした文字列の範囲をさらに拡張して、拡張後の文字列を新たな参照文字列として決定することとなる。たとえば、参照文字列決定部318は、「変換対象文字列の後方の2形態素を参照文字列とする」と変更された条件のうちの形態素の数をさらに1つ増やして、「変換対象文字列の後方の3形態素を参照文字列とする」という条件に変更し、これに該当する「に行きます」を新たな参照文字列とするのである。
【0071】
この場合、変換候補文字列決定部320が、第2言語モデルを参照して、当該第2言語モデルにおいて参照文字列「に行きます」が後続する文字列として、参照文字列「に行きます」との接続関係が示されている複数の第1の文字列を、変換候補文字列として決定する。たとえば、図12に示す第2言語モデルによると、「東京」、「京都」といった2つの文字列が、変換候補文字列として仮決定される。
【0072】
このように、第3実施形態の音声認識装置は、参照文字列に対応付けられている文字列の数が所定数よりも少なくなるまで参照文字列の範囲を拡張していく、といった簡素な処理によって、膨大な数の変換候補文字列を、適切な数かつ適切な内容の変換候補文字列へと絞り込んでいくことができるのである。
【0073】
(第4実施形態)
次に、第4実施形態を説明する。実施形態で説明した各機能部について、これらの一部を外部の情報処理装置に設けて、音声認識装置100は、外部の情報処理装置から一部のデータを参照したり、外部の情報処理装置に一部の処理をおこなわせたりする構成としてもよい。すなわち、音声認識装置100は、第1実施形態のように単独で音声認識処理をおこなうものに限らず、他の情報処理装置との通信をおこなって、音声認識処理をおこなうようなものであってもよい。この第4実施形態では、音声認識装置100を、他の情報処理装置との通信をおこなって、音声認識処理をおこなうように構成する場合の一例を説明する。
【0074】
図13は、第4実施形態にかかる音声認識装置100の機能構成を示す。この第4実施形態では、音声認識装置100がクライアント装置11となり、サーバ装置12とともに、音声認識システム10を構成する。そして、音声認識装置100からの要求に応じて、サーバ装置12が音声認識処理をおこない、その処理結果を音声認識装置100へ送信する構成となっている。
【0075】
図13は、第4実施形態にかかる音声認識装置100の機能構成を示す。この第4実施形態では、音声認識装置100がサーバ装置12との通信をおこなう通信部330を備える。また、音響モデル格納部302、第1言語モデル格納部304、および音声認識部314が、サーバ装置12に格納されている。これに応じて、音声認識装置100は、通信部330によるサーバ装置12との通信によって、サーバ装置12の音声認識部314へ音声データを受け渡し、音声認識処理をおこなわせ、その認識結果(認識文字列)を、サーバ装置12から受け取るようになっている。
【0076】
このように構成された音声認識システム10によれば、音響モデル格納部302、第1言語モデル格納部304、および音声認識部314をサーバ装置12に設けたことで、たとえば、複数のクライアント装置11が音声認識システムに設けられている場合、これら複数のクライアント装置11で、音声認識処理を共有することができる。これにより、クライアント装置11によって音声認識処理結果が異なるようなこともなく、複数のクライアント装置11に対して均質な音声認識処理結果を提供することができる。また、音響モデルおよび第1言語モデルが一元化されているため、音響モデルおよび第1言語モデルのメンテナンスを容易におこなうことができるようになる。
【0077】
また、第2言語モデル格納部306をサーバ装置12に設けず、音声認識装置100に設けたことで、たとえば、複数のクライアント装置11が音声認識システムに設けられている場合、複数のクライアント装置11の各々の第2モデルの内容を、各々のクライアント装置11のユーザの傾向に応じて異ならせることができる。これにより、音声認識システム10は、あるクライアント装置11において音声認識処理の要求があると、そのクライアント装置11のユーザの傾向に応じた第2モデルを適用して、そのユーザが過去に入力した文章に含まれている文字列の中から、変換候補文字列を決定することができるので、クライアント装置11のユーザに対して、より適切な処理結果を提供することができる。
【0078】
(変形例)
なお、本発明は、上記した形態での実施に限らず、以下のように変形させて実施してもよい。また、以下の変形例を組み合わせてもよい。
【0079】
(変形例1)
各実施形態では、音声認識装置の一例として音声認識機能を有するパーソナル・コンピュータを用いたが、これに限らず、音声認識装置は、実施形態で説明した音声認識装置100と同様の音声認識機能を実現することができるものであれば、携帯電話機、PDA(Personal Digital Assistant)、ナビゲーション装置、携帯音楽プレーヤー、ノートPC(Personal Computer)、家電製品など、どのような機器であってもよい。
【0080】
(変形例2)
第3実施形態では、文字列の範囲が異なる複数の参照文字列を決定し、決定された複数の参照文字列のうちの、適切な変換候補文字列が得られる参照文字列を用いて、変換対象文字列を変換する候補の変換候補文字列を決定する構成の一具体例として、参照文字列に対応付けられている文字列の数が所定数よりも少なくなるまで参照文字列の範囲を後方に拡張していくことによって、変換候補文字列の数を絞り込む例を説明したが、これに限定するものではない。たとえば、参照文字列の範囲を前方に拡張したり、前後の双方に拡張したりすることによって、変換候補文字列の数を絞り込むようにしてもよい。また、参照文字列に対応付けられている文字列の数が下限値よりも少ない場合は、下限値よりも多くなるまで参照文字列の範囲を縮小していくことによって変換候補文字列の数を増やすようにしてもよい。また、参照文字列に対応付けられている文字列のうちの、所定の相関度以上の相関度を有する文字列の数が上限値よりも少なくなるか、もしくは下限値よりも多くなるまで、参照文字列の範囲を拡張していくことによって変換候補文字列の数を絞り込むか、もしくは、参照文字列の範囲を縮小していくことによって変換候補文字列の数を増やすようにしてもよい。また、全ての文字列の相関度がある閾値よりも低ければ、この閾値よりも相関度が高い文字列が出現するまで、参照文字列の範囲を縮小していくことによって変換候補文字列の数を増やすようにしてもよい。また、全ての文字列の相関度がある閾値よりも高ければ、この閾値よりも相関度が低い文字列が出現するまで、参照文字列の範囲を拡張していくことによって変換候補文字列の数を絞り込むようにしてもよい。
【0081】
(変形例3)
第4実施形態において、複数のクライアント装置11で音声認識部314による音声認識処理を共有することで、複数のクライアント装置11の各々に対して、均質な処理結果を提供することができる構成であれば、音声認識システム10は、どのような装置構成であってもよく、また、各装置に対してどのような機能が設けられていてもよい。たとえば、第4実施形態において、音声認識部314を、音声認識装置100に設け、音声認識部314は、通信部330によるサーバ装置12との通信によって、サーバ装置12に設けられた音響モデル格納部302および第1言語モデル格納部304から、音響モデルおよび第1言語モデルを参照するように構成してもよい。また、音声認識部314だけでなく、変換対象文字列決定部316や、参照文字列決定部318を、サーバ装置12に設ける構成としてもよい。また、サーバ装置12およびクライアント装置11とは別に、音声認識装置100を設け、音声認識装置100が、クライアント装置11から音声データを取得して、そのクライアント装置11に設けられた第2言語モデルを参照して、これまでに説明した音声認識処理をおこない、その処理結果として、認識文字列および変換候補文字列をそのクライアント装置11に出力する構成としてもよい。
【0082】
(変形例4)
各実施形態において、音声認識部314は、複数の認識文字列を生成するものであってもよい。たとえば、変換対象文字列決定部316が、「今から京都駅に行きます」という音声データから、第1候補の「今から京都的に行きます」という認識文字列と、第2候補の「今から京都劇に行きます」という認識文字列とを生成するといった具合である。
【0083】
ここで、変換対象文字列決定部316が、第1候補の認識文字列から「的」を第1候補の変換対象文字列として決定し、第2候補の認識文字列から「劇」を第2候補の変換対象文字列として決定し、参照文字列決定部318が、これらの変換対象文字列に共通する「京都」を参照文字列として決定したとする。この場合、変換候補文字列決定部320は、参照文字列「京都」との接続関係を有する文字列の中から、第1候補の変換対象文字列「的」との相関度と、第2候補の変換対象文字列「劇」との相関度との双方に基づいて、変換候補文字列を決定するようにしてもよい。
【0084】
上記において、たとえば「駅」、「市」、「府」、「の」のそれぞれが変換候補文字列として決定された場合、出力部322は、認識文字列として、第1候補の「今から京都的に行きます」という認識文字列を出力し、変換候補文字列として、「駅」、「市」、「府」、「の」のそれぞれに加えて、第2候補の変換対象文字列「劇」を出力してもよい。また、仮に第2の候補の変換対象文字列が、変換候補文字列と同じ「駅」であった場合、変換候補文字列「駅」の優先度を高めて、変換候補文字列として、「駅」、「市」、「府」、「の」を出力してもよい。これによれば、たとえば、「駅」と発音されたが、音声の歪みにより、「駅」が第2の候補の変換対象文字列となってしまった場合であっても、このように優先度を高めることで、正しく「駅」に訂正される可能性を高めることができる。
【符号の説明】
【0085】
100…音声認識装置、110…本体、120…マイク、130…ディスプレイ、140…スピーカ、150…キーボード、160…マウス、302…音響モデル格納部、304…第1言語モデル格納部、306…第2言語モデル格納部、312…音声データ取得部、314…音声認識部、316…変換対象文字列決定部、318…参照文字列決定部、320…変換候補文字列決定部、322…出力部、330…通信部
【技術分野】
【0001】
本発明は、音声認識装置および音声認識方法に関する。
【背景技術】
【0002】
マイクから入力された音声から、この音声の内容を示す文字列を生成して出力する音声認識技術が知られている。具体的には、音響モデルおよび言語モデルを参照して、入力された音声と文字列とのマッチング処理をおこなうことで、統計的に尤もらしい文字列を認識結果として出力する。音響モデルとは、音声の特徴量と文字との対応関係およびその統計情報を示すものである。また、言語モデルは、文字列間の接続関係およびその統計情報を示すものである。
【0003】
このような音声認識技術では、周囲の雑音などにより音声に歪みが生じた場合や、言語モデルに登録されていない語彙が発音された場合などには、音声が誤認識されて、間違った文字列を認識結果として出力してしまう。この場合、ユーザは、出力された認識結果のうちの間違っている文字列を、キーボードなどの入力デバイスを操作して、手作業で訂正する必要があった。
【0004】
そこで、特許文献1には、このようなユーザの操作負担を軽減することを目的とし、認識結果の単語に対して、この単語との競合確率が近い単語を訂正候補単語として提示し、認識結果の単語をこの訂正候補単語に変換するかをユーザに選択させる技術が開示されている。この技術によれば、ユーザは訂正候補単語を選択するだけで認識結果の単語を訂正することができるので、ユーザの操作負担を軽減することができるとされている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−146008号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の技術では、音声認識処理についてもその訂正処理についても、1つの言語モデルの内容に基づいておこなっているから、なおも正しい単語となる訂正単語が言語モデルに登録されていない場合には、正しい単語をユーザに提示することができない。従って、結局、ユーザは、出力された認識結果のうちの間違っている文字列を、キーボードなどの入力デバイスを操作して、手作業で訂正する必要があった。
【0007】
本発明の目的は、音声認識処理で間違って認識された文字列に対する変換候補を、上記音声認識処理とは異なる根拠に従って決定することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明にかかる音声認識装置は、音声データを取得する音声データ取得部と、音声の特徴量と文字との対応関係を示す音響モデルおよび文字列間の接続関係を示す第1言語モデルを参照して、前記音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識部と、前記認識文字列のうち、ユーザによって指定された文字列、認識結果としての信頼度が所定の閾値よりも低い文字列、または、認識結果としての信頼度が所定の閾値よりも低い文字列の組み合わせからなる文字列を、変換対象文字列として決定する変換対象文字列決定部と、前記認識文字列において、決定された前記変換対象文字列の直前または直後に接続された文字列から予め定められた条件に従って参照文字列を決定する参照文字列決定部と、ユーザが過去に入力した文字列から抽出された文字列同士の接続関係を示す第2言語モデルを参照して、決定された前記参照文字列との接続関係が示されている文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定部と、決定された前記変換候補文字列を出力する出力部とを備えることを特徴とする。
【0009】
好ましくは、前記第2言語モデルにおいて、前記参照文字列に対して所定の範囲外の数の前記変換候補文字列が得られた場合、前記参照文字列決定部は、前記認識文字列において、前記変換対象文字列の直前または直後に接続された文字列の数を増減して、その増減後の数の文字列を新たな参照文字列として決定し、前記変換候補文字列決定部は、前記第2言語モデルにおいて前記新たな参照文字列との接続関係が示されている文字列を、前記変換候補文字列として決定するとよい。
【0010】
好ましくは、前記出力部は、前記認識文字列における前記変換対象文字列を、前記変換候補文字列に変換して、変換後の前記認識文字列を出力するとよい。
【0011】
好ましくは、前記変換候補文字列決定部は、前記第2言語モデルにおいて前記参照文字列との接続関係が示されている文字列のそれぞれについて、前記変換対象文字列との相関度を算出し、少なくとも、当該相関度が最も高い文字列または当該相関度が閾値よりも高い文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定するとよい。
【0012】
好ましくは、前記出力部は、前記変換候補文字列の音素のうち、前記変換対象文字列の音素と一致しない音素が削除された変換候補文字列、または、前記変換候補文字列と前記参照文字列との接続関係について文法チェックをおこなうことにより特定された前記変換候補文字列に含まれる出力不要な文字が削除された変換候補文字列を出力するとよい。
【0013】
好ましくは、前記音響モデルおよび前記第1言語モデルを記憶したサーバ装置との通信をおこなう通信部を備え、前記音声認識部は、前記通信部による前記サーバ装置との通信によって、前記サーバ装置が記憶している前記音響モデルおよび前記第1言語モデルを参照し、前記音声認識処理をおこなうとよい。
【0014】
また、本発明にかかる音声認識方法は、音声認識装置による音声認識方法であって、音声データを取得する音声データ取得工程と、音声の特徴量と文字との対応関係を示す音響モデルおよび文字列間の接続関係を示す第1言語モデルを参照して、前記音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識工程と、前記認識文字列のうち、ユーザによって指定された文字列、認識結果としての信頼度が所定の閾値よりも低い文字列、または、認識結果としての信頼度が所定の閾値よりも低い文字列の組み合わせからなる文字列を、変換対象文字列として決定する変換対象文字列決定工程と、前記認識文字列において、決定された前記変換対象文字列の直前または直後に接続された文字列から予め定められた条件に従って参照文字列を決定する参照文字列決定工程と、ユーザが過去に入力した文字列から抽出された文字列同士の接続関係を示す第2言語モデルを参照して、決定された前記参照文字列との接続関係が示されている文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定工程と、決定された前記変換候補文字列を出力する出力工程とを備えることを特徴とする。
【発明の効果】
【0015】
本発明によれば、音声認識処理で間違って認識された文字列に対する変換候補を、上記音声認識処理とは異なる根拠に従って決定することができる。
【図面の簡単な説明】
【0016】
【図1】第1実施形態にかかる音声認識装置100の構成を示す。
【図2】音声認識装置100のハードウェア構成の一例を示す。
【図3】音声認識装置100の機能構成を示す。
【図4】第2言語モデルの一例を示す。
【図5】音声認識装置100による処理の手順を示す。
【図6】音声認識部314による音声認識処理の一例を示す。
【図7】音声認識部314によって算出された信頼度の一例を示す。
【図8】変換候補文字列の相関度の一例を示す。
【図9】変換候補文字列の出力例を示す。
【図10】変換対象文字列の変換例を示す。
【図11】第2実施形態にかかる第2言語モデルの一例を示す。
【図12】第3実施形態にかかる第2言語モデルの一例を示す。
【図13】第4実施形態にかかる音声認識装置100の機能構成を示す。
【発明を実施するための形態】
【0017】
本発明は、一実施形態のために示された添付図面を参照して以下の詳細な記述を考慮することによって容易に理解することができる。引き続き、添付図面を参照しながら本発明の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
【0018】
(第1実施形態)
まず、第1実施形態を説明する。図1は、第1実施形態にかかる音声認識装置100の構成を示す。音声認識装置100は、入力された音声を認識して、認識した音声に応じた文字を出力する装置である。この第1実施形態では、音声認識機能を有するパーソナル・コンピュータを、音声認識装置100として用いている。
【0019】
音声認識装置100は、本体110、マイク120、ディスプレイ130、スピーカ140、キーボード150、およびマウス160を備える。たとえば、ユーザが音声を発すると、この音声がマイク120によって本体110へ入力される。本体110は、入力された音声に対する音声認識処理をおこなうことにより、入力された音声を認識して、認識した音声に応じた文字を出力する。たとえば、本体110は、認識された文字を示す画像をディスプレイ130に表示させたり、認識された文字に応じた音声をスピーカ140から発せさせたりする。キーボード150およびマウス160は、音声認識処理をおこなう際、ユーザからの指示の入力が必要な場合に、当該入力をおこなうための入力装置として利用される。
【0020】
図2は、音声認識装置100のハードウェア構成の一例を示す。音声認識装置100は、すでに説明した本体110、マイク120、ディスプレイ130、スピーカ140、キーボード150、およびマウス160に加え、本体110の内部に、CPU1505、ROM1510、RAM1520、外部メモリドライブ1540、外部メモリ1542、通信インターフェース1550、および入出力機器インターフェース1560を備える。
【0021】
ROM1510、RAM1520、および外部メモリ1542は、各種データおよび各種プログラムを格納する。CPU1505は、ROM1510、RAM1520、または外部メモリ1542に格納されたプログラムを実行することで、各種データ処理および各種ハードウェア制御をおこなう。
【0022】
通信インターフェース1550は、外部装置との通信を制御する。外部メモリドライブ1540は、外部メモリ1542に接続し、外部メモリ1542に対するデータの読み書きをおこなう。外部メモリ1542としては、たとえば、CD(Compact Disc)、DVD(Digital Versatile Disc)、メモリカード等が挙げられる。
【0023】
入出力機器インターフェース1560は、本体110に接続された各種入出力機器による、データの入出力を制御する。すでに説明したとおり、本体110には、入出力機器として、マイク120、ディスプレイ130、スピーカ140、キーボード150、およびマウス160が接続されている。よって、入出力機器インターフェース1560は、これらの入出力機器による、データの入出力を制御する。
【0024】
たとえば、音声認識装置100においては、ROM1510、RAM1520、または外部メモリ1542が、図3以降で説明する音響モデル格納部302、第1言語モデル格納部304、および第2言語モデル格納部306として機能する。また、音声認識装置100においては、CPU1505が、ROM1510、RAM1520、または外部メモリ1542に格納されている音声認識プログラムを実行して、マイク120を制御することにより、図3以降で説明する音声データ取得部312として機能する。また、音声認識装置100においては、CPU1505が、上記音声認識プログラムを実行することにより、図3以降で説明する音声認識部314、変換対象文字列決定部316、参照文字列決定部318、および変換候補文字列決定部320として機能する。また、音声認識装置100においては、CPU1505が、上記音声認識プログラムを実行して、ディスプレイ130またはスピーカ140を制御することにより、図3以降で説明する出力部322として機能する。また、音声認識装置100においては、CPU1505が、上記音声認識プログラムを実行して、通信インターフェース1550を制御することにより、図13で説明する通信部330として機能する。
【0025】
上記音声認識プログラムは、たとえば、音声認識装置100にインストールされた状態で、ユーザに提供される。他の例として、上記音声認識プログラムは、コンピュータ読み取り可能な記録媒体に格納されてユーザに提供され、音声認識装置100にインストールされてもよい。この他にも、上記音声認識プログラムは、CPU1505が実行するプログラムは、外部装置から通信ネットワークを介してユーザに提供され、音声認識装置100にインストールされてもよい。
【0026】
図3は、音声認識装置100の機能構成を示す。ここでは、音声認識装置100が備える機能のうち、音声認識処理に関連する機能を中心に説明する。音声認識装置100は、音響モデル格納部302、第1言語モデル格納部304、第2言語モデル格納部306、音声データ取得部312、音声認識部314、変換対象文字列決定部316、参照文字列決定部318、変換候補文字列決定部320、および出力部322を備える。
【0027】
音響モデル格納部302は、音声の特徴量と文字との対応関係およびその統計情報が示されたいわゆる音響モデルを格納する。音声の特徴量としては、MFCC(Mel Frequency Cepstrum Coefficient:メル周波数ケプストラム係数)が挙げられる。第1言語モデル格納部304は、文字列間の接続関係およびその統計情報が示されたいわゆる言語モデルを格納する。第2言語モデル格納部306は、少なくとも文字列間の接続関係が示された言語モデルを格納する。
【0028】
ここで、上記接続関係および上記統計情報について説明すると、たとえば、文字列「私に」は、文字列「私」と文字列「に」とが接続されたものといえる。また、文字列「私が」は、文字列「私」と文字列「が」とが接続されたものといえる。そこで、第1言語モデルおよび第2言語モデルには、上記した文字列「私」と文字列「に」との接続関係や、文字列「私」と文字列「が」との接続関係といったような、各文字列間の接続関係が示される。統計情報とは、多数の文章データにおいて、形態素や単語といった単位での文字列の接続がどの程度の確率で起こりうるかを示すものである。たとえば、上記例でいえば、多数の文章データにおける、「私」に「に」が続く確率や、「私」に「が」が続く確率などがこれに該当する。ただし、言語モデルは上記例のような2つの形態素間の接続関係に限らず、「私に」や「私が」を1文字列として接続関係を保ってもよく、その接続数も1、2、3、…のいずれでもよく、音声認識の処理が実行できればよい。
【0029】
第2言語モデル格納部306に格納されている言語モデルは、第1言語モデル格納部304に格納されている言語モデルとは別に設けられている言語モデルであり、第1言語モデル格納部304に格納されている言語モデルを補うものであるが、その内容は第1言語モデルと異なるものであっても同じものであってもよい。以降、これらを区別するため、第1言語モデル格納部304に格納されている言語モデルを「第1言語モデル」と示す。また、第2言語モデル格納部306に格納されている言語モデルを「第2言語モデル」と示す。上記において第1言語モデルと第2言語モデルとが別に設けられているとは論理上のことを意味しており、物理的には同一の装置に設けられていてもよく、別々の装置に設けられていてもよい。
【0030】
図4は、第2言語モデルの一例を示す。図4は、第2言語モデル格納部306に格納されている第2言語モデルの一例を示すものである。ここで、すでに説明したとおり、第2言語モデルは、少なくとも文字列の接続関係が示されている。この第2言語モデルは、たとえば、ユーザが過去に入力した文章データベースを分析することにより、予め生成することや、ユーザの入力によって逐次更新するものである。なお、第2言語モデルには、文字列の接続関係のほか、統計情報が示されていてもよい。また、第2言語モデルにおいては、その情報量を抑制するため、統計確率の低い接続関係や、時系列的に古い接続関係が削除されてもよい。図4に示す例では、第2言語モデルとして、形態素単位の文字列間の接続関係が示されている。たとえば、図4に示す例では、第1の文字列「京都」の後方に接続する第2の文字列として、「府」、「市」、「駅」、「の」のそれぞれが対応付けられている。これらの接続関係は、たとえば、ユーザが過去に入力した「京都府の県庁所在地は京都市です」という文字列と、「京都駅は京都の中心ですか」という文字列とが分析されて、これらの文字列に含まれる形態素単位の文字列間の接続関係として、第2言語モデルに加えられたものである。このように、ユーザが過去に入力した文字列に基づいて、ユーザオリジナルの第2言語モデルを形成することで、そのユーザによってまた利用される可能性の高い文字列を、変換候補文字列として提示できる。
【0031】
図5は、音声認識装置100による処理の手順を示す。以降、図5に示す処理手順にしたがって、図3に示した各機能部の詳細について説明する。
【0032】
(ステップS502)
音声データ取得部312が、音声認識処理の対象とする音声データを取得する。具体的には、音声データ取得部312は、マイク120から入力された音声信号を、音声認識処理の対象とする音声データとして取得する。既に音声データがメモリ等の記憶媒体に格納されている場合、音声データ取得部312は、この記憶媒体に格納されている音声データを、音声認識処理の対象とする音声データとして取得してもよい。
【0033】
(ステップS504)
音声認識部314が、音響モデル格納部302に格納された音響モデルおよび第1言語モデル格納部304に格納された第1言語モデルに基づく音声認識処理をおこなうことで、ステップS502で取得された音声データが示す音声を認識して、尤もらしい文字列を、当該認識結果を示す認識文字列として生成する。ここで、音声認識部314による音声認識処理の一例について説明する。図6は、音声認識部314による音声認識処理の一例を示す。この例では、音声認識部314によって、「今から京都駅に行きます」という音声の音声データから、「今から京都的に行きます」という認識文字列が生成されている。この例では、音声認識部314は、「駅」を「的」と誤って認識してしまっている。この理由としては、たとえば、「駅」という単語が第1言語モデルに示されていない、音声データに含まれている雑音などにより音声に歪みが生じて「駅」が認識結果およびその候補とされなかった等、様々な理由が挙げられる。なお、音響モデルの構成、第1言語モデルの構成、および音声認識部314による音声認識処理の具体的な方法は様々である。本実施形態では、音声データから認識文字列を生成することができればよいため、これを実現することができるものであれば、これらについてどのようなものを用いてもよい。
【0034】
(ステップS506)
音声認識部314が、ステップS504で生成された認識文字列を構成する文字列のそれぞれについて、音声認識の信頼度を算出する。ここで、音声認識部314によって算出された信頼度の一例について説明する。図7は、音声認識部314によって算出された信頼度の一例を示す。図7は、音声認識部314によって生成された「今から京都的に行きます」という認識文字列を構成する形態素のそれぞれについての、音声認識部314が算出した音声認識の信頼度を示す。ここでいう信頼度とは、音声データから文字列が正しく認識された可能性の度合いを示す。信頼度が高いほど、その文字列が正しく認識された可能性が高いことを示す。たとえば、図7に示す例では、「今から京都的に行きます」という認識文字列を構成する、「今」、「から」、「京都」、「的」、「に」、「行き」、「ます」の各形態素のそれぞれについて、信頼度が示されている。この例では、「今」の信頼度は「95」、「から」の信頼度は「92」、「京都」の信頼度は「80」、「的」の信頼度は「50」、「に」の信頼度は「70」、「行き」の信頼度は「93」、「ます」の信頼度は「93」である。
【0035】
たとえば、音声認識部314は、音声データの特徴量と音響モデルの特徴量との一致度が高いほど、その文字列の信頼度を高く算出する。また、音声認識部314は、第1言語モデルに示されている統計情報に基づいて、この文字列の出現確率や出現頻度が高いほど、この文字列の信頼度を高く算出する。さらに、音響モデルと言語モデルの双方を参照し複合的に信頼度を決定することも考えられる。たとえば、「京都」、「的」、「に」、「行き」、「ます」からなる認識文字列について、「京都」と「に」と「行き」と「ます」とが組み合わせてよく利用される場合は、これらの文字列の出現確率が高いということであるから、これらの信頼度を高める。一方、「的」については、「京都」、「行き」、「ます」との組み合わせはほとんど使用されないとすると、この文字列「的」の出現確率が低いということであるから、この文字列「的」の信頼度を低める。
【0036】
上記以外にも、文法上の不自然さが少ないものほど信頼性を高く算出したり、同音異義語が多いほど、信頼性を低く算出したりするようにしてもよい。要するに、間違っている可能性が低いものであるほど、その文字列の信頼度を高く算出すればよく、その方法はどのようなものであってもよい。
【0037】
(ステップS508)
変換対象文字列決定部316が、ステップS504で生成された認識文字列のうちの、変換対象とする変換対象文字列を決定する。たとえば、変換対象文字列決定部316は、音声認識部314が生成した認識文字列のうちの、認識結果としての信頼度が所定の閾値よりも低い文字列、あるいはその組み合わせからなる文字列を、変換対象文字列として決定する。この方法を適用した場合、間違っている可能性の高い文字列を、変換対象文字列として決定することができる。また、変換対象文字列をユーザに選択させるようなことがないので、ユーザの操作負担を軽減することができる。たとえば、所定の閾値として「60」が設定されており、図7に示したとおり、「今から京都的に行きます」という認識文字列を構成する、「今」、「から」、「京都」、「的」、「に」、「行き」、「ます」の各形態素のそれぞれについての信頼度が算出されている場合、変換対象文字列決定部316は、これら形態素のうち、信頼度として「60」よりも低い「50」が算出されている「的」を、変換対象文字列として決定する。
【0038】
他の例として、変換対象文字列決定部316は、音声認識部314が生成した認識文字列のうちの、任意の文字列をユーザに指定させ、ユーザによって指定された文字列を、変換対象文字列として決定するようにしてもよい。たとえば、変換対象文字列決定部316は、音声認識部314が生成した認識文字列をディスプレイ130に表示させる。ユーザは、ディスプレイ130に表示された認識文字列に対して、キーボード150またはマウス160を用いて、誤認識されたと判断した任意の文字列を指定する。そして、変換対象文字列決定部316は、このようにしてユーザによって指定された任意の文字列を、変換対象文字列として決定する。この方法を適用した場合、変換対象文字列をユーザが選択するので、間違っていることが確実な文字列を、変換対象文字列として決定することができる。すなわち、高い精度で変換対象文字列を決定することができる。なお、ユーザによる任意の文字列の指定方法は、上記したものに限らない。たとえば、ディスプレイ130の表面にタッチパネルが設けられている場合、このタッチパネルによってユーザが任意の文字列を指定するようにしてもよい。
【0039】
(ステップS510)
参照文字列決定部318が、ステップS504で生成された認識文字列のうちの、ステップS508で決定された変換対象文字列の前または後ろに接続された一部の文字列を参照文字列として決定する。具体的には、参照文字列決定部318は、音声認識部314が生成した認識文字列の前または後ろに接続された文字列のうちの、予め定められた条件に合致する文字列を、参照文字列として決定する。この条件には、変換対象文字列を基準とした参照文字列の方向、参照文字列を構成する文字列の単位、および参照文字列を構成する文字列の数が含まれる。たとえば、認識文字列を基準とした参照文字列の方向には、「前方」、「後方」、または「前方と後方の双方」のいずれかが設定される。また、参照文字列を構成する文字列の単位には、「文字」、「単語」、「形態素」、「文節」等が設定される。また、参照文字列を構成する文字列の数としては、「1」等の任意の整数が設定される。これらが組み合わされて、たとえば「変換対象文字列の前方の1形態素を参照文字列とする」といった条件が予めメモリ等の記憶媒体に格納されているのである。この「変換対象文字列の前方の1形態素を参照文字列とする」という条件によれば、たとえば、上記したとおり、「今から京都的に行きます」という認識文字列のうちの、「的」が変換対象文字列として決定された場合、この「的」の前方にある1つの形態素である「京都」が、参照文字列として決定される。また、「変換対象文字列の前方および後方の1文字を参照文字列とする」という条件によれば、この「的」の前方の1文字である「都」と、後方の1文字である「に」とが、参照文字列として決定される。
【0040】
(ステップS512)
変換候補文字列決定部320が、第2言語モデルを参照して、当該第2言語モデルにおいてステップS510で決定された参照文字列との接続関係が示されている文字列を、ステップS508で決定された変換対象文字列を変換する候補の変換候補文字列として決定する。たとえば、上記したとおり、変換対象文字列として「的」が決定され、参照文字列として「京都」が決定されたとする。そして、図4に示すとおり、第2言語モデルにおいて、文字列「京都」と、「府」、「市」、「駅」、「の」のそれぞれとの対応関係が示されているとする。この場合、変換候補文字列決定部320は、これら「府」、「市」、「駅」、「の」のそれぞれを変換候補文字列として決定する。変換候補文字列には、変換対象文字列と同じ文字列が含まれていてもよい。たとえば、上記例では、変換対象文字列「的」に対し、変換候補文字列「的」が含まれていてもよい。
【0041】
ここで、変換候補文字列決定部320は、これら複数の変換候補文字列を、変換対象文字列を変換する候補の変換候補文字列として決定するようにしてもよい。また、変換候補文字列決定部320は、変換候補文字列の出力数を抑えるべく、これら複数の変換候補文字列のうちの一部を、変換対象文字列を変換する候補の変換候補文字列として決定するようにしてもよい。
【0042】
たとえば、変換候補文字列決定部320は、参照文字列に対応付けられている複数の文字列のそれぞれについて、変換対象文字列との相関度を算出し、算出した相関度に基づいて、複数の文字列の中から、変換候補文字列を決定してもよい。たとえば、変換候補文字列決定部320は、変換対象文字列との相関度の最も高い文字列を変換候補文字列として決定してもよい。また、変換候補文字列決定部320は、変換対象文字列との相関度が閾値よりも高い文字列を変換候補文字列として決定してもよい。また、変換対象文字列との相関度の高い順に所定数の文字列を変換候補文字列として決定してもよい。また、変換対象文字列との相関度が閾値以上の文字列を変換候補文字列として決定してもよい。
【0043】
図8は、変換候補文字列の相関度の一例を示す。図8は、変換対象文字列「的」に対して、変換候補文字列決定部320が決定した「府」、「市」、「駅」、「の」という変換候補文字列のそれぞれについての、変換候補文字列決定部320が算出した相関度を示す。ここでいう相関度とは、変換対象文字列の類似度を示すものである。たとえば、変換候補文字列決定部320は、変換対象文字列との発音の類似度がより高い変換候補文字列の相関度をより高く算出する。この例では、変換候補文字列決定部320は、変換対象文字列との発音の類似度を、変換対象文字列と一致する音素(よみがなを示すローマ字)の数に基づいて算出する。すなわち、変換対象文字列との音素の一致度を、変換対象文字列との発音の類似度として算出する。たとえば、「的」の音素は「t」、「e、「k」、「i」である。これに対し、「府」の音素は「h」、「u」である。このように、「的」と「府」とでは、一致する音素の数が「0」であるから、変換候補文字列決定部320は、この「0」を、変換候補文字列「府」の相関度として決定する。一方、「駅」の音素は「e」、「k」、「i」である。このように、「的」と「駅」とでは、一致する音素の数が「3」であるから、変換候補文字列決定部320は、この「3」を、変換候補文字列「駅」の相関度として決定する。このようにして、変換候補文字列決定部320は、複数の変換候補文字列のそれぞれの相関度を算出するのである。そして、たとえば、変換候補文字列決定部320は、複数の変換候補文字列のうち、相関度が最も高い文字列、閾値よりも高い文字列、あるいは相関度の高い順に所定数の文字列を、変換対象文字列を変換する候補の変換候補文字列として決定したりするのである。なお、変換候補文字列決定部320は、変換対象文字列との発音の類似度を、変換対象文字列と一致するよみがなの数に基づいて算出するなど、上記した変換対象文字列との音素の一致度による方法以外の方法によって算出してもよい。
【0044】
変換候補文字列決定部320は、算出した相関度をそのまま用いて変換候補文字列を決定するのではなく、算出した相関度に対して、所定の係数を乗じたり、加算するなどしてから、変換候補文字列を決定するようにしてもよい。たとえば、子音の一致数に対して、この子音に応じた係数を乗じたり、加算したりし、母音の一致数に対して、この母音に応じた係数を乗じたり、加算したりして、最終的に相関度を決定してもよい。たとえば、変換対象文字列が「的」(teki)で、変換候補文字列が「劇」(geki)であれば、音素の一致数のみで判断すると、変換候補文字列が「劇」の相関度は「3」となる。このうち、子音の一致数は「1」である。また、母音の一致数は、「2」である。たとえば、子音に応じた係数が「1」であり、母音に応じた係数が「2」であるとする。子音の一致数である「1」に対して、この子音に応じた係数「1」を乗じると、子音の一致数に基づく相関度は「1」となる。また、母音の一致数である「2」に対して、この母音に応じた係数「2」を乗じると、母音の一致数に基づく相関度は「4」となる。これらの相関度を合計することで、最終的な変換候補文字列の相関度を「5」とすることができる。
【0045】
(ステップS514)
出力部322が、ステップS512で決定された変換候補文字列を出力する。たとえば、出力部322は、変換候補文字列を、認識文字列とともに、ユーザが視認できるよう、ディスプレイ130に表示させる。ここで、変換候補文字列が一つの場合、出力部322は、認識文字列における変換対象文字列を変換候補文字列に変換するか否かをユーザが選択可能な形態で出力する。また、変換候補文字列が複数の場合、出力部322は、これら複数の変換候補文字列を、いずれの変換候補文字列で変換対象文字列を変換するかをユーザが選択可能な形態で出力する。
【0046】
ここで、変換候補文字列決定部320が決定した変換候補文字列が一つであれば、出力部322は、認識文字列における変換対象文字列をこの変換候補文字列に変換して、変換後の認識文字列を出力してもよい。また、変換候補文字列が複数であれば、出力部322は、これら複数の変換候補文字列を、相関度の高い順に出力するようにしてもよい。この場合、出力部322は、相関度の最も高い変換候補文字列だけを出力するようにしてもよく、相関度の高い順に所定数の変換候補文字列を出力するようにしてもよく、相関度の高い順に相関度が閾値以上の変換候補文字列を出力するようにしてもよい。また、出力部322は、認識文字列における変換対象文字列を相関度の最も高い変換候補文字列に変換して、変換後の認識文字列を出力してもよい。
【0047】
図9は、変換候補文字列の出力例を示す。図9に示す画面900は、出力部322による出力処理によって、ディスプレイ130に表示された画面である。この画面900は、認識文字列に含まれる変換対象文字列を、変換候補文字列に変換するための画面である。この画面900には、認識文字列として「今から京都的に行きます」が表示されている。このうち、変換対象文字列である「的」については、これが変換対象文字列であることをユーザが認識できるように、太字および下線によって、強調表示されている。また、画面900には、変換候補文字列として「府」、「市」、「駅」、「の」が表示されている。ここで、図8に示したように、これらの変換候補文字列に対して、予め相関度が求められているから、画面900において、これらの変換候補文字列は、相関度の高い順に表示されている。ユーザは、複数の変換候補文字列の中から任意の変換候補文字列を選択することで、変換対象文字列を、選択した変換候補文字列に変換して、認識文字列を確定することができる。また、ユーザは、任意の変換候補文字列を選択せずに、「確定」ボタン910を選択することで、変換対象文字列を変換せずに、認識文字列「今から京都的に行きます」を確定することができる。
【0048】
(ステップS516)
変換対象文字列が変更され、もしくは変更されずに、認識文字列が確定すると、音声認識装置100は、この認識文字列をユーザが利用できるように、メモリ等の記憶媒体に格納したり、他のアプリケーションの入力文字列としたりして、一連の音声認識処理を終了する。
【0049】
図10は、変換対象文字列の変換例を示す。図10に示す画面900においては、認識文字列として「今から京都駅に行きます」が表示されている。これは、図9に示した画面900において、変換候補文字列「駅」をユーザが選択したことにより、変換対象文字列「的」が、変換候補文字列「駅」に変換され、この変換後の認識文字列が表示されたからである。ユーザは、「確定」ボタン910を選択することで、この認識文字列「今から京都駅に行きます」を、認識文字列として確定することができる。なお、音声認識装置100は、すでに説明したとおり、このようにユーザの選択によって変換対象文字列「的」を変換するのではなく、変換対象文字列「的」を、最も相関度の高い変換候補文字列「駅」に自動的に変換し、変換後の認識文字列「今から京都駅に行きます」を最初から表示するようにしてもよい。
【0050】
以上説明したように、第1実施形態の音声認識装置100は、変換対象文字列に接続された参照文字列を決定し、第2言語モデルにおいて参照文字列との接続関係が示されている文字列を、変換候補文字列として出力することとした。すなわち、第1実施形態の音声認識装置100は、音声認識処理で間違って認識された文字列に対する変換候補を、上記音声認識処理とは異なる根拠に従って決定することができるものである。これにより、音声認識処理で参照した第1言語モデルにおいて、変換対象文字列を変換するための正しい文字列が登録されていない場合であっても、この正しい文字列が第2言語モデルに登録されていれば、これを変換候補文字列として出力することができる。よって、第1実施形態の音声認識装置100は、音声認識処理で間違って認識された文字列に対する訂正候補として、より適切な文字列を出力することができる。
【0051】
(第2実施形態)
次に、第2実施形態を説明する。第1実施形態では、第2言語モデルにおいて文字列間の接続関係が形態素単位で示されていた。これに対し、第2実施形態では、第2言語モデルにおいて文字列間の接続関係がユーザ入力単位で示されている。ユーザがある文字列を入力する場合に、この文字列を複数の部分的な文字列に区切って段階的に入力する場合がある。たとえば、「京都府の県庁所在地は京都市です」という文字列を入力する場合に、この文字列を「京都」、「府の」、「県庁所在地」、「は」、「京都」、「市です」、という複数の部分的な文字列に区切って段階的に入力するといった具合である。
【0052】
図11は、第2実施形態にかかる第2言語モデルの一例を示す。図11は、第2言語モデル格納部306に格納されている第2言語モデルの一例を示すものであり、この例では、第2言語モデルとして、ユーザ入力単位の文字列間の接続関係が示されている。たとえば、図11に示す例では、第1の文字列「京都」の後方に接続する第2の文字列として、「府の」、「市です」、「駅は」、「の」のそれぞれが対応付けられている。これらの接続関係は、たとえば、ユーザが過去に入力した「京都府の県庁所在地は京都市です」という文字列と、「京都駅は京都の中心ですか」という文字列とが分析されて、これらの文字列に含まれるユーザ入力単位の文字列の接続関係として、第2言語モデルに加えられたものである。
【0053】
部分的な文字列の区切りは、たとえば、ユーザがENTERキーを押したタイミングや、文字列を変換した単位などによって決定される。たとえば、「京都」、ENTERキーを押下、「府の」、ENTERキーを押下という順番で入力がなされば、「京都」、「府の」といった単位で部分的な文字列が決定される。また、「きょうとふの」と入力された後に、「京都ふの」、「京都府の」といった順番で部分的な変換がなされた場合も同様に、「京都」、「府の」といった単位で部分的な文字列が決定される。
【0054】
ここで、「今から京都的に行きます」という認識文字列から、変換対象文字列決定部316によって変換対象文字列として「的」が決定され、参照文字列決定部318によって参照文字列として「京都」が決定されたとする。そして、図11に示すとおり、第2言語モデルにおいて、文字列「京都」に後続する文字列として、「府の」、「市です」、「駅は」、「の」のそれぞれが対応付けられているとする。そして、変換候補文字列決定部320が、これらの文字列の中から、「駅は」を変換候補文字列として決定したとする。この場合、「今から京都的に行きます」という認識文字列に対し、変換対象文字列「的」が、変換候補文字列「駅は」に変換されてしまうと、変換後の認識文字列は「今から京都駅はに行きます」となり、「は」が余分に含まれたものとなってしまう。この余分な文字を、ユーザが手作業で削除するようにしてもよいが、この場合、変換候補文字列の前後関係を考慮して手作業で不要な文字を削除する必要があり、ユーザの手間となってしまう。
【0055】
そこで、この第2実施形態では、このように変換候補文字列に含まれている余分な文字列を、出力部322が自動的に削除してから、変換後の変換候補文字列を出力することとした。以下、その具体的な方法を説明する。なお、変換候補文字列決定部320が変換候補文字列を決定するまでの処理は、これまで説明したとおりである。
【0056】
まず、変換候補文字列と変換対象文字列との相関関係に基づいて、変換候補文字列に含まれる不要な文字を削除する自動的に認識し、これを削除する第1の方法および第2の方法について説明する。
【0057】
第1の方法は、変換対象文字列のよみがなの文字数にあわせて、変換候補文字列から不要な文字を削除する方法である。たとえば、上記例でいえば、変換対象文字列「的」はよみがなで2文字であり、変換候補文字列「駅は」はよみがなで3文字であるから、これにあわせて、変換候補文字列「駅は」の後端1文字である「は」を削除するといった具合である。
【0058】
第2の方法は、変換候補文字列から変換対象文字列との相関性の高い部分を残しておき、その他の部分を削除する方法である。たとえば、上記例でいえば、変換対象文字列「的」の音素(よみがなを示すローマ字)は「t」、「e」、「k」、「i」である。また、変換候補文字列「駅は」の音素は「e」、「k」、「i」、「w」、「a」である。変換候補文字列「駅は」の音素のうち、変換対象文字列「的」の音素との相関性の高い音素として「e」、「k」、「i」を残しておき、その他の音素である「w」、「a」を削除する。その結果、変換候補文字列「駅は」から、「は」が削除される。
【0059】
つぎに、変換候補文字列と参照文字列との接続関係に基づいて、変換候補文字列に含まれる不要な文字を削除する自動的に認識し、これを削除する第3の方法について説明する。
【0060】
第3の方法は、変換後の認識文字列を仮生成し、これに対して(特に、変換候補文字列と参照文字列との接続関係について)文法チェックをおこなうことにより、変換候補文字列における不要な文字を特定し、これを削除する方法である。たとえば、上記例でいえば、「今から京都的に行きます」という認識文字列に対し、変換対象文字列「的」を、変換候補文字列「駅は」に変換して、変換後の認識文字列として「今から京都駅はに行きます」を仮生成する。そして、これに対して文法チェック処理をおこなえば、「は」が不要になることは明らかであるから、変換候補文字列「駅は」から「は」を削除する。
【0061】
このように、第2実施形態の音声認識装置は、変換候補文字列と変換対象文字列との相関関係、または変換候補文字列と参照文字列との接続関係に基づいて、変換候補文字列における不要な文字を自動的に認識し、これを削除してから、削除後の変換候補文字列を出力するので、変換候補文字列の前後関係を考慮して手作業で不要な文字を削除する、などといった、ユーザの手間を省くことができる。
【0062】
(第3実施形態)
次に、第3実施形態を説明する。第1実施形態では、第2言語モデルにおいて、参照文字列と複数の文字列との接続関係が示されている場合、これら複数の文字列の一部または全てを変換候補文字列として出力することとした。ここで、参照文字列との接続関係が示されている文字列が膨大な数の場合、これら複数の文字列の全てを変換候補文字列として出力してしまうと、ユーザが混乱してしまう。また、これら複数の文字列の一部を変換候補文字列として出力すると、膨大な数の文字列の中から変換候補文字列を決定するための処理に時間がかかってしまうばかりか、適切な変換候補文字列を決定することができない。
【0063】
図12は、第3実施形態にかかる第2言語モデルの一例を示す。図12は、第2言語モデル格納部306に格納されている第2言語モデルの一例を示すものである。たとえば、図12に示す例では、第2の文字列「に」は、第1の文字列として、「東京」、「京都」、「教頭」、「犬」、「音声」、「学校」、「どこか」、・・・というように、膨大な数の文字列との接続関係を有する。このために、この第2の文字列「に」を参照文字列として、この第2の文字列「に」との接続関係を有する第1の文字列の全部を変換候補文字列として出力してしまうと、ユーザが混乱してしまう。また、この第2の文字列「に」との接続関係を有する第1の文字列の一部を変換候補文字列として出力すると、変換候補文字列を決定するための処理に時間がかかってしまうばかりか、適切な変換候補文字列を決定することができない。
【0064】
このように、一つの参照文字列からでは、適切な変換候補文字列を決定できない場合がある。そこで、この第3実施形態では、文字列の範囲が異なる複数の参照文字列を決定し、決定された複数の参照文字列のうちの、適切な変換候補文字列が得られる参照文字列を用いて、変換対象文字列を変換する候補の変換候補文字列を決定することで、適切な変換候補文字列を決定することができる構成とした。以下、その具体的な方法の一例として、上記したように参照文字列との接続関係を有する文字列が膨大な数である場合、参照文字列の範囲を拡張し、これを新たな参照文字列としてから、あらためて、参照文字列との接続関係を有する文字列の一部または全部を変換候補文字列として出力する例を説明する。
【0065】
この第3実施形態では、第2言語モデルにおいて、参照文字列決定部318が決定した参照文字列が所定数以上の文字列との接続関係を有する場合、参照文字列決定部318は、認識文字列のうちの、参照文字列とした文字列の範囲を拡張して、拡張後の文字列を新たな参照文字列として決定する。そして、変換候補文字列決定部320は、第2言語モデルを参照して、当該第2言語モデルにおいて上記新たな参照文字列との接続関係が示されている文字列を、変換候補文字列として決定する。
【0066】
たとえば、参照文字列決定部318が、「変換対象文字列の後方の1形態素を参照文字列とする」といった条件にしたがって、「今から京都的に行きます」という認識文字列の中から、変換対象文字列である「的」に後続する「に」を参照文字列として決定したとする。
【0067】
この場合、変換候補文字列決定部320が、第2言語モデルを参照して、当該第2言語モデルにおいて参照文字列「に」が後続する文字列として、参照文字列「に」との接続関係が示されている複数の第1の文字列を、変換候補文字列として決定する。たとえば、図12に示す第2言語モデルによると、「東京」、「京都」、「教頭」、「犬」、「音声」、「学校」、「どこか」・・・といった膨大な数の文字列が、変換候補文字列として仮決定される。
【0068】
ここで、仮決定された変換候補文字列の数が所定数よりも少ない場合は、この仮決定された変換候補文字列の一部または全部が、正式な変換候補文字列として決定される。一方、仮決定された変換候補文字列の数が所定数よりも多い場合、参照文字列決定部318が、「今から京都的に行きます」という認識文字列のうちの、参照文字列とした文字列の範囲を拡張して、拡張後の文字列を新たな参照文字列として決定することとなる。具体的には、参照文字列決定部318は、「変換対象文字列の後方の1形態素を参照文字列とする」という条件のうちの形態素の数を増やして、新たな参照文字列を決定する。たとえば、参照文字列決定部318は、「変換対象文字列の後方の1形態素を参照文字列とする」という条件のうちの形態素の数を1つ増やして、「変換対象文字列の後方の2形態素を参照文字列とする」と条件に変更し、これに該当する「に行き」を新たな参照文字列とするのである。
【0069】
この場合、変換候補文字列決定部320が、第2言語モデルを参照して、当該第2言語モデルにおいて参照文字列「に行き」が後続する文字列として、参照文字列「に行き」との接続関係が示されている複数の第1の文字列を、変換候補文字列として決定する。たとえば、図12に示す第2言語モデルによると、「東京」、「京都」、「学校」、「どこか」といった4つの文字列が、変換候補文字列として仮決定される。
【0070】
ここで、仮決定された変換候補文字列の数が所定数よりも少ない場合は、この仮決定された変換候補文字列の一部または全部が、正式な変換候補文字列として決定される。なおも、仮決定された変換候補文字列の数が所定数よりも多い場合、参照文字列決定部318が、「今から京都的に行きます」という認識文字列のうちの、参照文字列とした文字列の範囲をさらに拡張して、拡張後の文字列を新たな参照文字列として決定することとなる。たとえば、参照文字列決定部318は、「変換対象文字列の後方の2形態素を参照文字列とする」と変更された条件のうちの形態素の数をさらに1つ増やして、「変換対象文字列の後方の3形態素を参照文字列とする」という条件に変更し、これに該当する「に行きます」を新たな参照文字列とするのである。
【0071】
この場合、変換候補文字列決定部320が、第2言語モデルを参照して、当該第2言語モデルにおいて参照文字列「に行きます」が後続する文字列として、参照文字列「に行きます」との接続関係が示されている複数の第1の文字列を、変換候補文字列として決定する。たとえば、図12に示す第2言語モデルによると、「東京」、「京都」といった2つの文字列が、変換候補文字列として仮決定される。
【0072】
このように、第3実施形態の音声認識装置は、参照文字列に対応付けられている文字列の数が所定数よりも少なくなるまで参照文字列の範囲を拡張していく、といった簡素な処理によって、膨大な数の変換候補文字列を、適切な数かつ適切な内容の変換候補文字列へと絞り込んでいくことができるのである。
【0073】
(第4実施形態)
次に、第4実施形態を説明する。実施形態で説明した各機能部について、これらの一部を外部の情報処理装置に設けて、音声認識装置100は、外部の情報処理装置から一部のデータを参照したり、外部の情報処理装置に一部の処理をおこなわせたりする構成としてもよい。すなわち、音声認識装置100は、第1実施形態のように単独で音声認識処理をおこなうものに限らず、他の情報処理装置との通信をおこなって、音声認識処理をおこなうようなものであってもよい。この第4実施形態では、音声認識装置100を、他の情報処理装置との通信をおこなって、音声認識処理をおこなうように構成する場合の一例を説明する。
【0074】
図13は、第4実施形態にかかる音声認識装置100の機能構成を示す。この第4実施形態では、音声認識装置100がクライアント装置11となり、サーバ装置12とともに、音声認識システム10を構成する。そして、音声認識装置100からの要求に応じて、サーバ装置12が音声認識処理をおこない、その処理結果を音声認識装置100へ送信する構成となっている。
【0075】
図13は、第4実施形態にかかる音声認識装置100の機能構成を示す。この第4実施形態では、音声認識装置100がサーバ装置12との通信をおこなう通信部330を備える。また、音響モデル格納部302、第1言語モデル格納部304、および音声認識部314が、サーバ装置12に格納されている。これに応じて、音声認識装置100は、通信部330によるサーバ装置12との通信によって、サーバ装置12の音声認識部314へ音声データを受け渡し、音声認識処理をおこなわせ、その認識結果(認識文字列)を、サーバ装置12から受け取るようになっている。
【0076】
このように構成された音声認識システム10によれば、音響モデル格納部302、第1言語モデル格納部304、および音声認識部314をサーバ装置12に設けたことで、たとえば、複数のクライアント装置11が音声認識システムに設けられている場合、これら複数のクライアント装置11で、音声認識処理を共有することができる。これにより、クライアント装置11によって音声認識処理結果が異なるようなこともなく、複数のクライアント装置11に対して均質な音声認識処理結果を提供することができる。また、音響モデルおよび第1言語モデルが一元化されているため、音響モデルおよび第1言語モデルのメンテナンスを容易におこなうことができるようになる。
【0077】
また、第2言語モデル格納部306をサーバ装置12に設けず、音声認識装置100に設けたことで、たとえば、複数のクライアント装置11が音声認識システムに設けられている場合、複数のクライアント装置11の各々の第2モデルの内容を、各々のクライアント装置11のユーザの傾向に応じて異ならせることができる。これにより、音声認識システム10は、あるクライアント装置11において音声認識処理の要求があると、そのクライアント装置11のユーザの傾向に応じた第2モデルを適用して、そのユーザが過去に入力した文章に含まれている文字列の中から、変換候補文字列を決定することができるので、クライアント装置11のユーザに対して、より適切な処理結果を提供することができる。
【0078】
(変形例)
なお、本発明は、上記した形態での実施に限らず、以下のように変形させて実施してもよい。また、以下の変形例を組み合わせてもよい。
【0079】
(変形例1)
各実施形態では、音声認識装置の一例として音声認識機能を有するパーソナル・コンピュータを用いたが、これに限らず、音声認識装置は、実施形態で説明した音声認識装置100と同様の音声認識機能を実現することができるものであれば、携帯電話機、PDA(Personal Digital Assistant)、ナビゲーション装置、携帯音楽プレーヤー、ノートPC(Personal Computer)、家電製品など、どのような機器であってもよい。
【0080】
(変形例2)
第3実施形態では、文字列の範囲が異なる複数の参照文字列を決定し、決定された複数の参照文字列のうちの、適切な変換候補文字列が得られる参照文字列を用いて、変換対象文字列を変換する候補の変換候補文字列を決定する構成の一具体例として、参照文字列に対応付けられている文字列の数が所定数よりも少なくなるまで参照文字列の範囲を後方に拡張していくことによって、変換候補文字列の数を絞り込む例を説明したが、これに限定するものではない。たとえば、参照文字列の範囲を前方に拡張したり、前後の双方に拡張したりすることによって、変換候補文字列の数を絞り込むようにしてもよい。また、参照文字列に対応付けられている文字列の数が下限値よりも少ない場合は、下限値よりも多くなるまで参照文字列の範囲を縮小していくことによって変換候補文字列の数を増やすようにしてもよい。また、参照文字列に対応付けられている文字列のうちの、所定の相関度以上の相関度を有する文字列の数が上限値よりも少なくなるか、もしくは下限値よりも多くなるまで、参照文字列の範囲を拡張していくことによって変換候補文字列の数を絞り込むか、もしくは、参照文字列の範囲を縮小していくことによって変換候補文字列の数を増やすようにしてもよい。また、全ての文字列の相関度がある閾値よりも低ければ、この閾値よりも相関度が高い文字列が出現するまで、参照文字列の範囲を縮小していくことによって変換候補文字列の数を増やすようにしてもよい。また、全ての文字列の相関度がある閾値よりも高ければ、この閾値よりも相関度が低い文字列が出現するまで、参照文字列の範囲を拡張していくことによって変換候補文字列の数を絞り込むようにしてもよい。
【0081】
(変形例3)
第4実施形態において、複数のクライアント装置11で音声認識部314による音声認識処理を共有することで、複数のクライアント装置11の各々に対して、均質な処理結果を提供することができる構成であれば、音声認識システム10は、どのような装置構成であってもよく、また、各装置に対してどのような機能が設けられていてもよい。たとえば、第4実施形態において、音声認識部314を、音声認識装置100に設け、音声認識部314は、通信部330によるサーバ装置12との通信によって、サーバ装置12に設けられた音響モデル格納部302および第1言語モデル格納部304から、音響モデルおよび第1言語モデルを参照するように構成してもよい。また、音声認識部314だけでなく、変換対象文字列決定部316や、参照文字列決定部318を、サーバ装置12に設ける構成としてもよい。また、サーバ装置12およびクライアント装置11とは別に、音声認識装置100を設け、音声認識装置100が、クライアント装置11から音声データを取得して、そのクライアント装置11に設けられた第2言語モデルを参照して、これまでに説明した音声認識処理をおこない、その処理結果として、認識文字列および変換候補文字列をそのクライアント装置11に出力する構成としてもよい。
【0082】
(変形例4)
各実施形態において、音声認識部314は、複数の認識文字列を生成するものであってもよい。たとえば、変換対象文字列決定部316が、「今から京都駅に行きます」という音声データから、第1候補の「今から京都的に行きます」という認識文字列と、第2候補の「今から京都劇に行きます」という認識文字列とを生成するといった具合である。
【0083】
ここで、変換対象文字列決定部316が、第1候補の認識文字列から「的」を第1候補の変換対象文字列として決定し、第2候補の認識文字列から「劇」を第2候補の変換対象文字列として決定し、参照文字列決定部318が、これらの変換対象文字列に共通する「京都」を参照文字列として決定したとする。この場合、変換候補文字列決定部320は、参照文字列「京都」との接続関係を有する文字列の中から、第1候補の変換対象文字列「的」との相関度と、第2候補の変換対象文字列「劇」との相関度との双方に基づいて、変換候補文字列を決定するようにしてもよい。
【0084】
上記において、たとえば「駅」、「市」、「府」、「の」のそれぞれが変換候補文字列として決定された場合、出力部322は、認識文字列として、第1候補の「今から京都的に行きます」という認識文字列を出力し、変換候補文字列として、「駅」、「市」、「府」、「の」のそれぞれに加えて、第2候補の変換対象文字列「劇」を出力してもよい。また、仮に第2の候補の変換対象文字列が、変換候補文字列と同じ「駅」であった場合、変換候補文字列「駅」の優先度を高めて、変換候補文字列として、「駅」、「市」、「府」、「の」を出力してもよい。これによれば、たとえば、「駅」と発音されたが、音声の歪みにより、「駅」が第2の候補の変換対象文字列となってしまった場合であっても、このように優先度を高めることで、正しく「駅」に訂正される可能性を高めることができる。
【符号の説明】
【0085】
100…音声認識装置、110…本体、120…マイク、130…ディスプレイ、140…スピーカ、150…キーボード、160…マウス、302…音響モデル格納部、304…第1言語モデル格納部、306…第2言語モデル格納部、312…音声データ取得部、314…音声認識部、316…変換対象文字列決定部、318…参照文字列決定部、320…変換候補文字列決定部、322…出力部、330…通信部
【特許請求の範囲】
【請求項1】
音声データを取得する音声データ取得部と、
音声の特徴量と文字との対応関係を示す音響モデルおよび文字列間の接続関係を示す第1言語モデルを参照して、前記音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識部と、
前記認識文字列のうち、ユーザによって指定された文字列、認識結果としての信頼度が所定の閾値よりも低い文字列、または、認識結果としての信頼度が所定の閾値よりも低い文字列の組み合わせからなる文字列を、変換対象文字列として決定する変換対象文字列決定部と、
前記認識文字列において、決定された前記変換対象文字列の直前または直後に接続された文字列から予め定められた条件に従って参照文字列を決定する参照文字列決定部と、
ユーザが過去に入力した文字列から抽出された文字列同士の接続関係を示す第2言語モデルを参照して、決定された前記参照文字列との接続関係が示されている文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定部と、
決定された前記変換候補文字列を出力する出力部と
を備えることを特徴とする音声認識装置。
【請求項2】
前記第2言語モデルにおいて、前記参照文字列に対して所定の範囲外の数の前記変換候補文字列が得られた場合、
前記参照文字列決定部は、
前記認識文字列において、前記変換対象文字列の直前または直後に接続された文字列の数を増減して、その増減後の数の文字列を新たな参照文字列として決定し、
前記変換候補文字列決定部は、
前記第2言語モデルにおいて前記新たな参照文字列との接続関係が示されている文字列を、前記変換候補文字列として決定する
ことを特徴とする請求項1に記載の音声認識装置。
【請求項3】
前記出力部は、
前記認識文字列における前記変換対象文字列を、前記変換候補文字列に変換して、変換後の前記認識文字列を出力する
ことを特徴とする請求項1または2に記載の音声認識装置。
【請求項4】
前記変換候補文字列決定部は、
前記第2言語モデルにおいて前記参照文字列との接続関係が示されている文字列のそれぞれについて、前記変換対象文字列との相関度を算出し、少なくとも、当該相関度が最も高い文字列または当該相関度が閾値よりも高い文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する
ことを特徴とする請求項1から3のいずれかに記載の音声認識装置。
【請求項5】
前記出力部は、
前記変換候補文字列の音素のうち、前記変換対象文字列の音素と一致しない音素が削除された変換候補文字列、または、前記変換候補文字列と前記参照文字列との接続関係について文法チェックをおこなうことにより特定された前記変換候補文字列に含まれる出力不要な文字が削除された変換候補文字列を出力する
ことを特徴とする請求項1から4のいずれかに記載の音声認識装置。
【請求項6】
前記音響モデルおよび前記第1言語モデルを記憶したサーバ装置との通信をおこなう通信部を備え、
前記音声認識部は、
前記通信部による前記サーバ装置との通信によって、前記サーバ装置が記憶している前記音響モデルおよび前記第1言語モデルを参照し、前記音声認識処理をおこなう
ことを特徴とする請求項1から5のいずれかに記載の音声認識装置。
【請求項7】
音声認識装置による音声認識方法であって、
音声データを取得する音声データ取得工程と、
音声の特徴量と文字との対応関係を示す音響モデルおよび文字列間の接続関係を示す第1言語モデルを参照して、前記音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識工程と、
前記認識文字列のうち、ユーザによって指定された文字列、認識結果としての信頼度が所定の閾値よりも低い文字列、または、認識結果としての信頼度が所定の閾値よりも低い文字列の組み合わせからなる文字列を、変換対象文字列として決定する変換対象文字列決定工程と、
前記認識文字列において、決定された前記変換対象文字列の直前または直後に接続された文字列から予め定められた条件に従って参照文字列を決定する参照文字列決定工程と、
ユーザが過去に入力した文字列から抽出された文字列同士の接続関係を示す第2言語モデルを参照して、決定された前記参照文字列との接続関係が示されている文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定工程と、
決定された前記変換候補文字列を出力する出力工程と
を備えることを特徴とする音声認識方法。
【請求項1】
音声データを取得する音声データ取得部と、
音声の特徴量と文字との対応関係を示す音響モデルおよび文字列間の接続関係を示す第1言語モデルを参照して、前記音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識部と、
前記認識文字列のうち、ユーザによって指定された文字列、認識結果としての信頼度が所定の閾値よりも低い文字列、または、認識結果としての信頼度が所定の閾値よりも低い文字列の組み合わせからなる文字列を、変換対象文字列として決定する変換対象文字列決定部と、
前記認識文字列において、決定された前記変換対象文字列の直前または直後に接続された文字列から予め定められた条件に従って参照文字列を決定する参照文字列決定部と、
ユーザが過去に入力した文字列から抽出された文字列同士の接続関係を示す第2言語モデルを参照して、決定された前記参照文字列との接続関係が示されている文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定部と、
決定された前記変換候補文字列を出力する出力部と
を備えることを特徴とする音声認識装置。
【請求項2】
前記第2言語モデルにおいて、前記参照文字列に対して所定の範囲外の数の前記変換候補文字列が得られた場合、
前記参照文字列決定部は、
前記認識文字列において、前記変換対象文字列の直前または直後に接続された文字列の数を増減して、その増減後の数の文字列を新たな参照文字列として決定し、
前記変換候補文字列決定部は、
前記第2言語モデルにおいて前記新たな参照文字列との接続関係が示されている文字列を、前記変換候補文字列として決定する
ことを特徴とする請求項1に記載の音声認識装置。
【請求項3】
前記出力部は、
前記認識文字列における前記変換対象文字列を、前記変換候補文字列に変換して、変換後の前記認識文字列を出力する
ことを特徴とする請求項1または2に記載の音声認識装置。
【請求項4】
前記変換候補文字列決定部は、
前記第2言語モデルにおいて前記参照文字列との接続関係が示されている文字列のそれぞれについて、前記変換対象文字列との相関度を算出し、少なくとも、当該相関度が最も高い文字列または当該相関度が閾値よりも高い文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する
ことを特徴とする請求項1から3のいずれかに記載の音声認識装置。
【請求項5】
前記出力部は、
前記変換候補文字列の音素のうち、前記変換対象文字列の音素と一致しない音素が削除された変換候補文字列、または、前記変換候補文字列と前記参照文字列との接続関係について文法チェックをおこなうことにより特定された前記変換候補文字列に含まれる出力不要な文字が削除された変換候補文字列を出力する
ことを特徴とする請求項1から4のいずれかに記載の音声認識装置。
【請求項6】
前記音響モデルおよび前記第1言語モデルを記憶したサーバ装置との通信をおこなう通信部を備え、
前記音声認識部は、
前記通信部による前記サーバ装置との通信によって、前記サーバ装置が記憶している前記音響モデルおよび前記第1言語モデルを参照し、前記音声認識処理をおこなう
ことを特徴とする請求項1から5のいずれかに記載の音声認識装置。
【請求項7】
音声認識装置による音声認識方法であって、
音声データを取得する音声データ取得工程と、
音声の特徴量と文字との対応関係を示す音響モデルおよび文字列間の接続関係を示す第1言語モデルを参照して、前記音声データに対する音声認識処理をおこない、その認識結果を示す認識文字列を生成する音声認識工程と、
前記認識文字列のうち、ユーザによって指定された文字列、認識結果としての信頼度が所定の閾値よりも低い文字列、または、認識結果としての信頼度が所定の閾値よりも低い文字列の組み合わせからなる文字列を、変換対象文字列として決定する変換対象文字列決定工程と、
前記認識文字列において、決定された前記変換対象文字列の直前または直後に接続された文字列から予め定められた条件に従って参照文字列を決定する参照文字列決定工程と、
ユーザが過去に入力した文字列から抽出された文字列同士の接続関係を示す第2言語モデルを参照して、決定された前記参照文字列との接続関係が示されている文字列を、前記変換対象文字列を変換する候補の変換候補文字列として決定する変換候補文字列決定工程と、
決定された前記変換候補文字列を出力する出力工程と
を備えることを特徴とする音声認識方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2013−50742(P2013−50742A)
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願番号】特願2012−270688(P2012−270688)
【出願日】平成24年12月11日(2012.12.11)
【分割の表示】特願2010−138741(P2010−138741)の分割
【原出願日】平成22年6月17日(2010.6.17)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願日】平成24年12月11日(2012.12.11)
【分割の表示】特願2010−138741(P2010−138741)の分割
【原出願日】平成22年6月17日(2010.6.17)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
[ Back to top ]