Soxを使用して即座にオーディオをリサンプリングする方法

Soxを使用して即座にオーディオをリサンプリングする方法

答えたらクッキーをあげる!

私はsoxすぐにMP3ファイルをWAV形式に変換するために使用していますpifm。唯一の問題は、MP3ディレクトリ全体に対してこれを実行しており、すべてのディレクトリのサンプルレートが同じではないため、コマンドが失敗することです。

オーディオファイルをリサンプリングして転送する方法はありますか?wavに即座に変換そして、それをパイプで接続しますかpifm

私の現在のコマンドは次のとおりです。

sox -t mp3 /home/pi/Desktop/music/*.mp3 -t wav - |
sudo ./pi_fm_rds -freq 94.5  -audio - -ps ZSFM -rt ZSFM

しかし、これは私に次のことを与えます:

sox WARN mp3-util: MAD lost sync
sox WARN mp3-util: MAD lost sync
sox FAIL sox: Input files must have the same sample-rate

だから私はsoxが各ファイルを即座にリサンプリングし、すぐに変換のためにsoxにパイプしたいと思います。

また、試してみると次のようになります。

sox -r 44100-t mp3 /home/pi/Desktop/music/*.mp3 -t wav - |
sudo ./pi_fm_rds -freq 94.5  -audio - -ps ZSFM -rt ZSFM

そのディレクトリ内のファイルのサンプルレートが同じではないため、まだ機能しません。

ベストアンサー1

@dirktと@Thorに感謝します。

@dirktが返信しました。

sox -t mp3 /home/pi/Desktop/music/*.mp3 -t wav -r 44100 - | sudo ./pi_fm_rds -freq 94.5  -audio - -ps ZSFM -rt ZSFM

@Thorが答えた。

for tune in *.mp3; do 
  sox $tune -t wav - rate 44100
done |
sudo ./pi_fm_rds -freq 94.5  -audio - -ps ZSFM -rt ZSFM

どちらも動作します!

おすすめ記事