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

Sample size:用來量化一個采樣的幅度,一般為8 bits、16 bits和24 bits。8 bits只有早期的聲卡支持,而24 bits只有專業(yè)的聲卡才支持,我們用的一般都是16 bits的。
Number of channels:聲音通道個數(shù),單聲道為一個,立體聲為兩個,還有更多的(如8個聲道的7.1格式)。一般來說,每個聲道都來源于一個獨立的mic,所以聲道多效果會更好(更真實),當(dāng)然代價也更大。
Frame: Frame是指包含了所有通道的一次采樣數(shù)據(jù),比如對于16bits的雙聲道來說,一個frame的大小為4個字節(jié)(2 * 16)。
一、數(shù)字音頻
音頻信號是一種連續(xù)變化的模擬信號,但計算機(jī)只能處理和記錄二進(jìn)制的數(shù)字信號,由自然音源得到的音頻信號必須經(jīng)過一定的變換,成為數(shù)字音頻信號之后,才能送到計算機(jī)中作進(jìn)一步的處理。
數(shù)字音頻系統(tǒng)通過將聲波的波型轉(zhuǎn)換成一系列二進(jìn)制數(shù)據(jù),來實現(xiàn)對原始聲音的重現(xiàn),實現(xiàn)這一步驟的設(shè)備常被稱為模/數(shù)轉(zhuǎn)換器(A/D)。A/D轉(zhuǎn)換器以每秒鐘上萬次的速率對聲波進(jìn)行采樣,每個采樣點都記錄下了原始模擬聲波在某一時刻的狀態(tài),通常稱之為樣本(sample),而每一秒鐘所采樣的數(shù)目則稱為采樣頻率,通過將一串連續(xù)的樣本連接起來,就可以在計算機(jī)中描述一段聲音了。對于采樣過程中的每一個樣本來說,數(shù)字音頻系統(tǒng)會分配一定存儲位來記錄聲波的振幅,一般稱之為采樣分辯率或者采樣精度,采樣精度越高,聲音還原時就會越細(xì)膩。
數(shù)字音頻涉及到的概念非常多,對于在Linux下進(jìn)行音頻編程的程序員來說,最重要的是理解聲音數(shù)字化的兩個關(guān)鍵步驟:采樣和量化。采樣就是每隔一定時間就讀一次聲音信號的幅度,而量化則是將采樣得到的聲音信號幅度轉(zhuǎn)換為數(shù)字值,從本質(zhì)上講,采樣是時間上的數(shù)字化,而量化則是幅度上的數(shù)字化。下面介紹幾個在進(jìn)行音頻編程時經(jīng)常需要用到的技術(shù)指標(biāo):
采樣頻率
采樣頻率是指將模擬聲音波形進(jìn)行數(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ù)字化以后的動態(tài)范圍,常用的有8位、12位和16位。量化位越高,信號的動態(tài)范圍越大,數(shù)字化后的音頻信號就越可能接近原始信號,但所需要的存貯空間也越大。
聲道數(shù)
聲道數(shù)是反映音頻數(shù)字化質(zhì)量的另一個重要因素,它有單聲道和雙聲道之分。雙聲道又稱為立體聲,在硬件中有兩條線路,音質(zhì)和音色都要優(yōu)于單聲道,但數(shù)字化后占據(jù)的存儲空間的大小要比單聲道多一倍。
二、聲卡驅(qū)動
出于對安全性方面的考慮,Linux下的應(yīng)用程序無法直接對聲卡這類硬件設(shè)備進(jìn)行操作,而是必須通過內(nèi)核提供的驅(qū)動程序才能完成。在Linux上進(jìn)行音頻編程的本質(zhì)就是要借助于驅(qū)動程序,來完成對聲卡的各種操作。
對硬件的控制涉及到寄存器中各個比特位的操作,通常這是與設(shè)備直接相關(guān)并且對時序的要求非常嚴(yán)格,如果這些工作都交由應(yīng)用程序員來負(fù)責(zé),那么對聲卡的編程將變得異常復(fù)雜而困難起來,驅(qū)動程序的作用正是要屏蔽硬件的這些底層細(xì)節(jié),從而簡化應(yīng)用程序的編寫。目前Linux下常用的聲卡驅(qū)動程序主要有兩種:OSS和ALSA。
最早出現(xiàn)在Linux上的音頻編程接口是OSS(Open Sound System),它由一套完整的內(nèi)核驅(qū)動程序模塊組成,可以為絕大多數(shù)聲卡提供統(tǒng)一的編程接口。OSS出現(xiàn)的歷史相對較長,這些內(nèi)核模塊中的一部分(OSS/Free)是與Linux內(nèi)核源碼共同免費發(fā)布的,另外一些則以二進(jìn)制的形式由4Front Technologies公司提供。由于得到了商業(yè)公司的鼎力支持,OSS已經(jīng)成為在Linux下進(jìn)行音頻編程的事實標(biāo)準(zhǔn),支持OSS的應(yīng)用程序能夠在絕大多數(shù)聲卡上工作良好。
雖然OSS已經(jīng)非常成熟,但它畢竟是一個沒有完全開放源代碼的商業(yè)產(chǎn)品,ALSA(AdvancedLinux Sound Architecture)恰好彌補(bǔ)了這一空白,它是在Linux下進(jìn)行音頻編程時另一個可供選擇的聲卡驅(qū)動程序。ALSA除了像OSS那樣提供了一組內(nèi)核驅(qū)動程序模塊之外,還專門為簡化應(yīng)用程序的編寫提供了相應(yīng)的函數(shù)庫,與OSS提供的基于ioctl的原始編程接口相比,ALSA函數(shù)庫使用起來要更加方便一些。ALSA的主要特點有:
支持多種聲卡設(shè)備
模塊化的內(nèi)核驅(qū)動程序
支持SMP和多線程
提供應(yīng)用開發(fā)函數(shù)庫
兼容OSS應(yīng)用程序
ALSA和OSS最大的不同之處在于ALSA是由志愿者維護(hù)的自由項目,而OSS則是由公司提供的商業(yè)產(chǎn)品,因此在對硬件的適應(yīng)程度上OSS要優(yōu)于ALSA,它能夠支持的聲卡種類更多。ALSA雖然不及OSS運用得廣泛,但卻具有更加友好的編程接口,并且完全兼容于OSS,對應(yīng)用程序員來講無疑是一個更佳的選擇。
特別推薦
- 機(jī)構(gòu)預(yù)警:DRAM價格壓力恐持續(xù)至2027年,存儲原廠加速擴(kuò)產(chǎn)供應(yīng)HBM
- IDC發(fā)出預(yù)警:存儲芯片暴漲,明年DIY電腦成本恐大幅攀升
- 2025年全球智能手表市場觸底反彈,出貨量將增長7%
- 從集成到獨立!三星首款2nm芯片Exynos 2600將不集成5G基帶
- AI熱潮的連鎖反應(yīng):三星、SK海力士上調(diào)HBM3E合約價
技術(shù)文章更多>>
- 無負(fù)擔(dān)佩戴,輕便舒適體驗:讓智能穿戴設(shè)備升級你的生活方式
- TWS 耳機(jī)智能進(jìn)階的 “隱形核心”:解讀無錫迪仕 DH254 霍爾開關(guān)
- - 解決頻率偏差問題的可重構(gòu)低頻磁電天線研發(fā)
- 從實驗室到產(chǎn)業(yè)界:鋰硫電池的商業(yè)化之路探析
- Alleima 合瑞邁Hiflex?壓縮機(jī)閥片鋼助力空調(diào)能效提升超18%
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
風(fēng)速風(fēng)向儀
風(fēng)揚高科
輔助駕駛系統(tǒng)
輔助設(shè)備
負(fù)荷開關(guān)
復(fù)用器
伽利略定位
干電池
干簧繼電器
感應(yīng)開關(guān)
高頻電感
高通
高通濾波器
隔離變壓器
隔離開關(guān)
個人保健
工業(yè)電子
工業(yè)控制
工業(yè)連接器
工字型電感
功率表
功率電感
功率電阻
功率放大器
功率管
功率繼電器
功率器件
共模電感
固態(tài)盤
固體繼電器


