ADINTOOL(1)

NAME
adintool - audio tool to record/split/send/receive speech data for Julius

SYNOPSIS
adintool -in inputdev -out outputdev [options...]

DESCRIPTION
adintool は，音声波形データ中の音声区間の検出および記録を連続的に行うツールです． 入力音声に対して零交差数と振幅レベルに基づく音声区間検出を逐次行い， 音声区間部分を連続出力します．

adintool は adinrec の高機能版です．音声データの入力元として，マイク入力・音声波形ファイル・ 標準入力・ネットワーク入力(adinnet サーバーモード)が選択できます．また， 出力先として，音声波形ファイル・標準出力・ネットワーク出力(adinnet ク ライアントモード)が選択できます．特にネットワーク出力（adinnet クライ アントモード）では， julius へネットワーク経由で音声を送信して音声認識させることができます．

入力音声は音声区間ごとに自動分割され，逐次出力されます． 音声区間の切り出しには adinrec と同じ，一定時間内の零交差数とパワー（振幅レベル）のしきい値を用います． 音声区間開始と同時に音声出力が開始されます．出力としてファイル出力を選 んだ場合は，連番ファイル名で検出された区間ごとに保存します．

サンプリング周波数は任意に設定可能です．形式は 16bit monoral です．書き出されるデータ形式は WAV, 16bit, モノラルです． 既に同じ名前のファイルが存在する場合は上書きします．

INPUT
音声を読み込む入力デバイスは以下のうちどれかを指定します． マイク入力（デフォルト）． 音声波形ファイル．形式は RAW (16bit big endian)，WAV(無圧縮)など （コンパイル時の設定による）．
なお，入力ファイル名は起動後に，プロンプトに対して入力する． adinnet サーバーとなってネットワーク経由で adinnet クライアントから音声データを受け取る． adinnet クライアントからのTCP/IP接続を待ち， 接続が確立した後は adinnet クライアントから音声データを受け取る．
ポート番号のデフォルトは 5530 である．これはオプション "-port" で変更可能． (サポートされていれば）音声データをNetaudio/DatLinkサーバーから受け取 る．サーバのホスト名とユニット名を "-NA host:unit" で指定する必要があ る． 標準入力．音声データ形式は RAW, WAV のみ．

OUTPUT
検出した音声区間の音声データを書き出す出力デバイスとして，以下のうちど れかを指定します． ファイルへ出力する．出力ファイル名は別のオプション"-filename foobar" の形で与える．実際には "foobar.0000" , "foobar.0001" ... のように区間ごとに，指 定した名前の末尾に4桁のIDをつけた名前で記録されなる． ID は 0 を初期値として，音声区間検出ごとに１増加する．初期値はオプション "-startid" で変更可能である．また，出力ファイル形式は 16bit WAV 形式である． RAW 形式で出力するには "-raw" オプションを指定する． adinnet クライアントとなって，ネットワーク経由で adinnet サーバへ音声 データを送る．入力の時とは逆に， adintool は adinnet クライアントとなり，adinnet サーバーへ接続後，音声データを 送信する．adinnet サーバーとしては， adintool および Julius のadinnet入力が挙げられる．
"-server" で送信先のadinnetサーバのホスト名を指定する．また ポート番号のデフォルトは 5530 である．これはオプション "-port" で変更可能． 標準出力へ出力する．形式は RAW, 16bit signed (big endian) である．

OPTIONS
"-out adinnet" で送信するサーバのホスト名を指定する．コンマ区切りで 複数のサーバを指定可能． "-out adinnet" で送信するサーバのポート番号．複数サーバ使用時は コンマ区切りで "-server"に対応させて全ての番号を指定すること． (default: 5530) 入力音声に対して音声区間の検出を行わず，そのまま出力へリダイレクトする． ファイル出力の場合，ファイル名の末尾に4桁のIDは付与されなくなる． 入力開始後，一番最初の１音声区間のみを送信後，終了する． サンプリング周波数．単位は Hz (default: 16000) 48kHzサンプリング後，16kHzにダウンサンプリングする． 波形の振幅レベルのしきい値 (0 - 32767)．(default: 2000)． １秒あたりの零交差数のしきい値 (default: 60) 音声区間開始部の直前のマージン．単位はミリ秒 (default: 400) 音声区間終了部の直後のマージン．単位はミリ秒 (default: 400) 無効な 0 サンプルの自動除去を行わないようにする． デフォルトは自動除去を行う． DC成分除去を行う． ファイル出力形式を RAW, 16bit signed (big endian) にする． デフォルトは WAV 形式である． 入力終了ごとに自動的に pause 状態に入る． 複数サーバ接続時，複数サーバからの pause や resume コマンドに対して 厳密な同期を行わないようにする． 通常，adintool は pause 中の入力を無視する．このため，pause中に入力が開始 され，その入力が終了する前にサーバコマンドにより resume したときに 極端に短い音声フラグメントが検出されることとなる．このオプションを 指定することで，resume時に音声入力中の場合，入力を resume 時点から 指定した長さだけ遡って送信する．

EXAMPLE
マイクからの音声入力を，発話ごとに "data.0000.wav" から順に記録する：

    % adintool -in mic -out file -filename data

巨大な収録音声ファイル "foobar.raw"を音声区間ごとに "foobar.1500.wav" "foobar.1501.wav" ... に分割する：

    % 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-info at lists.sourceforge.jp までお願いします．

COPYRIGHT
Copyright (c) 1991-2006 京都大学 河原研究室
Copyright (c) 2000-2005 奈良先端科学技術大学院大学 鹿野研究室
Copyright (c) 2005-2006 名古屋工業大学 Julius開発チーム

AUTHORS
李 晃伸 (名古屋工業大学) が実装しました．

LICENSE
Julius の使用許諾に準じます．