以下、添付図面を参照しながら、本発明にかかる音声翻訳装置、および方法の最良な実施の形態を詳細に説明する。
本実施の形態の音声翻訳装置は、第1言語及び第2言語間の音声翻訳を双方向で実現するものであり、第1言語の音声が入力された場合には、第2言語に翻訳して出力し、第2言語の音声が入力された場合には、第1言語に翻訳して出力する。
なお本実施の形態では、第1言語から第2言語への翻訳を行う際の処理を中心に説明するが、第2言語から第1言語への翻訳についても同様の処理を行うことができる。また本実施の形態では、第1言語に日本語を用い、第2言語に英語を用いた場合を例にとり説明するが、翻訳形態はこれに限定されるものではなく、あらゆる言語間での音声翻訳に適用することができる。
図1は、本実施の形態の音声翻訳装置1の構成の一例を示すブロック図である。図1に示すように、音声翻訳装置1は、音声入力部10と、出力部20と、入力部30と、記憶部40と、音声受付部100と、音声認識部110と、検索部120と、受付部130と、登録部140と、翻訳部150と、出力制御部160とを備える。
音声入力部10は、音声翻訳装置1のユーザが発話する音声などを入力するものであり、例えば、マイクなどの既存の音声入力装置により実現できる。
出力部20は、後述する出力制御部160の指示により、音声認識結果や音声翻訳結果などを出力するものであり、例えば、タッチパネル式ディスプレイ、液晶ディスプレイ、又は有機ELディスプレイなどの既存の表示装置により実現できる。なお出力部20を、スピーカなどの既存の音声出力装置により実現してもよいし、これらを併用して実現するようにしてもよい。
入力部30は、音声翻訳装置1のユーザが行った操作をデータとして入力するものであり、例えば、タッチパネル式ディスプレイ、キースイッチ、キーボード、またはポインティングデバイスなどの既存の入力装置により実現できる。なお本実施の形態では、キースイッチ、及びタッチパネル式ディスプレイにより入力部30を実現している。
記憶部40は、音声翻訳装置1で行われる各種処理に使用される情報を記憶するものであり、例えば、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの既存の記憶媒体により実現できる。そして記憶部40は、第1音声認識辞書記憶部42と、第2音声認識辞書記憶部44と、第1翻訳辞書記憶部46と、第2翻訳辞書記憶部48とを含む。
第1音声認識辞書記憶部42は、第1言語の音声認識に用いるデフォルトの音声認識辞書である第1デフォルト辞書を記憶する。また第1音声認識辞書記憶部42には、第1言語の音声認識に用いるカスタマイズ用の音声認識辞書である第1カスタマイズ辞書が、後述する登録部140により登録(記憶)される。
図2は、第1音声認識辞書記憶部42に記憶されている第1デフォルト辞書の一例を示す図である。図2に示す例では、第1デフォルト辞書は、第1言語の発音、第1言語の品詞、及び第1言語の単語を対応付けた辞書データとなっている。なお図2に示す例では、第1カスタマイズ辞書は第1音声認識辞書記憶部42に記憶されていない。
第2音声認識辞書記憶部44は、第2言語の音声認識に用いるデフォルトの音声認識辞書である第2デフォルト辞書を記憶する。また第2音声認識辞書記憶部44には、第2言語の音声認識に用いるカスタマイズ用の音声認識辞書である第2カスタマイズ辞書が、後述する登録部140により登録(記憶)される。
図3は、第2音声認識辞書記憶部44に記憶されている第2デフォルト辞書の一例を示す図である。図3に示す例では、第2デフォルト辞書は、第2言語の発音、第2言語の品詞、及び第2言語の単語を対応付けた辞書データとなっている。なお図3に示す例では、第2カスタマイズ辞書は第2音声認識辞書記憶部44に記憶されていない。
第1デフォルト辞書及び第2デフォルト辞書は、それぞれ、第1音声認識辞書記憶部42及び第2音声認識辞書記憶部44に予め記憶されている音声翻訳装置1固有の音声認識辞書であり、辞書データの追加・削除などは行われない。一方、第1カスタマイズ辞書及び第2カスタマイズ辞書は、ユーザによる音声翻訳装置1の使用に伴って、辞書データの追加・削除が行われる音声認識辞書である。
第1翻訳辞書記憶部46は、第1言語から第2言語への翻訳に用いる第1翻訳辞書を記憶する。図4は、第1翻訳辞書記憶部46に記憶されている第1翻訳辞書の一例を示す図である。図4に示す例では、第1翻訳辞書は、第1言語の単語、第1言語の品詞、第2言語の単語、及び第1言語の発音を対応付けた辞書データとなっている。
第2翻訳辞書記憶部48は、第2言語から第1言語への翻訳に用いる第2翻訳辞書を記憶する。図5は、第2翻訳辞書記憶部48に記憶されている第2翻訳辞書の一例を示す図である。図5に示す例では、第2翻訳辞書は、第2言語の単語、第2言語の品詞、第1言語の単語、及び第2言語の発音を対応付けた情報となっている。
音声受付部100は、音声入力部10から第1言語の発話音声である第1発話音声、又は第2言語の発話音声である第2発話音声の入力を受け付ける。具体的には、音声受付部100は、音声入力部10から入力された音声のアナログ信号に対してサンプリングを行い、ステレオのデジタル信号に変換する。なお、デジタル信号への変換には、例えば、A/D変換など既存の技術を用いることができる。
音声認識部110は、音声受付部100により受け付けられた発話音声(デジタル音声信号)を認識し、認識した発話音声の文字列である認識文字列を生成する音声認識処理を行う。
具体的には、音声認識部110は、第1デフォルト辞書及び第1カスタマイズ辞書を用いて第1発話音声を認識し、認識した第1発話音声の文字列である第1認識文字列を生成する。同様に、音声認識部110は、第2デフォルト辞書及び第2カスタマイズ辞書を用いて第2発話音声を認識し、認識した第2発話音声の文字列である第2認識文字列を生成する。また音声認識部110は、第1発話音声及び第1認識文字列の対応付けや、第2発話音声及び第2認識文字列の対応付けも行う。
なお、音声認識処理には、例えば、LPC分析、隠れマルコフモデル(HMM:Hidden Markov Model)、ダイナミックプログラミング、ニューラルネットワーク、Nグラム言語モデルなど既存の音声認識方法を用いることができる。
検索部120は、第1認識文字列の誤認識箇所の文字列である誤認識文字列に発音が類似する単語又は単語列を、誤認識文字列の訂正候補として、第1翻訳辞書記憶部46から検索する。なお検索部120は、後述する受付部130により誤認識文字列の選択が受け付けられることで誤認識箇所を特定する。また、誤認識文字列に発音が類似する単語又は単語列の検索には、例えば、動的計画法などを用いることができる。
例えば、第1翻訳辞書記憶部46に図4に示す第1翻訳辞書が記憶され、図6に示すように、ユーザAの第1発話音声210のうち、部分音声211が誤認識文字列212に誤認識され、第1認識文字列213が生成されたものとする。この場合、検索部120は、図7に示すように、誤認識文字列212に発音が類似する単語又は単語列である単語214、単語列215、単語列216、単語列217などを、誤認識文字列212の訂正候補として、第1翻訳辞書記憶部46から検索する。
また検索部120は、後述する受付部130により誤認識文字列の訂正に用いる単語又は単語列である第1言語の訂正単語の選択が受け付けられた場合には、第2言語の訂正単語を第2翻訳辞書記憶部48から更に検索する。具体的には、検索部120は、第1言語の訂正単語と一致する第1言語の単語に対応付けられた第2言語の単語を、第2言語の訂正単語として、第2翻訳辞書記憶部48から検索する。
なお検索部120は、誤認識文字列に発音が類似する単語又は単語列であるか否かを、両発音間の類似度に基づいて決定しており、例えば、類似度が所定のしきい値を超えている場合に、誤認識文字列に発音が類似する単語又は単語列であると決定する。そして検索部120は、類似度演算部122を含む。
類似度演算部122は、誤認識文字列の発音と検索部120により検索される単語又は単語列の発音との類似度を演算するものであり、例えば、異なる発音間の誤りの傾向を定義したコンフュージョン行列を参照することにより、類似度を求めることができる。
図8は、コンフュージョン行列の一例を示す図である。図8に示すコンフュージョン行列では、同一文字間の発音については、正しく認識される確率を示しており、異なる文字間の発音については、誤認識される確率を示している。例えば、文字218の発音が、正しく文字218の発音と認識される確率は0.87であり、文字219の発音が、誤って文字218の発音と認識される確率は0.02であり、文字220の発音が、誤って文字218の発音と認識される確率は0.08であることを示している。
図9−1は、単語214の発音221と誤認識文字列の発音222との類似度の演算例を説明するための図である。各文字間の発音の認識確率は、図9−1に示す通りであり、単語214は単数の単語であるため、単語間の出現確率を考慮する必要はない。従って類似度演算部122は、各文字間の発音の認識確率の積を求めることにより、発音221、222間の類似度を求めることができる(数式(1)参照)。
図9−2は、単語列215の発音222と誤認識文字列の発音222との類似度の演算例を説明するための図である。各文字間の発音の認識確率は、図9−2に示す通りであるが、単語列215は単語223及び単語224(複数の単語)から成る単語列であるため、単語223の発音の後に単語224発音が出現する出現確率を考慮する必要がある。この場合、類似度演算部122は、各文字の発音の認識確率の積(数式(2)参照)と、単語223の発音の後に単語224発音が出現する出現確率(数式(3)参照)との積を求めることにより、発音222同士の類似度を求めることができる(数式(4)参照)。
なお、単語間の出現確率については、出現確率を定義したデータなどを参照して決定すればよく、コンフュージョン行列とともに記憶部40に記憶しておけばよい。また、コンフュージョン行列で示された認識確率を対数値で表す場合には、類似度演算部122は、各文字間の発音の認識確率の和を求めることにより、発音間の類似度を求めることができる。
受付部130(第1受付部及び第2受付部の一例)は、入力部30からの入力を受け付ける。具体的には、受付部130は、後述する出力制御部160により出力部20に出力された第1認識文字列に含まれる誤認識文字列の選択の受付と、出力制御部160により出力部20に出力された訂正候補の中から誤認識文字列の訂正に用いる単語又は単語列である訂正単語の選択の受付とを行う。
例えば図7に示す例では、出力部20、入力部30、及び受付部130をタッチパネル式ディスプレイにより実現している。そしてユーザAが、ポインティングデバイス50で出力部20に表示された誤認識文字列212を指し示す(タッチする)ことにより、受付部130は、誤認識文字列212の選択を受け付ける。同様に、ユーザAが、ポインティングデバイス50で出力部20に表示された訂正候補(単語214〜単語列217)の中から訂正単語を指し示す(タッチする)ことにより、受付部130は、指し示された訂正単語の選択を受け付ける。
なお、ユーザに誤認識箇所を再発話させることにより、誤認識文字列の選択を受け付けるようにしてもよい。この場合には、音声受付部100を受付部130として機能させればよい。
また、受付部130は、入力言語の選択(翻訳方向の選択)を受け付けたり、認識文字列の翻訳を後述する翻訳部150に実行させる翻訳実行操作の入力を受け付ける。なお、選択を受け付けられた入力言語の設定は、記憶部40に記憶される。
登録部140は、受付部130により受け付けられた第1言語の訂正単語を、第1カスタマイズ辞書に登録する。具体的には、登録部140は、第1言語の訂正単語と一致する第1言語の単語、当該第1言語の単語に対応付けられた第1言語の品詞、及び第1言語の発音を第1翻訳辞書記憶部46から読み出し、第1カスタマイズ辞書に登録する。
図10は、登録部140による登録後の第1音声認識辞書記憶部42に記憶されている第1デフォルト辞書及び第1カスタマイズ辞書の一例を示す図である。図10に示す例では、単語214の発音、単語214の品詞、及び単語214を対応付けた辞書データが、第1カスタマイズ辞書に新たに記憶されている。なお、図10に示す例では、受付部130により、第1言語の訂正単語として、単語214の選択が受け付けられ、登録部140により、単語214の登録が行われたものとする。
また登録部140は、検索部120により検索された第2言語の訂正単語を、第2カスタマイズ辞書に更に登録する。具体的には、登録部140は、第2言語の訂正単語と一致する第2言語の単語、当該第2言語の単語に対応付けられた第2言語の品詞、及び第2言語の発音を第2翻訳辞書記憶部48から読み出し、第2カスタマイズ辞書に更に登録する。
図11は、登録部140による登録後の第2音声認識辞書記憶部44に記憶されている第2デフォルト辞書及び第2カスタマイズ辞書の一例を示す図である。図11に示す例では、単語225の発音、単語225の品詞、及び単語225を対応付けた辞書データが、第2カスタマイズ辞書に新たに記憶されている。なお、図11に示す例では、検索部120により、第2言語の訂正単語として、単語225が検索され、登録部140により、単語225の登録が行われたものとする。
また登録部140は、所定の条件が成立したことに基づいて、第1カスタマイズ辞書に登録した第1言語の訂正単語、及び第2カスタマイズ辞書に登録した第2言語の訂正単語を、それぞれ、第1音声認識辞書記憶部42及び第2音声認識辞書記憶部44から消去(削除)するようにしてもよい。例えば登録部140は、登録から一定期間経過後(例えば、1日後、1週間後など)に第1言語の訂正単語及び第2言語の訂正単語を消去するようにしてもよい。
翻訳部150は、第1翻訳辞書を用いて、誤認識文字列を訂正単語で訂正した第1認識文字列を第2言語に翻訳する。なお、翻訳処理には、例えば、用例ベース方式、トランスファ方式、統計ベース方式などの既存の翻訳方法を用いることができる。また翻訳部150は、第2翻訳辞書を用いて、第2認識文字列を第1言語に翻訳する。
出力制御部160(第1出力制御部及び第2出力制御部の一例)は、第1認識文字列又は第2認識文字列など音声認識部110により生成された認識文字列を出力部20に出力させる。例えば図6に示す例では、出力制御部160が出力部20に第1認識文字列213を表示させている。
また出力制御部160は、検索部120により検索された訂正候補を出力部20に出力させる。例えば図7に示す例では、出力制御部160が出力部20に訂正候補(単語214〜単語列217)を表示させている。なお図7に示す例では、出力制御部160は、類似度演算部122により求められた類似度が高いものから順番に訂正候補を表示させている。
また出力制御部160は、受付部130により受け付けられた訂正単語で誤認識文字列を訂正した第1認識文字列を出力部20に出力させる制御や、翻訳部150の翻訳結果を出力部20に出力させる制御を行う。例えば図12に示す例では、単語214で誤認識文字列212を訂正した第1認識文字列226とともに、第1認識文字列226の翻訳結果227を出力部20に表示させている。
なお、出力部20をスピーカなどの既存の音声出力装置により実現する場合には、出力制御部160は、音声認識結果や音声翻訳結果などを音声信号に変換する音声合成処理を行い、音声合成処理により生成した音声信号をDA変換して出力部20に音声出力させる。また出力制御部160は、これらの出力手法を必要に応じて切り替えるようにしてもよいし、併用するようにしてもよい。
次に、図13−1及び図13−2を参照しながら、本実施の形態の音声翻訳装置の動作について説明する。図13−1及び図13−2は、音声翻訳装置1で行われる全体の処理の流れの一例を示すフローチャートである。なお、以下の説明では、第1音声認識辞書記憶部42、第2音声認識辞書記憶部44、第1翻訳辞書記憶部46、及び第2翻訳辞書記憶部48には、それぞれ、図2、図3、図4、及び図5に示す辞書が記憶されている場合を例にとり説明する。
まず、音声翻訳装置1の入力言語が第1言語に設定されている場合には(ステップS10でYes)、音声受付部100は、音声翻訳装置1のユーザにより音声入力部10に入力された発話音声を、第1発話音声の入力として受け付ける(ステップS12)。ここでは、音声受付部100は、第1発話音声210(図6参照)の入力を受け付けるものとする。
次に、音声認識部110は、第1デフォルト辞書及び第1カスタマイズ辞書を用いて第1発話音声を認識し、第1認識文字列を生成する(ステップS14)。ここでは、音声認識部110は、第1発話音声210のうち、部分音声211を誤認識文字列212に誤認識したため、第1認識文字列213を生成するものとする(図6参照)。
次に、出力制御部160は、第1認識文字列を出力部20に出力させる(ステップS16)。ここでは、出力制御部160は、図6に示すように、第1認識文字列213を出力部20に表示させるものとする。
次に、入力部30から翻訳実行操作が入力されると、受付部130は、翻訳実行操作の入力を受け付ける(ステップS18でYes)。また、入力部30から翻訳実行操作が入力されずに(ステップS18でNo)、出力部20に出力された第1認識文字列の誤認識箇所の文字列である誤認識文字列が選択されると、受付部130は、当該誤認識文字列の選択を受け付ける(ステップS20でYes)。ここでは、受付部130は、図7に示すように、誤認識文字列212の選択を受け付けるものとする。
なお、受付部130が、誤認識文字列の選択を受け付けなかった場合には(ステップS20でNo)、翻訳実行操作の入力を確認する(ステップS18へ)。
次に、受付部130により誤認識文字列の選択が受け付けられると(ステップS20でYes)、検索部120は、誤認識文字列に発音が類似する単語又は単語列を、誤認識文字列の訂正候補として、第1翻訳辞書記憶部46から検索する訂正候補検索処理を行う(ステップS22)。ここでは、検索部120は、誤認識文字列212の訂正候補として、図7に示すように、誤認識文字列212に発音が類似する単語又は単語列である単語214、単語列215、単語列216、及び単語列217を第1翻訳辞書記憶部46から検索するものとする。なお、訂正候補検索処理の詳細は後述する。
次に、出力制御部160は、訂正候補を出力部20に出力させる(ステップS24)。ここでは、出力制御部160は、図7に示すように、訂正候補として、単語214、単語列215、単語列216、及び単語列217を出力部20に表示させるものとする。
次に、受付部130は、訂正単語の選択を待ち(ステップS26でNo)、入力部30により、出力部20に出力された訂正候補の中から誤認識文字列の訂正に用いる単語又は単語列である訂正単語が選択されると、訂正単語の選択を受け付ける(ステップS26でYes)。ここでは、受付部130は、訂正単語として、単語214の選択を受け付けるものとする(図7参照)。
次に、出力制御部160は、受付部130により受け付けられた第1言語の訂正単語で誤認識文字列を訂正した第1認識文字列を出力部20に出力させる(ステップS28)。ここでは、出力制御部160は、単語214で誤認識文字列212を訂正した第1認識文字列226を出力部20に表示させるものとする(図12参照)。
次に、登録部140は、受付部130により受け付けられた第1言語の訂正単語を、第1カスタマイズ辞書に登録する(ステップS30)。ここでは、登録部140は、単語214を、第1カスタマイズ辞書に登録するものとする(図10参照)。
次に、検索部120は、第2言語の訂正単語を第2翻訳辞書記憶部48から検索する(ステップS32)。ここでは、検索部120は、単語225を第2翻訳辞書記憶部48から検索するものとする(図5参照)。
次に、登録部140は、検索部120により検索された第2言語の訂正単語を、第2カスタマイズ辞書に更に登録する(ステップS34)。ここでは、登録部140は、単語225を、第2カスタマイズ辞書に登録するものとする(図11参照)。
次に、受付部130が、翻訳実行操作の入力を確認する(ステップS18へ)。そして、受付部130により翻訳実行操作の入力が受け付けられた場合には(ステップS18でYes)、翻訳部150は、第1翻訳辞書を用いて、誤認識文字列を訂正単語で訂正した第1認識文字列を第2言語に翻訳する(ステップS36)。ここでは、翻訳部150は、単語214で誤認識文字列212を訂正した第1認識文字列226を翻訳結果227に翻訳するものとする(図12参照)。
次に、出力制御部160は、翻訳結果を出力部20に出力させる(ステップS38)。ここでは、出力制御部160は、図12に示すように、翻訳結果227を出力部20に表示させるものとする。
一方、ステップS10において、音声翻訳装置1の入力言語が第1言語に設定されていない場合(第2言語に設定されている場合)には(ステップS10でNo)、音声受付部100は、音声翻訳装置1のユーザにより音声入力部10に入力された発話音声を、第2発話音声の入力として受け付ける(ステップS40)。
次に、音声認識部110は、第2デフォルト辞書及び第2カスタマイズ辞書を用いて第2発話音声を認識し、第2認識文字列を生成する(ステップS42)。
次に、出力制御部160は、第2認識文字列を出力部20に出力させる(ステップS44)。
次に、入力部30から翻訳実行操作が入力されると、受付部130は、翻訳実行操作の入力を受け付ける(ステップS46でYes)。また、入力部30から翻訳実行操作が入力されずに(ステップS46でNo)、出力部20に出力された認識文字列に含まれる誤認識文字列が選択されると、受付部130は、当該誤認識文字列の選択を受け付ける(ステップS48でYes)。なお、受付部130が、誤認識文字列の選択を受け付けなかった場合には(ステップS48でNo)、翻訳実行操作の入力を確認する(ステップS46へ)。
次に、受付部130により誤認識文字列の選択が受け付けられると(ステップS48でYes)、検索部120は、誤認識文字列に発音が類似する単語又は単語列を、誤認識文字列の訂正候補として、第2翻訳辞書記憶部48から検索する訂正候補検索処理を行う(ステップS50)。
次に、出力制御部160は、訂正候補を出力部20に出力させる(ステップS52)。
次に、受付部130は、訂正単語の選択を待ち(ステップS54でNo)、入力部30により、出力部20に出力された訂正候補の中から誤認識文字列の訂正に用いる単語又は単語列である訂正単語が選択されると、訂正単語の選択を受け付ける(ステップS54でYes)。
次に、出力制御部160は、受付部130により受け付けられた第2言語の訂正単語で誤認識文字列を訂正した第2認識文字列を出力部20に出力させる(ステップS56)。
次に、登録部140は、受付部130により受け付けられた第2言語の訂正単語を、第2カスタマイズ辞書に登録する(ステップS58)。
次に、検索部120は、第1言語の訂正単語を第1翻訳辞書記憶部46から検索する(ステップS60)。
次に、登録部140は、検索部120により検索された第1言語の訂正単語を、第1カスタマイズ辞書に更に登録する(ステップS62)。
次に、受付部130が、翻訳実行操作の入力を確認する(ステップS46へ)。そして、受付部130により翻訳実行操作の入力が受け付けられた場合には(ステップS46でYes)、翻訳部150は、第2翻訳辞書を用いて、誤認識文字列を訂正単語で訂正した第2認識文字列を第1言語に翻訳し(ステップS64)、出力制御部160が、翻訳結果を出力部20に出力させる(ステップS38へ)。
次に、図14を参照しながら、図13−1のステップS22及び図13−2のステップS50に示す訂正候補検索処理について説明する。図14は、訂正候補検索処理の一例を示すフローチャートである。なお、以下の説明では、図13−1のステップS22に示す訂正候補検索処理を例にとり説明するが、図13−2のステップS50に示す訂正候補検索処理について同様の処理を行うことができる。また、訂正候補検索処理には、例えば、動的計画法の一種であるViterbiアルゴリズムなどを採用することができる。
まず、検索部120は、誤認識文字列の発音の先頭位置を示す値で、変数pointerを初期化する(ステップS100)。ここでは、検索部120は、図15−1に示すように、誤認識文字列の発音222の先頭位置を示す値で、pointerを初期化するものとする。
次に、検索部120は、pointerが示す位置から始まる全てのパターンの発音(比較発音)に関して、当該発音と類似する発音を第1翻訳辞書記憶部46から検索する類似発音検索処理を行う(ステップS102)。なお、類似発音検索処理の詳細は後述する。
例えば図15−1に示す例では、pointerが示す位置から始まる発音は6文字の発音であるため、検索部120は、6パターンの発音に関して類似発音検索処理を行い、発音221、発音228、及び発音229を、第1翻訳辞書記憶部46から検索するものとする。同様に図15−2に示す例では、pointerが示す位置から始まる発音は4文字の発音であるため、検索部120は、4パターンの発音に関して類似発音検索処理を行い、発音230を、第1翻訳辞書記憶部46から新たに検索するものとする。同様に図15−3に示す例では、pointerが示す位置から始まる発音は3文字の発音であるため、検索部120は、3パターンの発音に関して類似発音検索処理を行い、発音231、発音232、発音233を、第1翻訳辞書記憶部46から新たに検索するものとする。
次に、類似度演算部122は、類似発音検索処理により求められた発音等に基づいて、訂正候補を決定するための類似度のスコアを求める(ステップS104)。具体的には、検索部120は、今までに検索された発音のスコアと、今回検索された発音のスコアと、連接可能な発音を連接する連接スコアとの和により、訂正候補を決定するための類似度のスコアを求める。
なお、検索された発音のスコアは、類似発音検索処理により求められた類似度と、発音間の出現確率との和で表される。また、連接可能な発音とは、発音の終了位置と開始位置とが一致する発音である。例えば図15−2に示す例では、発音221及び発音228の終了位置と発音230の開始位置は一致しないため、これらの発音は連結できないが、発音229の終了位置と発音231の開始位置は一致するため、これらの発音は連結できる。
つまり、類似度演算部122は、検索した発音同士が連接可能な場合には連接し、連接した全てのパターンの発音に対して、訂正候補を決定するための類似度のスコアを求める。従って検索部120は、図15−1及び図15−2に示す例では、3パターンの発音に対して、訂正候補を決定するための類似度のスコアを求め、図15−3及び図15−4に示す例では、7パターンの発音に対して、訂正候補を決定するための類似度のスコアを求める。
例えば図15−2に示す例では、発音221及び初期ノードの連接スコアと発音221のスコアとの和、発音228及び初期ノードの連接スコアと発音228のスコアとの和、発音229及び初期ノードの連接スコアと発音229のスコアと発音229及び発音230の連接スコアと発音230のスコアとの和が、訂正候補を決定するための類似度のスコアとなる。
次に、検索部120は、類似発音検索処理により求められた発音のうち、最短文字数の発音の文字数分pointerを移動させる(ステップS106)。例えば図15−1に示す例では、発音229が2文字の発音であり、最短文字数の発音となるため、検索部120は、図15−2に示すように、pointerを2文字分移動させている。同様に図15−2に示す例では、発音230が1文字の発音であり、最短文字数の発音となるため、検索部120は、図15−3に示すように、pointerを1文字分移動させている。同様に図15−3に示す例では、最短文字数は3文字となるため、検索部120は、図15−4に示すように、pointerを3文字分移動させている。
次に、検索部120は、pointerの位置が誤認識文字列の発音の最後位置となるまで、ステップS102〜ステップS106の処理を繰り返し行う(ステップS108でNo)。そして、pointerの位置が誤認識文字列の発音の最後位置を超えた場合には(ステップS108でYes)、検索部120は、訂正候補を決定するための類似度のスコアが閾値を超えた発音の単語又は発音列の単語列を訂正候補に設定して(ステップS110)、処理を終了し、訂正候補を返却する。
次に、図16を参照しながら、図14のステップS102に示す類似発音検索処理について説明する。図16は、類似発音検索処理の一例を示すフローチャートである。
まず、検索部120は、比較発音が第1言語の発音である場合には(ステップS200でYes)、第1翻訳辞書記憶部46に記憶された第1翻訳辞書を検索対象に設定する(ステップS202)。また検索部120は、比較発音が第1言語の発音でない場合(比較発音が第2言語の発音である場合)には(ステップS200でNo)、第2翻訳辞書記憶部48に記憶された第2翻訳辞書を検索対象に設定する(ステップS204)。なお検索部120は、比較発音が第1言語の発音であるか否かを、入力言語の設定から判別してもよい。
次に、検索部120は、検索対象の翻訳辞書に登録された全ての単語の発音と、比較発音との類似度を求めるまで(ステップS206でNo)、類似度が求められていない単語を読み出す(ステップS208)。
次に、類似度演算部122は、読み出された単語の発音と、比較発音との類似度を演算する類似度演算処理を行う(ステップS210)。なお、類似度演算処理の詳細は後述する。
次に、検索部120は、類似度演算部122により求められた類似度を閾値と比較し(ステップS212)、閾値を超えている場合には、読み出された単語の発音を類似発音に設定する(ステップS212でYes、ステップS214)。なお検索部120は、類似度が閾値を超えていない場合には、読み出された単語の発音を類似発音に設定しない(ステップS212でNo)。
そして、検索部120は、検索対象の翻訳辞書に登録された全ての単語の発音と、比較発音との類似度を演算した場合には(ステップS206でYes)、処理を終了し、類似発音とその類似度を返却する。
次に、図17を参照しながら、図16のステップS210に示す類似度演算処理について説明する。図17は、類似度演算処理の一例を示すフローチャートである。なお、類似度演算処理には、例えば、動的計画法の一種であるDynamic Time Warping法などを採用することができる。
まず、類似度演算部122は、読み出された単語の発音の長さを変数nに設定するとともに(ステップS300)、比較発音の長さを変数mに設定する(ステップS302)。
次に、類似度演算部122は、n+1×m+1の二次元配列であるsim[n+1,m+1]を記憶部40に確保する(ステップS304)。
次に、類似度演算部122は、sim[0,0]に初期値である−1000を設定する(ステップS306)。
次に、類似度演算部122は、変数iを0で初期化し(ステップS308)、iがnより小さい場合には(ステップS310でNo)、変数jを0で初期化する(ステップS312)。
次に、類似度演算部122は、jがmより小さい場合には(ステップS314でNo)、sim[i−1,j]に設定された値と、読み出された単語の発音i(読み出された単語の発音中の比較対象の発音)を比較発音と照合しない場合のスコアとを加算した値を、変数xに設定する(ステップS316)。
次に、類似度演算部122は、sim[i,j−1]に設定された値と、比較発音j(比較発音中の比較対象の発音)を読み出された単語の発音と照合しない場合のスコアとを加算した値を、変数yに設定する(ステップS318)。
なお、読み出された単語の発音iを比較発音と照合しない場合のスコア、及び比較発音jを読み出された単語の発音と照合しない場合のスコアは、発音の種類によらず、全て同一の値(例えば、−10.0)を設定してもよいし、発音の種類に応じた値を設定するようにしてもよい。
次に、類似度演算部122は、sim[i−1,j−1]に設定された値と、読み出された単語の発音iと比較発音jとを照合した場合のスコアとを加算した値を、変数zに設定する(ステップS320)。なお、読み出された単語の発音iと比較発音jとを照合した場合のスコアは、図6のコンフュージョン行列で示された認識確率の対数値となる。
次に、類似度演算部122は、x、y、zのうち、最大の値を、sim[i,j]に設定する(ステップS322)。
次に、類似度演算部122は、jをインクリメントし(ステップS324)、jがmより大きくなるまで(ステップS314でNo)、ステップS316〜ステップS324の処理を繰り返す。
そして、類似度演算部122は、jがmより大きくなった場合には(ステップS314でYes)、iをインクリメントし(ステップS326)、iがnより大きくなるまで(ステップS310でNo)、ステップS312〜ステップS326の処理を繰り返す。
そして、類似度演算部122は、iがnより大きくなった場合には(ステップS310でYes)、処理を終了し、読み出された単語の発音と、比較発音との類似度であるsim[i,j]*2/n+mを返却する。
これにより、sim[i,j]には、類似度を最も大きくするスコアを設定することができる。
例えば、図18−1に示すように、単語214の発音221と、比較発音である誤認識文字列の発音222との類似度を類似度演算処理で演算した場合、同図に示す経路でsim[6,6]にスコアが設定され、このスコアが類似度を最も大きくするスコアとなる。
また例えば、図18−2に示すように、発音234と、比較発音である誤認識文字列の発音222との類似度を類似度演算処理で演算した場合、同図に示す経路でsim[5,6]にスコアが設定され、このスコアが類似度を最も大きくするスコアとなる。
このように本実施の形態によれば、発話音声から生成された認識文字列のうち、誤認識箇所の文字列である誤認識文字列を訂正した訂正単語のみが音声認識辞書として登録されるため、音声認識辞書に追加登録される単語を必要最小限に留めることができ、音声認識精度を向上させることができる。
また本実施の形態によれば、音声認識辞書に登録される訂正単語は音声翻訳辞書の単語であるため、音声認識辞書に登録された単語を必ず翻訳することができ、音声認識精度の向上に伴う翻訳精度の低下を防止することができる。
例えば、図10に示すように、単語214が、第1カスタマイズ辞書に新たに登録されることにより、これ以降は、単語214の発音を確実に認識することができるようになる。
また本実施の形態では、一方の言語の訂正単語だけでなく、他方の言語の訂正単語についても音声認識辞書として登録するため、双方向での音声翻訳をスムーズに実現することができる。
例えば、図10に示す第1言語の訂正単語である単語214だけでなく、図11に示すように、第2言語の訂正単語である単語225も、第2カスタマイズ辞書に新たに登録されることにより、これ以降は、単語225の発音も確実に認識することができるようになる。従って、図19に示すように、ユーザBが単語225を含む第2発話音声235を発話したとしても、単語225の発音も確実に認識して、翻訳結果236を出力することができる。
特に音声翻訳辞書は、音声認識辞書と異なり、語彙数を増やすほど翻訳精度が高くなるため、大語彙化する傾向にあり、誤認識文字列の訂正候補を検索する辞書としても優れている。
なお本実施の形態の音声翻訳装置1は、CPU(Central Processing Unit)などの制御装置、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶装置、マイクなどの音声入力装置、タッチパネルなどの表示装置や入力装置、スピーカなどの音声出力装置、ネットワークに接続して通信を行う通信I/F等を備えたハードウェア構成となっている。
また、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。