跳轉到

1.1 連續信號數位化與失真控制:取樣定理、混疊與壓擴#

聲音從進入機器的那一刻起,就必須面對一個根本性的轉換問題:物理世界的聲壓是一條時間上連續、振幅上連續的曲線,而數位計算機只能儲存離散的、有限精度的數字。這條從連續到離散的轉換之路並非單純的技術操作,而是一連串關於「失真如何被定量描述、如何被控制在可接受範圍」的數學工程。每一種失真——取樣造成的混疊、量化造成的雜訊、非均勻切格造成的感知偏差——都有明確的數學形式與明確的抑制手段,也都有明確的代價。本章沿著取樣、濾波、量化、壓擴四個環節,重建 1940 至 1980 年代電信工程師為語音數位化打下的地基;這些地基至今仍決定著每一個語音模型看見的資料形態。

取樣定理:從 Shannon 到 Nyquist 的骨架#

取樣定理的核心命題可以濃縮成一句話:若一個帶限信號的最高頻率為 \(f_{max}\) ,則當取樣頻率 \(f_s\) 嚴格大於 \(2 f_{max}\) 時,取樣值序列能夠唯一地、無損地重建出原始連續信號。這個結果的系統性證明由 Shannon 於 1949 年的經典論文《Communication in the Presence of Noise》給出,但溯其源頭,Nyquist 在 1928 年已經指出帶限信號的取樣密度下界,Whittaker 在 1915 年更給出了插值重建的數學形式。工程史上稱 \(f_s / 2\) 為 Nyquist 頻率,它是取樣系統所能表示的最高頻率的冰冷上限:任何試圖越過這條線的頻譜成分,都會被強制摺回低頻區。理解定理的最好方式不是背誦結論,而是進入頻域,親眼看到「複製頻譜」這個意象。

定理的證明骨架可以在頻域中看得最清楚。設原始信號的頻譜為 \(X(f)\) ,理想衝擊取樣在時域上乘以間隔為 \(T_s = 1 / f_s\) 的 Dirac 梳,在頻域上等價於把 \(X(f)\) 以 \(f_s\) 為週期無限平移複製:

\[ X_s(f) = f_s \sum_{k = -\infty}^{\infty} X(f - k f_s) \]

只要各複製頻譜互不重疊,用理想低通濾波器即可完整切出 \(k = 0\) 的那一塊,重建公式就是著名的 Whittaker-Shannon 插值:

\[ x(t) = \sum_{n = -\infty}^{\infty} x(n T_s) \, \mathrm{sinc} \left( \frac{t - n T_s}{T_s} \right) \]

這條公式值得多看兩眼:無窮遠處的每一個取樣點,都憑藉一個無限延伸的 sinc 核對任意時刻貢獻精確值,而「帶限」這個前提正是 sinc 核能夠收斂求和的充分條件。反之,一旦 \(f_s \leqq 2 f_{max}\) ,相鄰複製頻譜互相侵入對方領地,這正是混疊的頻譜摺疊數學。定理的嚴格性也帶來一個工程上的不便:等號成立時,重建需要理想低通濾波器與無限長的取樣序列,兩者在物理上皆不可得。

混疊的數學解剖#

混疊的正式定義是:兩個不同頻率的分量在取樣後產生完全相同的樣本序列。具體而言,頻率 \(f\) 的分量在取樣後與 \(f_s - f\) 的成分變得不可區分,觀察到的混疊頻率滿足:

\[ f_{alias} = |f - k f_s| \]

其中 \(k\) 是使結果落入 \([0, f_s / 2]\) 的整數。一個 \(9\) kHz 的音被 \(12\) kHz 取樣,聽到的將是 \(3\) kHz 的假音——錯誤不是雜訊,而是結構性的頻譜位移,事後無法回復。混疊的不可逆性是整個數位音訊鍊上最嚴格的一條紀律:它不能被事後修正,只能在取樣之前被消滅。

時域的視角補充了另一半直覺。取樣率不足等於每個週期只用少於兩個樣本去描繪一個振盪,連振盪的方向都無法定義;任何在樣本間穿越零線兩次的信號成分,留下了完全相同的樣本序列,卻對應不同的物理波形。這種一對多映射讓「反推原信號」在數學上沒有唯一解,混疊因此在本質上是資訊的滅失,而非能量的錯放。歷史上的第一堂課往往來自電影:膠片以每秒二十四格取樣,車輪轉速超過每秒十二轉時映像即呈倒轉,原理與音頻混疊完全相同,只是帶限條件從光學的快門間隔換成了時間的取樣間隔。

有一個容易被忽略的工程推論:混疊之後再取樣,錯誤不會累加成「更糟的混疊」,而是以一種看似合理的方式自我掩飾。當錯誤的高頻被摺成低頻,它會佔據語音基頻與第一共振峰所在的位置,偽裝成有物理意義的諧波結構。這解釋了為何混疊污染在聽感上常常不是「明顯的噪音」,而是「某個人說話音色怪怪的」——這種偽裝性讓它在工程除錯中格外危險。

抗混疊濾波器:陡峭過渡帶的能量代價#

定理假設信號帶限,但真實的麥克風信號不帶限,因此 ADC 前必須安置抗混疊低通濾波器(Anti-aliasing Filter)。理想濾波器要求通帶至截止頻率之間呈垂直斷崖,物理上不可實現,工程只能逼近。設濾波器轉移函數為 \(H(f)\) ,設計買賣在兩個對立指標之間:阻帶衰減必須足夠深,才能讓將要混疊回帶內的高頻能量小於量化雜訊底;過渡帶又希望越窄越好,以保留接近 Nyquist 頻率的可用頻寬。以 \(8\) kHz 取樣的電話系統為例, \(3.4\) kHz 處要保留語音能量、 \(4\) kHz 處要壓到極低,半個 kHz 的過渡帶逼出了高階橢圓濾波器;階數一高,通帶漣波、相位非線性與溫度飄移全都變成新的失真源。

濾波器族群的選型本質上都是在「帶內平坦、帶外陡峭、相位線性」三種不可能同時極大化的慾望間分配痛楚。巴特沃斯濾波器提供最大平坦的通帶但過渡帶最寬,橢圓濾波器在給定階數下給出最陡過渡卻帶來可觀的通帶漣波,切比雪夫則在兩者之間取折衷並讓阻帶出現等振波紋。對語音而言,通帶漲波與相位失真會直接改變共振峰的位置與形狀,而共振峰的相對位置正是母音分類的依據,所以「濾波器相位」在語音工程裡從來不是可以忽略的次要指標。

現代解法是用取樣率換取濾波器階數:先以高取樣率(例如 \(64\) 倍的 sigma-delta 調變取樣)取樣,讓抗混疊濾波器的過渡帶寬鬆到可以用簡單的一階濾波器,再由數位降濾波器精細濾波並降頻。降濾波器在數位域工作,陡峭與線性相位可以用計算而非元件負擔,於是模擬端的失真被推到幾乎為零。這說明了一個深刻的工程哲學:當硬體無法同時滿足兩個極端,就引入冗餘取樣率在數位域中消化矛盾。以計算換精度、以冗餘換穩定——這類思想將在本書後續的神經聲碼器與殘差向量量化中以更極端的形式重現,只是那時被消化的矛盾換成了生成品質與推理速度。

量化:SQNR 的 6.02 dB 鐵律#

取樣解決了時間軸,量化處理振幅軸。 \(B\) bit 線性 PCM 把滿幅範圍切成 \(2^B\) 格,量化步距 \(\Delta\) 為滿幅除以格數。量化在數學上是把連續隨機變數映射到離散格點,若採用均勻捨入,誤差 \(e = x_{quant} - x\) 被限制在 \([-\Delta/2, \Delta/2]\) 中;在高效位元率假設下( \(\Delta\) 遠小於信號變化尺度),誤差可近似為該區間上的均勻隨機變數,均方誤差為:

\[ \mathrm{MSE} = \mathbb{E}[e^2] \approx \int_{-\Delta/2}^{\Delta/2} \frac{1}{\Delta} e^2 \, de = \frac{\Delta^2}{12} \]

假設信號是滿幅正弦波,其功率為 \(A^2 / 2\) ,其中 \(A = 2^B \Delta / 2\) ,訊噪比取十倍對數後得到量化訊噪比(SQNR)的經典近似:

\[ \mathrm{SQNR} \approx 6.02 B + 1.76 \ \mathrm{dB} \]

每增加一個位元換 \(6\) dB,這條鐵律量化了「精度」的商品價格: \(16\) bit 約 \(98\) dB,足以覆蓋音樂的動態範圍; \(12\) bit 約 \(74\) dB,已略高於錄音室磁帶的本底雜訊。但對語音而言,均勻量化卻是昂貴的浪費——語音能量高度集中在低振幅段,全幅爆音稀少而短暫,能量分佈呈長尾的 Laplace 或 Gamma 型。均勻切格意味著誤差是絕對常數,於是弱音節的相對失真劇烈上升:在訊號僅及滿幅百分之一時,誤差對微弱信號而言不再是小修飾,而是形狀的破壞。這正是壓擴要接手的戰場。

量化器的兩個邊界:飽和與抖動#

均勻量化器有兩種性質迥異的誤差模式,必須分開處理。第一種是過載失真:輸入超過滿幅範圍時,量化器只能截斷,產生的誤差可以任意大,且在時間上高度相關,形成刺耳的「削波」雜音。工程上通常用峰值限制器在 ADC 前預防這種情況,讓偶發的峰值轉而由壓擴曲線以溫和的非線性吸收。

第二種是低電平量化所呈現的「顆粒化」現象。當信號振幅接近甚至低於 \(\Delta\) 時,量化輸出在相鄰格點之間跳動,形成與輸入幾乎無關的隨機序列。對波形而言它聽起來像嘶嘶的底噪,但對需要做統計分析的語音前端而言更嚴重:它與語音本身的低幅度譜能量混在一起,使後續的特徵萃取無法分辨「真實的弱諧波」與「量化顆粒」。緩解的標準手段是加入適當的白雜訊,讓量化誤差的分布更均勻地填滿格點,這個技巧稱為抖動(Dithering),其代價是把乾淨的格點替換成一個連續分佈的噪聲底。

抖動的更深層意義是消除失真與內容之間的相關性。若沒有抖動,量化誤差與輸入訊號在某些條件下強相關,會產生輸入相關的諧波失真;加入抖動後,误差變成統計獨立於輸入的加性噪聲,總誤差功率甚至可被證明略高,但失真的性質從「結構性偽影」變成「背景噪聲」。這個權衡——多一點總噪聲,換取少一點可辨識的偽影——正是所有量化與編碼設計中最典型的取捨範式,也是後續章節中神經音訊編解碼器用向量量化取代單一標量量化時所面對的同一組難題。

壓擴:用對數彎折振幅軸#

工程師的答案是壓擴(Companding,取壓縮與展開的合字):編碼前對振幅做非線性壓縮,把大量位元預算撥給小振幅;解碼後做鏡像的指數展開。其數學動機正是語音在小振幅處的密集性——若令量化誤差與局部信號振幅成比例而非與滿幅成比例,則弱訊號的相對誤差不會爆炸,等效地實現了逐段變步距的量化。從量化理論的術語說,壓擴是最佳非均勻量化的連續近似:編碼器在壓縮域做均勻量化,其等效步距隨壓縮函數的斜率倒數縮放,微分關係可以寫成 \(\Delta(x) \approx \Delta_0 / g'(x)\) ,其中 \(g\) 為壓縮函數。斜率在原點最陡,預算便自動流向小振幅。

北美電話系統採用 \(\mu\) -law,其映射與反映射為:

\[ y = \mathrm{sgn}(x) \frac{\ln(1 + \mu |x|)}{\ln(1 + \mu)} \quad x \in [-1, 1] \quad \mu = 255 \]
\[ x = \mathrm{sgn}(y) \frac{(1 + \mu)^{|y|} - 1}{\mu} \]

歐洲系統採用 A-law,參數 \(A = 87.6\) ,在小振幅段為線性、大振幅段為對數的分段函數:

\[ y = \begin{cases} \mathrm{sgn}(x) \frac{A |x|}{1 + \ln A} & |x| \leqq \frac{1}{A} \\ \mathrm{sgn}(x) \frac{1 + \ln(A |x|)}{1 + \ln A} & \frac{1}{A} < |x| \leqq 1 \end{cases} \]

兩者在參數選取下性能相近,主因只是歷史與標準組織的分歧。A-law 在原點附近保留了約 \(1/88\) 寬度的純線性段,利於小訊號直通與簡單的類比-數位混合電路; \(\mu\) -law 則在原點附近給出更細的相對步距,對數段調得更早。這兩條曲線都不是為數學優雅而生,而是為了讓 8-bit 傳輸在國際電信交換中達到可接受的語音品質——它們是「夠好的不完美」在工程史上最成功的範例之一。

8-bit 壓擴為何等效 12-bit 線性#

這個「等效」的說法可以從斜率推導出來。壓縮函數的導數為 \(\mathrm{d}y / \mathrm{d}x = \mu / \left( (1 + \mu |x|) \ln(1 + \mu) \right)\) ,因此壓縮域中的等效原域步距為 \(\Delta_x(x) = \Delta_y / g'(x)\) ,量化噪聲功率亦隨 \(1 / g'(x)^2\) 縮放。與線性量化在同樣振幅處相比,壓擴帶來的信噪比增益恰為 \(20 \log_{10} g'(x)\) ;對 \(\mu = 255\) 而言, \(g'(0) = 46.0\) 、 \(g'(1) = 0.180\) ,在振幅 \(0.01\) 到 \(0.1\) 的語音常駐區段, \(g'(x)\) 落在 \(7.5\) 到 \(1.7\) 之間,對應 \(10\) 到 \(22\) dB 的增益,即約 \(1.7\) 到 \(3.7\) 個位元。

再補上兩項工程事實, \(4\) 個位元的等效性就完整了。其一,線性 PCM 的 SNR 隨振幅線性下滑,每低 \(6\) dB 就損失一個位元的等效精度,而語音的絕大部分時間處於低電平;其二, \(\mu\) -law 曲線的頂端在實際語音中幾乎不會被觸及,等於白白放棄了一小段碼字空間。這兩項相加,產生了電信業的標準結論: \(8\) bit 壓擴語音的整體品質等同於約 \(12\) bit 線性 PCM。更深的詮釋是:對數映射等效於把振幅軸以人耳近似的對數感受重新切格, \(256\) 格的非線性格點在感知上勝過 \(4096\) 格的線性格點。

這個結論必須加上重要的心理聲學限定:等效性是就「強訊號淹沒弱訊號」這個掩蔽效應而言的,而非就波形重建的絕對誤差而言。在信號處理意義上,8-bit 線性 PCM 的重建誤差永遠大於 8-bit 壓擴的等效線性位元;但在聽感與下游特徵萃取的意義上,前者讓弱音節被量化顆粒淹沒,後者保留了弱音節的結構。這個「客觀誤差變大而主觀品質提升」的反直覺現象,是全書反覆出現的工程哲學的第一課:數位音訊處理的目標從來不是最小化誤差,而是最小化對下游有意義的資訊損失。

這也是壓擴與 1.3 節聽覺刻度共享同一思想的最早預告:感知對數性必然寫進量化與頻率的每一層。壓擴在振幅軸上做對數彎折,梅爾刻度在頻率軸上做對數彎折,兩者都是同一個直覺的投影——機器最終要對齊的不是物理量,而是耳朵。

編碼格式 取樣率 位元率 傳輸速率 適用場景
G.711 \(\mu\) -law \(8\) kHz \(8\) bit 壓擴 \(64\) kbps 北美數位電話骨幹
G.711 A-law \(8\) kHz \(8\) bit 壓擴 \(64\) kbps 歐洲與國際電話交換
G.726 ADPCM \(8\) kHz \(16\) – \(40\) kbps 可變 語音編解碼器
線性 PCM 語音 \(16\) kHz \(16\) bit \(256\) kbps 現代 ASR 前端
CD 音樂 \(44.1\) kHz \(16\) bit \(1.41\) Mbps 儲存媒介
高階數位母帶 \(96\) kHz \(24\) bit \(2.3\) Mbps 專業錄音

歷史脈絡:從 8 kHz 電話到 16 kHz 語音辨識#

1960 年代,CCITT(ITU-T 前身)把 \(\mu\) -law 與 A-law 寫進 G.711 標準,奠定數位電話骨幹: \(8\) kHz 取樣、 \(8\) bit 壓擴,每路語音 \(64\) kbps。這個規格的每一項選擇都是損耗鏈上的折衝: \(4\) kHz 的語音頻寬是基於可懂度實驗得出的最低安全線,卻截掉了 \(4\) kHz 以上的齒擦音高頻成分,使 \(/s/\) 與 \(/f/\) 的辨識在電話信道上先天受損; \(8\) bit 的壓擴足以聽清,卻在很多降噪與深度模型任務上缺乏解析度。

標準的力量是殘酷的:此後近半世紀,整個語音辨識學界被迫與「電話頻寬」這一現實妥協,Switchboard 之類的 8 kHz 語料庫成為標準測試床,1990 年代的 HMM 系統在電話音質上的詞錯率曲線深深烙著這個取樣率上限的印記。與此同時,PCM 編碼器在 1962 年由貝爾實驗室的 Franklin 團隊以 \(7.5\) kHz 取樣的示範系統落地,隨後被 Sony 推廣為 44.1 kHz 的 CD 標準——音樂產業走的是完全相反的路徑,把頻寬與線性量化推到極致。

進入深度學習時代後,情況翻轉:2000 年代末以降,麥克風陣列與智慧型手機帶來大量寬頻語料,ASR 社群逐漸以 \(16\) kHz 取樣、 \(16\) bit 線性 PCM 為事實標準——Nyquist 頻率上移到 \(8\) kHz,完整保留齒擦音與樂音泛音,而線性量化把壓擴的非線性交給模型自行學習。這個選擇有一個不常被言明的深意:壓擴是為了節省傳輸位元的硬體妥協,而在端到端可訓練的前端裡,非均勻切格完全可以交給可學習參數——於是波形層回歸線性均勻,感知非線性全部後移到頻譜層的梅爾刻度。

有趣的是,Whisper 等系統在 16 kHz 的前端之上又立刻接了對數壓縮的 log-Mel 濾波器組,等於在頻率軸上重演了振幅軸的壓擴邏輯,只是把對數彎折從一維振幅換成了對數濾波器組的通道邊界。G.711 至今仍在全球電話骨幹與 VoIP 信道中服役,而它的對數思想則以另一種形式活在每一台語音模型的前端裡。