我正在尝试增加 mp3 文件的音调,同时或多或少保持相同的节奏:
ffmpeg -i input.mp3 -filter:a "atempo=0.8,asetrate=44100*1.3" output.mp3
它可以起作用,但是输出的质量比原来的稍差。
为什么会这样?如何解决?
答案1
我不知道 ffmpeg 中的算法有多好,但你正在将其推向极致,减慢到 80%,然后音调提高 1/3 个八度。你大致尝试“发明”更多 20% 的数据,然后再将其减少 30%。这可能会变得非常棘手。
也许可以尝试免费试用令人惊奇的减速虽然它不是世界上最好的算法,但它相当不错,而且使用起来非常简单。与付费版本不同,试用版可能不会让您保存结果,但您可以测试各种算法的工作原理 [它有 5 种不同的方法可供选择],看看它是否可以做得更好。
如果你想坚持使用 ffmpeg,你最好先将其转换为 88.2kHz 32 位 WAV [这将是一个大的文件],处理它,然后向下转换为常规 mp3。
这不会获得它本身不会影响任何声音的质量,但却为任何处理算法提供了更多的发挥空间。
纯属偶然,我在 Music.SE 上发现了一份“减慢速度”应用列表 -https://music.stackexchange.com/questions/123/software-that-slows-down-music-to-help-in-transcribing
答案2
我询问了 ChatGPT,经过一些更改后,我发现这会改变音调而不会影响输出的质量:
ffmpeg -i input.mp3 -filter_complex "rubberband=pitch=1.3" output.mp3