SoXを使ってみたい
音声の認識や加工をターミナル上で出来るSoX(Sound eXchange)というものがあるらしい。
普段はWSL(Windows Subsystem for Linux)上でプログラムを書いているのでLinuxにインストールする手順を追っていったのだが...
WSLでPCのマイクを使うことができない!!!
という問題に直面した。使えるようにする方法もあるのだろうが少し調べてみても出てこないし、今回はSoXを試しに使ってみたいだけなのでWindowsのコマンドライン上で行うことにした。
しかしこのSoXというもの、実際に使えるようになるまでちょくちょく躓いたので自分用に手順をメモとして残しておく。
実行環境
Windows 10 Home 64bit
SoXのインストール
まずこの公式サイトに行く。
緑色のダウンロードボタンをクリックするとダウンロードが始まる。
ダウンロードが終わったらファイルを解凍する。何も考えず進んできていれば
C:\Program Files (x86)\sox-14-4-2\sox.exe
となっているはずなのでコマンドライン上でこの通りに実行する。
そうするとコマンドライン上でsox
と打てばバージョンや使い方がバーッと出てくるのでこれでインストールは終了。
実際に使うには
このままSoXをコマンドライン上で使えれば良いのだがなかなかそうは行かない。
まず音声ファイルを保存するフォルダに移動し、次のようにパスを通す。
path %PATH%;C:\Program Files (x86)\sox-14-4-2
これでこのフォルダではsox
と打つだけでSoXが使えるようになる。
次に、出力・入力先デバイスをコマンドラインに教えてあげる必要がある。
今のままsox test.wav -d
といったコマンドを打つと次のエラーが出る。
sox FAIL sox: Sorry, there is no default audio device configured
つまり、soxを使いたいけど入出力デバイスが設定されてないから使えないといった意味。
この問題は
set AUDIODRIVER=waveaudio
と打てば解決する。デフォルトのデバイスを固定する必要があるということ。
この「waveaudio」はsox -h
と打つとAUDIO DEVICE DRIVERS: waveaudio
というように出てくるので確認してからsetする。
音声を録音・再生してみる
ここまできたらようやく音声の録音・再生ができる。
ちなみにLinuxだと
録音はrec [録音ファイル名]
再生はplay [再生ファイル名]
で出来るのだがWindowsだと
録音はsox -d [録音ファイル名]
再生はsox [再生ファイル名] -d
となり少しわかりづらい。
これはsox-14-4-2内のsox.exeをコピーし、「rec.exe」と「play.exe」という名前でそれぞれ保存することでWindowsのコマンドライン上でもLinuxと同様に使えるようになる(検証済み)。
これで晴れてコマンドライン上から音声の録音・再生ができるようになった。
まとめ
長々と書いてきましたがほとんどこちらのサイトの内容を転記したものです(このサイトの作成者様には感謝でいっぱいです)。
ただ、こちらのサイト上ではWindows7での解説だったので、Windows10でも同じように使えるよ、ということが伝えたかったわけです。
Qiita初心者なので何か規約に触れてたりしたら教えていただけると幸いです。
しかしこのSoXというもの、可能性が無限大過ぎて夢が広がります。
今後おもしろい使い方を思いつけばまた記事にしたいと思います。
参考にしたサイト