[Julius Web page]
[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[julius-u:00257] Re: マルチスレッド化について質問


ココネ株式会社 関口です

前回伺った質問ですが、2つ目の質問については、juliusホームページのユーザーフォーラムに似たFAQがありました
2つ目の質問は以下です
> 2.プロセスに1つエンジンインスタンスを生成して、各スレッドで共有させる場合の方法

次のような方法でよろしいでしょうか
(1)プロセスで、音響モデルをロードしたエンジンインスタンスを生成する
j_config_load_file_new
recog= j_create_instance_from_jconf()   エンジンインスタンスを生成して音響モデルをロード

(2)各スレッドで言語モデルを切り替えて認識する
単語辞書ファイルをdict_file
文法ファイルをdfa_file
とします
/*言語モデルの切り替え*/
new_winfo = word_info_new();
init_voca(new_winfo, dict_file, recofg->process_list->lm->am->hmminfo, TRUE);
new_dfa = dfa_info_new();
init_dfa(new_dfa, dfa_file);
multigram_delete_all(recog->process_list->lm);
multigram_add(new_dfa, new_winfo, p, recog->process_list->lm);
 schedule_grammar_update(recog);
/*
 -filelistオプションで指定した音声リストファイルを書き換える処理
・
・
*/
/*認識*/
j_adin_init()
j_recog_info()
j_open_stream()
j_recognize_stream()
j_recog_free()

入力ファイルの切り替え方法ですが、音声リストファイル書き換えの他に良い方法がありましたら、教えていただけますよう、お願いします


2010年5月5日15:40 Tomoko Sekiguchi <sekiguchi@xxxxxxxxxxxx>:
> ココネ株式会社 関口と申します
>
> 同時アクセス可能な認識アプリケーションを作る場合のマルチスレッド化について以下2点伺います
>
> スレッド間で音響モデルは同一で、言語モデル(文法モデル)および認識する音声ファイルが異なる場合について伺います
>
> 1.スレッドが個別のエンジンインスタンスを生成する場合
> 各スレッドが以下のAPI関数を呼び出す場合ですが、
> *******************
> j_config_load_file_new   jconfファイルを読み込んでjconfのパラメタを設定
> j_config_load_args 言語モデル,音声ファイルを指定する
> j_create_instance_from_jconf()   エンジンインスタンスを生成する
> j_adin_init()
> j_recog_info()
> j_open_stream()
> j_recognize_stream()
> j_recog_free()
> *******************
> スレッドがそれぞれエンジンインスタンスを生成すると思いますが、スレッドセーフになっているでしょうか
> 何かインスタンス共有の変数を同時に更新する、といったことはあり得ませんでしょうか
>
> 2.プロセスに1つエンジンインスタンスを生成して、各スレッドで共有させる場合
> 音響モデルのロード時間を節約するため、エンジンインスタンスを最初の一回だけ生成するようなしくみにする場合の方法を教えていただけますようお願いします
> プロセスで初期処理として以下のようにjconfに音響モデルをロードします
> *******************
> j_config_load_file_new
> j_create_instance_from_jconf()   エンジンインスタンスを生成して音響モデルをロード
>
> *******************
> 各スレッドに、言語モデル、認識する音声ファイルを設定して、認識を実行させるためのAPI関数の呼び出し方を教えてください
> その処理はクリティカルセクションになるでしょうか
>
> また、juliusは複数モデルを用いた認識が可能で、エンジンインスタンスで複数の認識インスタンスを並列に処理できます
> これを利用して、各スレッドを同時実行することは不可能でしょうか
>
> よろしくお願いいたします
>
>
> --
> ----------------------------------------
> Cocone Corporation
> Sekiguchi Tomoko
> KM Bldg 4F, 5-5-7
> Nishigotanda, Shinagawa-ku, Tokyo, Japan
> Tel +81-3-5719-4774
> Fax +81-3-5719-4784
> ----------------------------------------
>



-- 
----------------------------------------
Cocone Corporation
Sekiguchi Tomoko
KM Bldg 4F, 5-5-7
Nishigotanda, Shinagawa-ku, Tokyo, Japan
Tel +81-3-5719-4774
Fax +81-3-5719-4784
----------------------------------------

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: