音声の入力方法

音声情報は、次の方法で与えられます。

音声ファイルからの入力

ファイルから読み込む場合は、次の要件を満たす必要があります。ファイル入力 - 第3章 音声データ入力

  • ファイル形式
    • Microsoft Wave形式 … 16bit、PCM、monoral
    • RAW … 16bit singed short (Big Endian)、monoral
  • ファイルの最大長 … 既定で320,000サンプル (16kHzならば、320,000/16,000で20秒)

このうちファイルの最大長はlibsent/include/sent/speech.hのMAXSPEECHLENで定義されているため、これを修整することで変更できます。もし最大長を超えたファイルを与えると、「hypothesis stack exhausted」として認識に失敗します。1入力あたりの入力長制限 - ファイル形式の仕様と制限

ファイルの先頭4バイトに"RIFF"とないものは、すべてRAW形式として読み込まれます。これにより対応しない形式でもエラーとならず、予期せぬ結果を招くことがあります。adin_file_open() in adin_file.c

また既定では1つのファイルが1つの発話ごとに区切られていることが前提となっているため、そのような音声ファイルを用意する必要があります。この前提にはcutsilenceオプションで音声の区間ごとに切り出して認識させることでも対処でき、このように区切らせることで最大長の制約も回避できます。第5章 音声区間検出・入力棄却

対応フォーマット
項目
チャンネル数 1ch (モノラル)
量子化ビット数 16bit
サンプリングレート 音響モデルと同一の値。既定値は16kHz
基本フォーマット - 第3章 音声データ入力

チャンネル数が1chでなければ、

Error: adin_file: channel num != 1 (2)

のように、サンプリングレートが期待する値でなければ

Error: adin_file: sampling rate != 16000 (44100)

のようにエラーとなります。

-input mfcfile # HTK形式のパラメータファイル (MFCC : Mel-Frequency Cepstral Coefficient)
-input file/rawfile # 音声波形データファイル (フォーマット自動判別)
                    # 形式:WAV (16bit) またはRAW (16bit (signed short), mono, big-endian)
                    # 16kHz以外のファイルは -smpFreq で周波数指定

録音デバイス (マイク) からの入力

マイク入力について

-input mic     # マイクから直接入力
               # デバイス名は環境変数"AUDIODEV"でも指定可能 (OSS)

ネットワークからの入力

-input netaudio -NA host:0     # host上のDatLink (NetAudio) から入力
-input adinnet -adport portnum # adinnetクライアントからの入力
-input stdin                   # 標準入力からの入力