6

我知道如何用 atempo 改变速度,但是音频文件有点失真,我找不到改变音高的可靠方法。(例如,将节奏和音高一起提高 140%)

Sox 有一个速度选项,但会截断音量并且不像 ffmpeg 那样广泛可用。mplayer 有一个完美运行的速度选项,但如果没有额外的库,我就无法输出。

我似乎明白 ffmpeg 没有办法改变音高(也许最近有?)但是有没有办法改变频率或其他一些标志来模拟改变音高?看得很远,找不到合适的解决方案。

编辑: asetrate:48k*1.4 (假设最初是 48k)似乎不起作用,失真和音高仍然没有太大变化。

Edit2:https ://superuser.com/a/1076762这个答案有点用,但质量比sox speed 1.4选项低得多

4

2 回答 2

9

ffmpeg -i <input file name> -filter:a "asetrate=<new frequency>" -y <output file name>似乎为我工作。我用 ffprobe 检查了输入和输出文件的属性,似乎没有任何可能影响其质量的差异。虽然我确实运行了几次,其中一些生成的文件有一些工件,即使代码行相同,所以它可能是由一些 ffmpeg 错误引起的;如果您对质量不满意,请尝试再次运行它。

于 2016-11-12T16:18:34.800 回答
0

截至 2022 年(尽管在 2015 年贡献),FFmpeg 有一个rubberband开箱即用的过滤器,没有任何上述丑陋、据称缓慢、质量差和不直观的解决方法。要通过相同的因子更改这两个属性,请将tempo和指定pitch为相同。除非进行统计测量,否则质量下降是难以察觉的。

于 2022-02-28T17:54:34.563 回答