16
@teteyateiya

SoXをWindows10で使い始めるまでの手順(メモ)

この記事は最終更新日から1年以上が経過しています。

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というもの、可能性が無限大過ぎて夢が広がります。
今後おもしろい使い方を思いつけばまた記事にしたいと思います。

参考にしたサイト

16
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
teteyateiya
IT新卒です
この記事は以下の記事からリンクされています

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
フロントエンド強化月間 - 開発する上で知っておくべき知見を共有しよう
~
Azure AIを活用した機械学習に関する記事を投稿しよう!
~