search
LoginSignup
7
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

SoXコマンド覚書

手軽に形式変換したい

音声認識を行う際、ビットレートやサンプリング周波数や形式などを考えなくては正確な結果が出ません。というかそもそもアルゴリズムが叩けなかったりします。

なので当然集音に際してはそこを合わせるわけですが、既存音源を無理やり変換してやってみよう(みろ)なんてことも、仕事をしてるとあります。そんな時 Audacity などのソフトでちまちまやるのは大変です。

ということでちょっと探したらsoxというコマンドがあったので覚書。

SoXとは

SoX : Sound eXchange, the Swiss Army knife of audio manipulation

→ 手軽に音声ファイル変換できるコマンド

操作

sox基本コマンド

  • wavからrawに変換
$ sox input.wav output.raw

sox形式指定コマンド

  • -bでbit指定 / -r でサンプリングレート指定 / -c でチャンネル数(ステレオ・モノラル)指定
$ sox input.wav -b 16 -r 16000 -c 1 output.raw

ディレクトリ内まとめて変換

  • findコマンドと併用すると便利
$ find . -name "*.wav" -exec sox -b 16 -r 16000 -c 1 {} {}.raw \;

※ findで検索した結果を利用する

  • -nameでクエリ指定、-exec以降に実行したいコマンド、実行対象の場所には{}を書く
  • まとめてcurlでAPI叩くなんて時に使えます
$ find raw -name "*.raw" -exec <command> {/* here is the result */}

参考

https://qiita.com/mountcedar/items/a04ebc4f8c27c226bbff
https://qiita.com/scapegoat_11_/items/abedab01d099f536e2a0
https://qiita.com/kaz-mintan/items/aea24072d3901a060c0e
http://www.xucker.jpn.org/pc/sox_raw.html
https://eng-entrance.com/linux-command-find

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7
Help us understand the problem. What are the problem?