Android 音頻開(kāi)發(fā) 目錄
- Android音頻開(kāi)發(fā)(1):音頻相關(guān)知識(shí)
- Android音頻開(kāi)發(fā)(2):使用AudioRecord錄制pcm格式音頻
- Android音頻開(kāi)發(fā)(3):使用AudioRecord實(shí)現(xiàn)錄音的暫停和恢復(fù)
- Android音頻開(kāi)發(fā)(4):PCM轉(zhuǎn)WAV格式音頻
- Android音頻開(kāi)發(fā)(5):Mp3的錄制 - 編譯Lame源碼
- Android音頻開(kāi)發(fā)(6):Mp3的錄制 - 使用Lame實(shí)時(shí)錄制MP3格式音頻
- Android音頻開(kāi)發(fā)(7):音樂(lè)可視化-FFT頻譜圖
項(xiàng)目地址
https://github.com/zhaolewei/ZlwAudioRecorder
音頻的基礎(chǔ)知識(shí)
-
采樣和采樣頻率:
現(xiàn)在是數(shù)字時(shí)代,在音頻處理時(shí)要先把音頻的模擬信號(hào)變成數(shù)字信號(hào),這叫A/D轉(zhuǎn)換。要把音頻的模擬信號(hào)變成數(shù)字信號(hào),就需要采樣。一秒鐘內(nèi)采樣的次數(shù)稱(chēng)為采樣頻率采樣頻率越高,越接近原始信號(hào),但是也加大了運(yùn)算處理的復(fù)雜度。16000Hz和44.1kHZ(1)
采樣位數(shù)/位寬:
數(shù)字信號(hào)是用0和1來(lái)表示的。采樣位數(shù)就是采樣值用多少位0和1來(lái)表示,也叫采樣精度,用的位數(shù)越多就越接近真實(shí)聲音。如用8位表示,采樣值取值范圍就是-128 ~ 127,如用16位表示,采樣值取值范圍就是-32768 ~ 32767。聲道(channel):
通常語(yǔ)音只用一個(gè)聲道。而對(duì)于音樂(lè)來(lái)說(shuō),既可以是單聲道(mono),也可以是雙聲道(即左聲道右聲道,叫立體聲stereo),還可以是多聲道,叫環(huán)繞立體聲。-
編解碼 :
通常把音頻采樣過(guò)程也叫做脈沖編碼調(diào)制編碼,即PCM(Pulse Code Modulation)編碼,采樣值也叫PCM值。 如果把采樣值直接保存或者發(fā)送,會(huì)占用很大的存儲(chǔ)空間。以16kHz采樣率16位采樣位數(shù)單聲道為例,一秒鐘就有16/8*16000 = 32000字節(jié)。為了節(jié)省保存空間或者發(fā)送流量,會(huì)對(duì)PCM值壓縮。
目前主要有三大技術(shù)標(biāo)準(zhǔn)組織制定壓縮標(biāo)準(zhǔn):
1. ITU,主要制定有線(xiàn)語(yǔ)音的壓縮標(biāo)準(zhǔn)(g系列),有g(shù)711/g722/g726/g729等。
2. 3GPP,主要制定無(wú)線(xiàn)語(yǔ)音的壓縮標(biāo)準(zhǔn)(amr系列等),有amr-nb/amr-wb。后來(lái)ITU吸納了amr-wb,形成了g722.2。
3. MPEG,主要制定音樂(lè)的壓縮標(biāo)準(zhǔn),有11172-3,13818-3/7,14496-3等。
一些大公司或者組織也制定壓縮標(biāo)準(zhǔn),比如iLBC,OPUS。編碼過(guò)程:模擬信號(hào)->抽樣->量化->編碼->數(shù)字信號(hào)
壓縮:
對(duì)于自然界中的音頻信號(hào),如果轉(zhuǎn)換成數(shù)字信號(hào),進(jìn)行音頻編碼,那么只能無(wú)限接近,不可能百分百還原。所以說(shuō)實(shí)際上任何信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)都會(huì)“有損”。但是在計(jì)算機(jī)應(yīng)用中,能夠達(dá)到最高保真水平的就是PCM編碼。因此,PCM約定俗成了無(wú)損編碼
。我們而習(xí)慣性的把MP3列入有損音頻編碼范疇,是相對(duì)PCM編碼的。強(qiáng)調(diào)編碼的相對(duì)性的有損和無(wú)損-
碼率:
碼率 = 采樣頻率 * 采樣位數(shù) * 聲道個(gè)數(shù); 例:采樣頻率44.1KHz,量化位數(shù)16bit,立體聲(雙聲道),未壓縮時(shí)的碼率 = 44.1KHz * 16 * 2 = 1411.2Kbps = 176.4KBps,即每秒要錄制的資源大小,理論上碼率和質(zhì)量成正比800 bps – 能夠分辨的語(yǔ)音所需最低碼率(需使用專(zhuān)用的FS-1015語(yǔ)音編解碼器)
8 kbps —電話(huà)質(zhì)量(使用語(yǔ)音編碼)
8-500 kbps --Ogg Vorbis和MPEG1 Player1/2/3中使用的有損音頻模式
500 kbps–1.4 Mbps —44.1KHz的無(wú)損音頻,解碼器為FLAC Audio,WavPack或Monkey's Audio
1411.2 - 2822.4 Kbps —脈沖編碼調(diào)制(PCM)聲音格式CD光碟的數(shù)字音頻
5644.8 kbps —SACD使用的Direct Stream Digital格式
常用音頻格式
- WAV 格式:音質(zhì)高 無(wú)損格式 體積較大
- AAC(Advanced Audio Coding) 格式:相對(duì)于 mp3,AAC 格式的音質(zhì)更佳,文件更小,有損壓縮,一般蘋(píng)果或者Android SDK4.1.2(API 16)及以上版本支持播放,性?xún)r(jià)比高
- AMR 格式:壓縮比比較大,但相對(duì)其他的壓縮格式質(zhì)量比較差,多用于人聲,通話(huà)錄音
AMR分類(lèi):
AMR(AMR-NB): 語(yǔ)音帶寬范圍:300-3400Hz,8KHz抽樣 - mp3 格式:特點(diǎn) 使用廣泛, 有損壓縮,犧牲了12KHz到16KHz高音頻的音質(zhì)
音頻開(kāi)發(fā)的主要應(yīng)用
- 音頻播放器
- 錄音機(jī)
- 語(yǔ)音電話(huà)
- 音視頻監(jiān)控應(yīng)用
- 音視頻直播應(yīng)用
- 音頻編輯/處理軟件(ktv音效、變聲, 鈴聲轉(zhuǎn)換)
- 藍(lán)牙耳機(jī)/音箱
音頻開(kāi)發(fā)的具體內(nèi)容
- 音頻采集/播放
- 音頻算法處理(去噪、靜音檢測(cè)、回聲消除、音效處理、功放/增強(qiáng)、混音/分離,等等)
- 音頻的編解碼和格式轉(zhuǎn)換
- 音頻傳輸協(xié)議的開(kāi)發(fā)(SIP,A2DP、AVRCP,等等)
參考鏈接
https://www.cnblogs.com/talkaudiodev/p/7041477.html47++++++++