コマンドラインから直接soxを実行すると、
sox -r 8000 -c 1 <wavfilename> <mp3filename>
次のエラーメッセージが表示されます。
sox:「747a.mp3」の不明な出力ファイル形式:ファイルタイプ「mp3」は不明です
私のマシンはCentOSオペレーティングシステムを実行しています。
適切なMP3エンコーダをインストールする必要があります。 [〜#〜] lame [〜#〜] 、またはliblameサポートを使用してSoxを再コンパイルします。
これはPerlプログラミングとは無関係です:)
別の方法として(WaveファイルをMP3にエンコードするだけでよい場合)、LAMEを使用して同じ結果を得ることができます。次に例を示します。
lame -b 32 --resample 8 -a <wavefilename> <mp3filename>
LAMEは、yumを使用して簡単にCentOSにインストールできます。最初にRPMForgeリポジトリが必要です。
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
次に:
yum install lame
CentOSの場合、libmadライブラリとlame-develライブラリがインストールされた状態で(ベースリポジトリにはsox srpmが含まれている)SOXを再コンパイルする必要があります(rpmforgeにはそれらが含まれています)。 mp3ライブラリがインストールされている場合、
sox -t wav -r 8000 -c 1 <wavfilename> -t mp3 <mp3filename>