播放速率音訊變調器會透過將檔案的取樣率乘以或除以等溫律比 2^(n/12)(其中 n 是半音數)來改變錄音的感知音高。這個單一公式幾乎能解釋你將聽到的所有結果:+12 半音的設定會將音高整整提高一個八度並把音訊縮短到大約原本時長的一半;-12 半音的設定會將音高降低一個八度並使時長大約變為兩倍;0 半音則讓音高與長度都維持不變。無論你稱之為音高偏移、變調(key change)或移調(transposition),行為都相同,因為這就是同一個運算:以不同的速率對音訊進行重取樣。這也是為什麼音高偏移經常被詬病會不小心改變速度,因為速度的改變並非意外,而是內建在數學之中。一旦你內化「音高與時長會一起變動」這件事,你就能從鍵盤預測 Audio Pitch Changer 的任何輸出,也能避開最常讓初次使用者措手不及的錯誤。本文的其餘部分將逐一介紹這些錯誤、產生更乾淨偏移的實用技巧,以及渲染出新 WAV 的精確本機步驟。

audio pitch changer tips and common mistakes
Audio Pitch Changer:實用技巧與常見錯誤

播放速率重取樣實際上是如何運作的

將一個八度劃分為等距音高步階的標準來自十二平均律,其中每個半音在頻率比上為 2 的十二次方根。McGill 大學關於 MIDI 與頻率轉換的課程教材指出,一個八度包含十二個相等的半音,每個半音的比值為 2^(1/12),而一個半音包含 100 分音(McGill University)。將十二個這樣的比值相乘會得到 2,也就是定義一個八度的倍頻關係。當瀏覽器的音訊工具讀取 n 個半音的偏移時,它會使用同一個精確公式將整數轉換為播放速率。W3C Web Audio 規格在 AudioBufferSourceNode 播放演算法中介紹了對應的分音關係,MDN 則將 playbackRate 記錄為原始取樣率的一個比例,並說明數值低於一會讓音訊變慢、高於一則會變快。非單位一的播放速率會迫使瀏覽器對解碼後的緩衝區進行重取樣,而這正是瀏覽器本機變調器用來移動音高的機制。

這個公式的三個關鍵基準點值得記住,因為它們涵蓋了大多數的創意使用情境。

半音偏移播放速率大約時長
-12(降低一個八度)0.5×約為原本的 2.00×
0(無變化)1.0×原本的 1.00×
+12(升高一個八度)2.0×約為原本的 0.50×

舉例來說,+7 半音的偏移計算結果為 2^(7/12) ≈ 1.498,因此播放速率約為 1.5×。將原始幀數除以該速率即可得到約為原本時長 0.667× 的結果,也就是大約三分之二的長度。相同的代入方式適用於任何整數半音值,這也是為什麼 Audio Pitch Changer 不需要查找表就能渲染出中間的偏移值。

破壞音訊音高偏移的常見錯誤

大多數音高偏移的錯誤都屬於少數可預測的模式,事先認出它們能省下大量浪費掉的渲染。

以為音高可以變動但時長不會變。這是最常見的單一意外。經驗不足的使用者設定了一個正的偏移,只期望產生變調,卻聽到練習曲目提早結束。解決方法就是事先規劃好時長的變動:如果你需要固定時長的結果,請從較長的來源錄音開始,並把縮短的部分算進去,而不是從已經修剪過的版本開始。

在人聲上把偏移推到 ±7 半音以上。人耳會根據學習過的預期來判讀人聲音高,大的偏移很快就會滑入「花栗鼠」或「怪物」的音域。對口語和歌唱人聲來說,小的整數半音偏移聽起來通常最自然。較大的音程適合用於音效設計、鈴聲與風格化效果,但這應該是有意識的選擇,而不是預設值。

以已經截幅或有雜訊的來源開始。重取樣無法還原已經消失的峰值,也無法掩蓋編碼器造成的失真。如果你的輸入已經觸頂 0 dBFS,或在上頻段帶有嚴重的失真壓縮,偏移後的輸出會把這些問題一併帶走,而且強烈的向上偏移甚至可能揭露原本幾乎聽不到的失真。請在來源中保留足夠的餘裕,並儘量使用最乾淨的母帶。

期望 metadata 能夠保留。瀏覽器本機的重取樣器會寫入一個全新的未壓縮 PCM16 RIFF/WAVE 檔案。原本的標籤、封面、章節、cue 點以及容器 metadata 都不會保留,因為這個工具是從頭重新編碼音訊資料,只寫入播放所需的最基本 RIFF 標頭。如果你需要標籤,請之後在音訊編輯器中補上。

送入超過預算的檔案。一段 90 分鐘的 podcast 無論偏移多小都無法渲染。這個工具會在配置離線緩衝區之前先檢查解碼後與輸出的樣本預算,並直接拒絕工作,而不是默默截斷。請先用專門的工具修剪過長的來源。

更乾淨音高偏移的實用技巧

無論目的是練習曲目、音效或快速的創意實驗,養成幾個習慣都能讓音高偏移的結果明顯更好。

依用途選擇偏移量。練習伴奏、鈴聲與慢動作音效可以承受大的偏移而不受影響。任何要用於透明混音或廣播的內容都應維持在小偏移,並改用專門的時間伸縮工作流程,因為播放速率重取樣本來就不是設計成完全無感的。

挑選最乾淨的可用來源。盡可能使用無損母帶或高位元率編碼檔。避免對已經偏移過的檔案再次偏移,因為每一次重取樣都會疊加量化與相位偏移,離原始訊號的差距會隨著每一次處理不斷擴大。

在最終環境聆聽。務必在可信賴的本機播放器中播放下載下來的 WAV,不要只依賴頁面內的預覽。這個瀏覽器工具刻意不提供以 blob 為後端的預覽,因此本機播放器才是「你的聽眾實際會聽到什麼」的真正依據。

匯出前先確認時長。離線渲染完成後,工具會回報新檔案的長度。請將它與你需要的長度交叉比對。如果時長不符,請更改半音值並重新渲染,因為每一次輸入或半音變更都會讓先前的結果失效,所以不會有過時的快取檔案來混淆你。

使用整數以得到可預期的輸出。半音控制接受 -12 到 +12 之間的整數。不提供非整數的偏移,因此你不會不小心落在兩個音之間的半路。

如何在本機對音訊檔案進行音高偏移

  1. 在目前的瀏覽器分頁中開啟 Audio Pitch Changer。
  2. 選擇一個瀏覽器可解碼的音訊檔案,格式可為 MP3、WAV、M4A、AAC、Ogg、WebM 或 FLAC,且大小不得超過 50 MiB。超出該大小或使用罕見編碼器設定檔的檔案可能會解碼失敗,因為最終仍由瀏覽器內建解碼器決定哪些內容能載入。
  3. 設定一個 -12 到 +12 半音之間的整數音高偏移。請記得時長會與音高同向變動:正值會升高音高並縮短檔案,負值會降低音高並拉長檔案,0 則完全不動。
  4. 建立完整的本機渲染。瀏覽器會以解碼後的取樣率執行 OfflineAudioContext,並產生完整的緩衝區;不會有靜音尾段的剪輯,也不會有隱藏的時長上限,所以回報的時長就是你在 WAV 中會得到的長度。
  5. 檢視所顯示的時長變化,然後下載 PCM16 WAV。輸出是標準 RIFF/WAVE 容器中的未壓縮、交錯式、小端序 PCM16,相容於任何本機音訊編輯器或播放器。

限制與邊界條件

在昂貴的離線渲染開始前,工具會進行明確的檢查,任何一項未通過的工作都會被直接拒絕,而不是被截斷。事先了解這些限制,能避免最常見的「為什麼什麼都沒下載?」的意外。

限制條件允許範圍
編碼後輸入檔案大小上限 50 MiB
解碼後時長上限 5 分鐘
聲道數上限 8 聲道
取樣率8,000–192,000 Hz
解碼後聲道樣本數上限 30,000,000
輸出聲道樣本數上限 30,000,000

輸出預算與解碼預算是分開檢查的,這對負向偏移來說很重要:降低音高會拉長檔案,因此一個解碼後在預算內的來源,仍可能在所要求的偏移需要的輸出幀數超出預算時失敗。在這種情況下,工具會回報偏移超出預算,且不會產生下載。

空檔案、不支援的類型、無效的解碼後維度以及解碼失敗,都會在事先被拒絕。處理管線絕不會默默以不完整的渲染取代預期的結果,所以如果離線 context 沒有回傳完整的聲道數、取樣率與幀數,工作就會失敗,且不會寫入任何 WAV。

When Playback-Rate Resampling Is the Right Choice

Playback-rate resampling is the right tool when pitch and duration moving together is acceptable or even desirable. Practice backing tracks that need to be sung in a different key are a textbook use case: the singer gets the new key, and the tempo of the practice track adjusts itself. Sound design and quick creative experiments, from turning a snare hit into a melodic blip to pitching a vocal down for a character voice or building ring tones from existing samples, also benefit from the speed of a one-step local render.

The tool is also a sensible choice when you only need to verify an idea before committing to a heavier workflow. If you are auditioning how a song might sound a few semitones lower for a sing-alike, a quick playback-rate pass lets you hear the result without launching a DAW or installing a plugin. For more on the math and the underlying limits behind these choices, the Audio Pitch Changer Accuracy: Math, Limits, and Results guide covers the same numbers in greater depth.

Playback-rate resampling is the wrong choice when you need pitch to move and length to stay fixed, for example fitting a shifted recording into a fixed-length video cut or nudging a vocal performance without altering its sync to picture. In those situations, a phase-vocoder or another time-stretching algorithm is the appropriate tool, and the browser pitch changer will not give you what you need no matter how you set the dial.

If you're weighing options, Compare Audio Speed Changer Approaches and Run It Locally covers this in detail.