你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文
詳細(xì)講解:聲卡驅(qū)動(dòng)及數(shù)字音頻技術(shù)知識(shí)點(diǎn)
發(fā)布時(shí)間:2017-02-15 責(zé)任編輯:sherry
【導(dǎo)讀】音頻信號(hào)是一種連續(xù)變化的模擬信號(hào),但計(jì)算機(jī)只能處理和記錄二進(jìn)制的數(shù)字信號(hào),由自然音源得到的音頻信號(hào)必須經(jīng)過一定的變換,成為數(shù)字音頻信號(hào)之后,才能送到計(jì)算機(jī)中作進(jìn)一步的處理。
關(guān)于PCM
PCM是Pulse code modulaTIon的縮寫,它是對(duì)波形最直接的編碼方式。它在音頻中的地位可能和BMP在圖片中的地位有點(diǎn)類似吧。
Sampling rate:從模擬信號(hào)到數(shù)字信號(hào),即從連續(xù)信號(hào)到離散信號(hào)的轉(zhuǎn)換都是通過離散采樣完成的,Sampling rate就是每秒種采樣的個(gè)數(shù)。根據(jù)香農(nóng)采樣定理,要保證信號(hào)不失真,Sampling rate要大于信號(hào)最高頻率的兩倍。我們知道人的耳朵能聽到的頻率范圍是20hz – 20khz,所以Sampling rate達(dá)到40k就夠了,再多了也只是浪費(fèi)。但是有時(shí)為了節(jié)省帶寬和存儲(chǔ)資源,可以降低Sampling rate而損失聲音的質(zhì)量,所以我們常常見到小于40k采樣率的聲音數(shù)據(jù)。
Sample size:用來(lái)量化一個(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格式)。一般來(lái)說,每個(gè)聲道都來(lái)源于一個(gè)獨(dú)立的mic,所以聲道多效果會(huì)更好(更真實(shí)),當(dāng)然代價(jià)也更大。
Frame: Frame是指包含了所有通道的一次采樣數(shù)據(jù),比如對(duì)于16bits的雙聲道來(lái)說,一個(gè)frame的大小為4個(gè)字節(jié)(2 * 16)。
一、數(shù)字音頻
音頻信號(hào)是一種連續(xù)變化的模擬信號(hào),但計(jì)算機(jī)只能處理和記錄二進(jìn)制的數(shù)字信號(hào),由自然音源得到的音頻信號(hào)必須經(jīng)過一定的變換,成為數(shù)字音頻信號(hào)之后,才能送到計(jì)算機(jī)中作進(jìn)一步的處理。
數(shù)字音頻系統(tǒng)通過將聲波的波型轉(zhuǎn)換成一系列二進(jìn)制數(shù)據(jù),來(lái)實(shí)現(xiàn)對(duì)原始聲音的重現(xiàn),實(shí)現(xiàn)這一步驟的設(shè)備常被稱為模/數(shù)轉(zhuǎn)換器(A/D)。A/D轉(zhuǎn)換器以每秒鐘上萬(wàn)次的速率對(duì)聲波進(jìn)行采樣,每個(gè)采樣點(diǎn)都記錄下了原始模擬聲波在某一時(shí)刻的狀態(tài),通常稱之為樣本(sample),而每一秒鐘所采樣的數(shù)目則稱為采樣頻率,通過將一串連續(xù)的樣本連接起來(lái),就可以在計(jì)算機(jī)中描述一段聲音了。對(duì)于采樣過程中的每一個(gè)樣本來(lái)說,數(shù)字音頻系統(tǒng)會(huì)分配一定存儲(chǔ)位來(lái)記錄聲波的振幅,一般稱之為采樣分辯率或者采樣精度,采樣精度越高,聲音還原時(shí)就會(huì)越細(xì)膩。
數(shù)字音頻涉及到的概念非常多,對(duì)于在Linux下進(jìn)行音頻編程的程序員來(lái)說,最重要的是理解聲音數(shù)字化的兩個(gè)關(guān)鍵步驟:采樣和量化。采樣就是每隔一定時(shí)間就讀一次聲音信號(hào)的幅度,而量化則是將采樣得到的聲音信號(hào)幅度轉(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)采樣理論:如果對(duì)某一模擬信號(hào)進(jìn)行采樣,則采樣后可還原的最高信號(hào)頻率只有采樣頻率的一半,或者說只要采樣頻率高于輸入信號(hào)最高頻率的兩倍,就能從采樣信號(hào)系列重構(gòu)原始信號(hào)。正常人聽覺的頻率范圍大約在20Hz~20kHz之間,根據(jù)奈奎斯特采樣理論,為了保證聲音不失真,采樣頻率應(yīng)該在40kHz左右。常用的音頻采樣頻率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采樣頻率,還可以達(dá)到DVD的音質(zhì)。 其中,8kHZ為電話的采樣頻率。
量化位數(shù)
量化位數(shù)是對(duì)模擬音頻信號(hào)的幅度進(jìn)行數(shù)字化,它決定了模擬信號(hào)數(shù)字化以后的動(dòng)態(tài)范圍,常用的有8位、12位和16位。量化位越高,信號(hào)的動(dòng)態(tài)范圍越大,數(shù)字化后的音頻信號(hào)就越可能接近原始信號(hào),但所需要的存貯空間也越大。
聲道數(shù)
聲道數(shù)是反映音頻數(shù)字化質(zhì)量的另一個(gè)重要因素,它有單聲道和雙聲道之分。雙聲道又稱為立體聲,在硬件中有兩條線路,音質(zhì)和音色都要優(yōu)于單聲道,但數(shù)字化后占據(jù)的存儲(chǔ)空間的大小要比單聲道多一倍。
二、聲卡驅(qū)動(dòng)
出于對(duì)安全性方面的考慮,Linux下的應(yīng)用程序無(wú)法直接對(duì)聲卡這類硬件設(shè)備進(jìn)行操作,而是必須通過內(nèi)核提供的驅(qū)動(dòng)程序才能完成。在Linux上進(jìn)行音頻編程的本質(zhì)就是要借助于驅(qū)動(dòng)程序,來(lái)完成對(duì)聲卡的各種操作。
對(duì)硬件的控制涉及到寄存器中各個(gè)比特位的操作,通常這是與設(shè)備直接相關(guān)并且對(duì)時(shí)序的要求非常嚴(yán)格,如果這些工作都交由應(yīng)用程序員來(lái)負(fù)責(zé),那么對(duì)聲卡的編程將變得異常復(fù)雜而困難起來(lái),驅(qū)動(dòng)程序的作用正是要屏蔽硬件的這些底層細(xì)節(jié),從而簡(jiǎn)化應(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)的歷史相對(duì)較長(zhǎng),這些內(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)程序模塊之外,還專門為簡(jiǎn)化應(yīng)用程序的編寫提供了相應(yīng)的函數(shù)庫(kù),與OSS提供的基于ioctl的原始編程接口相比,ALSA函數(shù)庫(kù)使用起來(lái)要更加方便一些。ALSA的主要特點(diǎn)有:
支持多種聲卡設(shè)備
模塊化的內(nèi)核驅(qū)動(dòng)程序
支持SMP和多線程
提供應(yīng)用開發(fā)函數(shù)庫(kù)
兼容OSS應(yīng)用程序
ALSA和OSS最大的不同之處在于ALSA是由志愿者維護(hù)的自由項(xiàng)目,而OSS則是由公司提供的商業(yè)產(chǎn)品,因此在對(duì)硬件的適應(yīng)程度上OSS要優(yōu)于ALSA,它能夠支持的聲卡種類更多。ALSA雖然不及OSS運(yùn)用得廣泛,但卻具有更加友好的編程接口,并且完全兼容于OSS,對(duì)應(yīng)用程序員來(lái)講無(wú)疑是一個(gè)更佳的選擇。
特別推薦
- 電源中的分壓器
- 貿(mào)澤電子為電子設(shè)計(jì)工程師提供先進(jìn)的醫(yī)療技術(shù)資源和產(chǎn)品
- 讓汽車LED照明無(wú)死角,LED驅(qū)動(dòng)的全面進(jìn)化
- 豪威集團(tuán)推出專為無(wú)LED閃爍的汽車攝像頭設(shè)計(jì)的全新1200萬(wàn)像素圖像傳感器
- 貿(mào)澤開售Microchip WBZ350射頻就緒多協(xié)議MCU模塊
- 大聯(lián)大品佳集團(tuán)推出基于聯(lián)發(fā)科技的AI識(shí)別與檢測(cè)方案
- Kioxia推出適用于云端和超大規(guī)模環(huán)境的PCIe 5.0 NVMe EDSFF E1.S SSD
技術(shù)文章更多>>
- 利用自動(dòng)化技術(shù)賦能中國(guó)基礎(chǔ)設(shè)施現(xiàn)代化
- 單結(jié)晶體管符號(hào)和結(jié)構(gòu)
- 了解交流電壓的產(chǎn)生
- 克服碳化硅制造挑戰(zhàn),助力未來(lái)電力電子應(yīng)用
- 實(shí)現(xiàn)不間斷能源的智能備用電池第五部分:輔助電源系統(tǒng)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
感應(yīng)開關(guān)
高頻電感
高通
高通濾波器
隔離變壓器
隔離開關(guān)
個(gè)人保健
工業(yè)電子
工業(yè)控制
工業(yè)連接器
工字型電感
功率表
功率電感
功率電阻
功率放大器
功率管
功率繼電器
功率器件
共模電感
固態(tài)盤
固體繼電器
光傳感器
光電池
光電傳感器
光電二極管
光電開關(guān)
光電模塊
光電耦合器
光電器件
光電顯示