我正在尝试使用 bash 中的单个 toll 音频文件播放 3 个 toll 声音。我希望声音相互叠加。
单次鸣钟时长为4秒。
我要那个:
- 第一次收费开始
- 当第一个铃声响起时,开始后 1 秒,第二个铃声开始响起,覆盖第一个铃声,即第二个铃声不会停止第一个铃声
- 当第一声和第二声铃响起时,第二声铃响起 1 秒后,第三声铃响起,覆盖第一声和第二声铃响,但不停止它们
我想
for i in 1 2 3; do mpg123 "single_toll.mp3" & sleep 1 ; done;
我知道第一声钟声已经完整地演奏了,而当应该听到第二声和第三声钟声与第一声重叠时,却听到了模糊的声音。
我错过了什么?
答案1
实际上 sox 解决了(灵感来自https://stackoverflow.com/questions/14634036/how-to-merge-several-audio-files-using-sox并根据 sox 手册页进行修改):
sox single_toll.mp3 -p pad 1 0 | \
sox - -m single_toll.mp3 -p pad 1 0 remix v2 | \
play - -m single_toll.mp3 remix v2
remix v2
需要使用该参数,因为当 sox 重新混合时,它会将音量降低 1/2,正如手册页所解释的那样。
对于任意数量的收费站,第二行可以根据需要重复多次,实际上是N-2
多次