【文献】
朱世イ他,"混合ガウス分布による多言語音声系統樹の構成",情報処理学会研究報告,2004年12月,Vol.2004,No.131,pp.313-317
(58)【調査した分野】(Int.Cl.,DB名)
請求項1に記載の音声言語識別装置の学習装置であって、前記モデル生成手段は、前記音声言語特徴生成手段により得られた前記複数の音声言語特徴を学習データとして、音声言語特徴から言語を推定するためのマルチクラス・サポート・ベクター・マシン(SVM)を生成するためのSVM学習手段を含む、音声言語識別装置の学習装置。
【発明を実施するための形態】
【0025】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。なお、以下に説明する実施の形態は音声自動翻訳システムに関するものであるが、例えばインターネット上の発話データに対する言語の自動識別システムについても、以下の実施の形態と同様の考え方にしたがって実現できることは当業者には容易に理解できるであろう。
【0026】
なお、以下の実施の形態では自動翻訳が行なわれるが、自動翻訳の入力側の言語をソース言語と呼び、出力側の言語をターゲット言語と呼ぶ。異なる言語を母語とする2人の話者の間のコミュニケーションという典型的なケースでは、ソース言語とターゲット言語とが発話ごとに入れ替わることになる。
【0027】
[構成]
図1を参照して、この実施の形態に係る音声自動翻訳システム20は、ネットワークを介して各種の端末と通信可能で、音声自動翻訳のための、対となる言語を特定する情報(言語情報28)を端末から受けると、後に通信30を介してその端末から与えられる発話データに対し、言語情報28により特定されるソース言語側の言語情報に対応する適切な言語資源を用いて音声認識をし、さらに、言語情報28により特定されるターゲット側の言語への自動翻訳を行ない、結果をテキストデータとしてその端末に返信するサービスを提供する音声翻訳サーバ22と、上記した端末の一例である携帯電話機24とを含む。
【0028】
携帯電話機24は、マイク、スピーカ及び表示装置を持っており、マイクが出力する音声信号に基づいて、発話の言語を推定して音声翻訳サーバ22に送信する機能と、その後にマイクが出力する音声信号をデジタル化して音声翻訳サーバ22に送信し、音声翻訳サーバ22から返信されてくる翻訳結果のテキストデータを受信して出力する機能とを持つ。なお、音声翻訳サーバ22に音声合成機能を持たせれば、音声翻訳サーバ22における翻訳結果から音声信号を合成し、携帯電話機24に送信することもできる。この場合、携帯電話機24ではその音声信号をスピーカを用いて音声に変換すればよい。以下の説明では、実施の形態の説明を分かりやすくするため、そのような音声合成の機能は用いないものとする。
【0029】
なお、この実施の形態では、携帯電話機24における言語の識別処理には、SVMを用いる。SVMは、任意の装置で学習したものを携帯電話機24に記憶させておけばよい。本実施の形態では、音声翻訳サーバ22がSVMの学習装置を兼ねるものとし、音声自動翻訳のサービスを提供する際に、サービス利用者の端末にSVM26として配布するものとする。
【0030】
《音声翻訳サーバ22》
図2を参照して、音声翻訳サーバ22は、SVM26の学習のための学習データを記憶する学習データ記憶部40と、学習データ記憶部40に記憶された学習データを用いて、音声データに基づいて発話の言語を識別するためのSVMの学習と、音素のコードブックの生成とを行なうためのSVM学習処理部42と、SVM学習処理部42により学習が行なわれたSVMのパラメータを記憶するためのSVM記憶部56と、SVM学習処理部42により生成されたコードブックを記憶するためのコードブック記憶部54とを含む。コードブックがどのようなものかについては、
図4を参照して後述する。
【0031】
音声翻訳サーバ22はさらに、音声認識及び自動翻訳に用いられる各種言語資源(音響モデル、言語モデル、翻訳モデル等)を記憶する言語資源記憶部44と、音声翻訳サーバ22を利用する端末(例えば携帯電話機24)から言語情報を受け、言語資源記憶部44に記憶された各種の言語資源の中から、ソース言語に対する音声認識のための言語資源を選択するための選択部46と、言語情報により特定される言語の組合せに対する自動翻訳のための言語資源を選択するための選択部50と、選択部46により選択された言語資源のうち、音響モデル及び言語モデルを用い、携帯電話機24から送信されてくる音声データの認識を行ない、認識結果をテキストデータとして出力する音声認識装置48と、音声認識装置48から出力されるテキストデータを入力とし、選択部50により選択された言語モデル及び翻訳モデル等を用いて自動翻訳を行ない、翻訳結果をテキストデータとして携帯電話機24に送信するための統計的自動翻訳装置(SMT)52とを含む。
【0032】
クライアントとしての携帯電話機24は、マイク60と、図示しないスピーカと、音声を音声信号に変換するマイク60と、マイク60の出力する音声信号をデジタル信号に変換するAnalog−to−Digital(A/D)変換回路62と、操作部58とを含む。操作部58は、異言語間の対話時の言語の識別モードと、対話モードとの切替を行なうためのモード切替スイッチ64と、識別モード時と対話モード時とのいずれにおいても、処理対象の発話がソース言語側の言語とターゲット側の言語のいずれであるかを指定するためのソース/ターゲット切替スイッチ66と、A/D変換回路62の出力を受ける入力と、第1及び第2の出力とを持ち、モード切替スイッチ64による設定にしたがってA/D変換回路62の出力を第1及び第2の出力のいずれかに切替えて出力するための切替回路68とを含む。
【0033】
携帯電話機24はさらに、音声翻訳サーバ22から配布されるコードブックを記憶するためのコードブック記憶部72と、同じく音声翻訳サーバ22から配布されるSVMのパラメータを記憶するためのSVM記憶部74と、コードブック記憶部72及びSVM記憶部74、並びに切替回路68の第1の出力に接続され、切替回路68から与えられるデジタル化された音声信号により表される発話の言語を、コードブックとSVMとを用いて識別するための言語識別部70と、ソース/ターゲット切替スイッチ66及び言語識別部70の出力に接続され、ソース/ターゲット切替スイッチ66によりソース言語が指定されているときに言語識別部70の出力を記憶するためのソース言語記憶部80と、ソース/ターゲット切替スイッチ66及び言語識別部70の出力に接続され、ソース/ターゲット切替スイッチ66によりターゲット言語が指定されているときに言語識別部70の出力を記憶するためのターゲット言語記憶部82とを含む。なお、ソース言語記憶部80及びターゲット言語記憶部82は、モード切替スイッチ64により言語の識別モードが指定されているときのみ、言語識別部70の出力を記憶する。
【0034】
携帯電話機24はさらに、切替回路68の第2の出力に接続された入力を持ち、デジタル化された音声信号をフレーム化し、各フレームから音声認識装置48の音声認識で使用される特徴量を算出するための特徴量算出部76と、特徴量算出部76の出力に接続された入力を持ち、特徴量算出部76の算出した特徴量を一時的に記憶するための特徴量記憶部78と、ソース/ターゲット切替スイッチ66、ソース言語記憶部80、ターゲット言語記憶部82、及び特徴量記憶部78の出力に接続され、ソース/ターゲット切替スイッチ66の出力がソースとターゲットとの間で切替えられたことに応答して、特徴量記憶部78に記憶されていた特徴量と、ソース/ターゲット切替スイッチ66の出力に応じてソース言語記憶部80及びターゲット言語記憶部82に記憶されている言語情報を交互に入替えた言語情報とを音声翻訳サーバ22に送信するための送信部86と、音声翻訳サーバ22のSMT52から送信されてくる自動翻訳後のテキストデータを受信するための受信部88と、受信部88の受信したテキストデータを表示する液晶表示装置(LCD)90とを含む。なお、ターゲット言語としては、携帯電話機24の保有者の母語を記憶しておけばよい場合も多い。そうした場合には、予めターゲット言語記憶部82にその母語を示す情報を記憶しておき、ターゲット言語については言語識別部70によるターゲット言語の識別処理は省略できる。通常はそうした手続の方が普通であると考えられる。したがって以下の説明では、ターゲット言語記憶部82には所定の言語情報が予め記憶されており、言語識別部70による言語識別はソース言語のみについて行なうものとする。
【0035】
図3を参照して、音声翻訳サーバ22及び携帯電話機24の間の通信シーケンスは以下のとおりである。ここでは、第1及び第2の2人の話者の間の音声自動翻訳による対話を行なうものとし、第2の話者が携帯電話機24の所有者であるものとする。すなわち、ターゲット言語記憶部82には、第2の話者の母語を示す言語情報が予め記憶されている。
【0036】
まず、携帯電話機24側で第1の話者の発話100について、その言語を識別する処理102を行なう。言語識別の処理102が終了した後、いずれかの話者の発話110から得られる特徴量112を、その話者が第1の話者か第2の話者かに応じた組合せの言語情報とともに携帯電話機24から音声翻訳サーバ22に送信する。音声翻訳サーバ22ではこの特徴量と、言語情報のうちのソース言語情報に基づいて音声認識し、音声認識の結果得られたソース言語の文を、言語情報のターゲット言語情報により特定されるターゲット言語に翻訳する音声認識・自動翻訳処理114が行なわれる。音声翻訳サーバ22は、自動翻訳の結果のテキスト116を携帯電話機24に送信する。携帯電話機24はこのテキストを表示する処理118を行なう。続いて、携帯電話機24側では、いずれかの話者の発話120から得られた特徴量122を、その話者の母語と他方の話者の母語との組合せからなる言語情報とともに音声翻訳サーバ22に送信する。以下、サーバでの音声認識・自動翻訳処理124、自動翻訳の結果のテキスト126の携帯電話機24への送信、その表示128、次の話者の発話130の入力、という処理が以下繰返される。携帯電話機24では、発話に先だっていずれの話者が発話するかをソース/ターゲット切替スイッチ66で指定する。携帯電話機24から音声翻訳サーバ22への音声特徴量の送信には、その言語の組合せに応じて、第1及び第2の話者の母語の言語情報が、発話者の母語がソース言語、聴者の母語がターゲット言語となるように入替えられて音声翻訳サーバ22に送信される。音声翻訳サーバ22ではこの情報を用いて、音声認識装置48及びSMT52に必要な言語資源を選択する。
【0037】
以下、言語識別部70による発話の言語識別処理の原理とその実現方法とについて説明する。ここでは言語はいずれも音声言語であるものとする。各言語で使用される音素は多様であるが、ある言語で使用される音素と、他の言語で使用される音素との間には相違がある。
図4を参照して、例えば、第1の言語で使用される音素の分布範囲150、第2の言語で使用される音素の分布範囲152、及び第3の言語で使用される音素の分布範囲154の間では、重複した部分もあるだろうが、全く重なることはないと考えられる。
【0038】
したがって、以下のような原理により、言語を識別することができる。多くの言語の音声を収集し、それらの音素を調べる。ここでは、それら音素について、共通の要素を持つ特徴ベクトルで表すものとする。すると、類似した音素は類似した特徴量を持ち、したがってそれらの特徴ベクトルも、ベクトル空間で近い位置に存在することになる。異なる音素の特徴ベクトルは、ベクトル空間で離れた位置に存在することになる。
【0039】
そこで、多様な言語から集めた多様な音素について、それらの特徴ベクトルをクラスタリングする。クラスタリングにより、ベクトル空間はクラスタの集合140に分割される。各クラスタについて、それを代表する特徴ベクトルを定める。ここでは、それら特徴ベクトルをプロトタイプと呼ぶ。
図4では、プロトタイプを黒い丸で表している。プロトタイプの集合をコードブックと呼ぶ。
図2に示すコードブック記憶部54に記憶されるのがこのコードブックである。
【0040】
ある音声のある音素について、その特徴ベクトルを算出した場合を考える。この特徴ベクトルに最も近いプロトタイプを求めることにより、その特徴ベクトルがどのクラスタに属するかを判定できる。すなわち、その音声の音素が、どのクラスタの音声に最も近いかが分かる。
【0041】
入力される一まとまりの音声の各音素について、この処理を繰返す。すると、その音声に含まれる音素が属するクラスタの分布を知ることができる。前述したとおり、言語によって使用される音素の集合には相違がある。したがって、予め、各言語の発話中の音素の属するクラスタについて、その分布を調べておき、入力された音声信号中の音素の分布と比較することにより、言語を識別することが可能になる。本実施の形態では、
図5のグラフ160、162により示すように、発話中の音素が属するクラスタのヒストグラムをとり、そのヒストグラムを正規化することにより、発話の言語識別のための特徴ベクトルとする。
図5では、ヒストグラムを連続したグラフのように表している。
図5のグラフ160及び162の形状の相違により示されるように、言語によってヒストグラムの形状(すなわち言語識別のための特徴ベクトル)は互いに異なる。したがって、入力された発話の言語識別のための特徴ベクトルを、予め各言語について算出されていた特徴ベクトルと比較し、最も類似している特徴ベクトルの言語が、入力された発話の言語であると判定することができる。
【0042】
なお、日本語の音素数は26程度、英語では38程度、中国語では40以上と言われている。同じ音素でも、性別、年齢別に別々のクラスタに分類されることもあることを考えると、1言語について300個のクラスタ、すなわち1言語について300個のプロトタイプからなるコードブックが得られるように特徴ベクトルをクラスタリングすることが望ましい。クラスタリング及びコードブックの算出には、一般的なクラスタリングアルゴリズムであればどのようなものでも使用できる。例えばk−平均法、又はLVQ(Learning Vector Quantize)などのアルゴリズムを用いることができる。
【0043】
以下の実施の形態では、判定にはSVMを用いることとし、SVMは予め各言語について算出された言語識別のための特徴ベクトルを学習データとしてトレーニングされる。トレーニングはどの装置で行なってもよいが、本実施の形態では、音声自動翻訳サービスを提供する音声翻訳サーバ22でこのトレーニングをし、得られたSVMをサービスの利用者に配布することとする。
【0044】
この目的のため、SVM学習処理部42は以下のような構成を有する。なお、学習データ記憶部40には、発話ごとに言語ラベルが付された各国語の音声データが蓄積されている。
図6を参照して、SVM学習処理部42は、学習データ記憶部40に記憶された音声データの各々について、所定長のブロックと呼ばれる長さの音声部分についての特徴量を算出し、もとの音声の言語ラベルが付された音声ブロック特徴ベクトルを出力するブロック特徴生成部180と、ブロック特徴生成部180から出力される音声ブロック特徴ベクトルを、言語情報とともに記憶するためのブロック特徴記憶部182とを含む。ブロック長(ブロックを構成するフレーム数)としては、1以上で、母音の平均長の半分程度が好適である。
【0045】
ブロック特徴記憶部182に記憶された音声ブロック特徴ベクトルを、その言語に関係なくクラスタリングしてコードブックを算出し、コードブック記憶部54に記憶させるためのコードブック算出部184と、ブロック特徴記憶部182に記憶された音声ブロック特徴ベクトルをその言語情報とともに読出し、コードブック記憶部54に記憶されたコードブックとマッチングすることを繰返すことにより、言語ごとに、その言語で使用される音素の属するクラスタの分布の特徴を示す特徴ベクトルを算出するための特徴ベクトル算出部186と、特徴ベクトル算出部186により出力される特徴ベクトルを、各言語を示す情報とともに記憶するための特徴ベクトル記憶部188とを含む。
【0046】
SVM学習処理部42はさらに、特徴ベクトル記憶部188に記憶された特徴ベクトルを読出し、各特徴ベクトルに付された言語情報を正解データとしてSVMの学習を行なうためのSVM学習部190を含む。SVM学習部190としては、公知のSVM学習アルゴリズムを使用できる。
【0047】
ブロック特徴生成部180は、学習データ記憶部40に記憶された音声データを読出し、例えばフレーム長が20〜25ミリ秒程度、シフト長が5〜10ミリ秒程度のフレームにフレーム化し、言語ラベルを付して出力するためのフレーム化処理部200と、フレーム化処理部200の出力するフレームを受け、各フレーム内の音声データから所定の特徴量を算出して、言語ラベルが付された特徴ベクトルを生成する処理を行なう特徴量抽出部202と、特徴量抽出部202の出力を受けるように接続され、5ミリ秒程度のシフト長で10フレーム程度のフレームの特徴ベクトルをまとめてブロック化し、これら特徴ベクトルの要素をつなぎ合わせた音声ブロック特徴ベクトルを生成し言語ラベルを付して出力するためのブロック化処理部204とを含む。
【0048】
特徴ベクトル算出部186は、ブロック特徴記憶部182に記憶されたブロック特徴ベクトルを言語ラベルと共に読出し、コードブック記憶部54に記憶されたコードブックとマッチングすることにより、そのブロック特徴ベクトルがどのクラスタに適合するかを判定するためのマッチング部220と、マッチング部220による判定結果を受け、言語ごとにブロック特徴ベクトルの適合するクラスタ数のヒストグラムを算出するためのヒストグラム算出部222と、ヒストグラム算出部222により全学習データを対象に言語毎に算出されたヒストグラムを正規化することにより、各言語の音声言語特徴ベクトルを生成し、特徴ベクトル記憶部188に記憶させるためのヒストグラム正規化部224とを含む。本実施の形態では、ヒストグラム正規化部224は、各言語のヒストグラムを、ヒストグラムの各ビンの持つ値(各クラスに属するブロック特徴ベクトルの数)の合計がある定数(例えばビン数)となるように正規化する。
【0049】
一方、言語識別部70は以下のような構成を持つ。
図7を参照して、言語識別部70は、
図2に示すA/D変換回路62によりデジタル化された音声信号を受け、
図6に示すブロック特徴生成部180と同様にして音声ブロック特徴ベクトルを生成するためのブロック特徴生成部240と、ブロック特徴生成部240の出力するブロック特徴ベクトルと、コードブック記憶部72に記憶されているコードブック及びSVM記憶部74に記憶されているSVMとを用いて、入力された音声の言語を推定する言語推定部242とを含む。言語識別部70は、SVMにより十分な信頼度で言語の推定ができるまで、入力される発話データを蓄積しながら言語の推定処理を繰返す。
【0050】
ブロック特徴生成部240は、
図6に示すフレーム化処理部200と同じ方法で音声信号をフレーム化するためのフレーム化処理部260と、フレーム化処理部260により出力されるフレームデータを受け、
図6に示す特徴量抽出部202と同じ方法により各フレーム内の音声データから所定の特徴量を算出し、特徴ベクトルを生成するための特徴量抽出部262と、特徴量抽出部262の出力する特徴ベクトルを、
図6に示すブロック化処理部204と同じ方法でブロック化し、音声ブロック特徴ベクトルを出力するためのブロック化処理部264とを含む。フレーム化処理部260、特徴量抽出部262及びモード切替スイッチ64は、入力される音声に対して上記した処理を繰返す。なお、言語推定部242は、十分な信頼度で言語の推定ができると、ブロック化処理部264に対してブロック化処理を停止するよう指示を出す。この指示に応答してブロック化処理部264はブロック化処理を停止する。フレーム化処理部260及び特徴量抽出部262は、対話による音声認識処理のために、引き続き動作する。
【0051】
言語推定部242は、
図6に示すマッチング部220と同様、ブロック化処理部264から与えられる音声ブロック特徴ベクトルの各々をコードブック記憶部72に記憶されたコードブックとマッチングし、その音声ブロック特徴ベクトルが適合するクラスタを特定してそのクラスタ番号を出力するマッチング部280と、マッチング部280が次々に出力するクラスタ番号のヒストグラムを算出するヒストグラム算出部282と、ヒストグラム算出部282により算出されるヒストグラムを、適時に正規化し、音声言語特徴ベクトルとして出力するヒストグラム正規化部284と、ヒストグラム正規化部284の出力する音声言語特徴ベクトルを、SVM記憶部74に記憶されたSVMを用いて入力音声の言語を識別し、その結果を出力する言語判定部286とを含む。ヒストグラム正規化部284による正規化には、
図6のヒストグラム正規化部224と同じ手法が使用される。
【0052】
SVM記憶部74による判定時には、音声言語特徴ベクトルのうち、SVMによって最も確率が高いと判定された言語名が、その信頼度(確率)とともに出力される。言語判定部286は、この信頼度が所定のしきい値以下であれば、判定結果を出力することなく、次の音声ブロックに対する処理を行なうよう、ブロック化処理部264、マッチング部280、ヒストグラム算出部282、及びヒストグラム正規化部284を制御する。判定時の信頼度がしきい値を越えると、言語判定部286は判定結果を出力するとともに、ブロック化処理部264、マッチング部280、ヒストグラム算出部282及びヒストグラム正規化部284を停止させ、待機状態とする。
【0053】
《コンピュータプログラム》
上記したSVM学習処理部42(
図2)及び言語識別部70の機能は、実質的にコンピュータを構成するハードウェア中のCPU(Central Processing Unit)により実行されるコンピュータプログラムにより実現される。特に、本実施の形態では、
図6に示すブロック特徴生成部180、コードブック算出部184、特徴ベクトル算出部186及びSVM学習部190はそれぞれ個別のプログラムにより実現される。この中で、コードブック算出部184及びSVM学習部190は、既存のコードブック算出用のプログラムとSVM学習用のプログラムとをそれぞれ用いて実現できる。以下、ブロック特徴生成部180及び特徴ベクトル算出部186について、それぞれを実現するためのコンピュータプログラムの制御構造について説明する。
【0054】
図8を参照して、ブロック特徴生成部180を実現するコンピュータプログラムは、コンピュータ内でこのプログラムが使用する資源(メモリ)等を初期化するステップ320と、学習データ記憶部40(
図6参照)に記憶された全ての発話データに対して、以下に説明するブロック生成処理324を実行するステップ322とを含む。
【0055】
ブロック生成処理324は、対象となる発話データファイルを開くステップ340と、ステップ340で開いた発話データファイルのデータをメモリに読込むステップ341と、フレーム化すべきデータの先頭箇所を示すポインタをデータの先頭に設定し、処理されたフレームに関する特徴量が保存される配列の要素のインデックスを示す変数Iに0を代入し、各フレームの特徴量が保存される配列をクリアする、後述するように最初のI
B個のフレームデータの読込が完了したか否かを示すフラグをクリアする等、発話データファイルごとの初期化を行なうステップ342と、変数Iに1を加算するステップ344と、変数Iが予め定められた上限の定数I
MAXを超えたか否かを判定し、判定結果にしたがって制御の流れを分岐させるステップ346とを含む。定数I
MAXは、フレームごとの特徴ベクトルを記憶する配列の要素数(インデックスの上限)である。定数I
Bは、1個の音声ブロック特徴ベクトルを構成するフレーム特徴ベクトルの個数である。
【0056】
ブロック生成処理324はさらに、ステップ346の判定が肯定のときに実行され、変数Iに1を代入するステップ348と、ステップ346の判定が否定のとき、及びステップ348の処理が終了した後に実行され、メモリに格納された発話データファイルの、ポインタにより示される位置から1フレーム分の時間のデータを読出すステップ350と、ステップ350での読出処理の結果、データの終端に到達したか否かを判定するステップ352と、ステップ352の判定が肯定のときに実行され、配列の変数Iにより示される要素を含めて最後のI
B個の要素に記憶されていたフレーム特徴ベクトルをまとめて音声ブロック特徴ベクトルを生成して出力するステップ368と、処理対象の発話データファイルをクローズしてその発話データファイルに対する処理を終了するステップ370とを含む。ステップ346及びステップ348の処理から分かるように、本実施の形態では、配列をリングバッファのように使用してフレーム特徴ベクトルから音声ブロック特徴ベクトルを生成する。なお、本実施の形態では、フレームのシフト長とブロックのシフト長とを等しくしているため、
図8に示すようにブロック化の処理が簡略になる。
【0057】
このプログラムはさらに、ステップ352の判定が否定のときに実行され、フラグの値が0か否かを判定するステップ354と、ステップ354の判定が否定のときに、変数Iの値が前述した定数I
Bより大きいか否かを判定するステップ356と、ステップ356の判定が肯定のときに実行され、フラグを1にセットするステップ358と、ステップ354の判定が肯定のとき、及びステップ358の処理が完了した後に実行され、配列の、変数Iにより示される位置の直前のI
B個の要素に含まれるフレーム特徴ベクトルから音声ブロック特徴ベクトルを生成して出力するステップ360と、ステップ360の後に実行され、ステップ350で読出された発話データを1フレーム分として、所定の特徴量を算出するステップ360と、ステップ360において算出された特徴量を配列の要素(I)に保存するステップ364と、ステップ364に続き、フレームのシフト長分に相当する値だけ発話データの読出ポインタに加算して制御をステップ344に戻すステップ366とを含む。なお、ステップ356での判定が否定のときには制御はステップ362に進む。すなわち、発話データファイルの最初のI
B個のフレーム特徴ベクトルについては無条件で配列に保存し、それ以後は、I
B個のフレーム特徴ベクトルをまとめて1つの音声ブロック特徴ベクトルを生成して出力した後に、ステップ350で読出されたフレームのフレーム特徴ベクトルを保存する処理を繰返す。
【0058】
なお、音声ブロック特徴ベクトルは、1発話データファイルに対して1ファイルとなるように出力され、ハードディスクに記憶される。このファイルを、以後、発話ブロックデータファイルと呼ぶ。発話ブロックデータファイルには、対応する発話データの言語ラベルが付される。
【0059】
図9を参照して、
図6に示す特徴ベクトル算出部186を実現するコンピュータプログラムは、プログラムの実行開始とともに、プログラムが使用するメモリエリアのクリアなどの初期化を実行するステップ380と、ステップ380に続き、に対して音声言語特徴ベクトルを生成する言語特徴ベクトル生成処理384を繰返し実行するステップ382とを含む。
【0060】
言語特徴ベクトル生成処理384は、全発話のうち、処理対象の発話ブロックデータファイルを開き、データをメモリに読込むステップ400と、ヒストグラム用の配列をクリアするステップ402とを含む。ヒストグラム用の配列は、クラスタリングにより得られたクラスタ数だけの、数字を記憶するための要素を持ち、ここでその全てが0にクリアされる。
【0061】
言語特徴ベクトル生成処理384はさらに、ステップ402に続き、ステップ400で読込んだ全ブロックのデータに対して、ヒストグラム生成処理406を実行するステップ404を含む。
【0062】
ヒストグラム生成処理406は、処理対象のブロックの音声ブロック特徴ベクトルが、コードブック算出部184により算出されコードブック記憶部54に記憶されているコードブックのプロトタイプのうち、いずれのプロトタイプに最も近いかに基づいて、コードブックを選択するステップ430と、ステップ430で選択されたコードブックに対応するヒストグラムのいずれかのビンに対応する配列要素に1を加算してヒストグラムを更新するステップ432とを含む。
【0063】
ヒストグラム生成処理406により、処理対象の発話ブロックデータファイル中の全てのブロック音声特徴ベクトルをヒストグラムの各ビンに分類した後、ステップ408において、ヒストグラムの各ビンの値を、その合計がヒストグラムのビン数と一致するように正規化する。得られたヒストグラムの各ビンの値は、この発話データファイルの発話の特徴ベクトルを構成する。ステップ410では、この特徴ベクトルを、処理対象の発話データファイルに付されていた言語ラベルと共に保存する。ステップ412では、処理対象となっていた発話ブロックデータファイルを閉じ、この発話ブロックデータファイルに対する処理を終了する。
【0064】
以上が
図6に示すブロック特徴生成部180及び特徴ベクトル算出部186を実現するプログラムの構成に関する説明である。
【0065】
図7に示す言語識別部70を実現するコンピュータプログラムは、以下のような制御構造を持つ。
図10を参照して、この処理は、言語の判定が指示されたことに応答して開始し、メモリなど、以下の処理で使用する資源を初期化するステップ440と、
図6に示すA/D変換回路62の出力するデジタル化された発話データをリアルタイムで受信して音声ブロック化し、音声ブロック特徴ベクトルを算出するステップ442と、ステップ442で算出された音声ブロック特徴ベクトルと、コードブック記憶部72(
図7参照)に記憶されているコードブックとのマッチングを行ない、与えられた音声ブロック特徴ベクトルと最も近いコードブックを選択するステップ444と、ステップ444での判定結果にしたがい、発話の言語を示す音声言語特徴ベクトルを生成するステップ446とを含む。
【0066】
このプログラムはさらに、ステップ446で算出された音声言語特徴ベクトルを入力として、SVM記憶部74(
図7参照)に記憶されているSVMパラメータにより構成されるSVMで入力された発話の言語を判定して、その信頼度とともに出力するステップ448と、ステップ448で出力された信頼度が予め定められたしきい値より大きいか否かを判定し、信頼度がしきい値以下であれば制御をステップ442に戻すステップ450と、ステップ450の判定が肯定のときに、ステップ448での言語の判定結果を出力し、処理を終了するステップ452とを含む。
【0067】
図11を参照して、
図7のステップ446において実行される処理は、ステップ444での照合の結果、処理中のブロックと一番近いと判定されたプロトタイプを特定し、ヒストグラムの内でそのプロトタイプに対応するビンの値に1を加算するステップ460と、ステップ460で更新されたヒストグラムを正規化して特徴ベクトルを生成し、この処理を終了するステップ462とを含む。ステップ462でのヒストグラムの正規化は、
図9のステップ432で行なうのと全く同じ処理である。
【0068】
[動作]
図1〜
図11を参照して、上記した音声自動翻訳システム20は以下のように動作する。音声自動翻訳システム20の動作フェーズには大きく分けて2つがある。第1は音声翻訳サーバ22におけるSVM26の学習フェーズである。第2は携帯電話機24で話者の言語の判定を行ない、その情報(言語情報28)を用いて携帯電話機24における話者の対話内容を音声翻訳サーバ22で機械翻訳し、携帯電話機24に返信する対話フェーズである。
【0069】
《学習フェーズ》
特に
図6を参照して、音声翻訳サーバ22の学習データ記憶部40には、学習用のデータが予め準備されているものとする。学習用のデータとは、音声信号をデジタル化したものに、言語ラベルが付されたものである。ブロック特徴生成部180のフレーム化処理部200は、学習データ記憶部40から学習データの発話データファイルの各々をその言語ラベルと共に読出し(
図8のステップ340、341)、所定長かつ所定シフト長でフレーム化し(
図8のステップ350)、順次特徴量抽出部202に与える。特徴量抽出部202は、与えられた各フレームについて、MFCC,パワー、F0などの特徴量を抽出し(
図8のステップ362)、言語ラベルと共にフレーム特徴ベクトルとしてブロック化処理部204に与える。ブロック化処理部204は、このフレーム特徴ベクトルを所定個数だけ連結することにより、所定長かつ所定シフト長の音声ブロック特徴ベクトルを作成し、ブロック特徴記憶部182に順次保存する(
図8のステップ360及びステップ368)。
【0070】
ブロック特徴記憶部182に学習データから得られた全ての音声ブロック特徴ベクトルが保存されると、コードブック算出部184が公知のクラスタリングアルゴリズムを用いて音声ブロック特徴ベクトルをクラスタリングし、コードブックを算出する。コードブックの実体は、各クラスタを代表するプロトタイプベクトルである。算出されたコードブックはコードブック記憶部54に記憶される。
【0071】
コードブックの算出が終了すると、
図6に示すマッチング部220は、ブロック特徴記憶部182から処理対象の音声ブロック特徴ベクトルのデータファイルを言語ラベルとともに順次読出し、各データファイルについて以下の処理を実行する。すなわち、マッチング部220は、ヒストグラムの各ビンの値を格納する配列をクリアする(
図9のステップ402)。マッチング部220及びヒストグラム算出部222は、読出したデータファイルに含まれる全音声ブロック特徴ベクトルについて、以下の処理を実行する(ステップ404)。
【0072】
すなわち、マッチング部220は、そのブロック特徴ベクトルを、コードブック記憶部54に記憶されたプロトタイプベクトルとマッチングすることにより、そのブロック特徴ベクトルに最も近いプロトタイプを決定し(
図10、ステップ430)、そのプロトタイプを特定する情報をヒストグラム算出部222に与える。ヒストグラム算出部222は、ヒストグラムの各ビンのうち、マッチング部220からの情報により特定されるプロトタイプに対応するビンに1を加算する(
図10、ステップ432)。マッチング部220及びヒストグラム算出部222は、読出された全音声ブロック特徴ベクトルに対しこの処理を行なう。
【0073】
マッチング部220及びヒストグラム算出部222による処理が、処理多少のデータファイルから読出した全音声ブロック特徴ベクトルに対して完了すると、ヒストグラム正規化部224は、ヒストグラム算出部222により最終的に得られたヒストグラムを正規化する。この正規化は、本実施の形態では、各ビンの値を合計した値がビン数と等しくなるように行なわれる。このようにして正規化されたヒストグラムが、この発話の特徴ベクトルとして、処理対象のデータファイルに付されていた言語ラベルと共に特徴ベクトル記憶部188に保存される。
【0074】
特徴ベクトル算出部186は、上記した処理をブロック特徴記憶部182に記憶された全てのブロック特徴ベクトルのデータファイルに対して実行する。その結果、特徴ベクトル記憶部188には、学習データ記憶部40に記憶されていた全発話データについて、その特徴ベクトルが言語ラベルと共に蓄積されることになる。
【0075】
全ての発話に関する特徴ベクトルが特徴ベクトル記憶部188に保存されると、SVM学習部190が公知のSVM学習アルゴリズムによりSVMの学習を行ない、得られたSVMパラメータをSVM記憶部56に記憶する。SVM記憶部56に記憶されたSVMパラメータ、及びコードブック記憶部54に記憶されたコードブックは、通信を介して音声翻訳サーバ22から携帯電話機24などの端末に配布される。以上で学習フェーズは終了である。
【0076】
《対話フェーズ》
対話フェーズには、
図3に示すようにさらに細かい2つのサブフェーズがある。第1のサブフェーズは、発話者の言語を判定する判定フェーズである。第2のサブフェーズは、判定された言語情報を用い、発話者の発話を音声翻訳サーバ22に送信して機械翻訳を依頼し、得られた翻訳結果を受信して表示する翻訳フェーズである。以下、これらサブフェーズについて順次携帯電話機24及び音声翻訳サーバ22の動作を説明する。
【0077】
(判定フェーズ)
仮に発話者の話す言語が予め分かっている場合には、適当なインタフェースを通じて
図2に示すソース言語記憶部80及びターゲット言語記憶部82に各話者の言語情報を記憶させておけばよい。ソース及びターゲットは便宜的に定めればよい。例えば携帯電話機24の持ち主の言語がターゲット言語であり、相手の言語がソース言語であると予め決めておけば、ターゲット言語を設定する回数が少なくてよく、好都合である。
【0078】
発話者の話す言語が不明な場合には、以下のようにする。
【0079】
LCD90の表示面には、モード切替スイッチ64及びソース/ターゲット切替スイッチ66を実現するGUI(Graphical User Interface)、例えば「判定」と「翻訳」との2つのラジオボタン、「ソース」と「ターゲット」との2つのラジオボタンが表示される。ユーザが「判定」ラジオボタンを選択すると、携帯電話機24の動作モードが言語の識別モードに設定される。切替回路68は、モード切替スイッチ64の出力により制御されて、A/D変換回路62の出力を言語識別部70に与えるように動作する。ユーザが「ソース」ラジオボタンを選択すると、携帯電話機24が判定した発話の言語情報はソース言語記憶部80に格納されるように設定される。
【0080】
この状態でソース言語に相当する言語(携帯電話機24の所有者の相手となる話者)が発話を始めると、言語識別部70は以下のようにしてソース言語の判定を行なう。
【0081】
図2を参照して、マイク60は、入力される音声をアナログの電気信号に変換し、出力する。A/D変換回路62は、この電気信号をデジタル化し、切替回路68の入力に与える。切替回路68は、モード切替スイッチ64の制御により、言語識別部70の入力にデジタル化された音声信号を与える。
【0082】
この音声信号を受けると、
図7を参照して、言語識別部70のブロック特徴生成部240は以下のように動作する。すなわち、フレーム化処理部260は、入力される音声信号を所定フレーム長及び所定シフト長でフレーム化し、特徴量抽出部262に与える。特徴量抽出部262は、各フレームの特徴量を算出し、フレーム特徴ベクトルとしてブロック化処理部264に与える。ブロック化処理部264は、与えられる各フレームの特徴ベクトルを所定個数だけつなぐことにより、所定シフト長のブロックについて、所定長の音声ブロック特徴ベクトルを生成し、マッチング部280に与える。
【0083】
マッチング部280は、与えられた音声ブロック特徴ベクトルをコードブック記憶部72に記憶されたコードブックとマッチングし、最も近いプロトタイプベクトルを決定し、プロトタイプを特定する情報をヒストグラム算出部282に与える。ヒストグラム算出部282の各ビンに対応する配列は言語識別部70の処理開始時に初期化されており、ヒストグラムのビンに対応する配列のうち、マッチング部280により特定されたプロトタイプに対応するものに1を加算する。ヒストグラム正規化部284は、ヒストグラム算出部282が保持するプロトタイプの配列を、各ビンの値の合計がヒストグラムのビン数と一致するように正規化し、発話の言語の特徴ベクトルとして言語判定部286に与える。言語判定部286は、SVM記憶部74に記憶されたSVMにより、ヒストグラム正規化部284により与えられた特徴ベクトルの属するクラス(言語)を、その信頼度とともに決定する。言語判定部286はさらに、信頼度が所定のしきい値よりも高ければ、得られた言語を特定する情報を
図2のソース言語記憶部80に格納し、ブロック化処理部264、マッチング部280、ヒストグラム算出部282及び言語判定部286の動作を停止させる。信頼度が低ければ、言語判定部286はさらに言語識別部70を続けて動作させる。言語判定部286は、このようにして、言語の判定結果の信頼度がしきい値を越えるまで上記した処理を繰返し、信頼度がしきい値を越えた時点で処理を終了する。
【0084】
仮にターゲット言語も同じように言語識別部70を使用して判定するなら、ソース/ターゲット切替スイッチ66を使用して、言語の判定結果をターゲット言語記憶部82に記憶させるようにして、上と同じ処理を繰返せばよい。通常、ターゲット側の言語は携帯電話機24の持ち主の言語に固定されるので、この処理は不要となることが多いであろう。
【0085】
(翻訳フェーズ)
翻訳フェーズでは、音声自動翻訳システム20は以下のように動作する。
図2を参照して、携帯電話機24のモード切替スイッチ64は対話モード側に切替えられる。2人の話者のうち、これから発話する人の言語にあわせてソース/ターゲット切替スイッチ66をソース言語側又はターゲット言語側に切替える。この状態で、発話者が発話を開始する。
【0086】
マイク60は、入力される音声をアナログの電気信号に変換し、出力する。A/D変換回路62は、この電気信号をデジタル化し、切替回路68の入力に与える。切替回路68は、モード切替スイッチ64の設定にしたがい、特徴量算出部76にA/D変換回路62からのデジタル化された音声信号を与える。特徴量算出部76はこの音声信号をフレーム化し、各フレームから、音声翻訳サーバ22での音声認識に使用される特徴量を算出する。この特徴量はフレームごとに特徴量記憶部78に記憶される。発話が終了し、例えば利用者が図示しない「翻訳開始」ボタンを押すと、送信部86が、特徴量記憶部78に格納された発話者の発話から得た一連の特徴量に、ソース言語記憶部80から読出した言語ラベルと、ターゲット言語記憶部82から読出した言語ラベルとをこの順で対にして付し、音声翻訳サーバ22に送信する。
【0087】
音声翻訳サーバ22は、送信部86から送信されてきた情報のうち、言語のラベル対のうち最初のもの(ソース言語側)の言語ラベルを選択部46に与え、言語のラベル対を選択部50に与え、特徴量を音声認識装置48に与える。選択部46は、言語資源記憶部44から、この言語ラベルにより特定される言語の音声認識のための言語資源(音響モデル及び言語モデルなど)を選択し、音声認識装置48に接続する。選択部50は、与えられた言語ラベルのうち、ソース言語ラベルにより特定される言語からターゲット言語ラベルにより特定される言語への自動翻訳に必要な言語資源(ソース/ターゲット言語の翻訳モデル、ターゲット言語の言語モデル等)を選択し、SMT52に接続する。
【0088】
音声認識装置48は、送信部86から与えられる音響特徴量に対し、選択部46を介して接続された言語資源を用いた音声認識を行ない、結果をテキスト形式でSMT52に出力する。SMT52は、この音声認識の結果に対し、選択部50を介して接続された言語資源を用いてソース言語からターゲット言語への翻訳を行ない、得られた結果をテキスト形式で携帯電話機24の受信部88に送信する。
【0089】
携帯電話機24の受信部88は、この翻訳結果をLCD90に表示する。
【0090】
次に発話者が交代して同様の動作を行なうものとする。この場合、ソース/ターゲット切替スイッチ66をターゲット側に切替える。
【0091】
マイク60、A/D変換回路62、切替回路68、特徴量算出部76、及び特徴量記憶部78は、最初の発話者に対する処理と同様の処理をする。その結果、2番目の話者の発話の音響特徴量が特徴量記憶部78に蓄積される。発話が完了すると、利用者は図示しない「翻訳開始」ボタンを押す。送信部86は、ソース/ターゲット切替スイッチ66が「ターゲット言語」側に切替えられているため、先ほどとは逆に、ターゲット言語記憶部82から読出した言語ラベルを先に、ソース言語記憶部80から読出した言語ラベルを後にして言語ラベルの対とし、特徴量記憶部78から読出した特徴量とともに音声翻訳サーバ22に送信する。
【0092】
音声翻訳サーバ22は、送信部86からの情報を受けて、先ほどと全く同様の処理をする。ただし今度は、先の発話におけるソース言語のラベルとターゲット言語のラベルとが入れ替わっている。そのため、選択部46が選択する言語資源は、ターゲット言語記憶部82に格納された言語ラベルにより特定された言語の音声認識のためのものとなる。選択部50が選択する言語資源は、ターゲット言語記憶部82に格納された言語ラベルにより特定される言語から、ソース言語記憶部80に格納された言語ラベルにより特定される言語への自動翻訳に必要な言語資源となる。音声認識装置48及びSMT52は、いずれも統計的な処理をするものであるため、このように対象となる言語が変化しても、使用する言語資源を変更するだけで、同じ音声認識エンジン及び自動翻訳エンジンを使用して異なる言語に対する処理を行なうことができる。すなわち、音声認識装置48は、特徴量記憶部78から与えられた音響特徴量に対し、選択部46を介して接続された言語資源を用いて音声認識し、その結果をSMT52に与える。この音声認識の結果は、ターゲット言語記憶部82に格納された言語ラベルにより特定される言語のものとなる。SMT52は、音声認識の結果に対し、選択部50を介して接続された言語資源を用いて自動翻訳処理を実行し、自動翻訳の結果を得る。SMT52が実行する処理は、ターゲット言語記憶部82に格納された言語ラベルにより特定される言語から、ソース言語記憶部80に格納された言語ラベルにより特定される言語への自動翻訳である。
【0093】
得られた翻訳結果は、受信部88に送信され、LCD90に表示される。
【0094】
以上のような処理を、2人の発話者のうちいずれが発話するかによりソース/ターゲット切替スイッチ66を切替ながら行なうことにより、異なる言語を母語とする発話者のペアの間の自動翻訳による対話が可能になる。言語識別部70により、発話者の言語を識別することができるので、互いに相手の母語がどの言語か全く分からない場合でも、音声翻訳サーバ22によるSVMの学習において対象となった言語であれば、携帯電話機24が自動的に認識し、相互に翻訳を行なうことができる。
【0095】
上記実施の形態では、音声言語特徴の識別に、事後確率を信頼度として出力可能な多クラスSVMを用いている。しかし本発明はそのような実施の形態には限定されない。2つ以上の多クラス分類問題を解くことができるモデルであって、予測クラスの事後確率を出力できるもの、及びそのモデルの学習を行なうアルゴリズムを上記実施の形態のSVM及びSVM学習部190に代えて用いることができる。
【0096】
さらに、上記実施の形態では、
図7に示すヒストグラム正規化部284及び言語判定部286は、音声ブロック特徴ベクトルがブロック化処理部264から与えられるたびにそれぞれヒストグラムの正規化と言語の判定処理とを実行している。しかし本発明はそのような実施の形態には限定されない。入力される音声ブロック特徴ベクトルの数が少ない場合、ヒストグラム正規化部284及び言語判定部286により判定の信頼性が低くなることも考えられる。そのような問題を回避するため、例えば、ブロック化処理部264から入力されるブロックの数が所定個数を越えた時点で初めてヒストグラム正規化部284及び言語判定部286が動作を開始するようにしたり、所定の複数個の音声ブロック特徴ベクトルが入力されるたびにヒストグラム正規化部284と言語判定部286とが間歇的に動作したりするようにしてもよい。
【0097】
上記実施の形態は、2人の話者の間の自動音声翻訳に関するものである。しかし、このシステムを3人以上の話者の間の自動音声翻訳にも容易に適用可能なことは、当業者には明らかである。
【0098】
<コンピュータによる実現>
この実施の形態に係る音声翻訳サーバ22は、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現できる。
【0099】
図12を参照して、音声翻訳サーバ22を実現するコンピュータシステム530は、メモリインタフェース(メモリI/F)552及びDVD(Digital Versatile Disc)ドライブ550を有するコンピュータ540と、キーボード546と、マウス548と、モニタ542とを含む。
【0100】
図13を参照して、コンピュータ540は、メモリI/F552及びDVDドライブ550に加えて、CPU(中央処理装置)556と、CPU556、メモリI/F552及びDVDドライブ550に接続されたバス566と、ブートアッププログラム等を記憶する読出専用メモリ(ROM)558と、バス566に接続され、プログラム命令、システムプログラム、及び作業データ等を記憶するランダムアクセスメモリ(RAM)560とを含む。コンピュータシステム530はさらに、インターネットへの接続を提供するネットワークインターフェイス(I/F)544を含む。図示しないが、コンピュータ540はネットワークI/F544を介して携帯電話機ネットワークと接続されており、携帯電話機24などの外部端末とデータ通信を行なうことができる。
【0101】
コンピュータシステム530に音声翻訳サーバ22としての動作を行なわせるためのコンピュータプログラムは、DVDドライブ550又はメモリI/F552に装着されるDVD562又はメモリ564に記憶され、さらにハードディスク554に転送される。又は、プログラムは図示しないネットワークを通じてコンピュータ540に送信されハードディスク554に記憶されてもよい。プログラムは実行の際にRAM560にロードされる。DVD562から、メモリ564から、又はネットワークを介して、直接にRAM560にプログラムをロードしてもよい。
【0102】
このプログラムは、コンピュータ540にこの実施の形態の音声翻訳サーバ22として動作を行なわせる複数の命令を含む。この動作を行なわせるのに必要な基本的機能のいくつかはコンピュータ540上で動作するオペレーティングシステム(OS)もしくはサードパーティのプログラム、又はコンピュータ540にインストールされる各種ツールキットのモジュールにより提供される。したがって、このプログラムはこの実施の形態のシステム及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記した音声翻訳サーバ22としての動作を実行する命令のみを含んでいればよい。
【0103】
コンピュータシステム330の動作は周知であるので、ここでは繰返さない。
【0104】
なお、上記実施の形態では、音声翻訳サーバ22と携帯電話機24とが別々のものとして説明した。当業者であれば、上記実施の形態において携帯電話機24の機能として説明したものを音声翻訳サーバ22に設けることで、音声翻訳サーバ22単体で音声自動翻訳システム20と同様の機能を実現できることは明らかである。また、逆に、携帯電話機24の計算能力が高い場合には、上記した音声自動翻訳システム20の機能を全て携帯電話機24に盛り込むことも可能である。ここでは携帯電話機24のハードウェア構成については特に示さないが、上記した言語処理を実現するために必要なハードウェアは、大きさ、重さ、消費電力などの点で携帯用に適したものであれば、機能的には上に説明したコンピュータのハードウェアと同様のものでよい。
【0105】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。