NAME
adintool - multi-purpose tool to record/split/send/receive
speech data
SYNOPSIS
adintool -in inputdev -out outputdev [options...]
DESCRIPTION
adintool は,音声波形データ中の音声区間の検出および記録 を
連続的に行うツールです.入力音声に対して零交差数と振幅レベ
ルに基づく音声区間検出を逐次行い,音声区間部分を連続出力し
ます.
adintool は adinrec の高機能版です.音声データの入力元とし
て,マイク入力・音声波形ファイル・標準入力・ネットワーク入
力(adinnet サーバーモード)が選択できます.また,出力先とし
て,音声波形ファイル・標準出力・ネットワーク 出 力(adinnet
ク ラ イ アントモード)が選択できます.特にネットワーク出力
(adinnet クライアントモード)では, julius へネットワーク
経由で音声を送信して音声認識させることができます.
入力音声は音声区間ごとに自動分割され,逐次出力されます.音
声区間の切り出しには adinrec と同じ,一定時間内の零交差 数
とパワー(振幅レベル)のしきい値を用います.音声区間開始と
同時に音声出力が開始されます.出力としてファイル出力を選ん
だ場合は,連番ファイル名で検出された区間ごとに保存します.
サンプリング周波数は任意に設定可能です.形式は 16bit mono-
ral です.書き出されるデータ形式は RAW, 16bit, big endian
です.既に同じ名前のファイルが存在する場合は上書きします.
INPUT
音声を読み込む入力デバイスは以下のうちどれかを指定します.
-in mic
マイク入力(デフォルト).
-in file
音声波形ファイル.形式は RAW (16bit big endian)
,WAV(無圧縮)など(コンパイル時の設定による).
な お,入力ファイル名は起動後に,プロンプトに対して
入力する.
-in adinnet
adinnet サーバーとなってネットワーク経由で adinnet
クライアントから音声データを受け取る. adinnet クラ
イアントからのTCP/IP接続を待ち,接続が確立した後 は
adinnet クライアントから音声データを受け取る.
ポ ート番号のデフォルトは 5530 である.これはオプシ
ョン "-port" で変更可能.
-in stdin
標準入力.音声データ形式は RAW, WAV のみ.
OUTPUT
検出した音声区間の音声データを書き出す出力デバイスとして,
以下のうちどれかを指定します.
-out file
フ ァ イ ルへ出力する.出力ファイル名は別のオプショ
ン"-filename foobar" の形で与える.実際に は "foo-
bar.0000" , "foobar.0001" ... のように区間ごとに,
指定した名前の末尾に4桁のIDをつけた名前で記録されな
る. ID は 0 を初期値として,音声区間検出ごとに1増
加する.初期値はオプション "-startid" で変更可能 で
あ る . また,出力ファイル形式は RAW, 16bit signed
(big endian) である.
-out adinnet
adinnet クライアントとなって,ネットワーク 経 由 で
adinnet サーバへ音声データを送る.入力の時とは逆に
, adintool は adinnet クライアントとなり ,adinnet
サ ーバーへ接続後,音声データを送信する.adinnet サ
ーバーとしては, adintool および Julius のadinnet入
力が挙げられる.
"-server" で送信先のadinnetサーバのホスト名を指定す
る.またポート番号のデフォルトは 5530 である.こ れ
はオプション "-port" で変更可能.
-out stdout
標 準 出力へ出力する.形式は RAW, 16bit signed (big
endian) である.
OPTIONS
-nosegment
入力音声に対して音声区間の検出を行わず,そのまま 出
力 へリダイレクトする.ファイル出力の場合,ファイル
名の末尾に4桁のIDは付与されなくなる.
-oneshot
入力開始後,一番最初の1音声区間のみを送信後,終 了
する.
-freq threshold
サンプリング周波数.単位は Hz (default: 16000)
-lv threslevel
波 形 の振幅レベルのしきい値 (0 - 32767).(default:
3000).
-zc zerocrossnum
1秒あたりの零交差数のしきい値 (default: 60)
-headmargin msec
音声区間開始部の直前のマージン . 単 位 は ミ リ 秒
(default: 400)
-tailmargin msec
音 声 区 間 終 了 部 の直後のマージン.単位はミリ秒
(default: 400)
-nostrip
無効な 0 サンプルの自動除去を行わないようにする.デ
フォルトは自動除去を行う.
EXAMPLE
マ イクからの音声入力を,発話ごとに "data.0000" から順に記
録する:
% adintool -in mic -out file -filename data
巨大な収録音声ファイル "foobar.raw"を音声区間ごとに "foo-
bar.1500" "foobar.1501" ... に分割する:
% adintool -in file -out file -filename foobar
-startid 1500
(起動後プロンプトに対してファイル名を入力)
enter filename->foobar.raw
ネットワーク経由で音声ファイルを転送する(区間検出なし):
[受信側]
% adintool -in adinnet -out file -nosegment
[送信側]
% adintool -in file -out adinnet -server hostname
-nosegment
マイクからの入力音声を別サーバーの Julius に送る:
(1) 入力データを全て送信し,Julius側で区間検出・認識:
[Julius]
% julius -C xxx.jconf ... -input adinnet
[adintool]
% adintool -in mic -out adinnet -server hostname
-nosegment
(2) 入力データはクライアント(adintool)側で区間検出し,検出
した区間だけを順に Julius へ送信・認識:
[Julius]
% julius -C xxx.jconf ... -input adinnet
[adintool]
% adintool -in mic -out adinnet -server hostname
SEE ALSO
julius(1), adinrec(1)
BUGS
バグ報告・問い合わせ・コメントな ど は julius@kuis.kyoto-
u.ac.jp までお願いします.
AUTHORS
李 晃伸 (奈良先端大) が実装しました.
LICENSE
Julius の使用許諾に準じます.
Last modified: 2002/09/11 21:01:05