
詳細(xì)講解:聲卡驅(qū)動(dòng)及數(shù)字音頻技術(shù)知識點(diǎn)
發(fā)布時(shí)間:2017-02-15 責(zé)任編輯:sherry
【導(dǎo)讀】音頻信號是一種連續(xù)變化的模擬信號,但計(jì)算機(jī)只能處理和記錄二進(jìn)制的數(shù)字信號,由自然音源得到的音頻信號必須經(jīng)過一定的變換,成為數(shù)字音頻信號之后,才能送到計(jì)算機(jī)中作進(jìn)一步的處理。
關(guān)于PCM
PCM是Pulse code modulaTIon的縮寫,它是對波形最直接的編碼方式。它在音頻中的地位可能和BMP在圖片中的地位有點(diǎn)類似吧。
Sampling rate:從模擬信號到數(shù)字信號,即從連續(xù)信號到離散信號的轉(zhuǎn)換都是通過離散采樣完成的,Sampling rate就是每秒種采樣的個(gè)數(shù)。根據(jù)香農(nóng)采樣定理,要保證信號不失真,Sampling rate要大于信號最高頻率的兩倍。我們知道人的耳朵能聽到的頻率范圍是20hz – 20khz,所以Sampling rate達(dá)到40k就夠了,再多了也只是浪費(fèi)。但是有時(shí)為了節(jié)省帶寬和存儲(chǔ)資源,可以降低Sampling rate而損失聲音的質(zhì)量,所以我們常常見到小于40k采樣率的聲音數(shù)據(jù)。

Sample size:用來量化一個(gè)采樣的幅度,一般為8 bits、16 bits和24 bits。8 bits只有早期的聲卡支持,而24 bits只有專業(yè)的聲卡才支持,我們用的一般都是16 bits的。
Number of channels:聲音通道個(gè)數(shù),單聲道為一個(gè),立體聲為兩個(gè),還有更多的(如8個(gè)聲道的7.1格式)。一般來說,每個(gè)聲道都來源于一個(gè)獨(dú)立的mic,所以聲道多效果會(huì)更好(更真實(shí)),當(dāng)然代價(jià)也更大。
Frame: Frame是指包含了所有通道的一次采樣數(shù)據(jù),比如對于16bits的雙聲道來說,一個(gè)frame的大小為4個(gè)字節(jié)(2 * 16)。
一、數(shù)字音頻
音頻信號是一種連續(xù)變化的模擬信號,但計(jì)算機(jī)只能處理和記錄二進(jìn)制的數(shù)字信號,由自然音源得到的音頻信號必須經(jīng)過一定的變換,成為數(shù)字音頻信號之后,才能送到計(jì)算機(jī)中作進(jìn)一步的處理。
數(shù)字音頻系統(tǒng)通過將聲波的波型轉(zhuǎn)換成一系列二進(jìn)制數(shù)據(jù),來實(shí)現(xiàn)對原始聲音的重現(xiàn),實(shí)現(xiàn)這一步驟的設(shè)備常被稱為模/數(shù)轉(zhuǎn)換器(A/D)。A/D轉(zhuǎn)換器以每秒鐘上萬次的速率對聲波進(jìn)行采樣,每個(gè)采樣點(diǎn)都記錄下了原始模擬聲波在某一時(shí)刻的狀態(tài),通常稱之為樣本(sample),而每一秒鐘所采樣的數(shù)目則稱為采樣頻率,通過將一串連續(xù)的樣本連接起來,就可以在計(jì)算機(jī)中描述一段聲音了。對于采樣過程中的每一個(gè)樣本來說,數(shù)字音頻系統(tǒng)會(huì)分配一定存儲(chǔ)位來記錄聲波的振幅,一般稱之為采樣分辯率或者采樣精度,采樣精度越高,聲音還原時(shí)就會(huì)越細(xì)膩。
數(shù)字音頻涉及到的概念非常多,對于在Linux下進(jìn)行音頻編程的程序員來說,最重要的是理解聲音數(shù)字化的兩個(gè)關(guān)鍵步驟:采樣和量化。采樣就是每隔一定時(shí)間就讀一次聲音信號的幅度,而量化則是將采樣得到的聲音信號幅度轉(zhuǎn)換為數(shù)字值,從本質(zhì)上講,采樣是時(shí)間上的數(shù)字化,而量化則是幅度上的數(shù)字化。下面介紹幾個(gè)在進(jìn)行音頻編程時(shí)經(jīng)常需要用到的技術(shù)指標(biāo):
采樣頻率
采樣頻率是指將模擬聲音波形進(jìn)行數(shù)字化時(shí),每秒鐘抽取聲波幅度樣本的次數(shù)。采樣頻率的選擇應(yīng)該遵循奈奎斯特(Harry Nyquist)采樣理論:如果對某一模擬信號進(jìn)行采樣,則采樣后可還原的最高信號頻率只有采樣頻率的一半,或者說只要采樣頻率高于輸入信號最高頻率的兩倍,就能從采樣信號系列重構(gòu)原始信號。正常人聽覺的頻率范圍大約在20Hz~20kHz之間,根據(jù)奈奎斯特采樣理論,為了保證聲音不失真,采樣頻率應(yīng)該在40kHz左右。常用的音頻采樣頻率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采樣頻率,還可以達(dá)到DVD的音質(zhì)。 其中,8kHZ為電話的采樣頻率。
量化位數(shù)
量化位數(shù)是對模擬音頻信號的幅度進(jìn)行數(shù)字化,它決定了模擬信號數(shù)字化以后的動(dòng)態(tài)范圍,常用的有8位、12位和16位。量化位越高,信號的動(dòng)態(tài)范圍越大,數(shù)字化后的音頻信號就越可能接近原始信號,但所需要的存貯空間也越大。
聲道數(shù)
聲道數(shù)是反映音頻數(shù)字化質(zhì)量的另一個(gè)重要因素,它有單聲道和雙聲道之分。雙聲道又稱為立體聲,在硬件中有兩條線路,音質(zhì)和音色都要優(yōu)于單聲道,但數(shù)字化后占據(jù)的存儲(chǔ)空間的大小要比單聲道多一倍。
二、聲卡驅(qū)動(dòng)
出于對安全性方面的考慮,Linux下的應(yīng)用程序無法直接對聲卡這類硬件設(shè)備進(jìn)行操作,而是必須通過內(nèi)核提供的驅(qū)動(dòng)程序才能完成。在Linux上進(jìn)行音頻編程的本質(zhì)就是要借助于驅(qū)動(dòng)程序,來完成對聲卡的各種操作。
對硬件的控制涉及到寄存器中各個(gè)比特位的操作,通常這是與設(shè)備直接相關(guān)并且對時(shí)序的要求非常嚴(yán)格,如果這些工作都交由應(yīng)用程序員來負(fù)責(zé),那么對聲卡的編程將變得異常復(fù)雜而困難起來,驅(qū)動(dòng)程序的作用正是要屏蔽硬件的這些底層細(xì)節(jié),從而簡化應(yīng)用程序的編寫。目前Linux下常用的聲卡驅(qū)動(dòng)程序主要有兩種:OSS和ALSA。
最早出現(xiàn)在Linux上的音頻編程接口是OSS(Open Sound System),它由一套完整的內(nèi)核驅(qū)動(dòng)程序模塊組成,可以為絕大多數(shù)聲卡提供統(tǒng)一的編程接口。OSS出現(xiàn)的歷史相對較長,這些內(nèi)核模塊中的一部分(OSS/Free)是與Linux內(nèi)核源碼共同免費(fèi)發(fā)布的,另外一些則以二進(jìn)制的形式由4Front Technologies公司提供。由于得到了商業(yè)公司的鼎力支持,OSS已經(jīng)成為在Linux下進(jìn)行音頻編程的事實(shí)標(biāo)準(zhǔn),支持OSS的應(yīng)用程序能夠在絕大多數(shù)聲卡上工作良好。
雖然OSS已經(jīng)非常成熟,但它畢竟是一個(gè)沒有完全開放源代碼的商業(yè)產(chǎn)品,ALSA(AdvancedLinux Sound Architecture)恰好彌補(bǔ)了這一空白,它是在Linux下進(jìn)行音頻編程時(shí)另一個(gè)可供選擇的聲卡驅(qū)動(dòng)程序。ALSA除了像OSS那樣提供了一組內(nèi)核驅(qū)動(dòng)程序模塊之外,還專門為簡化應(yīng)用程序的編寫提供了相應(yīng)的函數(shù)庫,與OSS提供的基于ioctl的原始編程接口相比,ALSA函數(shù)庫使用起來要更加方便一些。ALSA的主要特點(diǎn)有:
支持多種聲卡設(shè)備
模塊化的內(nèi)核驅(qū)動(dòng)程序
支持SMP和多線程
提供應(yīng)用開發(fā)函數(shù)庫
兼容OSS應(yīng)用程序
ALSA和OSS最大的不同之處在于ALSA是由志愿者維護(hù)的自由項(xiàng)目,而OSS則是由公司提供的商業(yè)產(chǎn)品,因此在對硬件的適應(yīng)程度上OSS要優(yōu)于ALSA,它能夠支持的聲卡種類更多。ALSA雖然不及OSS運(yùn)用得廣泛,但卻具有更加友好的編程接口,并且完全兼容于OSS,對應(yīng)用程序員來講無疑是一個(gè)更佳的選擇。
特別推薦
- 電磁干擾下的生存指南:電流與電壓的底層技術(shù)博弈
- 2025機(jī)器人+應(yīng)用與產(chǎn)業(yè)鏈新一輪加速發(fā)展藍(lán)皮書》電子版限免下載!
- 從績效亮點(diǎn)到新目標(biāo)規(guī)劃,意法半導(dǎo)體可持續(xù)發(fā)展再進(jìn)階
- 碳膜電阻技術(shù)全解析:從原理到產(chǎn)業(yè)應(yīng)用
- 七連冠!貿(mào)澤電子蟬聯(lián)Molex亞太區(qū)年度電子目錄代理商大獎(jiǎng)
- 電位器技術(shù)全解析:從基礎(chǔ)原理到產(chǎn)業(yè)應(yīng)用
- 精密電阻技術(shù)解析與產(chǎn)業(yè)應(yīng)用指南
技術(shù)文章更多>>
- 線繞電位器技術(shù)解析:原理、應(yīng)用與選型策略
- 低電流調(diào)光困局破解:雙向可控硅技術(shù)如何重塑LED兼容性標(biāo)準(zhǔn)
- 從實(shí)驗(yàn)室到市場:碳化硅功率器件如何突破可靠性瓶頸
- 維科杯·OFweek2025年度評選:揭秘工業(yè)自動(dòng)化及數(shù)字化轉(zhuǎn)型“領(lǐng)航者”,誰將脫穎而出?
- 尋找傳感器界的“隱形王者”!維科杯·OFweek 2025年度評選等你來戰(zhàn)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
國防航空
過流保護(hù)器
過熱保護(hù)
過壓保護(hù)
焊接設(shè)備
焊錫焊膏
恒溫振蕩器
恒壓變壓器
恒壓穩(wěn)壓器
紅外收發(fā)器
紅外線加熱
厚膜電阻
互連技術(shù)
滑動(dòng)分壓器
滑動(dòng)開關(guān)
輝曄
混合保護(hù)器
混合動(dòng)力汽車
混頻器
霍爾傳感器
機(jī)電元件
基創(chuàng)卓越
激光二極管
激光器
計(jì)步器
繼電器
繼電器接線
減速電機(jī)
檢波二極管
檢波器