(57)【要約】      （修正有）【課題】音声翻訳機能を備えた情報処理装置であって、使用可能なＲＡＭサイズに制約がある場合においても、モジュールの初期化タイミングを制御することで、音声翻訳処理時間を最小限に抑えた情報処理装置を提供する。【解決手段】翻訳処理に使用できるＲＡＭの空き領域を算出する第１の算出手段と、空き領域および複数のモジュールの各々が処理を行う際にＲＡＭの記憶領域を占有する最大サイズとモジュールの各々の初期化に必要なＲＡＭの記憶領域とモジュールの各々の初期化に要する時間とに基づいて初期化可能なモジュールを選択する選択手段と、翻訳処理が実行される前に初期化する第１の初期化手段（Ｓ１０１）と、翻訳処理の実行に伴っていずれかのモジュールが処理を行う際、初期化されていなかった場合、このモジュールの処理開始時にこのモジュール初期化するとともに翻訳処理終了時に解放する第２の初期化手段（Ｓ１０９乃至Ｓ１１３）とを備える。【選択図】図７
2011141819.tif 000002
【特許請求の範囲】
【請求項１】
翻訳処理に関する複数のモジュールを有する情報処理装置であって、
翻訳処理が実行される際、翻訳処理に使用できるＲＡＭの空き領域を算出する第１の算出手段と、
前記空き領域および前記複数のモジュールの各々が処理を行う際に必要なＲＡＭサイズと前記複数のモジュールの各々が事前に初期化を行う際に占有されるＲＡＭサイズと前記複数のモジュールの各々が事前に初期化を行う際に要する時間とに基づいて前記複数のモジュールから事前に初期化可能なモジュールを選択する選択手段と、
前記選択手段により選択されたモジュールを翻訳処理が実行される前に初期化する第１の初期化手段と、
翻訳処理の実行に伴っていずれかのモジュールが処理を行う際、このモジュールが前記第１の初期化手段により初期化されていなかった場合、このモジュールの処理開始時にこのモジュール初期化する第２の初期化手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記選択手段は、翻訳処理に使用できるＲＡＭの空き領域で事前に初期化できる１つのモジュールまたは複数のモジュールであって、追加の処理時間が最も短くなる１つのモジュールまたは複数のモジュールを事前に初期化を行うモジュールとして選択することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記複数のモジュールは、音声認識を行うモジュール、機械翻訳を行うモジュール、音声合成を行うモジュールを含むことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記翻訳処理に関する複数のモジュールの使用頻度をモジュール毎に記憶する記憶手段を備え、
前記選択手段は、前記各モジュールが事前に初期化を行う際に要する時間と、前記複数のモジュールの各々の使用頻度に基づいて、追加の処理時間が最も短くなる１つのモジュールまたは複数のモジュールを判断することを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記翻訳処理は双方向の翻訳処理であって、
翻訳処理の方向を選択する翻訳方向選択手段を更に有し、
前記選択手段は、選択されていない方向の翻訳処理に用いられる複数のモジュールのうち事前に初期化を行うモジュールの選択を、前記第１の算出手段によって算出された翻訳処理に使用できるＲＡＭの空き領域を用いて行うことを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記第１の初期化手段は、翻訳処理が実行されている際、選択されていない方向の翻訳処理に用いられるモジュールであって、前記選択手段によって選択された事前に初期化を行うモジュールの内、選択されている方向の翻訳処理を実行中に初期化可能なモジュールを初期化し、選択されている方向の翻訳処理を実行中に初期化不可能なモジュールは、当該モジュールが用いられる翻訳処理の方向が選択された後に事前の初期化を行うことを特徴とする請求項５記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数言語間の音声翻訳を行うことができる情報処理装置に関する。
【背景技術】
【０００２】
世界のグローバル化が進む中で、母国語が異なる人々とのコミュニケーションの機会が増えている。例えば海外旅行中のショッピングやレストランでの会話、またビジネスシーンでの会話や電話会議などである。音声翻訳技術は異なる言語間でのコミュニケーションを円滑化する技術であり、最近では多くの翻訳装置が製品化されている。
【０００３】
例えば特許文献１によると、円滑なコミュニケーションを実現することができる音声翻訳装置が提案されている。この音声翻訳装置は、音声認識により得られた翻訳対象言語の文字列を表示部のエリアＡに表示し、翻訳言語の文字列をエリアＢに表示するとともに、翻訳対象言語の文字列または翻訳言語の文字列から文書検索のためのキーワードを抽出し、検索されたキーワード用いて検索された文書の言語が翻訳対象言語の場合、翻訳言語に翻訳し、検索された文書の言語が翻訳言語の場合、翻訳対象言語に翻訳し、検索された文書をエリアＣに表示して、当該文書を翻訳した文書をエリアＤに表示するものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２０５５７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
他言語間での会話で音声翻訳を利用するには、双方向の音声翻訳が必要となる。例えば日本語と英語の双方向の音声翻訳を例に挙げると、日本語音声認識処理モジュール、日英機械翻訳処理モジュール、英語音声合成処理モジュール、ならびに英語音声認識処理モジュール、英日機械翻訳処理モジュール、日本語音声合成処理モジュールの大きく分けて６つの処理モジュールが必要となる。そして、「音声認識」、「機械翻訳」、「音声合成」の処理技術においては、言語情報や波形情報を事前に学習した辞書データを利用する手法が一般的であり、各処理を実行するには、事前に辞書データをストレージなどから読み込むなどの初期化処理が必要となる。
【０００６】
ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）上でこのような翻訳技術を利用する場合など、ストレージとのデータ転送速度が速く、かつＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）サイズが大きい環境であれば、音声翻訳アプリ起動時に全ての処理モジュールの初期化を行っても処理時間がそれほど大きくならず、辞書データによるＲＡＭの占有も特に問題とはならない。
【０００７】
しかしながら、例えば携帯端末のように、一般的に低スペックマシンにおいて音声翻訳アプリを動作させる場合には、ＲＡＭサイズが小さいため、音声翻訳アプリ起動時に全てのモジュールを初期化することができない状況が発生する。また、仮に全てのモジュールの初期化が可能なだけのＲＡＭサイズが確保できたとしても、音声着呼やメール受信などの他のプロセスが動作する可能性があるため、ＲＡＭに適当な空き領域を確保しておく必要がある。
【０００８】
一方で、音声翻訳アプリ起動時に初期化を行うのではなく、処理を動作させるときのみ初期化を行い、処理が終了したら辞書データをＲＡＭから解放する方法も考えられる。しかしながらこの方法では、音声翻訳アプリで音声翻訳を実行する都度、初期化処理が必要となってしまう。特に携帯端末ではデータ転送速度がＰＣなどに比べると遅いことが多く、また演算能力も低いため、音声翻訳を実行するためにかなりの時間を要することとなる。
【０００９】
また、音声翻訳アプリを実現するために、ＲＡＭサイズと演算を多く要する処理を、通信網を介したサーバで実現する方法もある。しかしこの方法は通信可能な環境でないと音声翻訳を実現することができず、例えば音声翻訳が最も活躍すべき海外においては、通信できない環境も多く、通信ができるとしても割高な通信料が発生することが多い。
【００１０】
これらのような理由により、従来、スタンドアロンで音声翻訳機能を実行する際に処理時間を短縮させることが困難であった。
【００１１】
本発明は、上記課題を鑑みてなされてものであり、スタンドアロンでの音声翻訳機能を備えた情報処理装置であって、使用可能なＲＡＭサイズに制約がある場合においても、モジュールの初期化タイミングを制御することで、音声翻訳処理時間が最小限に抑えられた情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明に係る情報処理装置は、翻訳処理に関する複数のモジュールを有する情報処理装置であって、翻訳処理が実行される際、翻訳処理に使用できるＲＡＭの空き領域を算出する第１の算出手段と、前記空き領域および前記複数のモジュールの各々が処理を行う際にＲＡＭの記憶領域を占有する最大サイズと前記複数のモジュールの各々の初期化に必要なＲＡＭの記憶領域と前記複数のモジュールの各々の初期化に要する時間とに基づいて前記複数のモジュールから初期化可能なモジュールを選択する選択手段と、前記選択手段により選択されたモジュールを翻訳処理が実行される前に初期化する第１の初期化手段と、翻訳処理の実行に伴って前記いずれかのモジュールが処理を行う際、このモジュールが前記第１の初期化手段により初期化されていなかった場合、このモジュールの処理開始時にこのモジュール初期化するとともに翻訳処理終了時に解放する第２の初期化手段と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明に係る情報処理装置によると、スタンドアロンでの音声翻訳機能を備えるとともに、使用可能なＲＡＭサイズに制約がある場合においても、モジュールの初期化タイミングを制御することで、音声翻訳処理時間を最小限に抑えることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係る情報処理装置（携帯電話機）の開いた状態を示す斜視図。
【図２】本発明に係る情報処理装置（携帯電話機）の構成を示すブロック図。
【図３】本発明に係る情報処理装置（携帯電話機）において翻訳制御処理が行われている際の画面も一例を示す図。
【図４】モジュールリスト情報の一例を示すデータ構成図。
【図５】モジュール初期化時間情報の一例を示すデータ構成図。
【図６】初期化パターン情報の一例を示すデータ構成図。
【図７】本発明に係る情報処理装置（携帯電話機）における翻訳制御処理の手順を示すフローチャート。
【図８】本発明に係る情報処理装置（携帯電話機）における事前初期化処理の手順を示すフローチャート。
【図９】（Ａ）は、識別符号と初期化状態との関係を示す対応表、（Ｂ）は、モジュール初期化状態情報の一例を示すデータ構成図。
【図１０】本発明に係る情報処理装置（携帯電話機）が翻訳制御処理を行う際の、演算処理時の初期化処理の手順を示すフローチャート。
【図１１】履歴情報の一例を示すデータ構成図。
【図１２】初期化パターンの付加情報の一例を示すデータ構成図。
【発明を実施するための形態】
【００１５】
本発明に係る情報処理装置の実施形態について、添付図面を参照しながら説明する。本発明に係る情報処理装置として、携帯電話機１を例に挙げて説明する。
【００１６】
図１は、携帯電話機１の斜視図である。携帯電話機１は、図１に示すように、矩形の板状の上筐体１０と、この上筐体１０とほぼ同形状をした下筐体１１とが、閉じた状態で、相互に一面を覆うように積層されることにより形成されている。これらの上筐体１０及び下筐体１１は、所定方向（例えば図１のＸ方向）に相互に所定距離だけスライド可能なように結合されていて、上筐体１０を下筐体１１に対してスライドさせることにより、閉じた状態から開いた状態に、あるいは開いた状態から閉じた状態に変形する。
【００１７】
上筐体１０の外面（下筐体１１に対面しない側の面）には、データを表示する液晶ディスプレイなどの表示装置１２、音声を出力するスピーカ１３、音声を入力するマイクロフォン１４が設けられている。また、下筐体１１の内面（上筐体１０に対面する側の面）には、ユーザが押下することによりデータを入力する操作キーなどの入力装置１５が設けられている。
【００１８】
図２は、携帯電話機１の構成を示すブロック図である。携帯電話機１は、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２、通信装置２３、及び、上述した表示装置１２、スピーカ１３、マイクロフォン１４、入力装置１５がバス２４によって相互に通信可能なように接続されて構成されている。
【００１９】
ＣＰＵ２０は、携帯電話機１の総括的な制御を行うとともに、後述する翻訳制御処理やその他の様々な処理などを行う。またＣＰＵ２０は、入力装置１５に対する入力インタフェースを備え、例えば入力装置１５として設けられている操作キーの押下を検出すると、その操作キーに対応する処理を行う。またＣＰＵ２０は、実行中のアプリケーションプログラムなどの制御に基づいて画面データを生成して表示装置１２に表示する。
【００２０】
ＣＰＵ２０は、マイクロフォン１４で集音された音声からアナログ音声信号を生成し、このアナログ音声信号をデジタル音声信号に変換する。またＣＰＵ２０は、デジタル音声信号を取得すると、このデジタル音声信号をアナログ音声信号に変換し、スピーカ１３から音声として出力する。
【００２１】
ＲＡＭ２１は、ＣＰＵ２０が処理を行う際の作業領域として一時的にデータを記憶する記憶装置である。ＲＯＭ２２は、ＣＰＵ２０が処理を行う際の処理プログラム（翻訳制御処理の処理プログラムなど）、処理に使用されるデータ（後述するモジュールリスト情報４０など）などを記憶する記憶装置である。音声翻訳に使用される辞書データも、予めＲＯＭ２２に記憶されているものとする。携帯電話機１は、ＲＯＭ２２に加えて、ハードディスク、不揮発性メモリなどの記憶装置を備えていても良く、モジュールリスト情報４０などは、ＲＯＭ２２でなくそれらの記憶装置に記憶されていても良い。
【００２２】
通信装置２３は、ＣＰＵ２０の制御に基づいて、基地局（図示せず）からアンテナ２３ａを介して受信した受信信号をスペクトラム逆拡散処理してデータを復元する。このデータは、ＣＰＵ２０の制御によりスピーカ１３から出力されたり、表示装置１２に表示されたり、またはＲＡＭ２１に記録されたりする。また通信制御部２６は、ＣＰＵ２０の制御に基づいて、マイクロフォン１４で集音された音声データや表示装置１２や入力装置１５を介して入力されたデータやＲＡＭ２１またはＲＯＭ２２に記憶されたデータを取得すると、これらのデータに対してスペクトラム拡散処理を行い、基地局に対してアンテナ２３ａを介して送信する。
【００２３】
携帯電話機１は、スタンドアロンで例えば言語Ａを言語Ｂに翻訳したり言語Ｂを言語Ａに翻訳したりする音声翻訳機能を備えている。さらに携帯電話機１は、翻訳制御処理を行う際に、翻訳制御に使用される各々のモジュールの初期化処理に必要なＲＡＭ２１のＲＡＭサイズ、各々のモジュールの演算処理に必要なＲＡＭサイズ、各々のモジュールの初期化処理に要する時間、及びＲＡＭ２１の空きＲＡＭサイズに基づいて、各々のモジュールの初期化処理のタイミングを制御する機能を備えていて、これにより、ＲＡＭ２１の空きＲＡＭサイズが制限されている場合であっても音声翻訳処理時間を最小限に抑えることができる。
【００２４】
そして、ＣＰＵ２０は、言語Ａを言語Ｂに翻訳するモジュールとして言語Ａ音声認識部３０、Ａ−Ｂ機械翻訳部３１、言語Ｂ音声合成部３２を備えているとともに、言語Ｂを言語Ａに翻訳するモジュールとして言語Ｂ音声認識部３３、Ｂ−Ａ機械翻訳部３４、言語Ａ音声合成部３５を備えている。
【００２５】
言語Ａ音声認識部３０は、マイクロフォン１４に言語Ａの音声が入力されると、入力された音声を示す言語Ａの文章を生成する。Ａ−Ｂ機械翻訳部３１は、生成された言語Ａの文章を言語Ｂの文章に機械翻訳する。言語Ｂ音声合成部３２は、機械翻訳された文章に基づいて音声を合成して、出力用の音声データを生成する。
【００２６】
言語Ｂ音声認識部３３は、マイクロフォン１４に言語Ｂの音声が入力されると、入力された音声を示す言語Ｂの文章を生成する。Ｂ−Ａ機械翻訳部３４は、生成された言語Ｂの文章を言語Ａの文章に機械翻訳する。言語Ａ音声合成部３５は、機械翻訳された文章に基づいて音声を合成して、出力用の音声データを生成する。
【００２７】
一例として、言語Ａ（日本語）から言語Ｂ（英語）に音声翻訳する場合の動作を簡単に説明する。例えばユーザが日本語で『もうすこし安くして下さい』と発話したとすると、言語Ａ音声認識部３０は音声波形を音声認識して文字列「もうすこし安くして下さい」を生成して表示装置１２に表示させる。図３は、携帯電話機１が翻訳制御処理を行う際に表示装置１２に表示させる画面の一例を示す図である。図３に示すように、言語Ａ音声認識部３０は、表示装置１２の画面１２ａにおける翻訳前言語表示欄１２ｂに、音声認識された文字列を表示させる。また、Ａ−Ｂ機械翻訳部３１は、図３に示すように、生成された文字列を英語に機械翻訳して「Ｐｌｅａｓｅ  ｍａｋｅ  ｉｔ  ａ  ｌｉｔｔｌｅ  ｃｈｅａｐｅｒ」の文字列を生成して、画面１２ａの翻訳後言語表示欄１２ｃに表示させる。言語Ｂ音声合成部３２は、機械翻訳された文字列に基づいて音声合成し、『Ｐｌｅａｓｅ  ｍａｋｅ  ｉｔ  ａ  ｌｉｔｔｌｅ  ｃｈｅａｐｅｒ』の文字列を音声として出力させる。
【００２８】
英語から日本語に音声翻訳する場合は、上記の逆の処理が実行される。なお、携帯電話機１において、日本語から英語に音声翻訳する処理と、英語から日本語に音声翻訳する処理とが並列に動作することはない。
【００２９】
言語Ａ音声認識部３０、Ａ−Ｂ機械翻訳部３１、言語Ｂ音声合成部３２、言語Ｂ音声認識部３３、Ｂ−Ａ機械翻訳部３４、言語Ａ音声合成部３５は、処理を行う際、ＲＡＭ２１において、それぞれ辞書データを読み込むための記憶領域（初期化用のＲＡＭ）と演算処理を行うための記憶領域（演算用のＲＡＭ）を占有する必要がある。演算処理前に予め初期化を実行しておくことで、その後の処理を高速に実行することが可能だが、その場合にはその分のＲＡＭ２１の記憶領域を占有し続けることになる。一方、予め初期化を実行しない場合、辞書データによりＲＡＭ２１の記憶領域を占有し続けることは回避されるが、処理を行う都度に初期化が必要となるため処理時間が長くなる。
【００３０】
ＲＯＭ２２は、ＣＰＵ２０が翻訳制御処理を行う際に使用されるモジュールがリスト化されたモジュールリスト情報４０を記憶している。図４は、モジュールリスト情報４０の一例を示すデータ構成図である。図４に示すように、モジュールリスト情報４０は、各々のモジュール情報４０ａに対して、処理の種類を示す種類情報４０ｂ、ＲＡＭにおいてモジュールが処理を行う際に使用される記憶領域の最大サイズ（ピークＲＡＭサイズ）を示すＲＡＭサイズ情報４０ｃがそれぞれ対応付けられた情報である。なお、モジュールが処理を行う際には、そのモジュールの本来の処理である演算処理に必要なデータをＲＯＭ２２からＲＡＭ２１に展開する初期化処理を行う必要があるため、処理の種類は、この「初期化」処理と、モジュールの本来の処理である「演算」処理との２種類である。
【００３１】
具体的には、初期化用の言語Ａ音声認識部３０（ＡＳＲ＿Ａ）の初期化に対して「Ｍ＿Ａａ」のＲＡＭサイズが、演算用の言語Ａ音声認識部３０（ＡＳＲ＿Ａ）の演算に対して「Ｍ＿Ａａ＿ｗ」のＲＡＭサイズがそれぞれ対応付けられている。また、Ａ−Ｂ機械翻訳部３１（ＭＴ＿ＡＢ）の初期化に対して「Ｍ＿Ｍａ」のＲＡＭサイズが、Ａ−Ｂ機械翻訳部３１（ＭＴ＿ＡＢ）の演算に対して「Ｍ＿Ｍａ＿ｗ」のＲＡＭサイズがそれぞれ対応付けられている。また、言語Ｂ音声合成部３２（ＴＴＳ＿Ｂ）の初期化に対して「Ｍ＿Ｔａ」のＲＡＭサイズが、言語Ｂ音声合成部３２（ＴＴＳ＿Ｂ）の演算に対して「Ｍ＿Ｔａ＿ｗ」のＲＡＭサイズがそれぞれ対応付けられている。
【００３２】
同様に、言語Ｂ音声認識部３３、Ｂ−Ａ機械翻訳部３４、言語Ａ音声合成部３５に対しても、初期化処理と演算処理のそれぞれに必要なＲＡＭサイズが対応付けられている。
【００３３】
また、ＲＯＭ２２は、各モジュールの初期化時間が記された初期化時間情報４１を記憶している。図５は、初期化時間情報４１の一例を示すデータ構成図である。図５に示すように、初期化時間情報４１では、各々のモジュールを示すモジュール情報４０ａに対して、初期化処理に要する時間が対応付けられている。
【００３４】
図６は、言語Ａから言語Ｂへ音声翻訳するときに用いられる各々のモジュールの初期化タイミングのパターンを示す初期化パターン情報４２の一例（例えば言語Ａから言語Ｂに翻訳するモジュールの初期化タイミングのパターン）を示すデータ構成図である。図６に示すように、初期化パターン情報４２は、各々のパターン識別情報４２ａに対して、言語Ａ音声認識部３０を事前初期化するか否かを示す事前初期化可否情報４２ｂ、Ａ−Ｂ機械翻訳部３１を事前初期化するか否かを示す事前初期化可否情報４２ｃ、言語Ｂ音声合成部３２を事前初期化するか否かを示す事前初期化可否情報４２ｄ、ピークＲＡＭサイズ情報４２ｅ、各々のモジュールを演算時に初期化する際にかかる時間を示す追加処理時間情報４２ｆがそれぞれ対応付けられた情報である。
【００３５】
初期化パターン情報４２には、言語Ａから言語Ｂへ音声翻訳するときに用いられる各モジュールの事前初期化要否の組み合わせとして考えられる全てのパターンについて、ピークＲＡＭサイズと、モジュール演算処理実行時に初期化を行うために要する時間（追加処理時間）とが登録されている。図６では、事前初期化を行うモジュールの事前初期化可否情報を「○」、事前初期化を行わないモジュールの事前初期化可否情報を「×」で表している。なお、図示しないが、言語Ｂから言語Ａへ音声翻訳する場合の初期化パターン情報も、言語Ａから言語Ｂへ音声翻訳する場合の初期化パターンと同様に予め記憶されている。ここで、事前の初期化とは、音声翻訳機能の開始時に、前もって行われるモジュールの初期化である。
【００３６】
言語Ａから言語Ｂへの翻訳制御処理を実行する際のピークＲＡＭサイズと追加処理時間について説明する。音声翻訳処理において、モジュールの初期化処理を事前に行った場合、その初期化処理に用いたＲＡＭ２１の記憶領域は、各モジュールの演算処理実行時にもそのまま占有される。そのため、事前に初期化するモジュールが多いほど、多くのＲＡＭ２１の記憶領域が必要となる。初期化パターン情報４２のピークＲＡＭサイズは、各パターンで処理した場合の音声翻訳処理全体の中で必要となるＲＡＭの最大値を表している。音声翻訳処理においては、上述のとおり音声認識完了後に機械翻訳を実行し、機械翻訳完了後に音声合成が実行されるため、各モジュールは並列動作しない。そのため、ピークＲＡＭサイズは、各モジュールの演算処理にかかるＲＡＭサイズの内の最大値と、事前初期化を行う全てのモジュールの初期化に必要なＲＡＭサイズの合計として算出される。
【００３７】
一方、事前に初期化されないモジュールは、各モジュールの演算処理を行う都度、初期化される。そのため、事前に初期化されないモジュールが多いほど、各モジュールの演算処理を行う都度発生する追加の初期化のための処理時間が必要となる。初期化パターン情報４２の追加処理時間は、音声翻訳処理全体の中で、追加の初期化処理のための処理時間の合計時間を表している。つまり、追加処理時間は、事前に初期化されないモジュールの初期化処理に要する時間として算出される。
【００３８】
例えば、初期化パターン情報４２に登録された各パターンの中で、ＲＡＭ２１の記憶領域を最も多く占有するパターンは、全てのモジュールが事前に初期化するパターン（図６のパターン１）であり、これは、各モジュールが演算処理を行う際のＲＡＭ２１の使用量の最大値ｍａｘ｛Ｍ＿Ａａ＿ｗ，Ｍ＿Ｍａ＿ｗ，Ｍ＿Ｔａ＿ｗ｝＝Ｍ＿ｗと定義すると、ピークＲＡＭサイズＭ＿Ｐｋ＿ｍａｘは「Ｍ＿Ａａ＋Ｍ＿Ｍａ＋Ｍ＿Ｔａ＋Ｍ＿ｗ」となる。また、各モジュールによる演算処理を行うときの追加の初期化の処理が必要無いため、追加処理時間Ｔｐａ１は０となる。
【００３９】
これに対して、全てのモジュールが事前に初期化されないパターン（図６のパターン８）では、初期化によってＲＡＭが占有されない。そのため、ピークＲＡＭサイズは、「Ｍｐａ８＝ｍａｘ{Ｍ＿Ａａ＋Ｍ＿Ａａ＿ｗ，Ｍ＿Ｍａ＋Ｍ＿Ｍａ＿ｗ，Ｍ＿Ｔａ＋Ｍ＿Ｔａ＿ｗ}」である。一方、各モジュールの演算処理実行時に初期化を行うため、追加処理時間が「Ｔｐａ８＝Ｔ＿Ａａ＋Ｔ＿Ｍａ＋Ｔ＿Ｔａ」となる。
【００４０】
初期化パターンは、初期化パターン情報４２に記憶されたピークＲＡＭサイズと追加処理時間の情報と、翻訳制御処理のために使用できる空きＲＡＭサイズに基づいて選択される。
【００４１】
ＲＡＭ２１の記憶領域における空きＲＡＭサイズを「Ｍ＿Ｆｒｅｅ」、翻訳制御処理の実行時に他のアプリのために最低限確保しておくＲＡＭサイズを「Ｍ＿ｅｔｃ」と定義すると、翻訳制御処理のために使用できる空きＲＡＭサイズＭ＿ｍａｘは「Ｍ＿Ｆｒｅｅ−Ｍ＿ｅｔｃ」と定義する。
【００４２】
言語Ａから言語Ｂへの音声翻訳に必要なピークＲＡＭサイズＭ＿Ｐｋ＿ｍａｘが空きＲＡＭサイズＭ＿ｍａｘよりも小さければ、音声翻訳を行う前に、事前に全モジュールの初期化処理を実行しておくことが可能なので、パターン１により最小の処理時間で翻訳制御処理を実行することができる。しかしながら、ピークＲＡＭサイズＭ＿Ｐｋ＿ｍａｘが空きＲＡＭサイズＭ＿ｍａｘよりも小さい場合は、モジュールを全て事前に初期化しておくことはできないため、一部のモジュールのみを事前に初期化しておくことになる。この場合、ピークＲＡＭサイズは小さくなるが、事前初期化を行っていないモジュールの初期化処理に要する時間の分だけ処理時間が長くなるため、全てのモジュールを初期化した場合よりも処理時間が長くなる。
【００４３】
以下、各々のモジュールの初期化のタイミングを制御することにより処理時間を最小化するために、事前初期化を行うモジュールの選択方法について説明する。携帯電話機１で翻訳制御処理を行う際、空きＲＡＭサイズに応じて、いずれのモジュールを事前初期化するかどうか選択する。言語Ａから言語Ｂに翻訳するための３種類のモジュールについて考えると、事前初期化有無を決定するためのパターンは初期化パターン情報４２に示すようにパターン１乃至パターン８の８パターンある。
【００４４】
事前に初期化するモジュール、演算処理を実行するタイミングで初期化するモジュールをそれぞれ選別する初期化処理の最適化は、初期化パターン情報４２に基づいて以下の手順で行われる。  
（１）空きＲＡＭサイズＭ＿ｍａｘを算出する。  
（２）パターン１乃至パターン８（Ｍｐａ１〜ＭＰａ８）から、ピークＲＡＭサイズが空きＲＡＭサイズＭ＿ｍａｘ以下であるパターンを選出する。  
（３）上記（２）で選出されたパターンのうち、追加処理時間（Ｔｐａ１〜Ｔｐａ８）が最小のパターンを選択する。
【００４５】
携帯電話機１が各々のモジュールの初期化のタイミングを最適化しつつ翻訳処理を行う翻訳制御処理の手順について、図７、図８、図１０に示すフローチャートに基づいて詳細に説明する。なお、最初に言語Ａから言語Ｂへの翻訳を行う場合を例に挙げて説明する。
【００４６】
図７は、携帯電話機１が翻訳制御処理を行う際の全体の手順を示すフローチャートであり、図８は、携帯電話機１が事前初期化処理を行う際の手順を示すフローチャートである。図７に示すように、まずＣＰＵ２０は、言語Ａから言語Ｂへの翻訳を行う各々のモジュールについて、事前初期化処理を行う（Ｓ１０１）。この事前初期化処理について、図８に示すフローチャートに基づいて説明する。
【００４７】
ＣＰＵ２０はまず空きＲＡＭサイズ（Ｍ＿ｍａｘ）を算出する（Ｓ２０１）。またＣＰＵ２０は、追加処理時間の最小値（Ｔｍｉｎ）を初期値「無限大（∞）」に設定するとともに、パターンの計数のための変数ｉに初期値「１」を、最適なパターンを示す変数ｎに初期値「０」を設定する（Ｓ２０３）。ここで、初期値「無限大」は十分に大きな値を意味するものであり、より具体的にはＴｐａ８よりも大きな値であれば良い。
【００４８】
ＣＰＵ２０は、パターンｉのピークＲＡＭサイズ（Ｍｐａ（ｉ））が、空きＲＡＭサイズ（Ｍ＿ｍａｘ）より小さいかどうかを判断する（Ｓ２０５）。このときＣＰＵ２０は、例えば変数ｉが「１」の場合にはパターン１のピークＲＡＭサイズについて判断する。パターンｉのピークＲＡＭサイズが空きＲＡＭサイズよりも小さい場合（Ｓ２０５のＹｅｓ）、ＣＰＵ２０は、パターンｉの追加処理時間（Ｔｐａ（ｉ））が追加処理時間の最小値Ｔｍｉｎよりも小さいか否かを判断する（Ｓ２０７）。
【００４９】
パターンｉの追加処理時間（Ｔｐａ（ｉ））が追加処理時間の最小値Ｔｍｉｎよりも小さい場合（Ｓ２０７のＹｅｓ）は、ＣＰＵ２０は、追加処理時間の最小値（Ｔｍｉｎ）にパターンｉの追加処理時間（Ｔｐａ（ｉ））を設定する（Ｓ２０９）。追加処理時間の最小値が無限大に設定されている場合には、必ずこのときのパターンｉの追加処理時間が追加処理時間の最小値に設定される。そしてＣＰＵ２０は、変数ｎにこのときの「ｉ」を設定する（Ｓ２１１）。変数ｎは最適なパターンを示す変数であり、変数ｎに「ｉ」を設定することにより現時点でパターンｉが最適であることを意味する。
【００５０】
パターンｉのピークＲＡＭサイズが空きＲＡＭサイズ以上であった場合（Ｓ２０５のＮｏ）、パターンｉの追加処理時間（Ｔｐａ（ｉ））が追加処理時間の最小値以上であった場合（Ｓ２０７のＮｏ）、またはステップＳ２０９及びＳ２１１の処理を完了した後、ＣＰＵ２０は、変数ｉに「１」を加算する（Ｓ２１３）。
【００５１】
またＣＰＵ２０は、変数ｉがパターンの総数である「８」より大きいか否かを判断する（Ｓ２１５）。変数ｉが８以下であった場合（Ｓ２１５のＮｏ）、すなわち全てのパターンについてステップＳ２０５乃至Ｓ２１１の処理を行っていない場合は、ステップＳ２０５に戻って、ＣＰＵ２０はステップＳ２０５乃至Ｓ２１５の処理を行う。
【００５２】
変数ｉが８より大きい場合（Ｓ２１５のＹｅｓ）、すなわち全てのパターンについてステップＳ２０５乃至Ｓ２１１の処理を行った場合は、ＣＰＵ２０は、変数ｎが０より大きいか否かを判断する（Ｓ２１７）。変数ｎが「０」の場合には、最適なパターンが選択されておらず、事前初期化を行えないからである。
【００５３】
変数ｎが０より大きい場合（Ｓ２１７のＹｅｓ）は、ＣＰＵ２０は初期化パターン情報４２に基づいて、パターンｎの初期化を実行する（Ｓ２１９）。このとき、例えば変数ｎが「１」であった場合は、ＣＰＵ２０は、初期化パターン情報４２のパターン１に基づいて、言語Ａ音声認識部３０、Ａ−Ｂ機械翻訳部３１、言語Ｂ音声合成部３２を初期化し、パターン２が選択された場合は、言語Ａ音声認識部３０、Ａ−Ｂ機械翻訳部３を初期化する。
【００５４】
またこのとき、ＣＰＵ２０は、各々のモジュールの初期化状態を示す初期化状態情報４４に、各々のモジュールの初期化状態を記憶する（Ｓ２２１）。図９（Ａ）は、識別符号と初期化状態との関係を示す対応表であり、図９（Ｂ）は、初期化状態情報４４の一例を示すデータ構成図である。図９（Ａ）に示すように、モジュールを事前初期化すべきでないが初期化されている状態に識別符号「−１」が、モジュールを事前初期化しない状態に識別符号「０」が、モジュールを事前初期化すべきだがまだされていない状態に識別符号「１」が、モジュールが既に事前初期化されている状態に識別符号「２」がそれぞれ割り当てられている。
【００５５】
識別符号「−１」は、むやみに解放処理が行われないための識別符号である。例えば、一般的にモジュールが実行された後には即座にメモリの使用領域が解放されるが、このモジュールが繰り返し使用される可能性がある場合には何度も初期化を繰り返すのは非効率的である。そこで、繰り返し使用される可能性の高いモジュールに対して識別符号「−１」を設定しておき、別のモジュールが実行されるタイミングで当該モジュールを解放するようにすることにより、無駄な初期化処理を省くことができる。
【００５６】
そして、選択されたパターンに基づいて、モジュールの事前初期化を行わないが初期化されているモジュール（予め識別符号に「−１」が設定されていたモジュール）には「−１」が、モジュールの事前初期化を行わないモジュールには「０」が、既に事前初期化を行ったモジュールには「２」が設定される。また、例えば「Ａ言語からＢ言語」と「Ｂ言語からＡ言語」の双方向の翻訳を行う場合に、双方向分のモジュールのパターンが選択されたが、この時点で１方向のみの事前初期化が行われた場合などで、事前初期化を行うべきだが現時点で行われていないモジュールには「１」が設定される。
【００５７】
図９（Ｂ）に示すように、初期化状態情報４４では、モジュール情報４４ａに対して初期化状態を示す状態情報４４ｂがそれぞれ対応付けられている。なお、状態情報４４ｂは上述した識別符号で記されている。例えば図９（Ｂ）によると、言語Ａ音声認識部３０（ＡＳＲ＿Ａ）に識別符号「２」（初期化されている状態）が、Ａ−Ｂ機械翻訳部３１（ＭＴ＿ＡＢ）に識別符号「１」（初期化すべきだけどされていない状態）が対応付けられている。ＣＰＵ２０は、ステップＳ２２１にて各々のモジュールについて状態情報４４ｂを更新する。
【００５８】
このようにしてＣＰＵ２０は、各々のモジュールに対して事前初期化処理を行った後、ユーザにより終了が指示されたか否かを判断する（Ｓ１０３）。このときＣＰＵ２０は、例えば入力装置１５を介する所定の入力に基づいて、終了が指示されたものと判断する。終了が指示された場合（Ｓ１０３のＹｅｓ）は、ＣＰＵ２０は翻訳制御処理を終了する。
【００５９】
終了が指示されていない場合（Ｓ１０３のＮｏ）は、ＣＰＵ２０は、翻訳方向の切替が指示されたか否かを判断する（Ｓ１０５）。このときＣＰＵ２０は、例えば入力装置１５を介する所定の入力に基づいて、言語Ａから言語Ｂへの翻訳から、言語Ｂから言語Ａへの翻訳に切り替えられた場合に、切替が指示されたものと判断する。
【００６０】
翻訳方向の切替が指示されていない場合（Ｓ１０５のＮｏ）は、ＣＰＵ２０は、言語Ａから言語Ｂに翻訳を行うために、ユーザにより発話されたか否かを判断する（Ｓ１０７）。ユーザは、例えば画面１２ａに表示された認識開始／終了ボタン１２を選択することにより携帯電話機１に音声認識の開始を指示し、認識開始／終了ボタン１２を再び選択することにより音声認識の終了を指示する。ＣＰＵ２０は、例えばこのボタンの選択に基づいて発話されたか否かを判断する。
【００６１】
発話された場合（Ｓ１０７のＹｅｓ）は、ＣＰＵ２０は、言語Ａ音声認識部３０により言語Ａの音声認識を行う（Ｓ１０９）。例えばユーザが言語Ａ（日本語）で「こんにちは」と発話した場合には、ＣＰＵ２０は「こんにちは」の文字列を生成する。そしてＣＰＵ２０は、機械翻訳処理を実行することを示すユーザ操作を検出した場合に、Ａ−Ｂ機械翻訳部３１により、ステップＳ１０９にて音声認識された文字列を言語Ａから言語Ｂに機械翻訳する（Ｓ１１１）。例えば音声認識により「こんにちは」の文字列が生成された場合には、ＣＰＵ２０は「こんにちは」を言語Ｂ（英語）に機械翻訳して「Ｈｅｌｌｏ」の文字列を生成する。
【００６２】
この際、画面１２ａの翻訳前言語表示欄１２ｂに音声認識された文字列である「こんにちは」の文字列が表示されると良い。また、画面１２ａの翻訳後言語表示欄１２ｃに機械翻訳された文字列である「Ｈｅｌｌｏ」の文字列が表示されると良い。
【００６３】
ＣＰＵ２０は、音声合成処理を実行することを示すユーザ操作を検出した場合に、言語Ｂ音声合成部３２により、ステップＳ１１１にて機械翻訳された文字列について音声合成して音声データを生成する（Ｓ１１３）。例えば生成された文字列が「Ｈｅｌｌｏ」であった場合には「Ｈｅｌｌｏ」の言葉を発する音声データが生成される。そしてＣＰＵ２０は、生成された音声データの出力を示すユーザ操作を検出した場合に、ステップＳ１１３にて生成された音声データをスピーカ１３により音声出力する（Ｓ１１５）。ユーザは、例えば画面１２ａに表示された出力開始ボタン１２ｅを選択することにより、携帯電話機１に音声出力の開始を指示する。ＣＰＵ２０は、このボタンが選択されたことに基づいて音声出力を開始すると良い。その後、ステップＳ１０３に戻って、ＣＰＵ２０は再び終了が指示されたか否かを判断する。
【００６４】
一方、翻訳方向の切替が指示された場合（Ｓ１０５のＮｏ）は、ＣＰＵ２０は、翻訳方向を切り替え、言語Ｂから言語Ａへの翻訳を行う各々のモジュールに対して、ステップＳ２０１乃至Ｓ２２１に示す事前初期化処理を行う（Ｓ１１７）。その後、ＣＰＵ２０はユーザにより終了が指示されたか否かを判断する（Ｓ１１９）。このときＣＰＵ２０は、例えば入力装置１５を介する所定の入力に基づいて、終了が指示されたものと判断する。終了が指示された場合（Ｓ１１９のＹｅｓ）は、ＣＰＵ２０は翻訳制御処理を終了する。
【００６５】
終了が指示されていない場合（Ｓ１１９のＮｏ）は、ＣＰＵ２０は、翻訳方向の切替が指示されたか否かを判断する（Ｓ１２１）。このときＣＰＵ２０は、例えば入力装置１５を介する所定の入力に基づいて、言語Ｂから言語Ａへの翻訳から、言語Ａから言語Ｂへの翻訳に切り替えられた場合に、切替が指示されたものと判断する。翻訳方向の切替が指示された場合（Ｓ１２１のＹｅｓ）は、ステップＳ１０１に戻って、ＣＰＵ２０は、翻訳方向を切り替え、言語Ａから言語Ｂへの翻訳を行う各々のモジュールに対して事前初期化を行う。
【００６６】
翻訳方向の切替が指示されていない場合（Ｓ１２１のＮｏ）は、ＣＰＵ２０は、言語Ｂから言語Ａに翻訳を行うために、ユーザにより発話されたか否かを判断する（Ｓ１２３）。ユーザは、例えば画面１２ａに表示された認識開始／終了ボタン１２を選択することにより携帯電話機１に音声認識の開始を指示し、認識開始／終了ボタン１２を再び選択することにより音声認識の終了を指示する。ＣＰＵ２０は、例えばこのボタンの選択に基づいて発話されたか否かを判断する。
【００６７】
発話された場合（Ｓ１２３のＹｅｓ）は、ＣＰＵ２０は、言語Ｂ音声認識部３３により、言語Ｂの音声認識を行う（Ｓ１２５）。例えばユーザが言語Ｂ（英語）で「Ｈｅｌｌｏ」と発話した場合には、ＣＰＵ２０は「Ｈｅｌｌｏ」の文字列を生成する。そしてＣＰＵ２０は、機械翻訳処理を実行することを示すユーザ操作を検出した場合に、Ｂ−Ａ機械翻訳部３４により、ステップＳ１２５にて音声認識された文字列を言語Ｂから言語Ａに機械翻訳する（Ｓ１２７）。例えば音声認識により「Ｈｅｌｌｏ」の文字列が生成された場合には、ＣＰＵ２０は「Ｈｅｌｌｏ」を言語Ａ（日本語）に機械翻訳して「こんにちは」の文字列を生成する。
【００６８】
ＣＰＵ２０は、音声合成処理を実行することを示すユーザ操作を検出した場合に、言語Ａ音声合成部３５により、ステップＳ１２７にて機械翻訳された文字列について音声合成して、音声データを生成する（Ｓ１２９）。例えば生成された文字列が「こんにちは」であった場合には「こんにちは」の言葉を発する音声データが生成される。そしてＣＰＵ２０は、生成された音声データの出力を示すユーザ操作を検出した場合に、ステップＳ１２９にて生成された音声データをスピーカ１３により音声出力する（Ｓ１３１）。ユーザは、例えば画面１２ａに表示された出力開始ボタン１２ｅを選択することにより、携帯電話機１に音声出力の開始を指示する。ＣＰＵ２０は、このボタンが選択されたことに基づいて音声出力を開始すると良い。その後、ステップＳ１１９に戻って、ＣＰＵ２０は再び終了が指示されたか否かを判断する。
【００６９】
なお、ＣＰＵ２０は、上述したステップＳ１０９、Ｓ１１１、Ｓ１１３、Ｓ１２５、Ｓ１２７、Ｓ１２９の各々の処理（演算処理）をユーザの入力操作に応じて行うとして説明したが、ユーザの入力操作がなかった場合には、各々の処理を実行せずに次のステップの処理に進むようにしても良い。また、ユーザの入力操作に基づかず、自動的に機械翻訳、音声合成、音声出力を実行しても良い。
【００７０】
また、ＣＰＵ２０は、上述したステップＳ１０９、Ｓ１１１、Ｓ１１３、Ｓ１２５、Ｓ１２７、Ｓ１２９の各々の処理（演算処理）を行う際に、各々のモジュールの初期化状態に応じて初期化処理を行う。図１０は、携帯電話機１が翻訳制御処理を行う際の、演算処理時の初期化処理の手順を示すフローチャートである。例えばステップＳ１０９にて言語Ａ音声認識部３０が音声認識を行う場合について説明する。
【００７１】
図１０に示すように、ＣＰＵ２０は、初期化状態情報４４に基づいて言語Ａ音声認識部３０のモジュールの初期化状態を判断する（Ｓ３０１）。状態情報４４ｂが「０」の場合（Ｓ３０１の「０」）は、言語Ａ音声認識部３０のモジュールが事前初期化されずに演算時に初期化されるべきモジュールであるため、ＣＰＵ２０は音声Ａ音声認識部３０のモジュールを初期化する（Ｓ３０２）。
【００７２】
状態情報４４ｂが「１」の場合（Ｓ３０１の「１」）は、言語Ａ音声認識部３０のモジュールが事前初期化されるべきモジュールであるが現時点では初期化されていないため、ＣＰＵ２０は言語Ａ音声認識部３０のモジュールを初期化する（Ｓ３０３）。そしてＣＰＵ２０は、言語Ａ音声認識部３０が初期化されたので、初期化状態情報４４において、言語Ａ音声認識部３０の状態情報４４ｂを「２」に設定する（Ｓ３０４）。
【００７３】
状態情報４４ｂが「２」の場合（Ｓ３０１の「２」）は、言語Ａ音声認識部３０のモジュールが事前初期化されるべきモジュールであり既に事前初期化されているため、ＣＰＵ２０は初期化を行わずに次のステップに進む。また、状態情報４４ｂが「−１」の場合（Ｓ３０１の「−１」）は、言語Ａ音声認識部３０のモジュールが事前初期化されるべきでないモジュールであるが既に初期化されているため、ＣＰＵ２０は初期化を行わずに次のステップに進む。
【００７４】
そしてＣＰＵ２０は、言語Ａ音声認識部３０に演算処理（すなわち音声認識処理）を実行させる（Ｓ３０５）。演算処理の実行後に、ＣＰＵ２０は、再びステップＳ３０１と同様に、言語Ａ音声認識部３０のモジュールの初期化状態を判断する（Ｓ３０７）。
【００７５】
状態情報４４ｂが「０」の場合（Ｓ３０７の「０」）は、言語Ａ音声認識部３０のモジュールがステップＳ３０２にて初期化されたので、初期化によりＲＡＭ２１に展開されたデータをＲＡＭ２１から削除することにより言語Ａ音声認識部３０のモジュールを解放する（Ｓ３０９）。一方、状態情報４４ｂが「−１」または「２」の場合（Ｓ３０７の「−１」、「２」）は、ＣＰＵ２０は、言語Ａ音声認識部３０のモジュールを解放せずに処理を終了する。なお、識別符号「−１」が設定されているモジュールは、別のモジュールが実行されるタイミングで解放されると良い。
【００７６】
このようなステップＳ３０１乃至Ｓ３０９の処理が、言語Ａ音声認識部３０、Ａ−Ｂ機械翻訳部３１、言語Ｂ音声合成部３２、言語Ｂ音声認識部３３、Ｂ−Ａ機械翻訳部３４、言語Ａ音声合成部３５の各々のモジュールが処理を実行する毎に行われる。
【００７７】
以上のように、音声翻訳に利用できる空きＲＡＭサイズと音声翻訳の各モジュールを事前初期化するときに必要なＲＡＭサイズとの関係および、各モジュールを事前に初期化しなかった場合に追加で必要となる処理時間に基づいて、各モジュールを事前に初期化するか否かを決定する。これによって、限られたＲＡＭサイズであっても、より少ない処理時間で音声翻訳を実行することができる。
【００７８】
以上のような初期化処理判断処理に対して各々のモジュールの利用頻度を利用することにより、翻訳制御処理の処理時間を更に短縮することができる。図１１は、各々のモジュールの使用履歴が記録された履歴情報４５の一例を示すデータ構成図である。図１１に示すように、履歴情報４５は、例えば最近実行されたモジュールが過去１００回分について記憶された情報である。ＣＰＵ２０は、いずれかのモジュールが実行される毎に（ステップＳ１０９、Ｓ１１１、Ｓ１１３、Ｓ１２５、Ｓ１２７、Ｓ１２９の各々の処理が行われる場合など）、履歴情報４５に実行されたモジュールを記憶しておく。そして、この履歴情報４５に基づいて各モジュールの利用頻度が決定される。
【００７９】
図１２は、初期化パターンの付加情報４６の一例を示すデータ構成図である。図１２に示すように、初期化パターンの付加情報４６は、初期化パターン情報４２と共通の各々のパターン識別情報４６ａに対して、言語Ａ音声認識部３０の利用頻度の比率を示す利用頻度情報４６ｂ、Ａ−Ｂ機械翻訳部３１の利用頻度の比率を示す利用頻度情報４６ｃ、言語Ｂ音声合成部３２の利用頻度の比率を示す利用比率情報４６ｄ、利用頻度を反映させた追加処理時間である拡張追加処理時間を示す拡張追加処理時間情報４６ｅがそれぞれ対応付けられた情報である。拡張追加処理時間は各モジュールの追加処理時間に頻度比率を重み付けした総和であり、各モジュールの利用頻度を利用する場合には、拡張追加処理時間が最小になるようにパターンが選択される。
【００８０】
例えば図１２によると、言語Ａ音声認識部３０の利用頻度の比率が「Ｒ＿Ａａ」、Ａ−Ｂ機械翻訳部３１の利用頻度の比率が「Ｒ＿Ｍａ」、言語Ｂ音声合成部３２の利用頻度の比率が「Ｒ＿Ｔａ」と定義されている。また、パターン１〜パターン８の拡張追加処理時間Ｔｐａ’〜Ｔｐａ８’が定義されている。
【００８１】
例えば、Ｍ＿Ａａ＝１０ＭＢ、Ｍ＿Ｍａ＝１０ＭＢ、Ｍ＿Ｔａ＝１ＭＢ、Ｔ＿Ａａ＝８秒、Ｔ＿Ｍａ＝４秒、Ｔ＿Ｔａ＝１秒、Ｍ＿Ａａ＿ｗ＝５ＭＢ、Ｍ＿Ｍａ＿ｗ＝４ＭＢ、Ｍ＿Ｔａ＿ｗ＝３ＭＢである場合について考える。各々のモジュールの利用頻度を利用しない場合、空きＲＡＭサイズＭ＿ｍａｘが１６ＭＢの場合、メモリ制約から選択されるパターンはパターン３とパターン５である。翻訳処理実行時の追加処理時間はパターン３でＴｐａ３＝４秒、パターン５でＴｐａ５＝８秒なので、追加処理時間が最小となるのはパターン３である。つまり、追加処理時間を多く要する言語Ａ音声認識部３０（８秒）を事前に初期化しておき、Ａ−Ｂ機械翻訳部３１の初期化（４秒）は、機械翻訳処理が必要なタイミングで実行する、という処理手順が選択される。
【００８２】
しかし、例えばユーザが音声認識により得られた文字列をテキストエディタなどで編集し、これに対して機械翻訳を行わせる処理を繰り返すような状況を想定すると、機械翻訳の初期化（４秒）を何度も繰り返すのは効率が悪い。この非効率的な追加処理時間を軽減するために、各モジュールの頻度比率が用いられる。
【００８３】
例えば上記ケースにおいて、言語Ａ音声認識部３０、Ａ−Ｂ機械翻訳部３１、言語Ｂ音声合成部３２の各頻度比率がそれぞれＲ＿Ａａ＝０．１、Ｒ＿Ｍａ＝０．８、Ｒ＿Ｔａ＝０．１であるとすると、拡張追加処理時間はパターン３で、Ｔｐａ３’＝４＊０．８＝３．２秒、パターン５でＴｐａ５’＝８＊０．１＝０．８秒なので、最小のものはパターン５となる。このように、ユーザの利用ケースに自動適応して、各モジュールの初期化処理のタイミングを最適化することができる。
【００８４】
なお、各モジュールの追加処理時間に頻度比率を重み付けする方法は、上述した方法に限定されず、最近の履歴ほど重みを大きくなるような重み付け和で頻度比率を算出する方法であっても良い。
【００８５】
また、言語Ａ音声認識部３０、Ａ−Ｂ機械翻訳部３１、言語Ｂ音声合成部３２、言語Ｂ音声認識部３３、Ｂ−Ａ機械翻訳部３４、言語Ａ音声合成部３５の各モジュールの実行頻度が等しい場合は、初期化パターン情報４２の追加処理時間情報４２ｆを参照してパターンを選択するようにすると良い。
【００８６】
また、Ａ−Ｂ機械翻訳部３１が事前初期化されていない状態（状態「０」または「１」）で、ユーザがテキストエディタ等で翻訳原文（音声認識部における出力文）を編集した場合（編集終了後のタイミングではなく、少しでも内容が変化したタイミングで）、ユーザが次に機械翻訳処理を実行する可能性が高いので、ユーザのテキスト編集の裏で並列処理でＡ−Ｂ機械翻訳部３１を初期化しても良い。
【００８７】
同様に、言語Ｂ音声合成部３３が事前初期化されていない状態（状態「０」または「１」）で、ユーザがテキストエディタ等で翻訳結果（音声合成部における読み上げ対象文）を編集した場合（編集終了後のタイミングではなく、少しでも内容が変化したタイミングで）、ユーザが次に音声合成処理を実行する可能性が高いので、ユーザのテキスト編集の裏で並列処理で言語Ｂ音声合成部３３を初期化しても良い。
【００８８】
また、携帯電話機１において、片方向ずつの事前初期化処理のみならず、両方向で行っても良い。この場合には、現在選択されている翻訳方向の事前初期化処理を行ったときに、ＲＡＭ２１の空きＲＡＭサイズに余裕があれば、もう片方向の事前初期化処理を行うようにすると良い。ただし、現在選択されていない翻訳方向の初期化パターンは、翻訳処理に用いることができるＲＡＭ２１のサイズから現在選択されている翻訳方向のピークＲＡＭサイズを除いた値を基に判定するのではなく、翻訳処理に用いることができるＲＡＭ２１のサイズを基に判定する。
【００８９】
これは、現在選択されていない翻訳方向の事前初期化は、翻訳方向を切替えたときに必要となるものであって、現在選択されている翻訳方向で事前に初期化されたデータは翻訳方向を切替えたときに解放しても良いためである。仮に、現在選択されていない翻訳方向の初期化パターンを、翻訳処理に用いることができるＲＡＭサイズから現在選択されている翻訳方向のピークＲＡＭサイズを除いた値を基に判定した場合、翻訳方向を切替えたときに、最も処理時間が短くなるような事前初期化パターンが選択されない場合がある。例えば、現在選択されていない翻訳方向の事前初期化パターンとして、追加処理時間が８秒のパターンＡと０秒のパターンＢがあり、翻訳処理に用いることができるＲＡＭサイズを基に判定すると、両方のパターンが選択可能であるとする。そして、翻訳処理に用いることができるＲＡＭサイズから現在選択されている翻訳方向のピークＲＡＭサイズを除いた値を基に判定して、パターンＡしか選択することができなかった時に、翻訳方向が選択されていない状態でパターンＡに基づいて現在選択されていない翻訳方向のモジュールの事前初期化を行う場合がある。しかしながら、翻訳方向を切替えたときに、選択し得るパターンの内、最も追加処理時間が短くなるパターンはパターンＢであるため、パターンＢでの事前初期化が必要となり、パターンＡで事前初期化を行っておいたモジュールを解放する必要が出てくる可能性がある。このように現在選択されていない翻訳方向の初期化パターンは、翻訳処理に用いることができるＲＡＭ２１のサイズから現在選択されている翻訳方向のピークＲＡＭサイズを除いた値を基に判定すると、非効率的な事前初期化が行われる場合があり、処理時間の増加につながる。
【００９０】
現在選択されていない翻訳方向の初期化パターンを、翻訳処理に用いることができるＲＡＭ２１のサイズを基に選択する場合の処理を具体的に説明する。例えば、現在選択されている翻訳方向が言語Ｂから言語Ａへの方向である場合であって、翻訳処理に用いることができるＲＡＭ２１のサイズを２０ＭＢ、現在選択されている翻訳方向で初期化パターンを判定し、その初期化パターンで必要なピークＲＡＭサイズが１４ＭＢ必要であるとする。また、現在選択されていない翻訳方向（言語Ａ→言語Ｂ）での各モジュールの初期化処理に必要なＲＡＭサイズをＭ＿Ａａ＝１０ＭＢ、Ｍ＿Ｍａ＝１０ＭＢ、Ｍ＿Ｔａ＝６ＭＢとし、現在選択されていない翻訳方向（言語Ａ→言語Ｂ）での各モジュールの演算処理に必要なＲＡＭサイズをＭ＿Ａａ＿ｗ＝５ＢＭ、Ｍ＿Ｍａ＿ｗ＝４ＭＢ、Ｍ＿Ｔａ＿ｗ＝３ＭＢとし、各モジュールの初期化処理にかかる時間をＴ＿Ａａ＝８秒、Ｔ＿Ｍａ＝４秒、Ｔ＿Ｔａ＝１秒とする。この場合、現在選択されていない翻訳方向の初期化パターンの選択は、翻訳処理に用いることができるＲＡＭ２１のサイズ２０ＭＢの範囲内に収まるピークＲＡＭサイズを有し、追加初期化処理時間が短いパターンが選択される。各モジュールの演算処理に必要なＲＡＭサイズの最大値Ｍ＿ｗはｍａｘ（５ＭＢ、４ＭＢ、３ＭＢ）＝５ＭＢであるため、翻訳処理に用いることができるＲＡＭ２１のサイズ２０ＭＢの範囲内に収まるピークＲＡＭサイズを有する事前初期化のパターンは、現在選択されていない翻訳方向での各モジュールのいずれか１つを事前初期化するパターンとなる。これらのパターンの中で、追加初期化処理時間が短いパターンとして、言語Ａ音声認識部３０が初期化されるパターンが選択される。ただし、言語Ｂ→言語Ａの翻訳方向が選択されている時点で、現在選択されていない翻訳方向（言語Ａ→言語Ｂ）の初期化のためには、翻訳処理に用いることができるＲＡＭサイズ２０ＭＢから現在選択されている翻訳方向（言語Ｂ→言語Ａ）のピークＲＡＭサイズ１４ＭＢを除いた６ＭＢである。そのため、１０ＭＢ必要な言語Ａ音声認識部３０の初期化を実行することができず、初期化状態情報４４の言語Ａ音声認識部３０に対応する初期化状態を「１」に設定し、翻訳方向が切替えられた後に、事前初期化を行う。
【００９１】
なお、上述の例では、一方の翻訳方向選択時に他方の翻訳方向の事前初期化ができない場合を示したが、一方の翻訳方向選択時に他方の翻訳方向の事前初期化ができる場合も考えられる。例えば、上述の例においてＭ＿Ｔａ＝１ＭＢの場合には、初期化パターンとして、言語Ａ音声認識部３０と言語Ｂ音声合成部３２とが初期化されるパターンが選択される。この場合、言語Ｂ音声合成部３２の事前初期化は、言語Ｂ→言語Ａが選択されている場合にも実行できるため、言語Ｂ→言語Ａが選択されているときに事前初期化を行っても良い。また、一方の翻訳方向選択時に他方の翻訳方向の事前初期化ができる場合、どちらの翻訳方向時であっても事前初期化をしておくことができるモジュールについては、翻訳方向の切り替えのたびに初期化したデータを解放する必要が無い。例えば、言語Ｂ音声合成部３２の事前初期化を言語Ｂ→言語Ａが選択されている場合にも実行できる場合、翻訳方向を言語Ａ→言語Ｂから言語Ｂ→言語Ａに切替えたとしても、言語Ｂ音声合成部３２の初期化データを解放しなくても良い。
【００９２】
なお、初期化状態情報４４の更新は、翻訳機能の起動時／翻訳方向切り替え時／アプリ画面アクティブ時などに行うと良い。
【００９３】
また、１方向（例えば言語Ａから言語Ｂへの翻訳）分の初期化タイミング決定して、そのタイミングに基づいて初期化を行った後、ＲＡＭ２１の空きＲＡＭサイズに余裕が発生した段階で他方向（例えば言語Ｂから言語Ａへの翻訳）分の初期化を行うようにしても良い。例えば、言語Ａから言語Ｂへの翻訳を行っている間に、並列させて、処理が走っていない（例えばＣＰＵ２０が表示処理のみを行っていて、ユーザの入力操作を待っている状態などの）ときに、他方向の初期化を行うようにしてもよい。
【００９４】
あるいは、事前初期化は必ずしも事前に行わなくても良い。実際に演算処理（音声認識処理や機械翻訳処理など）が必要なタイミングで初期化処理を実行し、翻訳方向が変わるまでその初期化データの解放を行わないようにしても良い。
【００９５】
また、携帯電話機１において翻訳制御処理を行う際、ＲＡＭ２１の空きＲＡＭサイズに応じて、初期化されていないモジュールの初期化が可能であれば、初期化を促す情報を表示させてユーザに初期化の指示を促すようにしても良い。例えば、ＲＡＭ２１にあと３ＭＢの空きＲＡＭサイズがあれば、もう一つ分のモジュールの事前初期化が可能な場合には、ユーザにその旨を表示しても良い。
【００９６】
具体的には、例えば実質空きＲＡＭサイズＭ＿ｍａｘに３ＭＢ加算した値を算出し、この値に基づいて、図８のフローチャートに示す方法で事前初期化パターン（パターン１〜８）を判定した結果が、３ＭＢ加算しない場合（Ｍ＿ｍａｘに基づいて事前初期化パターンを判定する場合）と同じであるか否かを判定する。例えば、Ｍ＿ｍａｘに３ＭＢ加算した値に基づいて判定した事前初期化パターンがパターン３であり、Ｍ＿ｍａｘに基づいて判定した事前初期化パターンもパターン３である場合には、３ＭＢの加算の有無に関わらず事前に初期化できるモジュールは変わらない。それに対して、例えば、Ｍ＿ｍａｘに３ＭＢ加算した値に基づいて判定した事前初期化パターンがパターン２であり、Ｍ＿ｍａｘに基づいて判定した事前初期化パターンもパターン３である場合には、空きＲＡＭサイズがあと３ＭＢ確保できると事前初期化できるモジュールが増え、処理時間が削減される。Ｍ＿ｍａｘに３ＭＢ加算した値に基づいて判定した事前初期化パターン（パターン２）の追加処理時間からＭ＿ｍａｘに基づいて判定した事前初期化パターン(パターン３)の追加処理時間を減算し得られた値を、あと３ＭＢ確保することによって短縮できる処理時間であるとし、『空きＲＡＭサイズをあと３ＭＢ確保すれば音声翻訳動作時間を２秒早く実行することができます。』などの表示を行う。
【００９７】
以上の例では、実質空きＲＡＭサイズに加算する値を３ＭＢとして説明したが、３ＭＢに限らず任意の値で良い。例えば、予め指定された値でも良いし、ユーザによって指定された値でも良い。また、１種類の値で判断するのではなく、複数段階の値（３ＭＢ、５ＭＢ、１０ＭＢなど）を用いて事前初期化パターンを判定し、判定結果を表示しても良い。さらに、実質空きＲＡＭサイズに加算する値を０ＭＢから徐々に（例えば１ＭＢずつ）増やして事前初期化パターンを判定し、実質空きＲＡＭサイズＭ＿ｍａｘに基づいて判定される事前初期化パターンよりも事前に初期化されるモジュールが多い全てのパターンについて、実質空きＲＡＭサイズに加算する最小値を求めても良い。
【００９８】
例えば、実質空きＲＡＭサイズＭ＿ｍａｘで判定した事前初期化パターンがパターン３であるときに、パターン３よりも事前初期化されるモジュールの多いパターン２とパターン１を選択するために実質空きＲＡＭサイズＭ＿ｍａｘに少なくとも何ＭＢが必要であるかを判定し、パターン１の事前初期化を行うために必要な追加の空きＲＡＭサイズとパターン２の事前初期化を行うために必要な追加の空きＲＡＭサイズとを表示する。
【００９９】
またこのとき、実行中のアプリケーションプログラム（タスク）のいずれかを終了させることによりＲＡＭ２１の空きＲＡＭサイズを３ＭＢ以上確保できるかをユーザに表示しても良い。あるいは、実行中のアプリケーションプログラム（タスク）を強制終了させて、ＲＡＭ１の空きＲＡＭサイズを確保するようにしても良い。これらは、ユーザが事前に動作モードを設定できるようにしても良い。
【０１００】
本発明に係る情報処理装置（携帯電話機１）によると、スタンドアロンでの音声翻訳機能を備えているとともに、使用可能なＲＡＭ２１のＲＡＭサイズに制約がある場合においても、各々のモジュールの初期化タイミングを制御することで、音声翻訳処理時間を最小限に抑えることが可能となる。
【０１０１】
本発明の説明として、携帯電話機１について説明したが、これに限らず、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、携帯ゲーム機、携帯音楽録再機など、翻訳機能を備えている情報処理装置であれば、任意の情報処理装置であっても良い。また、本発明は全ての低スペック機器に適用できるものであって、携帯端末に限定されず、組み込み機器一般や、テレビやパソコンの電気機器一般にも適用できる。
【符号の説明】
【０１０２】
１…携帯電話機，１０…上筐体，１１…下筐体，１２…表示装置，１２ａ…画面，１２ｂ…翻訳前言語表示欄，１２ｃ…翻訳後言語表示欄，１２ｄ…認識開始／終了ボタン，１２ｅ…出力開始ボタン，１３…スピーカ，１４…マイクロフォン、１５…入力装置，２０…ＣＰＵ，２１…ＲＡＭ，２２…ＲＯＭ，２３…通信装置，２３ａ…アンテナ，３０…言語Ａ音声認識部（ＡＳＲ＿Ａ），３１…Ａ−Ｂ機械翻訳部（ＭＴ＿ＡＢ），３２…言語Ｂ音声合成部（ＴＴＳ＿Ｂ），３３…言語Ｂ音声認識部（ＡＳＲ＿Ｂ），３４…Ｂ−Ａ機械翻訳部（ＭＴ＿Ｂ），３５…言語Ａ音声合成部（ＴＴＳ＿Ａ），４０…モジュールリスト情報，４１…初期化時間情報，４２…初期化パターン情報，４３…識別符号と初期化状態との関係を示す対応表，４４…初期化状態情報，４５…履歴情報，４６…初期化パターンの付加情報。
【図１】
2011141819.tif 000003
【図２】
2011141819.tif 000004
【図３】
2011141819.tif 000005
【図４】
2011141819.tif 000006
【図５】
2011141819.tif 000007
【図６】
2011141819.tif 000008
【図７】
2011141819.tif 000009
【図８】
2011141819.tif 000010
【図９】
2011141819.tif 000011
【図１０】
2011141819.tif 000012
【図１１】
2011141819.tif 000013
【図１２】
2011141819.tif 000014