以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
[第1の実施の形態]
〈構成〉
図1は、この発明の第1の実施の形態における言語識別の概略を示す模式図である。図1を参照して、この実施の形態では、入力された音声信号をニューラルネットワーク50で処理することにより予め定めた8種類の言語52の各々について、入力音声がその言語のものである確率54を算出する。この確率54は合計が1となるように正規化されている。さらに8種類の言語52の中から、予めユーザにより指定された複数種類(以下の実施の形態では3種類)の選択言語56の確率を抽出し、これらの確率を、合計が1となるようにさらに正規化する。正規化した選択言語56の中で最も高い確率の言語58が入力された音声の言語であると推定する。このとき、正規化した後の確率が予め定めたしきい値以上であれば言語58を推定結果として採用し、そうでなければ推定結果を棄却する。推定結果を棄却する場合には、音声の続きを用いて再び言語の推定を行う。
図2は、この発明の第1の実施の形態に係る、入力される音声信号により表される言語を自動的に認識し、その結果に基づいてその音声信号に対する音声処理を行う多言語音声処理装置100の概略構成を示すブロック図である。この実施の形態では、多言語音声処理装置100は、音声が8種類の言語の中のどの言語かを推定して音声認識し、自動翻訳を行い、翻訳結果から音声を合成して出力する。
図2を参照して、多言語音声処理装置100には、マイクロフォン(以下「マイク」という。)102と、モニタ104と、スピーカ106とが接続されている。多言語音声処理装置100は、マイク102から音声信号を受信し、デジタル化、フレーム化して各音声を表す音声データベクトルの時系列に変換する音声処理装置130と、音声処理装置130の出力する、所定長の音声データベクトル列の入力を受けて、入力された音声信号の表す音声が、前述した8種類の言語である確率をそれら言語の各々について出力する言語識別ニューラルネットワーク132と、言語識別ニューラルネットワーク132の出力する8種類の確率に基づいて、入力音声の言語を判定する言語判定部134とを含む。
この実施の形態では、図1に示すように、判定対象の言語は、日本語(略称は「JA」。以下、カッコ内は各言語の略称を表す。)、英語(EN)、中国語(ZH)、韓国語(KO)、インドネシア語(ID)、ベトナム語(VI)、タイ語(TH)、及びミャンマー語(MY)である。
多言語音声処理装置100はさらに、多言語音声処理装置100を使用する際のユーザとのインターフェイスに使用される言語を含む基本情報を対話型処理により設定するための基本情報設定部120と、処理中の発話の話し手に対する相手の言語に関する情報を記憶するための相手言語記憶部122と、言語識別ニューラルネットワーク132の処理対象である8種類の言語、その中でユーザが選択する3種類の言語、及びさらにその中で最初の入力音声の言語としてユーザが予め指定する言語に関する情報を対話型処理により設定するための言語設定部124と、言語設定部124に設定された情報を記憶するための選択言語記憶部128と、次の音声の言語として推定された言語をデフォルト値として記憶するためのデフォルト言語記憶部126とを含む。デフォルト言語記憶部126及び相手言語記憶部122に記憶される値は、多言語音声処理装置100の動作に伴い、識別された言語の変化に伴って、所定のアルゴリズムで更新される。
なお、デフォルト言語記憶部126に記憶される言語は、ユーザにとって対話の相手の言語が不明であるときに、とりあえず推測した言語、又は対話の相手のデフォルトの言語としてユーザが以前から設定していた言語である。仮に対話の相手の言語がはっきり分かっている場合には、言語設定部124を使用してその言語をデフォルト言語記憶部126に設定すればよい。しかしその場合には、そもそも言語識別ニューラルネットワーク132による言語の判定は不要ということになる。この実施の形態では、そうした場合についての構成及び説明はせず、あくまで対話の相手の言語が不明である場合を想定する。
多言語音声処理装置100はさらに、入力された音声信号について言語判定部134により判定された言語が、デフォルト言語記憶部126に記憶されたデフォルト言語から変化したか否かを判定し、その結果を表す判定信号を出力する言語変化判定部136と、デフォルト言語記憶部126と言語判定部134との出力にそれぞれ接続された2つの入力を持ち、言語変化判定部136の出力に応じていずれかを選択して出力するための言語選択部138とを含む。
多言語音声処理装置100はさらに、音声処理装置130の出力する音声データベクトル列の一定時間分を記憶するFIFOのバッファ140と、音声処理装置130の出力及びバッファ140の出力に接続された2つの入力を持ち、言語変化判定部136の出力に応じていずれかを選択して出力するための音声データ選択部142と、音声データ選択部142の出力に接続された入力を持ち、入力される音声データベクトル列に対し、その音声の言語が言語選択部138の出力により指定される音声であると想定して音声翻訳処理を行うための多言語音声翻訳装置144とを含む。バッファ140は、以下に説明するように、デフォルトの言語で音声データに対する音声翻訳処理を開始した後、実際の言語がデフォルトの言語以外であることが判明したときに、正しい言語で音声データに対する音声翻訳を最初から実行するために必要である。
この実施の形態では、多言語音声翻訳装置144は入力される音声データベクトル列に対して音声認識処理を実行し、その結果を相手言語記憶部122に記憶されている言語に自動翻訳し、さらに自動翻訳の結果であるテキストと音声合成用のためのパラメータとを出力する処理を行う。
多言語音声処理装置100はさらに、多言語音声翻訳装置144が出力する音声合成のためのパラメータと、相手言語記憶部122に記憶されている情報とに基づいて音声信号を合成し、スピーカ106に与えて音声を発生させるための音声信号合成装置146と、多言語音声翻訳装置144が出力するテキスト情報に基づいてモニタ104を制御してそのテキストを表示させるための表示制御装置148とを含む。
図3は、この発明の第1の実施の形態に係る言語識別のための中心部の構成を示すブロック図である。図3を参照して、この実施の形態では、言語識別ニューラルネットワーク132は、3つの言語識別モデル180、182及び184を含む。これらはいずれもニューラルネットワークである。言語識別モデル180は、1.5秒の音声データを入力として、その音声の言語を推定するためのものである。同様に、言語識別モデル182は、2.0秒の音声データを入力とし、言語識別モデル184は3.0秒の音声データを入力とする。
例えば言語識別モデル180は、複数の畳込みブロックからなる畳込み層群170と、畳込み層群170の出力を受けて8種類の言語の確率174を出力する全結合層172とを含む。全結合層172は複数の層を含み、最終層はSoftMax層となっている。したがって8種類の言語に対応する出力の合計は1となり、確率174として扱うことができる。言語識別モデル182及び言語識別モデル184は言語識別モデル180とほぼ同じ構成を持つが、その構成には入力のサイズが異なっていることを反映した相違がある(入力層のノード数等)。
言語識別モデル180、182及び184は、8カ国語の大量の音声信号と、その音声信号の表す音声の言語を示す正解データとの組み合わせによりそれぞれ予め訓練しておく。音声信号のサイズは各モデルに応じて異なったものを用いる。この実施の形態では、正解データは8個の要素を持ち、正解の言語に対応する要素の値が1、それ以外の要素の値が0となるベクトルとする。訓練自体はニューラルネットワークに対する通常の誤差逆伝播法により行うことができる。訓練データが多くなるほど言語識別の精度は高くなるので、十分な量の訓練データを集めることが重要である。
言語判定部134は、言語識別モデル180から確率174、言語識別モデル182から確率176、言語識別モデル184から確率178の入力をそれぞれ受け、3種類のモデルによるこれら3組の確率から、外部信号により指定される1組を選択するモデル選択部190と、モデル選択部190により選択された確率の組に含まれる8種類の確率から、選択言語記憶部128に記憶されている3種類の選択言語の確率を抽出する言語選択部200と、言語選択部200の選択した3種類の言語の確率を正規化し確率として出力するための確率正規化部202とを含む。確率正規化部202は、3種類の確率の合計を計算し、その値で各確率の言語を割った値を各言語の確率とする。この値は合計すると1となる。
言語判定部134はさらに、確率正規化部202により正規化された3つの確率の中で最大の確率を選択して出力する最大確率選択部204と、最大確率選択部204により選択された確率が所定のしきい値以上か否かを判定し、判定結果を出力するしきい値比較部206と、確率正規化部202が出力する正規化後の確率、最大確率選択部204が選択した最大確率、及びしきい値比較部206からの比較結果を受け、それらに基づいて言語の識別を試み、言語が識別できたらその結果を言語変化判定部136に与え、判定が完了したことを示す完了信号を言語変化判定部136(図2)及び相手言語記憶部122(図2)に与え、言語が識別できなかったときには、そのときの各言語の正規化後の確率を確率記憶部194に格納し、カウンタ196の値を1インクリメントし、言語選択部200に指示を与えて次の言語識別モデルの出力を選択して同様の処理を実行するための言語決定部208と、しきい値比較部206が比較するしきい値を記憶するしきい値記憶部192とを含む。しきい値としては、望ましい精度及びレイテンシを実現できるように予め実験で定めておく。しきい値は少なくとも0.5以上、より好ましくは0.8以上、さらに好ましくは0.85以上であることが望ましい。
図4は、この発明の第1の実施の形態に係る多言語音声処理装置が利用する多言語音声翻訳装置144の概略構成を示すブロック図である。図4を参照して、多言語音声翻訳装置144は、8種類の言語に対応して予め準備された8種類の言語用の音声認識装置220、…、234と、各々、これら音声認識装置220、…、234の出力する音声認識結果のテキストを受け、その音声認識装置の出力するテキストを、各音声認識装置の言語から、他の7種類の言語に翻訳可能で、かつその中で相手言語記憶部122により指定される言語に翻訳して出力する8種類の多言語翻訳装置240、…、254と、図2の音声データ選択部142から与えられる音声データベクトル列を受け、音声認識装置220、…、234の中で言語選択部138からの言語選択信号により指定されるものにこの音声データベクトル列を与えるためのデータ分配部258と、多言語翻訳装置240、…、254の各々からの出力を受けるよう接続され、言語選択部138からの言語選択信号により指定される音声処理結果を選択し、音声合成用のパラメータを音声信号合成装置146に、音声処理結果のテキストを表示制御装置148に、それぞれ与えるための出力選択部256とを含む。
図5を参照して、多言語翻訳装置240は、この多言語翻訳装置240に対応する言語の文を他の7言語に翻訳するための、いずれも相手言語記憶部122からの相手言語選択信号を受けるように接続された7個の自動翻訳エンジン262、…、274と、言語選択部138から言語選択信号を、相手言語記憶部122から相手言語を示す信号を、それぞれ受け、言語選択部138により選択されたときのみ動作し、自動翻訳エンジン262、…、274の中で相手言語記憶部122からの相手言語選択信号に対応するものに音声認識装置220の出力するテキストを与える処理を実行する翻訳エンジン選択部260と、 出力選択部278にも相手言語記憶部122からの相手言語選択信号を受けるように接続され、自動翻訳エンジン262、…、274のうち、相手言語選択信号により選択されたものの出力を選択して多言語翻訳装置240からの出力として図4に示す出力選択部256に与えるための出力選択部278とを含む。
図6に、上記した多言語音声処理装置100を実現するコンピュータシステム290の1例の外観を示し、図7にコンピュータシステム290を構成するコンピュータの1例のハードウェアブロック図を示す。
図6を参照して、このコンピュータシステム290は、DVD(Digital Versatile Disc)ドライブ310を有するコンピュータ300と、いずれもコンピュータ300に接続されたキーボード306、マウス308、及びモニタ104とを含む。
図7を参照して、コンピュータ300は、DVDドライブ310に加えて、CPU316と、GPU(Graphic Processing Unit)317と、CPU316、GPU317、DVDドライブ310に接続されたバス326と、バス326に接続され、コンピュータ300のブートアッププログラム等を記憶するROM318と、バス326に接続され、プログラム命令、システムプログラム、及び作業データ等を記憶するRAM320と、バス326に接続された不揮発性メモリであるハードディスクドライブ(HDD)314とを含む。ハードディスク314は、CPU316及びGPU317が実行するプログラム、CPU316及びGPU317が実行するプログラムが使用するデータ等を記憶するためのものである。コンピュータ300はさらに、他端末との通信を可能とするネットワーク328への接続を提供するネットワークI/F304と、USBメモリ330が着脱可能で、USBメモリ330とコンピュータ300内の各部との通信を提供するUSBメモリポート312とを含む。
コンピュータ300はさらに、マイク102及びスピーカ106とバス326とに接続され、CPU316により生成されRAM320又はHDD314に保存された音声信号をCPU316の指示にしたがって読出し、アナログ変換及び増幅処理をしてスピーカ106を駆動したり、マイク102からのアナログの音声信号をデジタル化し、RAM320又はHDD314の、CPU316により指定される任意のアドレスに保存したりするための音声I/F324を含む。
上記実施の形態では、図2に示す基本情報設定部120、相手言語記憶部122、言語設定部124、及びデフォルト言語記憶部126は、いずれもHDD314又はRAM320により実現される。典型的には、これらは例えば外部からHDD314に書込まれコンピュータ300の実行時にはRAM320にロードされ、定期的にバックアップとしてハードディスク314に保存される。
処理対象となる音声信号は、どのような手段でコンピュータ300に保持されてもよいが、通常はネットワークI/F304を介してネットワーク328上の他のコンピュータからコンピュータ300に送信され、RAM320又はHDD314に保存される。
このコンピュータシステムを多言語音声処理装置100及びその各構成要素の機能を実現するよう動作させるためのコンピュータプログラムは、DVDドライブ310に装着されるDVD322に記憶され、DVDドライブ310からHDD314に転送される。又は、このプログラムはUSBメモリ330に記憶され、USBメモリ330をUSBメモリポート312に装着し、プログラムをハードディスク314に転送する。又は、このプログラムはネットワーク328を通じてコンピュータ300に送信されHDD314に記憶されてもよい。プログラムは実行の際にRAM320にロードされる。なお、キーボード306、マウス308及びモニタ104を用いてソースプログラムをタイプし、コンパイラによりコンパイルしてその出力するオブジェクトプログラムをHDD314に保存してもよい。スクリプト言語の場合には、上記した処理を実現するプログラムであるスクリプトをキーボード306等を用いて入力しHDD314に保存してもよい。
CPU316は、その内部のプログラムカウンタと呼ばれるレジスタ(図示せず)により示されるアドレスにしたがってRAM320からプログラムを読出して命令を解釈し、命令の実行に必要なデータを命令により指定されるアドレスにしたがってRAM320、ハードディスク314又はそれ以外の機器から読出して命令により指定される処理を実行する。CPU316は、実行結果のデータを、RAM320、ハードディスク314、CPU316内のレジスタ等、プログラムにより指定されるアドレスに格納する。この際、プログラムカウンタの値もプログラムによって更新される。コンピュータプログラムは、DVD322から、USBメモリ330から、又はネットワークを介して、直接RAM320にロードしてもよい。なお、CPU316が実行するプログラムの中で、一部のタスク(主として数値計算)については、プログラム内の命令により、又はCPU316による命令実行時の解析結果にしたがって、GPU317にディスパッチされる。
コンピュータ300の各機能を実現するプログラムは、コンピュータ300に上記した各装置として動作を行なわせる複数の命令を含む。この動作を行なわせるのに必要な基本的機能のいくつかはコンピュータ300上で動作するオペレーティングシステム(OS)若しくはサードパーティのプログラム、又はコンピュータ300にインストールされる各種ツールキットのモジュールにより提供される。したがって、このプログラムはこの実施の形態のシステム及び方法を実現するのに必要な機能すべてを必ずしも含まなくてよい。このプログラムは、命令の中で、所望の結果が得られるように制御されたやり方で適切な機能又は「プログラミング・ツール・キット」を呼出すことにより、上記した各装置及びその構成要素としての動作を実行する命令のみを含んでいればよい。コンピュータ300の動作方法は周知であるので、ここでは繰返さない。なお、GPU317は並列処理を行うことが可能であり、多くの音声データに関する音声認識処理、自動翻訳処理、音声合成処理を同時並列的又はパイプライン的に実行できる。
図8は、図6に示すコンピュータを第1の実施の形態に係る音声処理装置として機能させるコンピュータプログラムの制御構造を示すフローチャートである。なお、言語識別ニューラルネットワーク132及び多言語音声翻訳装置144はこのプログラムとは別プロセスで実行される。
図8を参照して、このプログラムは、プログラムの起動時の初期設定を行うステップ350と、音声が入力されたか否かを判定し、音声が入力されるまで待機するステップ352と、音声が入力されたことに応答して、図2のデフォルト言語記憶部126からデフォルト言語を、相手言語記憶部122から相手言語を、それぞれ読出すステップ354と、ステップ354で読出した言語の組合せ(デフォルト言語から相手言語へ)で多言語音声翻訳装置144を起動するステップ356と、言語識別ニューラルネットワーク132による言語識別処理を起動するステップ358とを含む。
図2から分かるように、音声データ選択部142及び言語識別ニューラルネットワーク132には音声処理装置130の出力が同時に与えられる。プログラム起動時には言語判定部134の出力はデフォルト言語を選択する。したがって、言語識別ニューラルネットワーク132と多言語音声翻訳装置144とには、同じ音声データが同時に与えられる。ステップ356で音声翻訳処理が起動され、ステップ358で言語識別処理が起動されるので、この後は両者が並列的に動くことになる。
このプログラムはさらに、ステップ358の後、識別された言語が図2のデフォルト言語記憶部126に記憶されているデフォルト言語と一致しているか否かを判定し、その結果に応じて制御の流れを分岐させるステップ360と、ステップ360の判定が否定であるときに、翻訳先の言語をデフォルト言語に指定してステップ356で起動した音声翻訳処理を中止するステップ362と、識別結果の言語と、図2の相手言語記憶部122に記憶されている相手言語との組合せ(識別結果の言語から相手言語への音声翻訳)をするように指定して多言語音声翻訳装置144による音声翻訳処理を起動するステップ364とを含む。
このプログラムはさらに、ステップ364の後、及びステップ360の判定が肯定であるときに実行され、図2に示す相手言語記憶部122に記憶されていた相手言語をデフォルト言語記憶部126に格納し、言語選択部138の出力する識別結果の言語を相手言語記憶部122に格納して制御をステップ352に戻すステップ366とを含む。
図9は、図8に制御構造を示すプログラムの一部であるステップ358で実行されるプログラムルーチンの一部を示すフローチャートである。このプログラムにより、後述するプログレッシブ方式の言語識別が実現される。図9を参照して、このプログラムルーチンは、プログレッシブ方式による言語識別処理を制御するための繰返し処理を制御する変数iに0を代入するステップ380と、プログレッシブ方式の言語識別処理において言語識別モデルを切替えるか否かを決めるための発話長のしきい値として準備した発話長しきい値配列に、それぞれ1.75秒、2.5秒、及び0秒に相当する値{1.75、2.5、0}を代入するステップ382と、変数iの値がプログレッシブ方式の言語識別処理において使用するモデルの数から1を引いた値より大きいか否かを判定し、判定結果に応じて制御の流れを分岐するステップ384とを含む。なお、ステップ382では、識別モデルを特定する3要素の配列(以下、「モデル配列」と呼ぶ。)も準備し、各識別モデルの識別情報を格納する。ここでは、識別情報として3つの識別モデルへの入力発話長を用いることとし、各識別モデルの入力音声データ長さを示す{1.5,2.0,3.0}という値をモデル配列に格納する。
このプログラムはさらに、ステップ384の判定が否定のときに、モデル[i]にそのモデルへの入力発話長の音声データを入力するステップ386と、ステップ386に続き、モデル[i]の出力する各言語の確率から所定の3言語の確率を選択するステップ388と、ステップ388で選択された3言語の確率の値を正規化するステップ390と、ステップ390で正規化された確率の最大値がしきい値以上か否かを判定し、判定結果に応じて制御の流れを分岐させるステップ392と、ステップ392の判定が肯定のときに、その最大値に対応する言語を識別言語に決定してその情報を出力し処理を終了するステップ394とを含む。
このプログラムはさらに、ステップ392の判定結果が否定のときに、入力発話の発話長が発話長しきい値[i]より短いか否かを判定し、判定に応じて制御の流れを分岐させるステップ398と、ステップ398の判定が否定のときに、ステップ390で正規化された3言語の確率を確率記憶部194(図3参照)に記憶するステップ400と、変数iの値に1を加算して制御をステップ384に戻すステップ402とを含む。
このプログラムはさらに、ステップ384の判定が肯定のとき(変数iの値がモデル数―1より大きいとき)、及びステップ398の判定が肯定のとき(発話長が発話長しきい値[i]より短いとき)に、確率記憶部194(図3参照)に記憶されていた各言語の確率を統合して最終的な識別言語を決定して制御をステップ394に移すステップ396とを含む。
ステップ396では、例えばメモリに記憶されていた各言語の確率について、各言語の平均を算出する。この場合、ステップ394ではその平均値の最大値がステップ392で使用するしきい値未満でも、その最大値に対応する言語を識別言語に決定する。
図10に、3種類の言語識別モデルが処理する発話長と、図9のステップ398で使用される発話長しきい値との関係を示す。図10を参照して、言語識別モデル180は、発話の先頭から1.5秒の音声を入力としてその言語を識別する。言語識別モデル182は、発話の先頭から2.0秒の音声を入力としてその言語を識別する。言語識別モデル184は、発話の先頭から3.0秒の音声を入力としてその言語を識別する。言語識別モデル180では言語が識別されなかった場合には、言語識別モデル182を使用して言語を識別し、言語識別モデル182でも識別できなかった場合には言語識別モデル184を使用して言語を識別する。
しかし、例えば言語識別モデル180で識別ができなかったとしても、発話長が2秒に満たない場合には、言語識別モデル182を使用して言語を識別できない可能性が高い。そこでこの実施の形態では、言語識別モデル180で言語の識別ができなかったときに、発話長が図10に示すように1.75秒より短い場合には、言語識別モデル182での言語の識別は行わず、言語識別モデル180により算出された確率を用いて言語を識別する。同様に、言語識別モデル182で言語が識別できなかった場合でも、発話が図10に示す用に2.5秒に満たない場合には、言語識別モデル184での言語識別は行わず、言語識別モデル180及び182により各言語について算出された確率を用いて言語の識別を行う。この際、このようにして計算された確率の最大値がしきい値以上であれば問題ないが、しきい値未満のときでも、最大値に対応する言語を言語識別の結果とする。
このように、短い発話長で言語が識別できなかったときには、順次、さらに後の音声データを考慮して言語識別を行う。このような方式をこの明細書ではプログレッシブ方式と呼ぶ。
図9のステップ390で行われる正規化処理は、3言語の確率を合計した値で、各言語の確率を割ることにより、各言語の確率を再計算するものである。
〈動作〉
以上に構成を説明した多言語音声処理装置100は以下のように動作する。多言語音声処理装置100の起動時には、相手言語記憶部122には、基本情報設定部120に記憶されている基本情報の内で、この多言語音声処理装置100のユーザが使用する言語が記憶されている。デフォルト言語記憶部126には、言語設定部124に記憶されている言語の中で、ユーザが音声入力の言語として仮に選択した言語が記憶されている。ユーザとしては、対話の相手の言語が明確には分からなくても、見当をつけてデフォルト言語記憶部126に設定できる。
以下の動作では、ユーザからではなく対話の相手から話し始めるものとする。実際の対話処理では、相手の言語を推定するための処理として最初に対話の相手に話し始めてもらう必要がある。そのため、画面に「ご自分の言語で何かお話ください」という趣旨のテキストを何カ国かで表示しておけば好ましい。例えば英語等でこれを表示しておけば、相手がとまどうこともないと考えられる。
図2を参照して、対話の相手が話し始めると、マイク102が音声を音声信号に変換し図2に示す音声処理装置130に与える。音声処理装置130はこの音声信号を受信し、デジタル化、フレーム化して各音声を表す音声データベクトルの時系列に変換し言語識別ニューラルネットワーク132、音声データ選択部142及びバッファ140に与える。バッファ140はこの音声データをバッファする。このとき、図3を参照して、言語識別ニューラルネットワーク132内の言語識別モデル180には発話の先頭から1.5秒間の音声データが、言語識別モデル182には発話の先頭から2.0秒間の音声データが、言語識別モデル184には発話の先頭から3.0秒間の音声データが、それぞれ与えられる。
一方、図2を参照して、言語変化判定部136は、起動時にはデフォルト言語で音声データを処理できるように言語選択部138及び音声データ選択部142を設定する。すなわち、言語選択部138はデフォルト言語記憶部126の出力を選択し、多言語音声翻訳装置144、及び音声信号合成装置146に与える。デフォルト言語に関する情報は相手言語記憶部122にも与えられるが、相手言語記憶部122は言語判定部134により言語が判定されたときのみ言語選択部138の出力を取り込む。したがって、相手言語記憶部122にはユーザの言語が格納されたままである。この値は多言語音声翻訳装置144及び音声信号合成装置146に与えられる(図8のステップ354)。音声データ選択部142はバッファ140の出力ではなく音声処理装置130の出力を選択し、多言語音声翻訳装置144に与える。
この結果、多言語音声翻訳装置144は、音声処理装置130から音声データ選択部142を介して与えられる音声データが、デフォルト言語記憶部126に記憶されている言語の音声を表すものとして音声処理を開始する(図8のステップ356)。
図4を参照して、多言語音声翻訳装置144は、具体的には以下のように動作する。データ分配部258は、音声データ選択部142からの音声データを、音声認識装置220、…、234の中で言語選択部138からの言語選択信号により指定される装置に配信し、それ以外の装置には配信しない。また音声認識装置220、…、234はいずれも言語選択部138からの言語選択信号を受信しており、言語選択信号により指定された言語を処理するための装置(例えば音声認識装置220)のみが動作する。
音声認識装置220…、234のうち、言語選択信号により指定された音声認識装置は、認識後のテキストを対応する多言語翻訳装置240に与える。以下では、例として音声認識装置220が言語選択信号により指定され、音声データ選択部142からの音声データを音声認識し、その結果のテキストを多言語翻訳装置240に与えるものとし、多言語翻訳装置240が翻訳処理をするものとして説明する。
図5を参照して、多言語翻訳装置240の翻訳エンジン選択部260には、言語選択部138から言語選択信号が、相手言語記憶部122から相手言語を示す信号が、それぞれ与えられる。翻訳エンジン選択部260は、言語選択部138により選択されたときのみ、自動翻訳エンジン262、…、274の中で相手言語記憶部122からの相手言語選択信号に対応するものに音声認識装置220の出力するテキストを与える。
自動翻訳エンジン262、…、274にはいずれも相手言語記憶部122からの相手言語選択信号が与えられており、相手言語選択信号により選択されたもののみが自動翻訳を行う。図5に示す例では、例えば自動翻訳エンジン262が相手言語選択信号により選択されていれば、翻訳エンジン選択部260により自動翻訳エンジン262が選択され、音声認識装置220の出力が自動翻訳エンジン262に与えられる。自動翻訳エンジン262は入力されたテキストを相手言語に自動翻訳する。この相手言語は相手言語記憶部122に記憶されている相手言語と一致する。
出力選択部278にも相手言語記憶部122からの相手言語選択信号が与えられており、出力選択部278は自動翻訳エンジン262、…、274のうち、相手言語選択信号により選択されたものの出力を選択して多言語翻訳装置240からの出力として図4に示す出力選択部256に与える。
出力選択部256は、言語選択部138からの言語選択信号により指定された言語に対応する多言語翻訳装置(例えば多言語翻訳装置240)の出力を選択し、音声信号合成装置146及び表示制御装置148に出力する。
すなわち、多言語音声翻訳装置144は、入力される音声データを音声認識し、自動翻訳し、音声合成のパラメータを生成して、順次それらを出力するよう動作する。
一方、言語識別ニューラルネットワーク132の言語識別モデル180、182及び184のいずれも多言語音声翻訳装置144と同時に音声データの表す音声の言語を識別する処理を開始する(図8のステップ358)。各モデルが必要とする発話長はそれぞれ1.5秒、2.0秒及び3.0秒であり、これらは先頭から図2に示す音声処理装置130により処理されて音声データベクトル列として蓄積される。1.5秒分の発話データが蓄積された時点で言語識別モデル180にそれらが入力される。同様に、2.0秒分の発話データが蓄積された時点で言語識別モデル182にそれらが入力され、3.0秒分の発話データが蓄積された時点で言語識別モデル184にそれらが与えられる。なお、発話が1.75秒又は2.5秒に満たない場合には、図示しないフラグによってその情報が保存される。
言語識別モデル180、182及び184からは、それぞれその識別結果(図3に示す確率174、176及び178)が出力される。この際、言語識別モデル180が識別処理を開始するまでの時間は、他の2つのモデルよりも早く、その結果は最も早く得られる。言語識別モデル182が識別処理を開始するまでの時間は言語識別モデル180よりも長いが言語識別モデル184よりも短いので、言語識別モデル180による識別結果が得られた後、言語識別モデル184による識別結果が得られる前に得られる。言語識別モデル184からの識別結果は最も遅く得られる。
図3に示す言語判定部134は、これら言語識別モデル180、182及び184から出力される確率を用いて言語の識別処理を以下のように実行する。なお、以下では、説明をできるだけ簡明にするために、発話が2.5秒より長いことを前提として言語判定部134の動作を説明する。
図3を参照して、発話が検出されると、言語決定部208は最初にカウンタ196の値を0に初期化する(図9のステップ380)。続いて言語決定部208は、カウンタ196の値(=0)により決定されるモデル(この例の場合には言語識別モデル180)に1.5秒分の音声データを与え(ステップ386)、その出力を選択するようにモデル選択部190を制御する(ステップ388)。モデル選択部190は言語識別モデル180が出力する確率174を選択し言語選択部200に与え、言語選択部200が、言語識別モデル180が出力した8つの言語の確率174の中から、選択言語記憶部128に記憶されている3つの言語に関する確率を選択し(図9のステップ388)確率正規化部202に与える。確率正規化部202は、その3つの言語の確率の和を計算し、その和で各確率の値を割ることにより、3つの言語に関する確率を正規化する(図9のステップ390)。最大確率選択部204がその中の最大値を選択し、しきい値比較部206がその最大値をしきい値と比較する(図9のステップ392)。最大値がしきい値以上であれば(ステップ392でYES)、しきい値比較部206は、最大値に対応する言語の確率がしきい値以上であることを示す信号を言語決定部208に与える。言語決定部208は、確率正規化部202の出力する正規化後の3言語の確率、最大確率選択部204の出力する最大確率、及びしきい値比較部206の比較結果に基づき、最大確率に対応する言語が音声データの言語か否かを決定する。この実施の形態では、基本的には最大確率がしきい値以上である場合にはその確率に対応する言語を識別言語とし、どの確率もしきい値以上でない場合には、プログレッシブ的に行われた過去の1回又は2回の判定時の各言語の確率と、現在の確率とを統合し(例えば平均値を計算し)、その値がしきい値以上か否かにかかわらず、最大のものに対応する言語を識別言語とする。音声データの言語であると決定されれば言語決定部208は言語変化判定部136にその値を出力する。言語決定部208はさらに、識別が完了したことを示す信号を言語変化判定部136及び相手言語記憶部122に向けて出力する。これで言語識別は完了する。
確率の最大値がしきい値未満であれば、識別結果の信頼がおけないとして、確率正規化部202の出力した3言語の確率を確率記憶部194に保存し、カウンタ196に記憶されている変数iの値を1にインクリメントし、モデル選択部190を制御して次の言語識別モデル、つまり言語識別モデル182を選択する。
モデル選択部190は言語識別モデル182による識別結果である確率176が出力されればそれを選択し、言語選択部200に与える。以下、上と同じ処理が実行される。
言語識別モデル182による識別結果でも言語が決定できないときには、さらに言語決定部208はカウンタ196をインクリメントして2とし、モデル選択部190を制御して今度は言語識別モデル184の出力である確率178を選択させる。モデル選択部190は言語識別モデル184からの確率178を選択し、言語選択部200に与える。以下、上と同じ処理が言語決定部208による処理まで繰返される。
なお、言語識別モデル184の結果を用いても図9のステップ392の処理の判定が否定の場合には以下のように処理される。この場合、制御はステップ398に進む。ところがこの場合にはi=2であり、発話しきい値長[2]=0なので、図9のステップ398の判定は必ず否定となって、ステップ400及び402が実行される。その後のループ処理の先頭のステップ384で判定が否定となり、ステップ396及び394を経て言語が識別されることになる。
言語決定部208において、確率の最大値がしきい値以上である場合には、他の場合と同様、その確率に対応する言語を言語識別の結果として言語変化判定部136に出力し、言語識別が完了したことを示す信号を言語変化判定部136及び相手言語記憶部122に出力する。これはi=0及び1の場合と同様である。
しかし、最大値がしきい値未満であったときには、言語決定部208は以下のようにして決定する。すなわち言語決定部208は、この場合には確率記憶部194に記憶されている、それまでの各言語の確率を統合する。例えば各言語の確率の平均値を算出し、それをその言語の統合後の確率とする。そしてこの統合後の確率が最大の言語を発話データの言語に決定する。この場合には、その確率がしきい値未満であってもその言語に決定する。これは、この装置が対話に使用されていることが前提である以上、何らかの形で所定時間内には出力をする必要があるためである。
なお、発話長が1.75秒に満たないときは言語識別モデル180の結果のみを用いて上記識別処理を実行する。この場合、最終的な確率の最大値がしきい値未満であっても上記したi=2の場合と同様に言語識別の結果を出力する。発話長が2.5秒に満たないときも同様であって、言語識別モデル180の出力及び言語識別モデル182の出力のみを用いて識別処理を実行する。この場合にも、言語識別モデル182の結果を用いても確率の最大値がしきい値未満のときにはi=2のときと同様、それまでに記憶されていた各言語の確率を言語ごとに統合し(例えば平均値を算出し)、最も高い確率の言語を識別結果とする。その値がしきい値以上であることは要件としない。
再び図2を参照して、言語変化判定部136は識別が完了したことを示す言語判定部134からの信号に応答して、デフォルト言語記憶部126に記憶されているデフォルト言語と、言語判定部134の出力した識別結果の言語とを比較し、同じか変化したかを示す判定信号を言語選択部138及び音声データ選択部142に与える。同じ場合の判定信号の値を第1の値、異なる場合の判定信号の値を第2の値とする。以下、識別結果の言語がデフォルト言語と一致した場合とそうでない場合とに分けて多言語音声処理装置100の動作を説明する。
―識別結果の言語がデフォルト言語と一致する場合―
言語変化判定部136の判定信号が第1の値である場合、言語選択部138はデフォルト言語記憶部126の出力を選択し、相手言語記憶部122、多言語音声翻訳装置144及び音声信号合成装置146に与える。この場合、もとから与えられていたものと同じ情報が多言語音声翻訳装置144及び音声信号合成装置146に与えられる。
音声データ選択部142は、言語変化判定部136から第1の値の判定信号が与えられたことに応答して、音声処理装置130からの音声信号を多言語音声翻訳装置144に与える処理を続行する。
図4に示すデータ分配部258は、言語選択部138からの言語選択信号の値が変わらないので、音声認識装置220、…、234の中で、もともと音声データを与えていた音声認識装置にその後も音声データを続けて与える。同様に、図4の多言語翻訳装置240、…、254の中でデフォルト値により動作していた自動翻訳装置の翻訳エンジン選択部260(図5)は、同じ翻訳エンジンに音声認識結果を与え続ける。また相手言語記憶部122からの相手言語選択信号の値にも変化がないので、デフォルトの言語選択信号により動作していた多言語翻訳装置の中で相手言語選択信号により選択されていた自動翻訳エンジンも同様に動作を続ける。他の音声認識装置及び自動翻訳装置は動作しない。出力選択部256についても同様で、識別結果が決まる前から動作中の音声認識装置及び多言語翻訳装置の出力を選択し、音声信号合成装置146及び表示制御装置148に与える。
図2を参照して、音声信号合成装置146及び表示制御装置148も多言語音声翻訳装置144から出力される、前と同じ言語の音声翻訳結果に対する処理を続行する。
この後、相手言語記憶部122に記憶されていた相手言語がデフォルト言語記憶部126に記憶され、言語選択部138から与えられていた新たな識別結果の言語を表す情報が相手言語記憶部122に記憶される。
新たな音声入力があると、デフォルト言語記憶部126に記憶されているデフォルト言語と相手言語記憶部122に記憶されている相手言語とを指定した音声処理が新たに行われる。
―識別結果の言語がデフォルト言語と一致しない場合―
この場合、言語変化判定部136は2つの入力が一致していないことに応答して、第2の値の判定信号を言語選択部138及び音声データ選択部142に与える。言語選択部138はこの判定信号に応答して、言語判定部134の出力する識別結果の言語を選択し相手言語記憶部122、多言語音声翻訳装置144及び音声信号合成装置146に与える。
音声データ選択部142は言語変化判定部136からの判定信号に応答してバッファ140の出力を選択し多言語音声翻訳装置144に与える。
図4を参照して、データ分配部258は、音声データ選択部142の出力を、それまで選択していた音声認識装置及び自動翻訳装置から、言語選択部138から与えられる識別結果の言語を表す新たな音声認識装置及び自動翻訳装置に切替えて与える。
音声認識装置220、…、234の中で、それまで音声翻訳処理を実行していたものは、言語選択部138からの選択信号の値が変わったため、音声認識処理を中止する。多言語翻訳装置も同様である。一方、音声認識装置220、…、234の中で、新たな選択信号により指定されるものはデータ分配部258から与えられる、バッファされていた音声データの先頭から処理を開始する。またその音声認識装置の出力を受ける多言語翻訳装置も動作を開始し、その中で相手言語選択信号により定まる自動翻訳エンジンが翻訳を開始する。翻訳結果は出力選択部278及び出力選択部256により出力される。
以下、新たに処理を開始した装置の出力が図2に示す音声信号合成装置146及び表示制御装置148に与えられる。音声信号合成装置146は、多言語音声翻訳装置144から出力される音声合成パラメータに基づき、相手言語記憶部122に記憶された相手言語への音声信号を合成しスピーカ106に与える処理を行う。
入力された音声データに対する処理が完了すると、相手言語記憶部122に記憶されていた相手言語がデフォルト言語記憶部126に記憶されてデフォルト言語となり、言語選択部138が出力していた識別結果の言語が相手言語記憶部122に記憶されて次の音声に対する音声翻訳処理の目的言語となる。
以上の多言語音声処理装置100の動作を要約すると以下のとおりである。最初に、ユーザの対話の相手が発話すると、その発話はデフォルト言語であるとして音声認識が開始される。音声認識の結果は出力される。言語の識別結果がデフォルト言語と一致していれば、その処理が続行され、音声認識結果が、順次、相手言語記憶部122に記憶されている言語(ユーザの言語)に自動翻訳される。自動翻訳の結果から音声が合成され出力される。
一方、言語の識別結果がデフォルト言語と一致しなければ、音声認識は途中で中止され、言語が識別結果の言語に切替えられ、バッファ140に蓄積されていた音声データに対して音声認識と自動翻訳、さらに音声合成が開始される。
音声に対する処理が終了すると、デフォルト言語としては、先の処理で相手言語だった言語が設定され、相手言語としては識別結果の言語が設定される。その結果、次に多言語音声処理装置100のユーザが相手と入れ替わって発話すると、言語識別がうまくいけば識別結果の言語とデフォルト言語は一致し、多言語音声翻訳装置144が開始した音声処理が中断されることなく速やかに出力される。
その音声に対する処理が終了すれば、今度は相手言語とデフォルト言語とが入れ替えられ、相手言語の音声がデフォルト言語に音声翻訳される。今度は相手言語が識別言語と一致するので、多言語音声翻訳装置144が開始した音声翻訳処理が中止されることなく続行され、音声翻訳結果を速やかに得ることができる。
図11から図13を参照して、この第1の実施の形態に係る多言語音声処理装置100の効果について説明する。
図11は、従来の手法による音声処理の時間経過を示す模式図である。音声の入力があると、まず言語識別440が開始され、その結果を用いて音声認識442が開始される。音声認識442の結果が順次出力されると音声認識442に対して自動翻訳444が実行される。自動翻訳444の出力に対して音声合成446が実行される。
図11に示すように、従来の手法において、言語識別440が開始され音声合成446が開始されるまでの時間を、上記実施の形態と比較する意味でTcという。
図12は、この発明の第1の実施の形態において、最終的な音声処理結果が短時間で得られるときの音声処理の時間経過を示す模式図である。図12を参照して、上記実施の形態では、言語識別440と音声認識460とが同時に開始される。音声認識460は、デフォルト言語から相手言語への音声認識である。その結果が出力されると自動翻訳処理462が開始される。言語識別440による識別結果の言語がデフォルト言語と一致していれば、音声認識460及び自動翻訳処理462は中止されることなく続行され、自動翻訳の結果に対して音声合成464が開始される。
図12に示す例では、音声認識460が言語識別440と同時に開始されるため、音声合成464が開始されるまでに要する時間T1は明らかに図11の時間Tcより短い。図11と図12とを比較すれば、時間T1は時間Tcより言語識別440に要する時間だけ短いことがわかる。
図13は、この発明の第1の実施の形態において、最終的な音声処理結果が得られる時間が最長となる場合の音声処理の時間経過を示す模式図である。この例は、言語識別440により識別された言語がデフォルト言語と異なったものである場合である。この場合、音声認識460が言語識別440と同時に開始され、自動翻訳処理が音声認識後に開始されるはずである点は図12と同様であるが、言語識別440が終了した時点で音声認識460が中止され、新たに識別後の言語での音声認識480、その結果の相手言語への自動翻訳482、及び自動翻訳の結果に対する音声合成484が開始される。音声認識480は、入力された音声の最初から行われるので、この場合に音声入力から音声合成484が開始されるまでの時間T2は図11に示すTcと同じになる。
すなわち、この実施の形態によれば、デフォルト言語が識別された言語と一致する場合には、音声翻訳処理の結果の出力開始までに要する時間が従来のものと比較して短い。この時間は少なくとも最初の言語識別に要する時間だけ短くなる。仮にデフォルト言語が識別された言語と一致しなくても、音声翻訳処理の結果の出力開始までに要する時間は従来のものと同じである。
その結果、音声信号の表す音声の言語が分からない場合にも、音声処理の結果を早く得られるような音声処理装置が得られる。
また、言語識別ニューラルネットワーク132の出力をそのまま用いて言語を識別するのではなく、複数種類の言語(実施の形態では8種類)の中から予め指定された複数の言語(実施の形態では3種類)の確率を選択し、それらを正規化した上で最も高い確率の言語を選択する。その言語の確率をしきい値と比較することによって識別結果を受理するか棄却するかを決定している。この結果、言語識別ニューラルネットワーク132による判定処理自体を複雑化させることなく、精度の高い言語識別が可能になる。また、複数の言語の中でさらに一部の言語を選択して予め処理の対象として指定できるので、相手が話す言語が不明なときでも、その相手の出身地域等の見当がつけば、高い確率で言語識別の対象が含まれるような言語の組合せを指定でき、対話がスムーズに始められる可能性が高くなるという効果もある。
さらに上記実施の形態では、言語が識別された後、音声処理の相手言語を新たなデフォルト言語に設定し、識別された言語を次の相手言語に設定する。その結果、2人の話者が対話をする際に、一方言語から他方言語への音声翻訳処理をスムーズに進めることができるという効果がある。なお、この実施の形態では2人の話者が交互に発話する場合を想定しているが、話者が1人のみのとき、及び話者が3人のとき等にも容易に拡張できる。なお、これらを設定する処理は通常の対話型処理を行うプログラムで容易に実現できる。
なお、上記実施の形態(方法1)では、言語識別モデルとして3つのモデル(発話長1.5秒、2.0秒、3.0秒)を使用した。しかしこの発明はこのような実施の形態には限定されない。例えば4つの言語識別モデルを用い、対象とする発話長を1.0秒、1.5秒、2.0秒、3.0秒としてもよい(方法2)。又は、同じ3つの言語識別モデルを用い、発話長を1.0秒、1.5秒、2.0秒とすることも考えられる(方法3)。このような構成では、精度は方法1>方法2>方法3となり、レイテンシは方法3<方法2<方法1となる。
実験では、しきい値=0.85としたときに、上記3つの方法ではいずれも精度95%以上を達成した。また方法2及び3を使用した場合にはレイテンシは平均1.3秒という非常に短いものとなった。
その他、目的に応じて識別モデルの組み合わせは様々に考えられる。もちろん、識別モデルを1つのみ使用する場合も対象である。
また上記した方法は、いずれも言語識別モデルの対象が発話の先頭から所定長の音声データとなっている。しかしこの発明はそのような実施の形態には限定されない。例えば同じ発話長(例えば1.0秒又は1.5秒)で、先頭が0.5秒ずつずれた音声データを対象に順次言語識別を行うようにしてもよい。この場合には言語識別モデルは同じものを使用できる。この場合にも、対象とする発話長及び使用する言語識別モデルの数は目的に応じて様々なものを選択できる。
[第2の実施の形態]
〈構成〉
第1の実施の形態に係る多言語音声処理装置100は、単独のコンピュータにより実現されているが、もちろん複数のコンピュータの間で多言語音声処理装置100の各機能を分担させるような処理も可能である。
図14は、この発明の第2の実施の形態に係る音声対話システムの全体構成を示す概略図である。図14に示すように、この第2の実施の形態に係る音声翻訳システム500は、第1の実施の形態に係る多言語音声処理装置100の機能の大部分を備えた多言語音声翻訳処理サーバ(以下、単に「サーバ」という。)506を準備し、スマートフォン504のような装置からインターネット502を介して与えられる音声翻訳要求に対し、音声の言語識別、自動翻訳、及び音声合成を行い、音声信号をサーバ506からスマートフォン504に返信する、というものである。こうした構成を実現するために、この実施の形態では、スマートフォン504に格納されているそのスマートフォン504を使用するユーザの基本情報(使用言語)を使用することにし、さらにスマートフォン504のユーザに上記第1の実施の形態で述べたように、8種類の対象言語から選択する3種類の言語の選択ができるようにする。そうした情報はサーバ506での言語識別処理に必要なため、音声データとあわせてサーバ506に送信することとする。
図15は、第2の実施の形態で端末として使用されるスマートフォンの概略のハードウェア構成を示すブロック図である。図15を参照して、このスマートフォン504には、カメラ520、タッチパネルディスプレイ522、スピーカ524及びマイク526が備えられている。スマートフォン504はさらに、様々な処理をするためのコンピュータであるプロセッサ550と、プロセッサ550に接続されたメモリコントローラ556と、いずれもメモリコントローラ556に接続されたSDRAM(Static Dynamic Access Memory)558及びフラッシュメモリ560と、プロセッサ550に接続された電源・オーディオLSI570と、プロセッサ550及び電源・オーディオLSI570に接続された、無線通信用のモデム552と、モデム552に接続された、無線送受信用アンテナを持つ無線通信装置554とを含む。
スマートフォン504はさらに、プロセッサ550の周辺機器であるGPS(Global Positioning System)モジュール562と、加速度センサ、温度センサ、湿度センサ等のセンサ群564と、Wi―Fiモジュール566と、近距離無線通信装置568とを含む。
プロセッサ550が実行するプログラムはフラッシュメモリ560に記憶されており、実行時にSDRAM558にロードされる。プロセッサ550は、このプログラムを実行することでスマートフォン504内の各モジュールを制御して、設定値の記憶、マイク526を介した発話者の音声データの取得、モデム552及び無線通信装置554又はGPSモジュール562を介したサーバ506への音声データの送信及びサーバ506からの音声翻訳結果の受信、スピーカ524を用いた音声の再生等を実行する。
図16は、図15に示すスマートフォンの機能的構成を示すブロック図である。プロセッサ550が実行するプログラムにより実現される機能をブロック図形式で示したものである。
図16を参照して、スマートフォン504は、機能的には、スマートフォン504の基本情報(ユーザの使用言語を少なくとも含む)を設定するための基本情報設定部600と、音声翻訳の相手言語を記憶する相手言語記憶部602と、実施の形態と同様、8種類の言語の中でどの3種類の言語を選択するか、その中のどの言語をデフォルト言語とするかを設定する言語設定部604と、音声翻訳処理の際のデフォルト言語を記憶するためのデフォルト言語記憶部606と、言語設定部604により設定された言語に関する情報を記憶するための選択言語記憶部612とを含む。音声翻訳処理の起動時には相手言語記憶部602には基本情報設定部600内のユーザの使用言語が記憶され、デフォルト言語記憶部606には言語設定部604により設定されたデフォルト言語が格納される。
スマートフォン504はさらに、マイク526から取得した音声信号に対して図2に示す音声処理装置130と同様の処理をして音声データベクトル列を出力する等の前処理を音声信号に対して実行するための前処理装置608と、選択言語記憶部612に記憶されている選択言語、相手言語記憶部602に記憶されている相手言語、デフォルト言語記憶部606に記憶されているデフォルト言語、及び前処理装置608が出力する音声データベクトル列から、サーバ506に音声翻訳を要求するための送信データを生成するための送信データ生成部610と、送信データ生成部610が生成した送信データのサーバ506への送信、及びサーバ506からの処理後のデータの受信を図15に示すモデム552及び無線通信装置554又はWi―Fiモジュール566を介して行うための通信I/F614とを含む。
スマートフォン504はさらに、通信I/F614がサーバ506から受信したデータから相手言語を示す情報を抽出する言語情報抽出部616と、通信I/F614が受信したデータから音声翻訳後の音声信号を抽出するための音声信号抽出部618と、この音声信号をアナログ変換し増幅してスピーカ524を駆動することで音声翻訳後の音声を出力するための音声信号増幅部620と、通信I/F614がサーバ506から受信したデータから音声翻訳後のテキストを抽出するためのテキスト抽出部622と、このテキストをタッチパネルディスプレイ522に表示するための表示制御部624とを含む。
図17は、図15に示すスマートフォンにおいて、言語を設定する画面を示す模式図である。図17を参照して、タッチパネルディスプレイ522に表示される言語設定画面650には、選択対象にできる8種類の言語660の名称が表示され、その各々に、選択するか否かを示すスイッチが表示される。このスイッチを右に移動させればその言語が選択され、左に移動させればその言語は選択から解除される。図17に示す例では、日本語、英語、及び中国語が選択され、それ以外の言語は選択されていない。なお、基本情報設定画面及びデフォルト言語設定画面等についても同様のインターフェイスで実現できる。
図18は、図15に示すサーバ506の機能的ブロック図である。図18を参照して、サーバ506は、図2に示す多言語音声処理装置100と類似した構成を持ち、図2に示すものと同様の選択言語記憶部128、相手言語記憶部122、言語設定部124、言語識別ニューラルネットワーク132、言語判定部134、言語選択部138、バッファ140、音声データ選択部142、多言語音声翻訳装置144及び音声信号合成装置146を含む。
多言語音声翻訳処理サーバ506はさらに、スマートフォン504等の端末装置と通信するための通信装置680と、通信装置680が受信した音声翻訳を要求するデータから、選択言語に関する情報とデフォルト言語に関する情報とを分離し、前者を選択言語記憶部128に、後者を言語設定部124に、それぞれ格納するためのデータ分離装置682と、多言語音声翻訳装置144の出力する音声翻訳後のテキスト及び音声信号合成装置146が出力する音声翻訳後の合成音声信号と、言語選択部138が出力する、言語識別ニューラルネットワーク132及び言語判定部134により識別された言語に関する情報とから、音声翻訳要求を送信してきたスマートフォン504等の端末装置に送信する送信情報を生成し通信装置680に与えるための送信情報生成装置684とを含む。
図15に示すスマートフォン504を音声翻訳システムのクライアントとして機能させるプログラムの構造についてはここでは示さないが、簡単にいうと以下のような処理を行う。
・基本情報を設定するためのプログラムにより、スマートフォン504の基本情報の登録を受けSDRAM558等の記憶装置に記憶する。この処理は音声翻訳システムとは関係なく、スマートフォン504を購入したユーザが最初に行う基本的な処理である。基本情報は、ユーザの使用する言語に関する情報を含む。
・言語を設定するためのプログラム(このシステムのクライアントプログラムの一部)により、処理対象となる8言語の中の3種類の言語の選択を受けSDRAM558等の記憶装置に記憶する。同時に、選択された3種類の言語のいずれかをデフォルト言語として指定する入力を受け、デフォルト言語を記憶装置に記憶する。
・音声翻訳のプログラムが起動すると、選択言語記憶部612に記憶された言語情報、デフォルト言語記憶部606に記憶されたデフォルト言語、相手言語記憶部602に記憶された相手言語を読み、入力された音声とあわせて音声翻訳を要求する送信データを生成し、サーバ506に送信する。
・サーバ506からデータが送信されてくるのを待機する。
・サーバ506からデータが送信されてきたら、音声信号を抽出し再生する。また、音声翻訳後のテキストを抽出し再生する。さらに、データ中に含まれる識別された音声に関する情報を抽出し、相手言語として記憶装置に記憶する。
・以後、音声が入力されるたびに上のような処理を実行する。
図19は、コンピュータを図18に示す多言語音声翻訳システムとして機能させるためのコンピュータプログラムの制御構造を示すフローチャートである。
図19に示すフローチャートは、図8に示すものとよく似た構造を持っている。異なる点は、図8のステップ352及び354に替えて、音声翻訳要求をスマートフォン504等のクライアントから受信するまで待機するステップ720と、音声翻訳要求を受信したことに応答して、要求に含まれるデフォルト言語、相手言語及び選択言語に関する情報を抽出しそれぞれ所定の記憶装置に記憶するステップ722を含む点と、図8のステップ366の後に、識別された言語をクライントに送信して制御をステップ720に戻すステップ724とを含む点である。
〈動作〉
スマートフォン504の動作については、上記したプログラムの制御構造から明らかである。
一方、サーバ506の動作についても、図8と図19とを比較すれば明らかと思われる。注意すべき点は、この実施の形態では、サーバ506が識別した言語をスマートフォン504に送信する必要があるということと、図8の例では装置に付属した出力を用いて処理結果を出力しているのに対し、このサーバ506ではスマートフォン504等のクライアントに送信する必要があるということとである。
これら以外の点について、サーバ506の動作は第1の実施の形態の多言語音声処理装置100と同様である。したがってこの第2の実施の形態でも、第1の実施の形態と同様、音声翻訳処理の結果が得られるまでの時間が、デフォルト言語と識別結果の言語とが一致していると従来よりも短くて済み、異なっていたとしても従来と同じ時間で結果を得ることができる。
言語識別の機構も第1の実施の形態と同様であり、同様の効果を得ることができる。
さらに、言語の設定についても第1の実施の形態と同様であるため、第1の実施の形態と同様、言語識別ニューラルネットワーク132を簡略なものにしても言語識別の精度を高くできるという効果がある。
なお、上記実施の形態では、選択対象となる言語が8種類、その中から選択される言語が3種類であったが、この発明がそのような数字に限定されないことは明らかである。選択対象となる言語の数が、選択される言語の数よりも大きく、かつ選択される言語が複数であれば上記実施の形態と同様の効果を得ることができる。
また、上記実施の形態では、デフォルト言語は1つのみであった。しかし、コンピュータの計算リソースが許すならば、デフォルト言語を2つ以上としてもよい。すなわち、音声を受信し、言語識別が開始されると同時に、2つ以上のデフォルト言語で音声に対する処理を開始し、言語識別の結果が判明した時点でその言語の処理のみ継続し、他の言語による処理を中止すれば良い。特許文献1のようにすべての言語で音声認識を行い、最終的なスコアで音声認識結果のいずれかを選択するものと比較して、必要な計算リソースを小さくできる。なお、このときの多言語音声処理装置100等の構成は第1の実施の形態からそれほど大きく変更しないでも実現できる。デフォルト言語を複数個記憶すること、多言語音声翻訳装置144に含まれる音声認識装置220、…、234(図4)等、言語別の装置に与える選択信号が、それらの中の複数個の装置を指定できるようにすること、データ分配部258が、それら複数個の装置に音声データを供給できるようにすること、等の変更をすればよい。
今回開示された実施の形態は単に例示であって、この発明が上記した実施の形態のみに制限されるわけではない。この発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。