入力ファイルと出力ファイルが同名の場合は入力ファイルを *.bkp にリネームしてから実行します(WIN32 のみ)。
ファイルサイズ、再生時間、音量値などの情報を表示します。 出力ファイルを指定する必要ありません。
(例) waveflt -info input.wav
設定を設定ファイルから読み込みます。file に設定ファイルを指定して下さい。 例えば c:\tmp\setting.txt に
# setting.txt # 先頭に「#}を付けるとその行はコメントになります # フェードイン -fout 3.0 # 適応フィルタ -adp -adptrain # バンドパスフィルタ -bpf 100 16000 # 終わり
と書いて保存し
waveflt -f c:\tmp\setting.txt d:\tmp\input.wav d:\tmp\out.wav
の様に使用します。
また設定ファイルは複数指定が出来ます。例えば
waveflt -f set.txt -silent -f set2.txt -pipeout "foo.exe" d:\input.wav stdout
の様に使用できます。バッチファイルで複数のファイルを処理する時などに 共通の設定は設定ファイルに保存しておくと便利です。
変換時の経過を表示しません。標準出力モード(stdout)時に使用すると便利です。
バッファのサイズ(k byte)を設定します。n = 4,8,16,32,128,256,512,1024 でデフォルトは 256 です。
飽和チェックを行いません。飽和処理とは演算結果のデータの値が 16 bit(又は 8bit)で表現できる範囲を越えた時にオーバーした分をカットして 16 bit 以内 に値が収まる様にする処理のことで、その際にクリッピングノイズが生じます。 このチェックを外すと計算が多少速くなりますが通常は外さないで下さい。
またこのスイッチが無い場合(つまり飽和 チェックを行う場合)に飽和が生じた時、編集中、及び終了後に適切な-vol の量を表示し ますので、-vol を指定して再びフィルタにかけて下さい。
指定したバイトだけ入力ファイルの先頭のデータを飛ばし、Wave フォーマットを指定します。 byte が飛ばすサイズ、Hz が周波数(11025,22050,44100 等)、chn がチャンネル(1,2)、 bit が bit 深度(8,16) です。また仮のデータサイズとして約 2 G が指定されます。
(例)
-headofs 44 44100 2 16 → 44 byte 飛ばす。44100 Hz,stereo,16 bit
-headofs 0 22050 1 16 → ヘッダなし。22050 Hz,mono,16 bit
-headofs 200 11025 1 8 → 200 byte 飛ばす。11025 Hz,mono,8 bit
入力 Wave ファイルのヘッダに記載されているデータサイズを無視して 入力がある限り処理を続けます。入力ファイルに stdin を指定した場合は 自動的にエンドレスモードになります。
フィルタ処理終了後に入力ファイルを削除します。
ハードディスクの空き容量チェックを省略します。
Win32 用の録音ツール「ロック音・ミレニアム」のウインドウハンドルを 指定します。
音量を n 倍します。範囲は 0.1 <= n <= 100.0 です。
指定した時間でファイルの切り出しを行います。n1 は開始時間、 n2 は 終了時間で、秒、または 時:分:秒 の表記で指定します。例えば
waveflt -cut 1 2.5 input.wav output.wav
又は
waveflt -cut 0:0:1 0:0:2.5 input.wav output.wav
で input.wav の 1 〜 2.5 秒間を切り出して output.wav に保存します。 なお切り出す前に -info オプションで ファイルの再生時間を調べておくと便利かもしれません。
(注意) -cutm,-cuttailオプションと同時には使用できません。 標準入力モードの時はこのオプションは無効です。
指定した時間でファイルの切り出しを行います。-cut との違いは n2 がファイルの後ろから削除する時間を指定することです。n1 は開始時間です。例えば input.wav の再生時間が 5 秒のとき、
waveflt -cuttail 1 1.5 input.wav output.wav
又は
waveflt -cuttail 0:0:1 0:0:1.5 input.wav output.wav
で input.wav の 1 〜 3.5 秒間を切り出して output.wav に保存します。 なお切り出す前に -info オプションで ファイルの再生時間を調べておくと便利かもしれません。
(注意) -cut,-cutm オプションと同時には使用できません。 標準入力モードの時はこのオプションは無効です。
指定した範囲のデータを切り出して連結します。n は切り出すプロックの数、 ni1 ,ni2 は i 番目のブロックの開始時間(秒)、終了時間(秒)です。
(例) -cutm 3 1 1,5 2 3 4.5 10
ファイルの(1 秒,1.5 秒),(2 秒,3 秒),(4.5 秒,10 秒) 区間を切り出して 連結します。
(注意) -cut,-cuttail オプションと同時には使用できません。 標準入力モードの時はこのオプションは無効です。
オフセット(直流成分)ずれの修正をします。n1 は左、n2 は右です。範囲は 16 bit の場合は -32768 〜 32767 、8 bit の場合は -128 〜 128 です。 データのオフセットがずれていて、かつその「ずれ」の量が分かっている時 に使用します。-autoofs が指定されている場合はこのオプションは無効に なります。
オフセットずれを学習して自動修正します。リアルタイムアナログ録音を 行う場合などに使用します。このオプションを指定した場合は -ofs オプ ションは無効になります。
適応フィルタ(-adp)を作動させた場合は、適 応フィルタがずれを修正しますのでこのオプションを指定する必要はあり ません(別に害はありませんが)。
ステレオ形式ファイルの左右の音声をミキシングしてモノラルファイルにします。n は左チャンネル の合成レベルで、範囲は 0 <= n <= 100 です。
2 つのファイルをミキシングして一つのファイルにします。l1,l2 は合成レベルです。
(例) waveflt -mixfile 0.5 0.5 "input.wav" input2.wav out.wav
ファイルの最初の部分をフェードイン処理します。n はフェードインの時間(秒)で 範囲は 0.1 <= n <= 10.0 です。標準入力モードの時はこのオプションは無効 です。
ファイルの最後の部分をフェードアウト処理します。n はフェードアウトの時 間(秒)で範囲は 0.1 <= n <= 10.0 です。標準入力モードの時はこのオプションは 無効です。
適応フィルタを作動させて周期性ノイズを削除します。適応アルゴリズムと して LMS アルゴリズムを使用しています。
適応アルゴリズムとは入力信号と遅延させた信号を比較して周期性をもつノ イズを除去するフィルタを学習により自動作成するアルゴリズムで、これに よって周期性ノイズを取り除くことが可能になります。また、オフセットず れの修正をする性質もあります。なお、適応フィルタを使用すると音にエコ ーがかかったように聞こえます。
適応フィルタのフィルタ係数の初期学習を行います。適応フィルタは上で書 いた様に入力信号と遅延させた信号を比較して作成されますので最初の何秒 かは「学習モード」としてノイズの除去機能が働きません。そこで再生時間 にして約 30 秒間程度フィルタ係数の学習を行いそれから実際の変換を行い ます。これによってファイルの先頭部分のノイズも取り除かれます。標準入 力モードの時はこのオプションは無効です。
適応フィルタの遅延の設定をします。ファイルにあわせて最適になるように 設定して下さい。範囲は 1 <= n <= 10000 でデフォルトは 2048 です。
適応フィルタのフィルタ長を指定します。範囲は 3 <= n <= 1023 でかつ奇数 にして下さい。デフォルト値は 127 です。n が大きくなるにつれて性能が良 くなりますが計算量が増えて遅くなります。ファイルにあわせて最適になるよ うに設定して下さい。
適応フィルタのインパルス応答と周波数特性をカレントフォルダにテキスト 出力します。ファイル名はそれぞれ "adpimpulse-l.txt","adpchara-l.txt" (左チャンネル),"adpimpulse-l.txt","adpchara-r.txt"(右チャンネル)です。
ローパスフィルタなどの各 FIR フィルタを作動させます。窓関数は keiser 窓 を使用しています。IIR フィルタと同時には使用できません。
フィルタの種類はナイキスト周波数と遮断周波数によって自動的に切り替わりま す。例えばサンプリングレートが 22050 hz のデータに対し -bpf 5000 20000 を指定するとナイキスト周波数は 11025 hz なので -hpf 5000 に切り替わり ます。同様に -bsf 5000 20000 を指定すると -lpf 5000 となります。なお -lpf 20000 とするとフィルタは作動せず、-hpf 20000 とするとエラーメッセー ジが返ります。
FIR フィルタのフィルタ長を指定します。範囲は 3 <= n <= 1023 でかつ奇数 にして下さい。デフォルト値は 63 です。n が大きくなるにつれて遮断性能が 良くなりますが計算量が増えて遅くなります。
FIR フィルタの阻止域での減衰量を指定します。デフォルトは 150 です。 -150 の様な負の値ではなくて正の値で指定して下さい。
FIR フィルタのインパルス応答と周波数特性をカレントフォルダにテキスト出 力します。ファイル名はそれでれ "firimpulse.txt","firchara.txt" です。
IIR 型のフィルタを作動させます。FIR フィルタと同時には使用できません。 バタワース特性 2 次 IIR フィルタを使用し、減衰速度は -6*2 dB/oct です。
IIR フィルタのインパルス応答と周波数特性をカレントフォルダにテキスト出 力します。ファイル名はそれでれ "iirimpulse.txt","iirchara.txt" です。
50/15μs のディエンファシスをかけます。
特性関数が
H(s) = (1+15/50*s)/(1+s)
で表される 1 次 IIR フィルタを使用します。フィルタ特性は
0〜50μs : 通過
〜15μs : -6db/oct のはやさで減衰
15μs〜 : -10 db でフラット
となります。
(注) この特性関数は WTC 氏製作の wavedemp.exe で用いられているものを参考にいたしました。
リサンプリングをします。現在のところ 48000 hz-> 44100 hz の変換のみに対応しております。 アップサンプリングをしたあとにローパスフィルタ(12287*2+1 タップ FIR 型、遮断周波数 21200 Hz, 減衰量 -100 db、カイザー窓)に通してダウンサンプリングを行っています。
(注) LPF の特性は WTC 氏製作の wavefs44.exe で使用されているものを 参考にいたしました。
このオプションはまだ実験中です。 このオプションの仕様は廃止も含めて将来的に大幅に変更される可能性があります。
MDCT を用いて高周波ノイズを減少させます。 0.0 <= l <= 1.0 は周波数領域での適用レベル、a >= 0 はしきい値です。
(例) waveflt -mdct 0.1 1000 -mdctln 4096 input.wav out.wav
MDCT フィルタ長を指定します。 n = 64, 128, 256, 512, 1024, 2048, 4096, 8192 で、 デフォルト値は 2048 です。
メジアンフィルタを作動させます。
メジアンフィルタのフィルタ長を指定します。範囲は 3 <= n <= 1023 で デフォルト値は 5 です。
入力と出力の位相を逆転します。
イコライザを作動して周波数帯域ごとの周波数特性のレベル(db)を調整します。 FIR 型のフィルタを使用して実現しています。
n は帯域分割数(1 〜 18)で、l1,l2,..(-12 〜 12)は各帯域ごとの減衰(増幅)量(db) です。
例えば 44100 hz のレートのデータに対して
-eq 5 6 0 -6 -12 12
とすると
0 〜 4410 hz の帯域は +6db 〜 8820 hz の帯域はそのまま 〜 13230 hz の帯域は -6db 〜 17640 hz の帯域は -12db 〜 22050 hz の帯域は +12dbという意味になります。
イコライザの帯域分割を対数軸で行い、 低音部の設定を細かく行うようにします。 このオプションを指定しない場合はリニア軸で分割します。
イコライザのフィルタ長を指定します。範囲は 3 <= n <= 1023 でかつ奇数 にして下さい。デフォルト値は 127 です。n が大きくなるにつれて遮断性能が 良くなりますが計算量が増えて遅くなります。
イコライザのインパルス応答と周波数特性をカレントフォルダにテキスト出 力します。ファイル名はそれでれ "eqimpulse.txt","eqchara.txt" です。
全体のピーク値を検索して音量を正規化します。n は正規化レベルで、ピー クを最大振幅の n 倍に合わせます。n の範囲は 0.1 <= n <= 1.0 です。 標準入力モード時はこのオプションは無効です。
全体のピーク値を検索して音量を正規化します。db は正規化レベル(デシベル)で、 db の範囲は -96.0 <= db <= 0.0 です。 標準入力モード時はこのオプションは無効です。
全体の音量の平均値が指定した平均値になるように音量を正規化します。 avg は 平均レベル(デシベル)で、範囲は -96.0 <= avg <= 0.0 です。 このオプションを指定した場合は上限が -0.1 db、先読み時間が 100 ms の先読み型リミッタを作動します。 標準入力モード時はこのオプションは無効です。
全体の音量の RMS値が指定した RMS 値になるように音量を正規化します。 rms(デシベル)の範囲は -96.0 <= rms <= 0.0 です。 このオプションを指定した場合は上限が -0.1 db、先読み時間が 100 ms の先読み型リミッタを作動します。 標準入力モード時はこのオプションは無効です。
全体の音量の平均値が指定した平均値になるように音量を正規化します。 avg は 平均レベル(デシベル)で、範囲は -96.0 <= avg <= 0.0 です。
またこのオプションではリミッタの指定も出来ます。 上限が max db、先読み時間が length ms の先読み型リミッタを作動します。 範囲は -96.0 <= max <= 0.0 、 10 <= length <= 2000 です。
標準入力モード時はこのオプションは無効です。
(例) -normal_avg_limit -16.0 -0.5 200
全体の音量の RMS値が指定した RMS 値になるように音量を正規化します。 rms(デシベル)の範囲は -96.0 <= rms <= 0.0 です。
またこのオプションではリミッタの指定も出来ます。 上限が max db、先読み時間が length ms の先読み型リミッタを作動します。 範囲は -96.0 <= max <= 0.0 、 10 <= length <= 2000 です。
標準入力モード時はこのオプションは無効です。
(例) -normal_rms_limit -14.0 -0.5 200
リニアスケールのコンプレッサ(あるいはリミッタ、エクスパンダ)を作動させてダイナミックレンジの 圧縮や拡大を行います。
x は減衰を開始する(正規化した)入力レベル(しきい値)、 yはしきい値 x における出力、m は入力が 1 の時の出力値で、
0 < x < 1 , 0 =< y <= m <= 1
の範囲でなければなりません。
使用方法ですが例えばリアルタイムアナログ録音時に、クリッピング対策の ために入力音声のレベルは低めにして
-dyn 0.5 0.8 0.9
の様にしてダイナミックレンジを拡大すると音量の低い部分を強調してクリッピングを 防ぎつつ録音することが出来ます。
同様にピークの外れ値のために正しくノーマライズできないデータに対しても
-dyn 0.5 0.8 0.9
でピークの外れ値の影響を取り除いてノーマライズする事が出来ます。
なお上の数値はあくまで一例ですので、使用する場合は -dynout で出力される 特性を適当なグラフツールで見たり、実際に音を聞きながら数値を調整してください。
コンプレッサのダイナミクス特性をカレントフォルダにテキスト出力します。ファ イル名は"dynchara.txt" です。横軸が入力レベル、縦軸が出力レベルです。
-nosound、-split2 など、処理中に出力先を切り替える場合の出力ファイル名を設定します。 "file" は設定ファイルです。
例えば outfile.txt に
c:\AAA\a.wav
c:\BBB\b.wav
c:\CCC\c.wav
と設定し、
waveflt -outfile "outfile.txt" -split 100 input.wav output.wav
を実行すると c:\AAA\a.wav, c:\BBB\b.wav, c:\CCC\c.wav と順次 ファイルを出力していきます。これ以降は output-003.wav, output-004.wav , ... にデータを出力していきます。
データの先頭の無音部をカットします。n は無音レベルで 1 <= n <= 1024 の 範囲で指定してください。 またオフセットずれがひどく てうまくいかない場合は -autoofs オブションを併用すると良い でしょう。-autoofs オプションを付けてもでもうまくいかない場合は -ofs オブションでオフセットずれを手動で修正してください。
データ中に無音部分を検知すると現在のファイルをクローズして新しいファイルに保存先を切り替えて データを分割します。出力するファイルの名前は指定した出力ファイル名の後ろに分割番号が付いた名前と なります。
t は無音時間(秒)で、0.1 <= t <= 10.0 の間で指定してください。 n で指定したレベルよりも小さい音が t 秒続いたらファイルを切り替えます。
n は無音判定レベルで、1 <= n <= 1024 の範囲で指定してください。 n の大きさは通常は 128 〜 256 程度で良いと思いますが、 雑音がひどい場合などは大きめの値を指定してください。
また直流オフセットずれがひどく てうまくいかない場合は -autoofs オブションを併用すると良い でしょう。-autoofs オプションを付けてもでもうまくいかない場合は -ofs オブションでオフセットずれを手動で修正してください。
その他、無音部検知分割機能について詳しいことは、下の -nosound_detail オプションの 説明を参照して下さい。
(例) waveflt -nosound 0.5 128 input.wav output.wav
データ中に無音部分を検知すると現在のファイルをクローズして新しいファイルに保存先を切り替えて データを分割します。-nosound t n は -nosound_detail 1 t n n と同じ意味になります。
t は無音時間(秒)で、指定した時間の間 n2 で指定した有音終了判定レベルよりも小さい 音が続いた場合、無音部と判定してファイルを切り替えます。 t は 0.1 <= t <= 10.0 の間で指定してください。
n1 、n2 はそれぞれ有音開始判定レベル、有音終了判定レベルで 1 から 1024 までの範囲で指定してください。例えば元データが
…02…25…52…20…
で与えられているとき、
(1) -nosound_detail 2 0.1 1 1 の場合(n1 = 1, n2 = 1)
有音開始、有音終了判定レベルがどちらも 1 なので 5…5 前後の 2…2 の部分も有音と判定されて、
2…25…52…20…0 ← 後ろに 0.1 秒分の 0 がくっ付く
(2) -nosound_detail 2 0.1 3 1 の場合(n1 = 3, n2 = 1)
有音開始レベルが 3 なので前の 2…2 の部分が無音と判定されて、
5…52…20…0 ← 後ろに 0.1 秒分の 0 がくっ付く
(3) -nosound_detail 2 0.1 1 3 の場合(n1 = 1, n2 = 3)
有音終了レベルが 3 なので後の 2…2 の部分が無音と判定されて、
2…25…52…2 ← 後ろに 0.1 秒分の 2 がくっ付く
(4) -nosound_detail 2 0.1 3 3 の場合(n1 = 3, n2 = 3)
有音開始、有音終了判定レベルがどちらも 1 なので前後の 2…2 の部分が無音と判定されて、
5…52…2 ← 後ろに 0.1 秒分の 2 がくっ付く
と分割されます。n1,n2 の大きさは通常は 1 〜 256 程度で良いと思いますが、 雑音の状況によって変更してください。
m = 0,1,2 は分割モードの指定です。各モードの動作は
モード 0: n2 より小さい音が t 秒続いたら強制的に分割。
モード 1: n2 より小さい音が t 秒続いたら分割、 n1 以上の部分(有音部)が現れるまでは再分割しない。
モード 2: n2 より小さい音が t 秒続いたら分割、 n1 以上の部分(有音部)が現れるまでその前の部分(無音部)はカット。
です。例えば元データが
0…02…20…03…30…
で -nosound_detail m 0.1 1 1 を指定した場合、
(m = 0 での動作) 0…0 ; ←0.1 秒分の 0 のみの細切れファイル 0…0 0…02…20…0 ← 前に半端分の 0、後に 0.1 秒分の 0 がくっ付く 0…0 : ←0.1 秒分の 0 のみの細切れファイル 0…0 0…03…30… ← 前に半端分の 0、後に 0.1 秒分の 0 がくっ付く 0…0 : と分割 (モード 0 では n1 は使用しない) (m = 1 での動作) 0…02…20…0 ← 後ろに 0.1 秒分の 0 がくっ付く 0…03…30…0 ← 後ろに 0.1 秒分の 0 がくっ付く と分割 (有音部が現れた後に無音部が現れたら出力切り替え) (m = 2 での動作) 2…20…0 ← 後に 0.1 秒分の 0 がくっ付く 3…30…0 ← 後ろに 0.1 秒分の 0 がくっ付く と分割 (無音部はカット)となります。
オフセットずれがひどくてうまくいかない場合は -autoofs オブションを併用すると良い でしょう。-autoofs オプションを付けてもでもうまくいかない場合は -ofs オブションでオフセットずれを手動で修正してください。
出力するファイルの名前は指定した出力ファイル名の後ろに番号が付いた名前となり ます。例えば
waveflt -autoofs -nosound_detail 1 1.5 128 128 input.wav output.wav
を実行すると初めは output-000.wav にデータを出力し、 1.5 秒の無音部分を検知する と順番に output-001.wav , output-002.wav,... に出力していきます。
なおこの機能を指定した場合はフェードイン(-fin)、アウト機能(-fout)、ノーマライザ(-normal) の各機能は無効になります。
また出力先が waveout と stdout の時は この機能は無効になります。さらに-split* 系列のオプションと同時に使用することはできません。
(注) このオプションの仕様は将来的に 大幅に変更される可能性があります。バージョンアップにより動作しなくなった場合は このオプションの仕様に変更がないか確認してください。
データ中に無音部分を検知すると現在のファイルをクローズして新しいファイルに保存先を切り替えて データを分割します。-nosound_detail より更に詳細に設定可能です。
パラメータ m t n1 n2 は -nosound_detail と同じなのでそちらを参照してください。
tt1 は無音部分の判定を開始するまでの時間(秒)で 0 <= tt1 <= 14400 の間で指定します。 分割モードが 0 の場合は分割された瞬間から、モードが 1 と 2 の場合は有音部分が 現れてから tt1 秒経過するまでは無音部分の判定を開始しません。 -nosound_detail の場合は tt1 = 0 になります。
また分割モードが 1 の時に tt2 秒の間無音部分が続いた場合にモード 2 に切り替わって 録音を一時停止します。有音部分が現れたらモード 1 に戻って録音を再開します。0 <= tt2 <= 14400 の範囲で指定します。 -nosound_detail の場合は tt2 = 14400 になります。モードが 1 以外の場合は この値は無視します。
またWin32 用録音ツール「ロック音・ミレニアム」から標準入力経由で データを入力している時に tt3 秒の間無音部分が続くと ロック音の録音を停止します。0 <= tt3 <= 14400 の範囲で指定します。 -nosound_detail の場合は tt3 = 14400 になります。 なお-lockonオプションで ロック音のウィンドウハンドルを指定する必要があります。
(例1) ロック音のパイプの設定に
waveflt -lockon %L -nosound_detail2 1 3 100 100 5 10 20 stdin "%a"
(例2) 設定ファイル内で-nosound_detail2 を使用している場合はロック音のパイプの設定に
waveflt -lockon %L -f "setting.txt" stdin "%a"
Win32 用録音ツール「ロック音・ミレニアム」から標準入力経由で データを入力している時に t 秒の間レベル n 以下の音が続くと ロック音の録音を停止します。0 <= t <= 14400、1 <= n <= 1024 の範囲で指定します。 なお -lockonオプションで ロック音のウィンドウハンドルを指定する必要があります。 ウィンドウハンドルが指定されていない場合は無効です。
(例1) ロック音のパイプの設定に
waveflt -lockon %L -nosound_stop 10 150 stdin "%a"
(例2) 設定ファイル内で-nosnd_stop を使用している場合はロック音のパイプの設定に
waveflt -lockon %L -f "setting.txt" stdin "%a"
指定した時間分のデータを出力すると現在のファイルをクローズして新しいファイルに保存先を切り替えて データを分割します。 t は秒、又は 時:分:秒 の時間表記で指定します。 t の最大値は 72000 秒(20 時間) で、最低値はバッファサイズ(-buf)によって 変化します。例えば
waveflt -split 100 input.wav output.wav
又は
waveflt -split 0:1:40 input.wav output.wav
を実行すると初めは output-000.wav にデータを出力し、 100 秒(1 分 40 秒)分のデータを出力したあと output-001.wav に出力を切り替えます。続いて output-002.wav,output-003.wav , ... にデータを分割して 出力していきます。
また、-outfileオプションと組み合わせると 任意の出力ファイル名を指定する事ができます。 なお -nosound 系列のオプションと同時に使用できません。
指定した時間分のデータを出力すると現在のファイルを クローズして新しいファイルに保存先を切り替えて データを分割します。
n は分割数(1 〜 64)で、時間は t1,t2,.. で指定します。各 t の最大値は 72000 (20 時間) で、最低値はバッファサイズ(-buf)によって 変化します。例えば
waveflt -split2 3 100 200 300 input.wav output.wav
又は
waveflt -split2 3 0:1:40 0:3:20 0:5:0 input.wav output.wav
を実行すると初めは output-000.wav にデータを出力し、 100 秒分のデータを出力したあと output-001.wav に出力を切り替えます。 続いて 200 秒分のデータを出力したあとに output-002.wav に切り替え、300 秒分のデータを出力したあとに output-003.wav にファイルを切り替えていきます。これ以降は 300 秒毎にファイルを切り替えます。
また、-outfileオプションと組み合わせると 任意の出力ファイル名を指定する事ができます。 なお -nosound 系列のオプションと同時に使用できません。
指定した時間分のデータを出力すると現在のファイルを クローズして新しいファイルに保存先を切り替えて データを分割します。n は分割数(1 〜 64)で、t1,t2,.. は時間です。 -split2 との違いは時間を出力ファイルの再生時間ではなくて、 入力ファイルの時間の区切りで指定することです。例えば
waveflt -split3 3 100 200 300 input.wav output.wav
又は
waveflt -split3 3 0:1:40 0:3:20 0:5:0 input.wav output.wav
を実行すると、input.wav は
0 〜 1:40 (0 〜100 秒)区間 -> output-000.wav
〜 3:20 (〜200 秒) 区間 -> output-001.wav
〜 5:00 (〜300 秒) 区間 -> output-002.wav
に順次分割されます。これ以降は 100 (= 300 - 200) 秒毎にファイルが 分割されます。また、-outfileオプションと組み合わせると 任意の出力ファイル名を指定する事ができます。
指定したサイズ(k バイト単位)のデータを出力すると現在のファイルをクローズして新しいファイルに保存先を切り替えて データを分割します。n の最大値は 2097152 (2G) で、最低値はバッファサイズ(-buf)によって 変化します。例えば
waveflt -splitkbyte 1024 input.wav output.wav
を実行すると初めは output-000.wav にデータを出力し、 1024k byte (1 M) 分のデータを出力したあと output-001.wav に出力を切り替えます。続いて output-002.wav,output-003.wav , ... にデータを分割して 出力していきます。
出力先のファイルが指定したサイズ(k byte 単位)を超える現在のファイルをクローズして新しいファイルに保存先を切り替えて データを分割します。n の最大値は 2097152 (2G) で、最低値はバッファサイズ(-buf)によって 変化します。-pipeout オプションが指定されて無い場合は無効になります。 また出力ファイルのサイズはバッファサイズによって指定したサイズよりもやや大きめのサイズになります。 例えば NT4,Win2k で
waveflt -splitkbr 1024 -pipeout "gogo.exe stdin %^%d%p%f%e%^" input.wav output.mp3
を実行すると初めは output-000.mp3 にデータを出力し、ファイルサイズが 1024k byte (1 M) を過ぎると output-001.mp3 に出力を切り替えます。続いて output-002.mp3,output-003.mp3 , ... にデータを分割して 出力していきます。
データの先頭部と後部にそれぞれ t1, t2 で指定した時間(秒)の無音部分を付け加えます。 指定可能範囲は 0=< t1,t2 <= 5 です。
サイン波を合成します。n は合成するサイン波の数(1 <= n <= 16)、 f は周波数、d は音量(デシベル: 0 <= d <= 96)、p は位相(0 <= p <= 360) です。
(例)
2000 hz,80 db, 10度 のサイン波と 4000 hz, 60 db, 90 度のサイン波の合成音声を作成
waveflt -addsin 2 2000 80 10 4000 60 90 -nosignal 10 44100 2 16 nosignal out.wav
無音ファイル作成時の設定をします。 t が秒、hz がサンプリング周波数、chn がチャンネル、bit が量子化ビット数です。
(例) waveflt -nosignal 10 44100 2 16 nosignal out.wav
フィルタ処理後に実行するコマンドを指定します。 別ウィンドウが開いて実行されます。 pipeout オプションと同様に置換文字列も 使用できます。
(例) waveflt -nosound 0.5 128 -exec "waveflt -normal 1.0 -del %^%a%^ %^%a%^" input.wav output.wav
フィルタ処理後に実行するコマンドを指定します。 -exec と違ってウィンドウを別に開きません。 pipeout オプションと同様に置換文字列も 使用できます。
標準出力モードでパイプで接続するコマンドを指定します。このオプションを 有効にすると出力ファイル名によらず自動的に標準出力モードになります。詳 しくは下のstdoutの項を参照して下さい。
(例) waveflt -nosound 0.1 4 -pipeout "lame -b 64 - %^%a%^" imput.wav output.mp3
パイプのバッファサイズ(k byte)を設定します。デフォルトは 512 で最大 2048 です。
-pipeout オプションで指定するコマンド内の置換文字列を 定義します。詳しくは下のstdoutの項を参照して下さい。
音声の再生を行うサウンドデバイスを指定します。詳しくは 下のwaveoutの項を参照して下さい。
音声データを数値化してテキストファイルに出力します。 -cut,-cutm,-normal,-headofs 以外のオプションは無視します。
(例) waveflt -text input.wav output.txt
入力ファイルを指定します。stdin を指定した場合は自動的にエンドレスモードになります。
nosignal を指定すると無音ファイルを作成します。設定は-nosignal オプションで指定します。-nosignal オプションを指定しない場合は、22050hz, 1 チャンネル、 16 bit で 180 秒のファイルが作成されます。
例えば 44100 hz, 2 チャンネル、16 bit 、10 秒の無音ファイルを作成するには 次のように指定します。
waveflt -nosignal 10 44100 2 16 nosignal out.wav
またファイル名に stdin を指定すると標準入力からデータを読み込みます。 標準入力モードではファイル切り出し機能(-cut,-cutm)、フェードイン(-fin)、アウト機能 (-fout)、ノーマライザ(-normal)、適応フィルタの学習モード(-adptrain)は無効になります。
NT で標準入力からパイプ(|)でデータを渡す場合は次のようにします。 入力ファイルの変わりに stdin を入れます。次の例では d:\media\test.wav をミキシングして e:\tmp\mix.wav に出力しています。
type d:\media\test.wav | waveflt -mix 50 stdin e:\tmp\mix.wav
なお Win95,98 の DOS 窓のパイプは疑似パイプであり中間ファイルを作るため この方法は使えません。
出力ファイルを指定します。stdout を指定すると標準出力にデータを出力します。 標準出力モードによって、例えば stdin 入力に対応している MP3 エンコーダなど にデータを渡して直接 MP3 にエンコーディングしてもらう事などが出来ます。 また waveoutを指定するとサウンドデバイスにデータを出力します(Windows 版のみ)
サウンドデバイス出力モードではフェードイン(-fin)、アウト機能(-fout)、 ノーマライザ(-normal)は無効になります。再生デバイスは -device オプションで 指定します。例えば 2 番目のデバイスで再生を行う場合は次のように指定します。
waveflt -device 1 c:\tmp\out.wav waveout
-device オプションを指定しなければ標準の再生デバイスを用いて再生します。
標準出力モードではフェードイン(-fin)、アウト機能(-fout)、フィルタに通した後のノーマライ ザ(-normal)は無効になります(処理が切り取り(-cut,-cutm)のみなど、フィルタに通さない場合 は正規化は有効です)。
NT で標準出力からパイプ(|)を使って他のプロセスにデータを渡す場合は次のようにし ます。次の例では foo.exe というプロセスにデータを渡しています。なお、Win9x の DOS 窓のパイプは疑似パイプであり中間ファイルを作るためこの方法は使わず、下で 説明する -pipeout オプションを使用して下さい。
waveflt -silent c:\tmp\out.wav stdout | foo.exe c:\tmp\out.mp3
Windows 版は "-pipeout" オプションによって直接データを渡すコマンドを設定できま す。-pipeout "コマンド" によって指定して下さい。-pipeout オプションを付けると 自動的に標準出力モードに変わります。
ここで"コマンド" のところで出力ファイル名を置換して引数に渡すことが出来ます。 その際 %d が ドライブ名、%p が パス、%f がファイル名、%e が拡張子を表します。 さらに %a で %d%p%f%e の意味になります 例えば c:\tmp\out.wav を入力ファイルとして選んだ場合は %d = c:、%p=\tmp\、 %f=out、%e=.wav %a=c:\tmp\out.wavに置き換わります。%e には . も含まれる事に注意して下さ い。
また %1 で -udef1, %2 で -udef2, %2 で -udef3 で指定したユーザー定義文字列、 %% で % 、%^ で " 一文字に置き換わります。言うまでもありませんが、 " で囲まれた中では " は使用できませんので、ロングファイル名を使用したい時は ファイルのところを " ではなく %^ で囲んで下さい。
(置換例) ファイル名が "c:\tmp\out data.wav" で -udef1 "def1" の場合 "foo.exe %^%a%^" -> "foo.exe "c:\tmp\out data.wav"" "foo.exe %^%d%p%f-%1.mp3%^" -> "foo.exe "c:\tmp\out data-def1.mp3"" "foo.exe %^e:%pTest%e%^" -> "foo.exe "e:\tmp\Test.wav""
従って NT4,Win2k の場合、
waveflt -silent -pipeout "foo.exe %^%d%p%f%e%^" c:\tmp\out.wav c:\tmp\out.mp3
又は
waveflt -silent -pipeout "foo.exe %^%a%^" c:\tmp\out.wav c:\tmp\out.mp3
は
waveflt -silent c:\tmp\out.wav stdout | foo.exe "c:\tmp\out.mp3"
と同じ意味になります。
Win9x の場合は -pipeout の所の % を 2 つ重ねて
waveflt -silent -pipeout "foo.exe %%^%%d%%p%%f%%e%%^" c:\tmp\out.wav c:\tmp\out.mp3
として下さい。
-f オプションでファイルから設定を読み込ませる場合は NT でも Win 9x でも % を重ねずに
# setting.txt -silent -pipeout "foo.exe %^%d%p%f%e%^" # 設定終わりと設定ファイル(setting.txt)に書いて
waveflt -f setting.txt c:\tmp\out.wav c:\tmp\out.mp3
とすれば上と同じ意味になります。この様に設定ファイル(-f)を利用すると見かけ上 waveflt が c:\tmp\out.wav をフィルタに通して c:\tmp\out.mp3 を出力する様な感 じになるので分かりやすくなります。従って -pipeout オプションを使う場合は出来るだけ設定ファイルを使用する事を お勧めします。
さらに stdout と stdin と同時に使用できます。例えばNT の場合、
type c:\tmp\out.wav | waveflt -silent -pipeout "foo.exe %^%d%p%f%e%^" stdin c:\tmp\out.mp3
の様に使用できます。もちろん上で書いた設定ファイル(setting.txt)を使って
type c:\tmp\out.wav | waveflt -f setting.txt stdin c:\tmp\out.mp3
としても、
type c:\tmp\out.wav | waveflt -silent -pipeout "foo.exe c:\tmp\out.mp3" stdin stdout
の様に -pipeout の中に直接ファイル名(c:\tmp\out.mp3)を指定しても同じ意味になります。 この様にしてリアルタイムフィルタリング MP3 録音も可能です。