to top page
2013-04-07
SoX のコマンドライン
SoX をおぼえようと思う。マニュアルはこちら。
- SoX, SoXI, soxformat マニュアルページ日本語訳

まずコマンドラインの書き方から。
SoX では、ファイルに関連するオプションはそのファイル名の前に置かれ、エフェクトについてはその逆になる。
以下のコマンドライン例では、input fileoutput filefile optioneffect option に色分けする。

SoX のコマンドラインの基本はこれ。入力ファイルを先に指定して、出力ファイル名を後に置く。
  $ sox recital.au recital.wav
ここでは Sun AU 形式のファイルを Microsoft WAV ファイルに変換している。

上と同じ形式変換だが、オプションで詳細を指定。
  $ sox recital.au -b 16 recital.wav channels 1 rate 16k fade 3 norm
ここでのオプションはすべて出力ファイル recital.wav に対するもの。
  -b 16 : ビット深度16で格納
  channels 1 : 1チャンネル(モノラル)にミックスダウン
  rate 16k : サンプリングレート 16kHz
  fade 3 : 3秒の長さのフェードイン
  norm : 正規化

入力ファイルの詳細を指定。
  $ sox -r 16k -e signed -b 8 -c 1 voice-memo.raw voice-memo.wav
RAW ファイルには自身の形式を示すヘッダーがないから、オプションで SoX に知らせてやる。RAW 以外でも必要なときがある。
  -r 16k : サンプリングレート 16kHz
  -e signed : 符号化方式を示す。ここでは符号付き整数
  -b 8 : ビット深度8
  -c 1 : チャンネル数(1=モノラル、2=ステレオ、他)

複数ファイルの指定。
  $ sox short.wav long.wav longer.wav
2つのファイルを連結して longer.wav を出力している。

複数ファイルを指定してミックス。
  $ sox -m music.mp3 voice.wav mixed.flac
-m オプションは --combine mix の省略形。2つのファイルの結合方法(ミックス)を指定している。

特別な入出力ファイルを示す -n オプション。
  $ sox -n output.wav synth 3 sine 300-3300
-n オプションは、それ自体でファイルを示す特別なオプション。中身のないファイル(null ファイル)を仮に示している。
synth は音声を生成するエフェクトオプションなので入力ファイルは必要ないが、形式上の必要のため - n オプションで指定する。
ここでは synth によって、長さ3秒、サンプリングレート48kHz の、300Hz から 3300Hz までスイープする正弦波による音声ファイルを生成している。3 sine 300-3300 の部分は synth エフェクトの引数。
入力音声についての情報を生成するエフェクト(noisuprofstatspectrogram など)では音声ファイルを出力する必要がない。この場合も -n で null 出力を指定する。