## チュートリアル 〜起動から認識実行まで〜

Unix版 Julius の基本的な使い方について説明します．モデルの準備、システムの起動、そして実際に認識を行ってみるまでの流れを説明します。

1. 準備するもの
2. 音声ファイルの認識
3. マイク入力の認識

### 1. 準備するもの

Julius はそれ単体では動作しません。言語モデルと音響モデルを与えることで、認識システムとして音声認識を行うことができるようになります。

最低限必要なのは，以下の3種類のファイルです．

音響HMM定義ファイル | HTKのHMM定義ファイル形式
単語辞書ファイル | HTKの辞書形式とほぼ同じ
単語N-gramファイル | 2-gram＋逆向き3-gram (ARPA標準形式)、 またはバイナリN-gram形式(独自形式)

音響HMMとして音素環境依存モデル(triphone, PTMなど)を用いる場合、さらに以下のファイルが必要です。

HMMListファイル | 独自形式

各ファイルの詳細については 「ファイル仕様と制限」を参照してください．

基本的な音響モデル・言語モデルがこれまでに配布されています：

- 連続音声認識コンソーシアム配布CD-ROM
- IPA「日本語ディクテーション基本ソフトウェア」配布CD-ROM
- オーム社教科書「音声認識システム」[6] 付属CD-ROM

以下では、これらの CD-ROM を使用することを想定して説明を進めます。

### 設定ファイル(jconfファイル)の準備

モデルファイルの指定や認識のパラメータ、入力ソースの選択などの設定は、すべて「jconf ファイル」と呼ばれるファイルに記述します．サンプルのjconfファイルがソースアーカイブ内に "Sample-j.jconf" としてありますので，これを適当な場所にコピーして，自分の環境に合わせて編集します。

前節で述べた Julius のCD-ROMをお持ちの方は、各CD-ROMに含まれている音響モデル・言語モデルを使うよう設定されたjconfファイルがCD-ROMに含まれていますので、それを使って下さい。

### 2. 音声ファイルの認識

最初に録音済みの音声波形ファイルの認識について説明します。

音声ファイルの形式は、16bit の .WAV ファイル(無圧縮)あるいは RAW ファイル(big endian) です。サンプリング周波数は音響モデルの分析条件に依存しますが，通常は 16kHz です．

Juliusの起動はコマンドラインから行います．"-C" オプションで jconf ファイルを指定します．

    % julius -C jconfファイル名

jconf内の各設定は、ここでコマンドラインオプションとして与えることもできます。特に"-C jconfファイル名" の後ろで指定することで，jconfファイル内の設定を上書きできます．たとえば，ここでは音声ファイル入力を行うので、以下のように指定することで jconf 内の指定によらず音声ファイル入力を指定することができます。

    % julius -C jconfファイル名 -input rawfile

起動が終了すると，以下のようなプロンプトが出てキー入力待ち状態になります。

    enter filename->

ファイル名を与えると、Juliusはその入力に対して音声認識を行います．

認識処理全体は2パスで行われます。まず入力全体に対して2-gramを用いたフレーム同期の認識を行います．以下は第１パスの出力例です．

    input speechfile: sample/EF043002.hs
    58000 samples (3.62 sec.)
    ### speech analysis (waveform -> MFCC)
    length: 361 frames (3.61 sec.)
    attach MFCC_E_D_Z->MFCC_E_N_D_Z
    ### Recognition: 1st pass (LR beam with 2-gram)
    .......
    pass1_best:  師匠 の 指導 力 が 問わ れる ところ だ 。
    pass1_best_wordseq: <s> 師匠+シショー+2 の+ノ+67 指導+シドー+17 力+
    リョク+28 が+ガ+58 問わ+トワ+問う+44/21/3 れる+レル+46/6/2 ところ+ト
    コロ+22 だ+ダ+70/48/2 。+。+74 </s>
    pass1_best_phonemeseq: silB | sh i sh o: | n o | sh i d o: | ry o k
    u | g a | t o w a | r e r u | t o k o r o | d a | sp | silE
    pass1_best_score: -8944.117188

pass1_best: が第１パスのベスト仮説の文字列(中間結果)です．
pass1_best_wordseq: は同じくN-gram表記の文字列，
pass1_best_phonemeseq: は同じく音素表記列（"|" は単語区切り）
pass1_best_score: は仮説のスコア（対数尤度）です．

第1パス終了後、第2パスが実行されて最終的な認識結果がでます。 第2パスでは第1パスで得られた中間結果を元に，3-gramを用いて単語単位の スタックデコーディングを行います．

    ### Recognition: 2nd pass (RL heuristic best-first with 3-gram)
    samplenum=361
    sentence1:  首相 の 指導 力 が 問わ れる ところ だ 。
    wseq1: <s> 首相+シュショー+2 の+ノ+67 指導+シドー+17 力+リョク+28 が
    +ガ+58 問わ+トワ+問う+44/21/3 れる+レル+46/6/2 ところ+トコロ+22 だ+
    ダ+70/48/2 。+。+74 </s>
    phseq1: silB | sh u sh o: | n o | sh i d o: | ry o k u | g a | t o w
    a | r e r u | t o k o r o | d a | sp | silE
    score1: -8948.578125
    478 generated, 478 pushed, 16 nodes popped in 361

sentence1: が最終的な認識結果となります． 認識終了後はファイル名入力プロンプトへ戻ります．

結果の出力を変更できます。起動時に "-progout" をつけると第１パスの途中結果を漸次的に出力します。また "-quiet" で以下のようにシンプルな出力にできます。

    58000 samples (3.62 sec.)
    pass1_best:  師匠 の 指導 力 が 問わ れる ところ だ 。
    sentence1:  首相 の 指導 力 が 問わ れる ところ だ 。

以上でファイルの認識は終わりです．

### 3. マイク入力の認識

マイク入力を直接認識することができます。マイク入力を行うにはオプション "-input mic" を指定します。

起動後、以下のようなプロンプトが出て入力開始待ちになります。

    <<< please speak >>>

マイクに向かって発声を開始すると、同時に第1パスの認識処理が開始されます． 発声を止めると，そこで第1パスを打ち切って第2パスを実行し、最終的な認識結果を出力してまた上記プロンプトへもどります．

起動して最初の１入力は正しく認識できませんので注意してください。また周囲の雑音を検出して認識が始まってしまう場合や，逆に喋っても認識が始まらない場合は， マイクの録音レベルを調節してください．

動作条件などマイク入力に関する詳細は「マイク入力について」をご覧下さい．

$Id: tutorial.html,v 1.5 2002/09/11 21:00:39 ri Exp $