コマンドラインから sox を直接実行すると;
sox -r 8000 -c 1 <wavfilename> <mp3filename>
次のエラー メッセージが表示されます。
sox: '747a.mp3' の不明な出力ファイル形式: ファイルの種類 'mp3' は不明です
私のマシンは CentOS オペレーティング システムを実行しています。
別の方法として(必要なのが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
LAMEなどの適切なMP3エンコーダーをインストールするか、liblameをサポートしてSoxを再コンパイルする必要があります。
これはPerlプログラミングとは無関係です:)
CentOS の場合、libmad および lame-devel ライブラリがインストールされた状態で SOX (ベース リポジトリには sox srpm があります) を再コンパイルする必要があります (rpmforge にはそれらがあります)。mp3 ライブラリをインストールすると、
sox -t wav -r 8000 -c 1 <wavfilename> -t mp3 <mp3filename>
詳細はこちら -