加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

瑞芯微 | I2S-音頻基礎(chǔ) -1

04/19 15:33
4241
閱讀需 21 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1. 音頻常用術(shù)語

2. Pcm (playback 、capture)

PCM 是英文 Pulse-code modulation 的縮寫,中文譯名是脈沖編碼調(diào)制。PCM就是要把聲音從模擬轉(zhuǎn)換成數(shù)字信號的一種技術(shù),簡單的來說就是利用一個固定的頻率對模擬信號進行采樣,采樣后的信號的幅值按一定的采樣精度進行量化,量化后的數(shù)值被連續(xù)地輸出、傳輸、處理或記錄到存儲介質(zhì)中。

PCM 信號的兩個重要指標是采樣頻率和量化精度。

通常,播放音樂時,用程序從存儲介質(zhì)中讀取音頻數(shù)據(jù)(MP3、WMA、AAC…),經(jīng)過解碼后,最終送到音頻驅(qū)動程序中的就是PCM數(shù)據(jù),反過來,在錄音時,音頻驅(qū)動不停地把采樣所得的PCM數(shù)據(jù)送回給應(yīng)用程序,由應(yīng)用程序完成壓縮、存儲等任務(wù)。所以,音頻驅(qū)動的兩大核心任務(wù)就是:

  • playback

如何把用戶空間的應(yīng)用程序發(fā)過來的PCM數(shù)據(jù),轉(zhuǎn)化為人耳可以辨別的模擬音頻;

  • capture

把mic拾取到得模擬信號,經(jīng)過采樣、量化,轉(zhuǎn)換為PCM信號送回給用戶空間的應(yīng)用程序。

3. 聲音要素

聲音三要素 - 音調(diào)、響度、音色

  • 1、音調(diào) “刺耳、低沉”,這其實是我們對聲音高低的感覺描述,這一特征我們稱之為音調(diào)。

在物理定義上,聲音是物體振動(比如我們的聲帶)產(chǎn)生的波,而音調(diào)由發(fā)聲體振動的頻率決定,頻率越高(振動越快)則音調(diào)越高,聽起來就越“刺耳”,反之音調(diào)越低、聽起來就越低沉。

我們聲帶的振動頻率,約在100Hz~10KHz之間,基本對應(yīng)于常說的男低音至女高音的頻率。

而我們耳朵的聽力范圍僅限于頻率20Hz ~ 20KHz,低于或者高于這個頻率范圍的聲音,分別被稱為次聲波(<20Hz)和超聲波(>20KHz),無法被人耳感知。不難發(fā)現(xiàn),雖然人耳的感知范圍有限,但人類的發(fā)聲頻率完全包含于人耳的感知范圍之內(nèi),這意味著任何人說的話,總能被耳朵捕捉到,每個人都有發(fā)聲的權(quán)力,也總有一雙耳朵能傾聽到你的聲音。

  • 2、響度 “響亮、微弱”,是我們對聲音強弱的感覺描述,這種特征我們稱之為響度。響度由發(fā)聲體振動的幅度決定,當(dāng)傳播的距離相同時,振動幅度越大、則響度越大;相反,當(dāng)振幅一定時,傳播距離越遠,響度越小,就是我們常說的“距離太遠了,聽不見”的原因。
  • 3、音色 “風(fēng)聲、雨聲、人聲”,是我們對各種音調(diào)、各種響度聲音的綜合感受,這種特征我們稱之為“音色”。音色是一種“感官屬性”,我們利用這種“感官屬性”,能區(qū)分發(fā)聲的物體,發(fā)聲的狀態(tài),還能評價聽感上的優(yōu)劣,比如“鋼琴聲、二胡聲”,比如“只聞其聲,如見其人”,比如“悅耳、動聽”等等。那么音色是怎么“產(chǎn)生”的,又由什么“決定”呢?前面我們了解到,聲音是由物體振動產(chǎn)生的波,而物體整體振動發(fā)出的只是基音,其各部分還有復(fù)合的振動,這些復(fù)合的振動也會發(fā)出聲音并形成泛音,基音+泛音的不同組合就產(chǎn)生了多樣化的音色,聲音世界才變得豐富多彩起來。我們一般認為音色由發(fā)聲體的材質(zhì)決定。

4. 聲音采樣-ADC/DAC

處理器要想“聽到”外界的聲音必須要把外界的聲音轉(zhuǎn)化為自己能夠理解的“語言”,處理器能理解的就是 0 和 1,也就是二進制數(shù)據(jù)。

所以我們需要先把外界的聲音轉(zhuǎn)換為處理器能理解的 0 和 1,在信號處理領(lǐng)域,外界的聲音是模擬信號,處理器能理解的是數(shù)字信號,因 此這里就涉及到一個模擬信號轉(zhuǎn)換為數(shù)字信號的過程,而完成這個功能的就是 ADC 芯片

1)采樣

以一定采樣率,在時間軸上對模擬信號進行數(shù)字化。

首先,我們沿著時間軸,按照固定的時間間隔 T(假設(shè) T=0.1s),依次取多個點(如圖中 1~10 所對應(yīng)波上的點)。

此時 T 稱為取樣周期,T 的倒數(shù)為本次取樣的采樣率(f=1/T=10Hz),f 即表示每秒鐘進行采樣的次數(shù),單位為赫茲(Hz)。顯然,采樣率越高、單位時間的采樣點越多,就能越好的表示原波形(如果高頻率、密集地采集無數(shù)個點,就相當(dāng)于完整地記錄了原波形)。

2)量化

以一定精度,在幅度軸上對模擬信號進行數(shù)字化。

完成采樣后,我們接下來進行音頻數(shù)字化的第二步,量化。采樣是在時間軸上對音頻信號進行數(shù)字化,得到多個采樣點;而量化,則是在幅度方向上進行數(shù)字化,得到每個采樣點的幅度值。

如下圖所示,我們設(shè)定縱軸的坐標取值范圍為 0 ~8,得到每個采樣點的縱坐標(向上取整),這里的坐標值即為量化后的幅度值。因為我們將幅度軸分為了 8 段,有 8 個值用于量化取整,即本次量化的精度為 8。

顯然,如果分段越多,則幅度的量化取值將越準確(取整帶來的誤差就越小),也能越好的表示原波形。對于幅度的量化精度,有一個專有術(shù)語描述 – 位深,我們后面會詳細說明。

3)編碼

編碼是整個聲音數(shù)字化的最后一步,其實聲音模擬信號經(jīng)過采樣,量化之后已經(jīng)變?yōu)榱藬?shù)字形式,但是為了方便計算機的儲存和處理,我們需要對它進行編碼,以減少數(shù)據(jù)量。

常見的音頻編碼格式有PCM、PDM

經(jīng)過量化后,我們得到了每個采樣點的幅度值。接下來,就是音頻信號數(shù)字化的最后一步,編碼。編碼是將每個采樣點的幅度量化值,轉(zhuǎn)化為計算機可理解的二進制字節(jié)序列。

如下圖所示,參照編碼部分的表格,樣本序號為樣本采樣順序,樣本值(十進制)為量化的幅度值。而樣本值(二進制)即為幅度值轉(zhuǎn)換后的編碼數(shù)據(jù)。最終,我們就得到了“0”、“1”形式的二進制字節(jié)序列,也即離散的數(shù)字信號。

這里得到的,是未經(jīng)壓縮的音頻采樣數(shù)據(jù)裸流,也叫做PCM 音頻數(shù)據(jù)(Pulse Code Modulation,脈沖編碼調(diào)制)。實際應(yīng)用中,往往還會使用其他編碼算法做進一步壓縮,以后的文章我們會再展開討論。

同理,如果處理器要向外界傳達自己的“心聲”,也就是放音,那么就涉及到將處理器能理解的 0 和 1 轉(zhuǎn)化為外界能理解的連續(xù)變化的聲音,這個過程就是將數(shù)字信號轉(zhuǎn)化為模擬信號,而完成這個功能的是 DAC 芯片。

5. 音頻數(shù)字信號質(zhì)量三要素

1)采樣率

音頻采樣率,指的是單位時間內(nèi)(1s)對聲音信號的采樣次數(shù)(參考數(shù)字化過程-采樣)。常說的 44.1KHz 采樣率,也即 1 秒采集了 44100 個樣本。

我們前面了解到,采樣率越高、采樣點越多,就可以越好的表示原波形,這就是采樣率的影響。

參考奈奎斯特采樣定理:采樣率 f,必須大于原始音頻信號最大振動頻率fmax 的 2 倍(也即 f > 2fmax,fmax 被稱為奈奎斯特頻率),采樣結(jié)果才能用于完整重建原始音頻信號;如果采樣率低于 2fmax,那么音頻采樣就存在失真。

比如,要對最高頻率fmax=8KHz 的原始音頻進行采樣,則采樣率 f 至少為 16KHz。

對于最大頻率為 f 的音頻信號,當(dāng)我們分別采用 f、2f、4f/3 的采樣率進行采樣時,所得到的采樣結(jié)果參考下圖。顯然,只有當(dāng)采樣率為 2f 時,才能有效的保留原信號特征。采樣率 f 和3f/4 下得到的結(jié)果,都和原波形差別很大。

那么,我們需要多大的采樣率?

按前面的討論,采樣率似乎越大越好,是否如此呢?理論上來說,最低采樣率需要滿足奈奎斯特采樣定理,在該前提下,采樣率越高則保留的原始音頻信息越多,聲音自然就越真實。

但需要注意的是,采樣率越高則采樣得到的數(shù)據(jù)量越大,對存儲和帶寬的要求也就越高。在實際應(yīng)用中,我們?yōu)榱似胶鈳捄鸵糍|(zhì),不同場景往往會有不同的選擇。常見的選擇如下:

當(dāng)采樣率從 8KHz 翻倍至 16KHz 時,聽感明顯變得更清晰、空靈和舒適。

此時,采樣率的提升帶來了明顯的音質(zhì)提升。而采樣率從 16KHz 提升至 44.1KHz 時,實際聽感卻好像沒有太大的變化,這是因為采樣率到達一定程度后,音頻質(zhì)量已經(jīng)比較高,再往上提升帶來的優(yōu)化已經(jīng)很細微。

借助專業(yè)的頻譜分析軟件,或許可以觀察到高頻譜區(qū)域的能量差異,但對于人耳來說,已經(jīng)很難進行區(qū)分。所以實際應(yīng)用中,我們不需要一味追求高采樣率,而是要綜合帶寬、性能、實際聽感,選擇合適的配置即可。

2)采樣位深/量化精度

位深度,也叫位寬,量化精度。

指的是在音頻采集量化過程中,每個采樣點幅度值的取值精度,一般使用bit作為單位。

常見的位寬有:8bit或者16bit。

比如,當(dāng)采樣位深為 8bit,則每個采樣點的幅度值可以用 2^8=256 個量化值表示;采樣位深為 16bit 時,則每個采樣點的幅度值可以用 2^16=65536 個量化值表示。

顯然,16bit 比 8bit 可存儲、表示的數(shù)據(jù)更多、更精細,量化時產(chǎn)生的誤差損失就越小。位深影響聲音的解析精度、細膩程度,我們可以將其理解為聲音信號的“分辨率”,位深越大,音色也越真實、生動。

采樣位深選擇和采樣率的選擇類似,雖然理論上來說位深越大越好,但是綜合帶寬、存儲、實際聽感的考慮,我們應(yīng)該為不同場景選用不同的位深。

3)聲道數(shù)

我們常說的單聲道、雙聲道,其實就是在描述一個音頻信號的聲道數(shù)(分別對應(yīng)于聲道數(shù) 1 和 2)。

聲波是可以疊加的,音頻的采集和播放自然也如此,我們可以同時從多個音頻源采集聲音,也可以分別輸出到多個揚聲器,聲道數(shù)一般指聲音采集錄制時的音源數(shù)量或播放時的揚聲器數(shù)量。

除了常見的聲道數(shù)1、2,PC上還有4,6,8等聲道的擴展。一般來說聲道數(shù)越多,聲音的方向感、空間感越豐富,聽感也就越好。

目前很多手機廠商已經(jīng)將雙聲道揚聲器作為旗艦標配。在RTC音樂場景,越來越多的應(yīng)用也開始采用雙聲道配置,其目的也是進一步提高聽感,給用戶更好的體驗。

聲道數(shù)的選擇實時音視頻場景下,聲道的選擇受限于編解碼器、前處理算法的能力,一般僅支持單、雙聲道。而雙聲道配置主要在語音電臺、音樂直播、樂器教學(xué)、ASMR 直播等場景使用,其它場景單聲道即可滿足。

當(dāng)然,最終能否使用哪一種聲道配置,還是由實際采集、播放設(shè)備的能力決定。解碼音頻數(shù)據(jù)時,可以獲取數(shù)據(jù)的聲道數(shù),在實際播放時,也要先獲取設(shè)備屬性。

如果設(shè)備支持雙聲道,但待播放數(shù)據(jù)是單聲道的,就需要將單聲道數(shù)據(jù)轉(zhuǎn)成雙聲道數(shù)據(jù)再播放;同理,如果設(shè)備只支持單聲道,但數(shù)據(jù)是雙聲道的,也需要將雙聲道數(shù)據(jù)轉(zhuǎn)換成單聲道數(shù)據(jù)再播放。

目前,CD音頻的采樣頻率通常為 44100 Hz,量化精度是 16bit。

6. 音頻碼率

數(shù)字音頻的三要素不僅影響音頻質(zhì)量,也會影響音頻存儲、傳輸所需的空間、帶寬。而實際應(yīng)用場景下,音質(zhì)決定用戶體驗、帶寬決定成本,都是我們必須考慮到。

音質(zhì)可能更多是主觀上的感受,但帶寬、空間是比較容易量化的,我們需要了解音頻碼率的概念。

音頻碼率,又稱為比特率,指的是單位時間內(nèi)(一般為1s)所包含的音頻數(shù)據(jù)量,可以通過公式計算。

數(shù)據(jù)傳輸率:數(shù)據(jù)傳輸率(bps) = 采樣頻率 × 量化位數(shù) × 聲道數(shù)。

聲音信號的數(shù)據(jù)量:數(shù)據(jù)量(byte)= 數(shù)據(jù)傳輸率 * 持續(xù)時間 / 8。

比如采樣率 44.1K Hz,位深16bit、雙聲道音頻PCM數(shù)據(jù),它的原始碼率為:

原始碼率 = 采樣率/s x 位深/bit x 聲道數(shù) x 時長(1s)

44.1 * 1000 * 16 * 2 * 1 = 1411200 bps = 1411.2 kbps = 1.411 Mbps (需要注意單位之間的差異和轉(zhuǎn)換,b=bit)

如果一個PCM文件時長為1分鐘,則傳輸/存儲這個文件需要的數(shù)據(jù)量為:

1.411 Mbps * 60s = 86.46Mb

上述計算結(jié)果是未經(jīng)壓縮的、原始音頻PCM數(shù)據(jù)的碼率。

RTC場景下,往往還需要再使用 AAC、OPUS 等編碼算法做編碼壓縮,進一步減小帶寬、存儲的壓力。碼率的選擇也是一個綜合質(zhì)量和成本的博弈。

7. 噪聲抑制

有上圖所示, 1、某一時刻,用戶 A 開始說話,產(chǎn)生的語音 A 被麥克風(fēng) A 采集、并通過網(wǎng)絡(luò)傳輸給用戶 B,成為待播放的語音 A1

2、語音 A1 被揚聲器 B 播放后,通過直射、周圍環(huán)境反射等方式,最終又被麥克風(fēng) B 采集為語音 A2(圖中的回聲 A2)

3、被回采的語音 A2,會通過網(wǎng)絡(luò)傳再輸給用戶 A,并通過揚聲器 A 播放出來

經(jīng)過上述過程,用戶 A 會發(fā)現(xiàn):自己剛說完一句話,過一會兒居然又聽到了自己的“復(fù)述”,這就是 RTC 場景下的“回聲”現(xiàn)象。

噪聲抑制技術(shù)用于消除背景噪聲,改善語音信號的信噪比和可懂度,讓人和機器聽得更清楚。

8. I2S

I2S(Inter-IC Sound)總線有時候也寫作 IIS, I2S 是飛利浦公司提出的一種用于數(shù)字音頻設(shè)備之間進行音頻數(shù)據(jù)傳輸?shù)目偩€。

I2S 總線用于主控制器(譬如 ZYNQ 7010/7020)和音頻 CODEC 芯片之間傳輸音頻數(shù)據(jù);主控制器和音頻 CODEC 都得支持 I2S 協(xié)議 。

I2S總線上,只能同時存在一個主設(shè)備和發(fā)送設(shè)備,主設(shè)備可以是發(fā)送設(shè)備或接收設(shè)備。

I2S是PCM的一個分支,接口定義相同。

I2S的采樣率一般為44.1/48KHZ,PCM采樣頻率一般為8/16KHZ等。

I2S接口有4組信號:SCK(位時鐘)、LRCK(幀時鐘)、SDI/SDO(數(shù)據(jù))。

LRCLK

采樣時鐘,也叫WS(Word Select):字段選擇線,幀時鐘 (LRC) 線,

用于切換左右聲道數(shù)據(jù),

  • 1 :傳輸左聲道的數(shù)據(jù)
    0 :表示正在傳輸右聲道的數(shù)據(jù)

WS的頻率等于采樣頻率,比如采樣率為44.1KHz的音頻,WS=44.1KHz;

SCLK/BCLK

串行時鐘信號,也叫位時鐘(BCLK)、CK(Serial Clock)

數(shù)字音頻的每一位數(shù)據(jù)都對應(yīng)有一個 CK脈沖,它的頻率為:2* 采樣頻率 * 量化位數(shù), 2 代表左右兩個通道數(shù)據(jù)

比如采樣頻率為44.1KHz、 16位的立體聲音頻,那么

SCK=2×44100×16=1411200Hz=1.4112MHz;

SD/DATA

SD(Serial Data):串行數(shù)據(jù)線

用于發(fā)送或接收兩個時分復(fù)用的數(shù)據(jù)通道上的數(shù)據(jù) (僅半雙工模式),如果是全雙工模式,該信號僅用于發(fā)送數(shù)據(jù)。

MCLK

MCLK (Master/System clock input)也叫做主時鐘或系統(tǒng)時鐘,音頻 CODEC 芯片與主控制器之間同步用,一般是采樣率的 256 倍或 384 倍。

之所以引入MCLK。這是由CODEC內(nèi)部基于Delta-Sigma (ΔΣ)的架構(gòu)設(shè)計要求使然,其主要原因是因為這類的CODEC沒有所謂提供芯片的工作時鐘晶振電路,需要使用控制器為編解碼芯片提供的系統(tǒng)時鐘。

如果使用MCLK時鐘的話,MCLK時鐘頻率一般為采樣頻率的256倍或384倍,具體參考特定器件手冊。

下圖為一幀立體聲音頻時序圖

邏輯分析儀抓到的數(shù)據(jù)幀:

通道 0 是 LRCK 時鐘,通道 1 為 BCLK,通道 2 是 DACDATA,通道 3 是MCLK。

9. codec

處理器如果要想播放或者采集聲音, 需要用到 DAC 和 ADC 這兩款芯片。

那是不是買兩顆 DAC 和 ADC 芯片就行了呢?

答案肯定是可以的,但是音頻不單單是能出聲、能聽到就行。

我們往往需要聽到的聲音動聽、錄進去的語音貼近真實、可以調(diào)節(jié)音效、對聲音能夠進行一些處理(需要 DSP 單元)、擁有統(tǒng)一的標準接口,方便開發(fā)等等。

將這些針對聲音的各種要求全部疊加到 DAC 和ADC 芯片上,那么就會得到一個專門用于音頻的芯片,也就是音頻編解碼芯片,英文名字就是 Audio CODEC。

codec芯片舉例:

wolfson(歐勝) 的WM8960;順芯的es8388、es8396;瑞芯微的rk809

Codec里面包含了I2S接口、D/A、A/D、Mixer、PA(功放),通常包含多種輸入Mic、Line-in、I2S、PCM和多個輸出hp(headphone)耳機、spk(Speak)喇叭、聽筒,Line-out

下圖是codec es8396芯片的模塊圖。

10. dai

dai(digital audio interface)

數(shù)字音頻接口全部是硬件接口,是實實在在的物理連線方式,即同一個PCB板IC芯片和IC芯片之間的通訊協(xié)議。和音頻編碼格式完全是兩回事。

數(shù)字音頻接口有PCM、I2S、AC97、PDM;

  • I2S和PCM(TDM)接口傳輸?shù)臄?shù)據(jù)是PCM編碼格式的音頻數(shù)據(jù);
  • PDM接口傳輸?shù)臄?shù)據(jù)是PDM編碼格式的音頻數(shù)據(jù);

下圖是接口硬件接線的一般場景:

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
CPC1918J 1 IXYS Integrated Circuits Division Solid State Relay, TRANSISTOR OUTPUT SOLID STATE RELAY, 2500 V ISOLATION-MAX, ROHS COMPLIANT, ISOPLUS264, 4 PIN
$10.07 查看
TJA1052IT/5Y 1 NXP Semiconductors TJA1052i - Galvanically isolated high-speed CAN transceiver SOP 16-Pin

ECAD模型

下載ECAD模型
$7.84 查看
ABS07-166-32.768KHZ-T 1 Abracon Corporation IOT 32.786KHZ XTAL

ECAD模型

下載ECAD模型
$0.82 查看
瑞芯微電子

瑞芯微電子

瑞芯微專注于移動互聯(lián)網(wǎng)、數(shù)字多媒體芯片設(shè)計,是專業(yè)的個人移動信息終端SOC解決方案供應(yīng)商。瑞芯微在移動互聯(lián)網(wǎng)領(lǐng)域有多個較完整的自主創(chuàng)新的知識產(chǎn)權(quán)群,為中國電子業(yè)發(fā)展做出積極努力。目前產(chǎn)品涵蓋Android平板電腦、Android電視機頂盒(智能電視)、電子書、WIFI/藍牙音頻解決方案等。

瑞芯微專注于移動互聯(lián)網(wǎng)、數(shù)字多媒體芯片設(shè)計,是專業(yè)的個人移動信息終端SOC解決方案供應(yīng)商。瑞芯微在移動互聯(lián)網(wǎng)領(lǐng)域有多個較完整的自主創(chuàng)新的知識產(chǎn)權(quán)群,為中國電子業(yè)發(fā)展做出積極努力。目前產(chǎn)品涵蓋Android平板電腦、Android電視機頂盒(智能電視)、電子書、WIFI/藍牙音頻解決方案等。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

公眾號『一口Linux』號主彭老師,擁有15年嵌入式開發(fā)經(jīng)驗和培訓(xùn)經(jīng)驗。曾任職ZTE,某研究所,華清遠見教學(xué)總監(jiān)。擁有多篇網(wǎng)絡(luò)協(xié)議相關(guān)專利和軟件著作。精通計算機網(wǎng)絡(luò)、Linux系統(tǒng)編程、ARM、Linux驅(qū)動、龍芯、物聯(lián)網(wǎng)。原創(chuàng)內(nèi)容基本從實際項目出發(fā),保持原理+實踐風(fēng)格,適合Linux驅(qū)動新手入門和技術(shù)進階。