═══ FFmpeg:調整音高和速度 ═══ ◆ 調整音高(Pitch Shifting)​ ffmpeg -i input.wav -af "rubberband=pitch=1.0595" output.wav pitch 的值是頻率倍數,不是半音數。 計算公式為:pitch = 2^(半音數 / 12)。 移調 計算 倍數 升 1 個半音 2^(1/12) ≈ 1.0595 升 2 個半音 2^(2/12) ≈ 1.1225 升 3 個半音 2^(3/12) ≈ 1.1892 降 1 個半音 2^(-1/12) ≈ 0.9439 降 2 個半音 2^(-2/12) ≈ 0.8909 降 3 個半音 2^(-3/12) ≈ 0.8409 高八度 2^(12/12) = 2.0000 低八度 2^(-12/12) = 0.5000 ◆ 調整速度(Time Stretching)​ ffmpeg -i input.wav -af "rubberband=tempo=1.25" output.wav tempo 的值是倍數: • > 1.0 → 加速(1.25 = 快 25%) • < 1.0 → 減速(0.8 = 慢 20%) 調速度時音高不會改變,這就是 rubberband 的重點。 ◆ 同時調整速度和音調​ 兩個參數可以一起用: ffmpeg -i input.wav -af "rubberband=tempo=1.25:pitch=1.0595" output.wav 這樣就是「加速 25% 且升一個半音」,音高和速度完全獨立控制,互不干擾。