跳至主要內容
Lizely

音訊變調工具

在本機將音訊降低或提高一個八度,並把完整重新取樣結果下載為 PCM16 WAV。

隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。

使用方式

  1. 1.選擇一個不大於 50 MiB、可由瀏覽器解碼的音訊檔。
  2. 2.設定 -12 至 +12 的整數半音,並注意長度也會一起改變。
  3. 3.建立完整本機轉譯、查看長度變化後,下載 PCM16 WAV。

關於音訊變調工具

音訊變調工具會直接在瀏覽器中提高或降低一個音訊檔的感知音高。設定 -12 至 +12 的整數半音後,即可建立並下載新的 PCM16 WAV;+12 提高一個八度、-12 降低一個八度、0 維持原始音高。工具可接受常見、瀏覽器可解碼的 MP3、WAV、M4A、AAC、Ogg、WebM 與 FLAC,但真正可用的編解碼器仍取決於目前瀏覽器,熟悉的副檔名不保證每個特殊設定檔都能解碼。

本實作使用播放速率重新取樣,而不是時間伸縮演算法。提高音高也會讓音訊更快、更短;降低音高則更慢、更長。+12 半音使用 2× 播放速率,輸出長度約為原始的一半;-12 半音使用 0.5× 速率,輸出長度約為兩倍。工具不會宣稱保留節奏、說話節奏、拍點位置或原始長度;若需要改變音高但固定長度,請使用相位聲碼器或其他專用時間伸縮流程。

音高比例遵循十二平均律:位移 n 個半音時,播放速率為 2^(n/12)。McGill University 的教材獨立說明一個八度包含十二個等分半音,每一半音比例為 2^(1/12),一個半音是 100 cents;W3C Web Audio 規格也在 AudioBufferSourceNode 播放演算法中定義對應 cents 關係。解碼後,瀏覽器會以解碼取樣率在 OfflineAudioContext 中轉譯完整結果,並先計算 ceil(輸入影格/播放速率) 的必要輸出影格數。只有瀏覽器回傳預期聲道數、取樣率和完整影格數時才接受;不會靜默裁尾或以不完整檔案替代。

下載結果是新編碼、未壓縮、交錯 little-endian PCM16 RIFF/WAVE。浮點取樣會限制在合法的 -1 至 +1 範圍再量化;它不保留原始編解碼器、壓縮品質、位元率、標籤、封面、章節、提示點、循環或容器中繼資料。瀏覽器的重新取樣品質由實作決定,較大幅度升調可能顯露 aliasing 或原始編碼雜訊,因此適合快速創作實驗、練習音軌、音效和粗略剪輯,不是透明母帶處理。

限制會在昂貴轉譯前明確檢查:一個編碼輸入最多 50 MiB;解碼音訊最多五分鐘、8 個聲道、8,000 至 192,000 Hz,以及 3,000 萬個輸入聲道取樣。變慢會增加輸出影格,因此通過輸入限制的檔案仍可能超過 3,000 萬個輸出取樣;此時工具會說明超限且不截斷。每次變更檔案或半音都會使舊結果失效;解碼 context 會關閉、離線 source 會停止或中斷、下載 Object URL 會釋放,確保舊的非同步完成不會取代新狀態。所有資料與轉譯都留在目前瀏覽器分頁,Lizely 不會收到來源或輸出音訊。

方法與來源

驗證一個本機音訊檔後以 Web Audio 解碼,拒絕無效長度、聲道數、取樣率與輸入取樣預算。把整數半音以 2^(n/12) 轉為 playbackRate,計算 ceil(inputFrames/playbackRate) 的完整輸出影格數;超過 3,000 萬個輸出聲道取樣即拒絕且不截斷。以解碼取樣率透過 OfflineAudioContext 轉譯,斷言回傳完整尺寸,再把所有聲道編為交錯 little-endian PCM16 WAV。作業身分、存活狀態、context/source 清理與 Object URL 釋放可防止舊結果與資源洩漏。

常見問題

改變音高會保留原本速度和長度嗎?
不會。本工具使用播放速率重新取樣;升調會加快並縮短音訊,降調會放慢並拉長音訊。
半音如何換算為播放速率?
公式是 2^(半音數/12)。因此 +12 是 2×、0 是 1×、-12 是 0.5×。
工具下載什麼格式?
它建立新的未壓縮 PCM16 RIFF/WAVE;原始壓縮、標籤、封面與其他容器中繼資料不會保留。
音訊會被上傳嗎?
不會。檔案讀取、瀏覽器解碼、離線重新取樣與 WAV 編碼都在目前分頁本機執行。

音訊工具 使用指南

查看全部