540 likes | 749 Views
Voice Over Internet Protocol. Speech-Coding Techniques. Speech-Coding Techniques. Voice Quality A little about speech Voice Sampling Quantization Types of Speech Coders G.711 Adaptive Differential PCM (ADPCM) Analysis-by-Synthesis (Abs) Codecs G.728 Low-Delay CELP
E N D
Voice Over Internet Protocol Speech-Coding Techniques
Speech-Coding Techniques • Voice Quality • A little about speech • Voice Sampling • Quantization • Types of Speech Coders • G.711 • Adaptive Differential PCM (ADPCM) • Analysis-by-Synthesis (Abs) Codecs • G.728 Low-Delay CELP • G.723.1 Algebraic Codec-Excited Linear Prediction (ACELP) • G.729 • Selecting Codecs • Cascading Codecs • Tones, Signals, and Dual-Tone Multifrequency (DTMF) Digits
Voice Quality • MOS (Mean Opinion Score) • Excellence-5 • Good-4 • Fair-3 • Poor-2 • Bad-1 • Perceptual Speech Quality Measurement • ITU P.861 • Evaluate speech coding
聲音的數位化 • 什麼是聲音? • 聲音是像光一樣的波長的現象,但是這是巨觀來看,它其實是牽涉到空氣中的分子在一些實體設備運作下被壓縮與放大的結果。 • 例如,一個音效系統中的喇叭前後的震動產生一個縱向的壓力波,而這個波就是我們所接受到的聲音。. • 因為聲音是一個壓力波,它是一個連續的數值,而不是數位資料。 • 即使這樣的壓力波是縱向的,它們仍然有波的特質與行為,如反射(反彈,bouncing), 折射(強度的不同的波進入媒介後角度的改變與繞射(沿著物體周圍彎曲)。 • 假使我們希望使用聲音的數位版本,必須形成聲音資訊的數位表示方式。
數位化(Digitization) • 數位化意味著轉換成一串數字。 • 下圖是聲音的一維表示圖:振幅值取決於一個一維的變數,就是時間。
數位化(Digitization) • 上圖必須把時間及振幅 作為數位化的參數,也就是取樣時要將它們記錄:一個時間對應一個振幅。 • 取樣救是測量我們想要知道訊號上的數值,取樣的間距通常會是許多相同大小的區間。 • 第一種取樣方式,就是利用在相同長度的時間間隔做測量。 這樣測量的速率叫做測量頻率(sampling frequency) (見下圖a)。 • 對聲音而言,典型的取樣頻率是8 kHz (8,000 samples per second) 到48 kHz. 這個範圍是經由理論所謂Nyquist理論(後面會討論)所決定。 • 在振幅或電壓的象限來取樣叫做quantization(如下圖b)。
數位化 • 因此決定要如何將聲音資料數位化,我們需要知道下列的問題: • 取樣速率是多少? • 資料可以量化到什麼程度,量化的量是一致的嗎? • 聲音資料的格式為何? (檔案格式)
訊號可以被拆成一組正弦波的總和,左圖顯示有比重的正弦撥可以建立一個複雜的訊號。訊號可以被拆成一組正弦波的總和,左圖顯示有比重的正弦撥可以建立一個複雜的訊號。 Nyquist Theorem
Nyquist Theorem • Nyquist理論是要告知取樣的頻率要多快才可以還原本來的聲音。 • 下圖(a)顯示單一的一個正弦波:它是一個單純的頻率 (只有電子儀器才能產生如此的聲音)。 • 假使取樣速率恰好與實際頻率相等,下圖(b)顯示會還原一個錯誤的訊號:它只是一個沒有頻率的常數。 • 再來,如果取樣變成了1.5倍,下圖(c)顯示所得到仍是一個不正確頻率的波 (alias) ,這個波的頻率小於原來訊號:是原來的一半 (頂點間的波長是原來的兩倍)。 • 因此正確的取樣頻率必須至少是原來訊號的兩倍,這就是所謂的Nyquist rate。
Nyquist Theorem • Nyquist Theorem: 假使一個訊號是band-limited(也就是訊號內有低頻率極限 f1 及高頻率極限f2,所以取樣速率應該至少2(f2- f1). • Nyquist frequency: Nyquist速率的一半。 • 因為它無法還原頻率大於Nyquist frequency的訊號,所以大多數系統有一個antialiasing filter可以限制取樣器輸入訊號的頻率內容在Nyquist frequency範圍內。 • 取樣頻率,真實頻率及Alias Frequency的關係如下: • falias= fsampling - ftrue; for ftrue < fsampling < 2 ftrue
訊號對雜訊比Signal to Noise Ratio (SNR) • 正確訊號與雜訊的的能量比就叫做signal to noise ratio (SNR) • 測量訊號品值的方法。 • SNR通常是以decibel為單位(dB),而1 dB就是1bel的十分之一。以db為單位SNR值被定義成電壓平方的以10為底的對數,詳細定義如下:: • SNR = 10log10V2signal/V2noise=20log10Vsignal/Vnoise
訊號對雜訊比Signal to Noise Ratio (SNR) • 訊號的能量是與電壓的平方成比正比. 例如: 假始訊號電壓為雜訊訊號電壓的十倍, 那SNR就是20log10(10)=20dB. • 就能量而言,10把小提琴的能量當然是一把小提琴能量的十倍,然而以能量比的SNR就是10dB, or 1B. • 通常我們所聽到四周的聲音的層級就是靠decibel來區分,也就是以我們可以聽到最安靜的聲音來做比例,下表就是四周聲音大概的分級。
線性與非線性量化 • 線性量化方式:樣本是以平均的量化值來儲存。 • 非平均方式量化(Non-uniform quantization): 以人的聽力敏感度為準來設定更適當且不同大小的區間。 • Weber‘s Law曾明白的表示等量的感官上與絕對層級的值要成正比: • ΔResponse∞ΔStimulus/Stimulus • 加入一個比例為k的常數,我們可以有一個微分方程式表示出(反應值為 r 且刺激值為 s): • dr = k (1/s) ds with response r and stimulus s.
線性與非線性量化 • 將上面的微分方程式積分得到的解釋r = k ln s + C, C是一個積分出來的常數。 • 可以將上面的解改寫成r = k ln(s/s0) • s0是最低可以引起反應的刺激層級(r = 0 當s=s0). • 非線性量化的作用先將類比訊號有單純s空間轉換成理論上的r空間,然後將得到的值平均化。 • 這樣對聲音的律論稱為μ-law編碼,(或u-law)。另外一個非常類似的規則稱為A-law,是在歐洲電話系統中用到的編碼。 • 這兩個非常類似編碼的方程式定義如下:
μ=100或255;A = 87.6對於安靜的聲音有比較好的解析度
聲音的過濾(filter) • 在取樣與AD轉換之前,聲音訊號通常也會做過濾來清除不需要的頻率訊號。 而要保留的訊號與其應用有關: • 對語音而言,頻率是保留在50Hz到10kHz之間,通常可以利用一個可以濾掉較低及較高頻訊號波的band-pass filter將其它的訊號去掉。 • 一個音樂的訊號一般是落在20Hz與20kHz之間 • 在DA 轉換器的末端,高頻可以在輸出重現 • 因為取樣及量化,原來平順的訊號會被一系列含有所有可能頻率的step functions所取代。 • 所以在解碼端,在DA線路後端會使用一個low-pass filter。
聲音品質與資料速率 • 當較多的位元用來量化時,未壓縮的資料速率相對也會增加。立體聲(Stereo):在傳送一個數位聲音訊號, 頻寬會倍增。
聲音的量化與傳輸 • 通常,對聲音所產生量化後的取樣輸出叫做 PCM (Pulse Code Modulation)。另外一個版本是 DPCM (一個原始但有效的改進)。具有適應性的版本叫ADPCM。
Pulse Code Modulation • 產生從類比訊號到數位訊號的基本技術就是取樣與量化(sampling and quantization). • 量化包含選擇量值上的中斷點,然後重新對應任意在一段區間的值到一個具有代表性的級數(如之前的圖)。
語音壓縮的PCM 一個不連續的訊號不只含有原來訊號的頻率組成,還含有理論上有限的高頻組成: • 這樣是來自於訊號處理中的傅立葉分析的理論。 • 這些高頻是無關重要的(extraneous). • 因此數位轉類比的輸出會經由一個low-pass filter,這個濾器只允許在原來訊號最大個頻率範圍內的頻率訊號通過。
語音壓縮的PCM • 完整電話與音訊號編碼與解碼的機制如下圖。由於low-pass filtering,輸出訊號變得比較平順,如上圖(c)的效果。
聲音的差值編碼 • 聲音不再以簡單的PCM方式儲存,取而代之的是利用取樣訊號間的差異,這些差異通常來說是比較小的數字,當然有可能可以使用較少的位元數來儲存。 • 假使一個與時間相關的訊號有一些時間的一致性 (“temporal redundancy”),所謂的差異訊號,將現在取樣值減去前一個取樣值,將會得到一個在0值周圍有極值的峰值柱狀圖(histogram)。
聲音的差值編碼 • 一個較極端的例子,一個線性斜面訊號具有相當平的斜率,所以由這個訊號所導出的柱狀圖上 含有在這個斜率值的曲線上揚部分(spike)。 • 所以我們可以將這些差值編碼成位元字串,可以將常出現的值給較短的編碼,很少出現的給長的編碼。
無漏失的預測性編碼Lossless Predictive Coding • Predictive coding: 就是傳送差值,先以現在取樣值預測成下一個的取樣值,不是傳送取樣值本身,而是前後取樣的差值。 • 預測性編碼包含找出差值,而且使用PCM傳送這些差值。 • 注意整數差值也都將是整數,將整數輸入訊號當作是fn的集合 。然後將前一個訊號值當作是預測值 , 然後定義誤差值en當作是與 實際與預測訊號值的差值。
無漏失的預測性編碼Lossless Predictive Coding • 但通常預測值會用一些前面取樣值所形成的函數fn-1, fn-2, fn-3等,提供一個比較好的預測, 最常用的線性預測函數如下:
無漏失的預測性編碼Lossless Predictive Coding • 產生差值的想法就是取樣值的柱狀圖有更多的峰值。 • 例如下圖(a)畫了在8kHz取樣一秒鐘的結果,而每個取樣的大小用8位元表示。 • 如下圖(b),這些取樣值的柱狀圖是落在0的附近。 • 如下圖(c)顯示對應語音訊號的差值柱狀圖比原來的取樣值更集中0的附近。 • 結果是將常常出現的符號給予短的編碼0,這樣的編碼方式比取樣值本身的編碼將更有效的將取樣值差值編碼。
無漏失的預測性編碼 • 問題: 假使取樣值的整數值範圍是落在0..255間,這時差異值應該是落在-255..255我們已增加了差異值的動態範圍有兩倍之多需要更多位元來傳送一些差異值。 • 一個比較聰明的解決方法就是:定義兩個新編碼,叫做SU與SD, 分別代表Shift-Up與Shift-Down。一些特別編碼值要為這兩個保留。 • 然後我們可以將一些訊號差異值的部分集合加以編碼,舉例來說只有範圍落在-15..16的差異值加以編碼。但是超過這個範圍的差異值可以經由一串移位(Shift:SU或SD)後,緊接的是一個真正落在-15..16範圍的值。 • 例如100送出的方式就是 SU, SU, SU, 4。
無漏失的預測性編碼 • Lossless predictive coding解碼器部分要還原與原來相同的訊號。簡單的例子就是假使我們利用下面的預測函數 :
無漏失的預測性編碼 • 依照上面的預測函數為例,假使想要將數列 f1, f2,f3, f4, f5 = 21, 22, 27, 25, 22. 編碼, 我們將創造一個額外訊號值f1 = 21,而且先傳送這個不編碼的初始值:
DPCM • Differential PCM與預測性編碼是一模一樣,只是它加入了一個量化的步驟。 • 一個可以有系統地決定最佳量化間距集合的機制,它的量化間距是不相同的,就是所謂的Lloyd-Max 量化器, 這個方法是利用誤差項的最小平方值。 • 專有術語: 訊號值: fn原來的訊號, 預測訊號, 與 量化過後的還原訊號。
DPCM • DPCM: 求預測值,將預測值減去實際訊號值求得誤差值 en,然後量化這個誤差值得 描述DPCM的方程式集合為 • 然後可以利用huffman coding來將量化的誤差值編碼
DPCM • 編碼與解碼的主要效果就是要產生還原量化過的訊號值 。 • 所造成的失真(distortion)就是平均平方誤差 ,一個常用來與位元層數比較失真的方式。一個Lloyd- Max 量化器會比等分量化器有比較少的失真。
DPCM • 對語音而言,我們可以經由估算一小塊訊號的平均值與變異量來動態地調整量化間距,在每一個訊號值的區塊,移動量化間距。 也就是從時間i開始,我們可以將有N個值的區塊,而且嘗試將量化誤差降到最小:
Types of Speech Coders • Waveform codecs • High-quality output and not complex • Large amounts of bandwidth • Degrade significantly while using lower bandwidth • Source codecs (vocoders) • Match the incoming signal to a mathematical model • Use linear predictive filter • A set of model parameters replaces the signal itself • Private communications such as military applications • Hybrid codecs • Perform a degree of waveform matching • Utilize knowledge of how people produce sound in the first place
PCM • Sample rate 8kHz • Uniform quantization • 12 bits per sample (96kbps) • Non-uniform quantization • A-law and μ-law • 8 bits per sample (64kbps) • MOS 4.3
ADPCM • G.721 offer ADPCM-coded speech at 32Kbps • G.721 has now superseded by G.726 • G.726 • A-law and μ-law • Converted to 16Kbps, 24Kbps, 32Kbps(MOS 4.0) and 40Kbps
Analysis-by-Synthesis (Abs) Codecs • Hybrid coder can provide relatively acceptable quality at rate down to 16kbps • Vocoder can provide intelligible speech at 2.4kbps and lower • Most successful and commonly used are time-domain Abs codec • Linear prediction filter model for the vocal tract • Linear Predictive Coding (LPC) vocoder • Instead of using a simple two-state, voiced/unvoiced model • Excitation signal is chosen by attempting to match to reconstructed speech waveform as closely as possible to the original speech • MPE, RPE, CELP
G.728 Low-Delay CELP • CELP(Code-Excited Linear Predictive) • Filter • Change over time • A codebook of acoustic vector • Each vector contain set of elements, which represent various characteristics of the excitation signals • Transmit a set of information • Filter coefficients, gain, and a pointer to the excitation vector chosen • Sender and receiver have the same codebook • G.728 • Operate on five sample at a time (sampled at 8kHz) • 1024 vectors, index to the vector is 10 bits • 16kbps • MOS 3.9
G.723.1 • Algebraic Code-Excited Linear Prediction (ACELP) • 6.3 Kbps or 5.3 Kbps (8000Hz) • Operate on 240 samples (30ms delay) • 4 subframes of 60 samples • Utilize a look-ahead of 7.5ms (totally 37.5ms) • Silence suppression • SID (Silence Insertion Description), 4 bytes • MOS 3.8
G.729 • 8 kbps, a frame of 80 samples(8kHz) • 5 ms look-ahead (totally 15ms) • Frame size is 80bits • MOS 4.0 • G.729 Annex A • MOS 3.7 • G.729 Annex B • G.729 Annex D • G.729 Annex E