在 DaVinci Resolve 中改變音訊音高,當你想要快速、不用外掛的結果時,是一個兩步驟的任務:首先將你想移調的音訊從時間軸渲染出來,然後在本地瀏覽器工具中開啟渲染後的檔案,該工具接受從 -12 到 +12 的整數半音移調。驅動這種音高移調的數學關係是 2^(n/12),其中 n 是半音數,因此 +12 會將播放速率提高一倍(升高一個八度),-12 則會將其減半(降低一個八度)。由於此方法使用播放速率重採樣而非專門的時間伸縮演算法,音高與長度會一起變動:提高音高會縮短音訊,降低音高則會拉長音訊。本地瀏覽器路徑對於練習音軌、音響設計實驗以及快速創意剪輯來說既快速又可預測;當需要透明且節奏鎖定的變更時,則應選擇相位聲碼器或彈性時間工作流程。Audio Pitch Changer from Lizely 正是直接在當前瀏覽器分頁中執行這項工作,完全不需要將來源檔案上傳到任何伺服器。

音高移調在 DaVinci Resolve 內部的意義
DaVinci Resolve 內建一套完整的音訊環境,稱為 Fairlight,音高移調就是該工具組的一部分。在 Fairlight 頁面中,你可以透過片段屬性、檢查器控制項,或音訊匯流排上的音高移調效果來改變片段的音高。當你的剪輯留在 Resolve 內部,而且你滿意 Resolve 所套用的音高與節奏行為時,內建路徑就很方便。然而,許多使用者希望擁有比 DAW 內小幅度步進更寬廣、更透明的移調範圍,或是希望先在時間軸之外試聽渲染結果,再決定是否採用。這就是本地瀏覽器工具派上用場的地方:它讓你只需渲染一次音訊片段,用單一滑桿試聽整個八度的移調,然後決定是否重新匯入結果。
音高本身是一種與頻率相關的感知特性。十二音等程律(西方標準調音系統)將每個八度劃分為十二個相等的半音,每個半音的頻率比為 2^(1/12)。因此將播放速率提高一倍會將音高恰好升高一個八度,減半則會將音高恰好降低一個八度。McGill University 的音樂技術課程教材確認,一個八度包含十二個相等的半音,而一個半音包含一百個分音,這與 Web Audio 規範在 AudioBufferSourceNode 上對 detuning 因子所使用的定義相同。對 DaVinci Resolve 使用者來說,實際的結論很簡單:你在 Fairlight 中能聽到的同樣一個八度移調,也能以獨立檔案的形式產生並重新匯入,而背後的數學完全一致,聽感上沒有差異。
為何先匯出再在本地移調是可行的
DaVinci Resolve 中一個常見的工作流程是將你想變動的特定片段單獨輸出或反送,將其匯出為 WAV 或 MP3,在專案外執行移調,然後將新檔案拖回媒體池。這個模式之所以可行,是因為音高移調與重採樣基本上與格式無關:一旦擁有可解碼的音訊檔案,就可以對其套用任何播放速率比。在瀏覽器中本地執行移調,對這類工作有三項具體的好處。首先,完整的 -12 到 +12 半音範圍只需一個點擊,因此你可以快速比較同一段對白升八度的花栗鼠版本與降八度的怪物版本。其次,新檔案是乾淨的 PCM16 WAV,可以在 Resolve 端無需額外解碼的情況下重新匯入。第三,Resolve 內部不需要安裝或授權任何外掛,這在共用機器或短期試用安裝的環境中尤其重要。
本地處理也能讓音訊保留在你的瀏覽器分頁中,因此不需要上傳、在伺服器上排隊,或下載兩次。對於從事短影音、Podcast 剪輯、社群短片與遊戲實況配音的獨立創作者而言,這種來回處理的經濟性,是選擇瀏覽器工具而非學習 Fairlight 中每個參數的主要原因。產出仍是 Resolve 將其視為一般匯入媒體的標準 WAV 檔案。
在 DaVinci Resolve 中改變音訊音高:本地工作流程
一旦知道每一邊該點哪裡,完整的端對端工作流程只需幾分鐘。
- 在 DaVinci Resolve 中,切換到 Fairlight 頁面並單獨聆聽你想移調的片段,然後從時間軸將其匯出為 WAV 或 MP3。任何瀏覽器可解碼的常見格式都行;選擇能給你乾淨、已正規化來源的格式即可。
- 在當前瀏覽器分頁中開啟 Audio Pitch Changer。點擊檔案輸入欄並選擇匯出的音訊檔案。該工具一次接受一個檔案,可由瀏覽器解碼,大小上限為 50 MiB。
- 在移調欄位中設定整數半音值。有效值範圍為 -12 到 +12,含兩端。值為 0 時保持原始音高,+12 會將其升高一個八度,-12 則會將其降低一個八度。必須使用整數值。
- 觸發本地渲染。該工具會使用 Web Audio API 解碼檔案,在 OfflineAudioContext 中將來源的 playbackRate 設為 2^(n/12),並以解碼後的取樣率渲染完整結果。此步驟中沒有任何資料離開你的機器。
- 渲染完成後,讀取工具所回報的長度變化,然後下載產生的檔案。下載的檔案是 RIFF/WAVE 容器中全新編碼、非壓縮、交錯、小端序的 PCM16 WAV。
- 將下載的 WAV 拖回 DaVinci Resolve 的媒體池,放到時間軸上原本片段的位置,如果想替換原本音訊,將其靜音或刪除。
半音對照:音高與長度的取捨
由於唯一變動的是播放速率,每個半音值都會對長度產生直接、可預測的影響。下表列出工具明確記錄的三個值,以及定義其他所有整數移調的公式。
| 半音移調 (n) | 播放速率 (2^(n/12)) | 音高效果 | 長度效果 |
|---|---|---|---|
| -12 | 0.5× | 降低一個八度 | 約為原始長度的 2× |
| 0 | 1× | 不變 | 不變 |
| +12 | 2× | 升高一個八度 | 約為原始長度的 0.5× |
對於 -12 到 +12 之間任何其他整數值,播放速率為 2^(n/12),而長度為原始長度除以該速率。絕對值較小的移調較接近 1.0,產生的長度變化較不劇烈;絕對值較大的移調較接近 0.5× 或 2× 的端點,產生的長度變化則大得多。MDN 上關於 AudioBufferSourceNode.playbackRate 的文件確認了其底層行為:小於 1 的值會使音訊變慢,大於 1 的值會使其加速,任何非 1 的速率都會導致重採樣。
+12 半音移調的計算範例
假設你從 DaVinci Resolve 時間軸渲染一段 60 秒的立體聲片段,取樣率為 44,100 Hz,然後將其升高一個八度。該工具執行的運算非常直接:
playbackRate = 2^(12/12) = 2^1 = 2.0 輸出長度 = 60 s ÷ 2.0 = 30 s 輸入聲道樣本數 = 60 × 44,100 × 2 = 5,292,000(遠低於 30,000,000 的上限) 輸出聲道樣本數 = 30 × 44,100 × 2 = 2,646,000(同樣低於上限)
兩項限制皆通過,因此該工具會產生一個完整的 30 秒 PCM16 WAV,音高恰好比來源高一個八度。若同一來源改為移調 -12 半音,則輸出長度將為 120 秒,輸出聲道樣本數將翻倍為 10,584,000,對這個特定輸入來說仍在預算之內。降低音高是讓輸出增長最快的方向,因此非常長的輸入搭配大幅度的下移,是輸出上限最容易被觸及的情況。
需要留意的輸入與輸出限制
工具強制執行的每一項限制,都會在昂貴的渲染工作開始之前進行檢查,因此超出預算的要求會快速失敗,不會產生部分檔案。完整的限制清單如下:
| 限制 | 數值 |
|---|---|
| 最大編碼輸入檔案大小 | 50 MiB |
| 最大解碼輸入長度 | 5 分鐘 |
| 最大聲道數 | 8 |
| 取樣率範圍 | 8,000–192,000 Hz |
| 最大輸入聲道樣本數 | 30,000,000 |
| 最大輸出聲道樣本數 | 30,000,000 |
輸出上限最常讓新使用者感到意外,因為降低音高會拉長音訊。一段 4 分鐘、48,000 Hz 的立體聲來源包含約 23,040,000 個輸入聲道樣本,符合輸入預算。對該來源進行 -12 半音移調時,輸出聲道樣本數需求為 46,080,000,超過 30,000,000 的輸出上限,因此工具會回報錯誤且不產生下載。在此情況下,你可以在匯出前先在 DaVinci Resolve 中縮短來源、選擇較不極端的移調,或改用可處理更長素材的專用時間伸縮工作流程。超過五分鐘的解碼音訊會在檢查輸出上限之前就被拒絕,因此從 Resolve 時間軸渲染出來的很長檔案需要先進行修剪。
何時該改用時間伸縮
當音高與長度可以一起變動時,播放速率重採樣就是合適的工具,這正好適用於花栗鼠人聲效果、影片遊戲怪物的低沉嗓音效果,或加速的晶調音練習曲。當任務要求在音高變動時保留原本的節奏,這個工具就不適合,因為語速、拍點位置與總長度都會隨速率改變。對於這類任務,需要使用相位聲碼器或其他時間伸縮演算法。Lizely 關於在 Audacity 中改變音訊音高而不影響節奏的指南,正是為想在保持節拍網格不變的同時改變調性的人所設計的工作流程。
具體到 DaVinci Resolve,同樣的取捨依然存在:Fairlight 內建的音高移調控制項適用於小幅度的音樂性調整,但當原始節奏必須保持穩定時,獨立的相位聲碼器或彈性時間處理步驟才是正確答案。Audio Pitch Changer 適用於其他所有情況,其產生的 WAV 檔案可直接放回 Resolve 媒體池,無需任何額外的轉檔步驟。整個流程都在你自己的機器中進行,因此唯一會接觸到伺服器的檔案,就是你在剪輯完成後選擇上傳到素材庫或客戶端入口網站的那些檔案。
延伸閱讀:如何調整 iPhone 鬧鐘音量。