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