2010年5月 5日

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

ココネ株式会社 関口と申します

同時アクセス可能な認識アプリケーションを作る場合のマルチスレッド化について以下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
----------------------------------------


投稿者 xml-rpc : 2010年5月 5日 15:40
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/95574
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。