ステレオ音声ファイルをモノラル音声ファイル×2に変換するやり方
安藤章悟
みなさま、こんにちは。
AmiVoice API では音声を処理する方法が何種類か用意されていて、「音声ファイル」を音声認識処理することもできます。手順はこちらで解説しています。
AmiVoice Cloud Platform-Tech Blog
しかしAmiVoice APIでは、ステレオ2chの音声ファイルを入力すると片方のチャンネルしか音声認識されないという仕様になっているため、ステレオのRチャンネルとLチャンネルで異なる音が入っている場合には、それぞれをモノラル形式にして入力する必要があります。
今回はステレオ音声を2つのモノラル音声に変換する方法について説明します。
SoXを使ってステレオ音声をモノラル音声に変化する
ステレオ音声ファイルをモノラル音声ファイル✕2にする方法にはいろいろありますが、今回は SoX (Sound eXchange) というオープンソースのツールを使います。
こちらが SoX の公式ページです。
注意事項:
いくつか注意事項です
- 今回の手順については動作確認しておりますが、SoXを使用して万が一発生した不具合や不利益に関して当社は責任を負いかねます。ご了承ください。
- 今回はWindows環境でバッチファイルを作成して実行する手順を説明します。Windowsやバッチファイルそのものに関する詳しい説明は省きます。
手順①:SoXをダウンロードする
SoXはこちらのページからダウンロードできます。いろいろなバージョンが選択できますが、今回は最新バージョンを使って説明します。最新バージョンの数字をクリックしてください(2023年3月現在最新バージョンは14.4.2です)。
SoXはクロスプラットフォームなので、Windows版・Linux版・MacOS版などいくつか種類がありますが、今回はWindowsのインストーラー版を使います。
sox-14.4.2-win32.exe というものがそれですので、クリックしてダウンロードしてください。(クリックして画面遷移した後5秒くらい待つとダウンロードが始まります。)
手順②:SoXをインストールする
ダウンロードした sox-14.4.2-win32.exe をダブルクリックすると以下のようなインストーラが起動します。インストーラに従ってインストールをしてください。
通常は画面右下の 「Next >」 をクリックして次の画面で「Install」をクリックし、インストールが終わったら「Close」をクリックして完了です。
デフォルトだと C:\Program Files (x86)\sox-14-4-2\ にインストールされますので、その前提で説明をします。
手順③:モノラルに変換したい音声ファイルを用意する
モノラルに変換したいステレオ音声ファイルを任意の場所に置いてください。
今回は「stereo.wav」 というステレオ音声ファイルをデスクトップ上の「新しいフォルダー」に置きました。
手順④:バッチファイルを作成する
上記手順③のフォルダと同じ場所にテキストファイルを作成してください。テキストファイルの中身は下記のようにします。
“C:\Program Files (x86)\sox-14-4-2\sox.exe” stereo.wav -c 1 1.wav remix 1
“C:\Program Files (x86)\sox-14-4-2\sox.exe” stereo.wav -c 1 2.wav remix 2
※SoXのインストール先が違う場合は適宜修正してください。
また、テキストファイルが作成できたら、拡張子を .bat に変更する必要があります。今回はファイル名を run.bat としました。
手順④:バッチファイルを実行する
run.batをダブルクリックして実行してください。
以下の2つのファイルが作成されると思います
- 1.wav
- 2.wav
これで、ステレオ音声ファイルを2つのモノラル音声ファイルに変換することができました。あとは、1.wavと2.wavのそれぞれをAmiVoice APIで音声認識すれば左右両方の音声認識結果を取得することができます。
まとめ
ステレオ音声ファイルをSoXを使って2つのモノラル音声ファイルに変換する手順について説明しました。今回の説明では1つのファイルだけを処理していますが、バッチファイルを適切に書くことで複数ファイルをまとめて処理したり、フォルダの中のすべてのファイルをまとめて処理することなどもできるようになります。
また、SoXはステレオ-モノラル変換以外にもさまざまな音声の変換をすることができます。公式ドキュメントは英語のみですが、有志による日本語の情報もあるので興味のある方は検索等で探してみるといいでしょう。
この記事を書いた人