Linux
如何使用 sox 即時重新採樣音頻
如果你回答我就給你一塊餅乾!
我正在使用
sox
即時將 MP3 文件轉換為 WAVpifm
。唯一的問題是,我正在對整個 MP3 目錄執行此操作,並且因為並非所有文件都具有相同的採樣率,所以命令失敗。有沒有辦法重新採樣音頻文件,將其傳輸到 convert-to-wav-on-the-fly中,然後將其傳輸到
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
它仍然不起作用,因為該目錄中文件的採樣率不一樣。
這是您可以使用的一種解決方法(假設您的文件命名合理):
for tune in *.mp3; do sox $tune -t wav - rate 44100 done | sudo ./pi_fm_rds -freq 94.5 -audio - -ps ZSFM -rt ZSFM ...
謝謝@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
兩者都有效!