Android音频基础知识
????????鳥鳴清脆如玉,琴聲婉轉(zhuǎn)悠揚。。。聲音對我們來說再也熟悉不過了,聲音是由物體的振動產(chǎn)生的,并且以波的形式傳播,我們把它叫做聲波。
????????振動會發(fā)出聲音,為什么我們聽不到蝴蝶翅膀振動發(fā)出的聲音,卻能聽到討厭的蚊子聲?為什么用力鼓掌比輕輕拍掌發(fā)出的聲音大?這些問題要找到答案,就需要研究聲音的特性。
1 聲音的特性
1.1 音調(diào)(Pitch)
????????我們接觸到的各種聲音,有些聽起來音調(diào)高,有些聽起來音調(diào)低。聲音為什么會有音調(diào)高低的不同?什么因素決定了音調(diào)的高低?
????????物體振動的快,發(fā)出的音調(diào)就高,振動的慢,發(fā)出的音調(diào)就低。可見發(fā)聲體振動的快慢是一個很重要的物理量,他決定著音調(diào)的高低。物理學中用每秒內(nèi)振動的次數(shù)——頻率(Frequency)來描述物體振動的快慢。頻率決定聲音的音調(diào),頻率高則音調(diào)高,頻率低則音調(diào)低。頻率的單位為赫茲(Hertz),簡稱赫,符號Hz。如果一個物體一秒內(nèi)振動100次,他的頻率就是100Hz。
????????人能感受到的聲音頻率有一定的范圍,多數(shù)人能夠聽到的頻率范圍大約20Hz到20000Hz。人們把高于20000Hz的聲叫做超生波,把低于20Hz的叫做次聲波。
?
?
1.2 響度(Loudness)
????????聲音有音調(diào)的不同,也有強弱的不同,例如,用力擊鼓比輕輕擊鼓產(chǎn)生的聲音大。物理學中,聲音的強弱叫做響度。什么因素決定聲音的響度呢?
????????物理學中用振幅(Amplitude)來描述物體振動的幅度。物體的振幅越大,產(chǎn)生聲音的響度越大。
1.3 音色(Musical quality)
????????頻率的高低決定了音調(diào),振幅的大小影響聲音的響度。但是不同物體發(fā)出的聲音,即便音調(diào)和響度相同,我們還是能分辨出他們的不同。這表明在聲音的特性中還有一個特性是很重要的,他就是音色。不同發(fā)聲體的材料、結構不同,發(fā)出的聲音的音色也就不同。體現(xiàn)在聲波上,就是聲波的形狀不同。
????????人們在自然界中聽到的絕大部分聲音都具有非常復雜的波形,這些波形由基波和多種諧波構成。諧波的多少和強弱構成了不同的音色。各種發(fā)聲物體在發(fā)出同一音調(diào)聲音時,其基波成分相同。但由于諧波的多少不同,并且各諧波的幅度各異,因而產(chǎn)生了不同的音色。
????????音頻的這三個屬性,是所有音頻處理的基礎,所以在我們閱讀源碼的時候,要結合這些基礎知識來看。
2 智能設備中音頻
????????聲音如此美妙~智能設備擁有音頻,就像人類擁有聽和說的能力,所以包括手機、平板、車載智能座艙,音頻都是其中非常關鍵的子系統(tǒng)。
????????從整體上來講,計算機的世界里音頻的整體環(huán)節(jié)包括采集、傳輸、存儲、播放四個環(huán)節(jié)。
????????借一張示意圖看起來更加形象一些:
?
????????如果抽象一下看這個流程,大概如下:
?
3 音頻的采集
????????正如第二節(jié)所看到的,在現(xiàn)實生活中,我們聽到的聲音都是時間連續(xù)的,我們把這種信號叫模擬信號。模擬信號(連續(xù)信號)需要量化成數(shù)字信號(離散的、不連續(xù)的信號)以后才能在計算機中使用。所以數(shù)字音頻系統(tǒng)需要將聲波波形信號通過ADC轉(zhuǎn)換成計算機支持的二進制,進而保存成音頻文件,這一過程叫做音頻采樣(Audio Sampling)。
????????所以簡單來講,音頻采集就是用采集設備(比如Microphone)捕獲聲音信息。然后將模擬信號通過模數(shù)轉(zhuǎn)換器(ADC)處理成計算機能接受的二進制數(shù)據(jù)。同時根據(jù)需求進行必要的渲染處理,比如聲學前處理,例如降噪、回聲消除、混響處理、音效調(diào)整、過濾等等。
3.1 采集流程
3.1.1 模擬信號
????????模擬信號就是樣本(Sample),比如一段連續(xù)的聲音波形,這是我們進行采樣的初始資料,現(xiàn)實生活中的聲音表現(xiàn)為連續(xù)的、平滑的波形,其橫坐標為時間軸,縱坐標表示聲音的強弱。
3.1.2 采樣
????????采樣就是按照一定的時間間隔在連續(xù)的波上進行采樣取值,如下圖所示取了10個樣。
????????采樣通過采樣器(Sampler)完成,采樣器是將樣本轉(zhuǎn)換成終態(tài)信號的關鍵。它可以是一個子系統(tǒng),也可以指一個操作過程,甚至是一個算法,取決于不同的信號處理場景。理想的采樣器要求盡可能不產(chǎn)生信號失真。
?
3.1.3 量化
????????采樣后的值還需要通過量化(Quantization),也就是將連續(xù)值近似為某個范圍內(nèi)有限多個離散值的處理過程。因為原始數(shù)據(jù)是模擬的連續(xù)信號,而數(shù)字信號則是離散的,它的表達范圍是有限的,所以量化是必不可少的。
????????如上圖所示,量化也就是給縱坐標定一個刻度,記錄下每個采樣的縱坐標的值。
3.1.4 編碼
????????計算機的世界里,所有數(shù)值都是用二進制表示的,因而我們還需要把量化值進行二進制編碼,將每個量化后的樣本值轉(zhuǎn)換成二進制編碼,這一步通常與量化同時進行。
3.1.5 數(shù)字信號
????????將所有樣本二進制編碼連起來存儲在計算機上,形成了最后的音頻文件,這樣就形成了聲音的數(shù)字信號。
????????概括起來,音頻的采集核心是把連續(xù)的模擬信號轉(zhuǎn)換成離散的數(shù)字信號。整個流程如下圖所示:
????????借用一張圖,細化下這個流程就是:
?
????????PCM(Pulse-code modulation)俗稱脈沖編碼調(diào)制,是將模擬信號數(shù)字化的一種經(jīng)典方式,得到了非常廣泛的應用。比如數(shù)字音頻在計算機、DVD以及數(shù)字電話等系統(tǒng)中的標準格式采用的就是PCM。它的基本原理就是我們上面的幾個流程,即對原始模擬信號進行抽樣、量化和編碼,從而產(chǎn)生PCM流。
3.2 音頻采集中的概念
3.2.1 采樣深度(Bit Depth)
????????一個采樣用多少個bit存放,常用的是16bit(這就意味著上述的量化過程中,縱坐標的取值范圍是0-65535,聲音是沒有負值的)。
????????采樣深度具有比較重要的意義,因為我們知道量化是將連續(xù)值近似為某個范圍內(nèi)有限多個離散值的處理過程,那么這個范圍的寬度以及可用離散值的數(shù)量會直接影響到音頻采樣的準確性。
3.2.2 采樣率(Sampling Rate)
????????采樣率就是采樣頻率(1秒采樣次數(shù)),在將連續(xù)信號轉(zhuǎn)化成離散信號時,就涉及到采樣周期的選擇。如果采樣周期太長,雖然文件大小得到控制,但采樣后得到的信息很可能無法準確表達原始信息;反之,如果采樣的頻率過快,則最終產(chǎn)生的數(shù)據(jù)量會大幅增加,這兩種情況都是我們不愿意看到的,因而需要根據(jù)實際情況來選擇合適的采樣速率。
????????一般采樣率有8kHz、16kHz、32kHz、44.1kHz、48kHz等,采樣頻率越高,聲音的還原就越真實越自然,當然數(shù)據(jù)量就越大。由于人耳所能辨識的聲音范圍是20-20KHZ,所以人們一般都選用44.1KHZ(CD)、48KHZ或者96KHZ來做為采樣速率;
????????我們大概算一下,如果按照44.1kHz的頻率進行采樣,對20HZ音頻進行采樣,一個正玄波采樣2200次;對20000HZ音頻進行采樣,平均一個正玄波采樣2.2次。
3.2.3 聲道數(shù)(Channel)
????????一個聲道(AudioChannel),簡單來講就代表了一種獨立的音頻信號。為了播放聲音時能夠還原真實的聲場,在錄制聲音時在前后左右?guī)讉€不同的方位同時獲取聲音,每個方位的聲音就是一個聲道。聲道數(shù)是聲音錄制時的音源數(shù)量或回放時相應的揚聲器數(shù)量,有單聲道、雙聲道、多聲道。
Monaural (單聲道)
????????早期的音頻錄制是單聲道的,它只記錄一種音源,所以在處理上相對簡單。播放時理論上也只要一個揚聲器就可以了——即便有多個揚聲器,它們的信號源也是一樣的,起不到很好的效果
Stereophonic(立體聲)
????????之所以稱為立體聲,是因為人們可以感受到聲音所產(chǎn)生的空間感。大自然中的聲音就是立體的,比如辦公室里鍵盤敲擊聲,馬路上汽車鳴笛,人們的說話聲等等。那么這些聲音為什么會產(chǎn)生立體感呢?
????????我們知道,當音源發(fā)聲后(比如你右前方有人在講話),音頻信號將分別先后到達人類的雙耳。在這個場景中,是先傳遞到右耳然后左耳,并且右邊的聲音比左邊稍強。這種細微的差別通過大腦處理后,我們就可以判斷出聲源的方位了。
????????這個原理現(xiàn)在被應用到了多種場合。在音樂會的錄制現(xiàn)場,如果我們只使用單聲道采集,那么后期回放時所有的音樂器材都會從一個點出來;反之,如果能把現(xiàn)場各方位的聲音單獨記錄下來,并在播放時模擬當時的場景,那么就可以營造出音樂會的逼真氛圍。
????????Surround Sound(4.1環(huán)繞立體聲)
????????隨著技術的發(fā)展和人們認知的提高,單純的雙聲道已不能滿足需求了,于是更多的聲道數(shù)逐漸成為主流,其中被廣泛采用的就有四聲道環(huán)繞立體聲。
????????其中的“4”代表了四個音源,位置分別是前左(Front-Left)、前右(Front-Right)、后左(Rear-Left)、后右(Rear-Right)。而小數(shù)點后面的1,則代表了一個低音喇叭(Subwoofer),專門用于加強低頻信號效果
????????Surround Sound(5.1環(huán)繞立體聲)
????????相信大家都聽過杜比數(shù)字技術,這是眾多5.1環(huán)繞聲中的典型代表。另外還有比如DTS、SDDS等都屬于5.1技術。5.1相對于4.1多了一個聲道,位置排列分別是前左、前右、中置(Center Channel)和兩個Surround Channel,外加一個低音喇叭。
3.2.4 碼率
????????也叫比特率,是指每秒傳送的bit數(shù)。單位為 bps(Bit Per Second),比特率越高,每秒傳送數(shù)據(jù)就越多,音質(zhì)就越好。
3.2.5 音頻幀(Frame)
????????幀(Frame)記錄了一個聲音單元,其長度為樣本長度(采樣位數(shù))和通道數(shù)的乘積。
3.3 Nyquist–Shannon采樣定律
????????在音頻采用中, 都會用到Nyquist–Shannon采樣定律,由Harry Nyquist和Claude Shannon總結出來的采樣規(guī)律,為我們選擇合適的采樣頻率提供了理論依據(jù)。這個規(guī)律又被稱為“Nyquist sampling theorem”或者“The sampling theorem”,中文通常譯為“奈奎斯特采樣理論”。它的中心思想是:
????????“當對被采樣的模擬信號進行還原時,其最高頻率只有采樣頻率的一半”。
????????換句話說,如果我們要完整重構原始的模擬信號,則采樣頻率就必須是它的兩倍以上。比如人的聲音范圍是20-20kHZ,那么選擇的采樣頻率就應該在40kHZ左右,這也就是為什么人聲的采樣用44.1KHZ的比較多。數(shù)值太小則聲音將產(chǎn)生失真現(xiàn)象,而數(shù)值太大也無法明顯提升人耳所能感知的音質(zhì)。
4 音頻的傳輸
????????音頻的傳輸通常指音頻在網(wǎng)絡上的傳輸,例如電話或者網(wǎng)絡電話、目前流行視頻會議都是非常常用的場景。由于人耳非常敏感,網(wǎng)絡導致的延時、卡頓、回聲都會嚴重影響客戶體驗,音頻的網(wǎng)絡傳輸需要重點解決這些問題。
????????音頻網(wǎng)傳輸上通常跟視頻一起,并被稱為流媒體。流媒體包括廣義和狹義的含義,在廣義上的流媒體指的是音頻和視頻形式穩(wěn)定和連續(xù)的系列的流動流的傳輸技術,方法和協(xié)議和重放的總稱,即,流媒體技術;狹義上的流是相對于傳統(tǒng)的下載——回放模式而言,是指從互聯(lián)網(wǎng)上獲取新的音頻和視頻等多媒體數(shù)據(jù)的方法,它可以支持多媒體數(shù)據(jù)流的實時播放的實時傳輸。
????????網(wǎng)絡傳輸?shù)拇笾虏襟E如下:
????????1、發(fā)起會話,通常使用Sip協(xié)議;
????????2、對采集到的音頻進行壓縮編碼,可以采用硬件編碼或者軟件編碼;
????????3、傳輸,例如RTP協(xié)議;
????????4、在接收端使用硬件或者軟件解碼,并進行回放;
????????5、結束會話,通過Sip協(xié)議結束會話。
????????如上所說,在流媒體的網(wǎng)絡傳輸中,會用到RTSP實時流協(xié)議,以及RTP和RTCP協(xié)議,SIP會話協(xié)議等,下面也一同做個簡單介紹。
????????RTP數(shù)據(jù)協(xié)議
????????實時傳輸協(xié)議是在因特網(wǎng)網(wǎng)絡協(xié)議多媒體數(shù)據(jù)流進行處理,也能夠使用流網(wǎng)絡環(huán)境中的一個或許多來實現(xiàn)實媒體數(shù)據(jù)的傳輸-time。
????????RTP協(xié)議目的是提供實時數(shù)據(jù)端到端傳輸服務,因此,RTP的概念沒有連接,它可以在非取向連接或面向連接的頂部建造傳輸協(xié)議底層;RTP不依賴于特定的網(wǎng)絡地址格式,只需要對底層傳輸協(xié)議和鏈段的支撐框架就足夠了;RTP本身不提供任何額外的可靠性機制,這些必須使傳輸協(xié)議或應用程序本身來保證。
????????RTCP控制協(xié)議
????????RTCP控制管理協(xié)議需要與RTP數(shù)據(jù)進行協(xié)議可以一起配合使用,當應用系統(tǒng)程序啟動建設一個RTP會話時將同時需要占用兩個端口,分別供RTP和RTCP使用。RTP本身并不能為按序傳輸數(shù)據(jù)包提供可靠的保證,也不提供流量控制和擁塞控制,這些都由RTCP來負責完成。RTP和RTCP通常將使用相同的分配機制,發(fā)送控制信息,以周期性地在會話中的所有成員,通過接收從中獲取相關信息的會話參與者的應用程序數(shù)據(jù),和網(wǎng)絡狀態(tài),數(shù)據(jù)包丟失的概率反饋,因此能夠控制服務或網(wǎng)絡狀態(tài)診斷的質(zhì)量。
????????RTSP實時流協(xié)議
????????作為自己一個應用層協(xié)議,RTSP提供了一個企業(yè)可供擴展的框架,它的意義主要在于可以使得信息實時流媒體數(shù)據(jù)的受控和點播變得更加可能。總體而言,RTSP是用于控制具有實時特性的數(shù)據(jù)傳輸?shù)牧髅襟w該協(xié)議,但本身并不傳輸數(shù)據(jù),但是必須依賴于由底層傳輸協(xié)議提供的某些服務。RTSP可以通過對流媒體發(fā)展提供一些諸如播放、暫停、快進等操作,它負責定義一個具體的控制系統(tǒng)消息、操作方式方法、狀態(tài)碼等,此外還描述了與RTP間的交互技術操作。
????????SIP協(xié)議
????????SIP是一個系統(tǒng)應用層的控制管理協(xié)議,可以直接用來進行建立、修改、和終止使用多媒體會話。SIP還可以邀請與會者參加已經(jīng)存在的會議,例如多方會議。
????????音頻編碼
????????用于網(wǎng)絡傳輸?shù)囊纛l編碼主要有兩個主要特點,第一是更關注語音壓縮,畢竟,本次會議主要是聽人說話;音樂可能不是很好的壓縮;第二個是壓縮比比較大,比較低的比特率,典型克。723支持5.9k/s這樣的碼率,而且語音音質(zhì)還很不錯。iso的音頻數(shù)據(jù)可能更為人需要熟知企業(yè)一些,最流行的就是mp3,它的全稱是mpeg-1 audio layer 3,意思是mpeg-1的音頻進行第三層;另外,最新的音頻算法可以被稱為aac,它定義在mpeg-2或mpeg-4的音頻以及部分。它們是由質(zhì)量好,多通道,高精度采樣,采樣頻率,尤其是樂比G系列好得多的壓縮表征。
5 音頻的存儲
5.1音頻的壓縮
????????處理后的RAW音頻數(shù)據(jù)已經(jīng)可以存儲到計算機設備中了。不過由于這時的音頻數(shù)據(jù)體積相對龐大,不利于保存和傳輸,通常還會對其進行壓縮處理。比如我們常見的mp3音樂,實際上就是對原始數(shù)據(jù)采用相應的壓縮算法后得到的。壓縮過程根據(jù)采樣率、位深等因素的不同,最終得到的音頻文件可能會有一定程度的失真,另外,音視頻的編解碼既可以由純軟件完成,也同樣可以借助于專門的硬件芯片來完成。
????????前面小節(jié)我們分析了音頻采樣的基本過程,它將連續(xù)的聲音波形轉(zhuǎn)換成為若干范圍內(nèi)的離散數(shù)值,從而將音頻數(shù)據(jù)用二進制的形式在計算機系統(tǒng)中表示。不過音頻的處理并沒有結束,我們通常還需要對上述過程產(chǎn)生的數(shù)據(jù)進行格式轉(zhuǎn)化,然后才最終存儲到設備中。
????????這里要特別注意文件格式(FileFormat)和文件編碼器(Codec)的區(qū)別。編碼器負責將原始數(shù)據(jù)進行一定的前期處理,比如壓縮算法以減小體積,然后才以某種特定的文件格式進行保存。Codec和File Format不一定是一對一的關系,比如常見的AVI就支持多種音頻和視頻編碼方式。本小節(jié)所講述的以文件格式為主。比如上面提到過,模擬的音頻信號轉(zhuǎn)換為數(shù)字信號需要經(jīng)過采樣和量化,量化的過程被稱之為編碼,根據(jù)不同的量化策略,產(chǎn)生了許多不同的編碼方式,常見的編碼方式有:PCM 和 ADPCM,這些數(shù)據(jù)代表著無損的原始數(shù)字音頻信號,添加一些文件頭信息,就可以存儲為WAV文件了,它是一種由微軟和IBM聯(lián)合開發(fā)的用于音頻數(shù)字存儲的標準,可以很容易地被解析和播放。
????????我們把數(shù)字音頻格式分為以下幾種:
????????不壓縮的格式(UnCompressed Audio Format)
????????比如前面所提到的PCM數(shù)據(jù),就是采樣后得到的未經(jīng)壓縮的數(shù)據(jù)。PCM數(shù)據(jù)在Windows和Mac系統(tǒng)上通常分別以wav和aiff后綴進行存儲。可想而知,這樣的文件大小是比較可觀的。
????????無損壓縮格式(Lossless Compressed Audio Format)
????????這種壓縮的前提是不破壞音頻信息,也就是說后期可以完整還原出原始數(shù)據(jù)。同時它在一定程度上可以減小文件體積。比如FLAC、APE(Monkey’sAudio)、WV(WavPack)、m4a(Apple Lossless)等等。
????????有損壓縮格式(Lossy Compressed Audio Format)
????????無損壓縮技術能減小的文件體積相對有限,因而在滿足一定音質(zhì)要求的情況下,我們還可以進行有損壓縮。其中最為人熟知的當然是mp3格式,另外還有iTunes上使用的AAC,這些格式通常可以指定壓縮的比率——比率越大,文件體積越小,但效果也越差。
????????音頻壓縮的基本原理:
????????頻譜掩蔽效應: 人耳所能察覺的聲音信號的頻率范圍為20Hz~20KHz,在這個頻率范圍以外的音頻信號屬于冗余信號。
????????時域掩蔽效應: 當強音信號和弱音信號同時出現(xiàn)時,弱信號會聽不到,因此,弱音信號也屬于冗余信號。
5.2 音頻編解碼器
????????常見的音頻壓縮格式:
????????常見的音頻編解碼器包括OPUS、AAC、Vorbis、Speex、iLBC、AMR、G.711等。目前泛娛樂化直播系統(tǒng)采用rtmp協(xié)議,支持AAC和Speex。
????????性能上來看,OPUS > AAC > Vorbis,其它的逐漸被淘汰。
????????AAC編解碼器介紹
????????AAC(Advanced Audio Coding)編解碼器應用范圍特別廣,編解碼的音頻質(zhì)量高保真,它出現(xiàn)的目的是取代mp3格式,因為mp3是有損壓縮,對音頻質(zhì)量有一定損耗,而AAC對于原始數(shù)據(jù)的損耗就會小很多,而且壓縮率很高。目前市面上90%以上的直播系統(tǒng)都是用的AAC(雖然OPUS性能最好,但是rtmp協(xié)議不支持OPUS)。
????????AAC常用規(guī)格
????????AAC目前常用的規(guī)格有 AAC LC、AAC HE V1、AAC HE V2。
????????AAC LC
????????AAC LC (Low Complexity) 是低復雜度,一般碼率128kbt/s。
????????AAC HE V1
????????AAC HE V1是在AAC LC基礎上加入了SBR(Spectral Band Replication)技術,也就是分頻復用,加入這種技術后使碼流變得更低,而且音質(zhì)更好。比如按照44.1kHz采樣率,20Hz頻段一個正玄波采樣2200個,這太浪費了,而在20000Hz頻段一個正玄波采樣2.2次,采樣次數(shù)太少導致音質(zhì)較差。采用SBR進行分頻處理,在低頻段降低采樣率,在高頻段提高采樣率,這樣既能降低碼率又能提高音質(zhì)。AAC HE V1一般碼率為64kbt/s左右。
????????AAC HE V2
????????AAC HE V2在AAC HE V1的基礎上又增加了PS(Parametric Stereo)技術。也就是將立體聲雙聲道分別保存,一個聲道的數(shù)據(jù)完整保存,另一個聲道只存儲一些差異性的參數(shù)信息,因為兩個聲道信息相關性非常強,可以通過那些差異性參數(shù)來還原這個聲道的信息。AAC HE V1一般碼率為32kbt/s左右。
6 音頻的回放
6.1 音頻回放流程
????????音頻回放邏輯上可以認為是音頻采集的逆過程,整個采集過程的一個逆序執(zhí)行,只不過是最后對應的設備是聲音輸出設備;
????????所以回放實際流程是從本地存儲取出音頻相關文件,或者從網(wǎng)絡端獲取實時音頻流后,進行相應的解碼后,通過本地系統(tǒng)從聲音輸出設備中播放出來,基本的流程如下;
????????1、從網(wǎng)絡端獲取實時通訊音頻流或者點播音頻流,如果是本地的話,從本地存儲設備中取出相關文件,并根據(jù)錄制過程采用的編碼方式進行相應的解碼;
????????2、智能設備的音頻系統(tǒng)為這一播放實例選定最終匹配的音頻回放設備;
????????3、解碼后的數(shù)據(jù)經(jīng)過音頻系統(tǒng)設計的路徑傳輸;
????????4、音頻數(shù)據(jù)信號通過數(shù)模轉(zhuǎn)換器(DAC)變換成模擬信號;
????????5、模擬信號經(jīng)過回放設備,還原出原始聲音。
6.2 音頻回放的概念
????????采集過程中所涉及到的概念在播放過程中都會涉及到,采樣深度/采樣率/聲道等等,可以參照3.2節(jié)。
????????回放中和采集有些不同的是,回放要根據(jù)可以支持用戶根據(jù)實際情況控制回放聲音的大小。
6.3 音量控制
6.3.1 音量的概念
????????可能大家會說,音量還不簡單嗎。如果我們要深入研究音頻系統(tǒng),可能要深入了解一些。
????????音量又稱音強、響度,是指人耳對所聽到的聲音大小強弱的主觀感受,其客觀評價尺度是聲音的振幅大小。這種感受源自物體振動時所產(chǎn)生的壓力,即聲壓。物體振動通過不同的介質(zhì),將其振動能量傳導開去。人們?yōu)榱藢β曇舻母惺芰炕煽梢员O(jiān)測的指標,就把聲壓分成“級”——聲壓級,以便能客觀的表示聲音的強弱,其單位稱為“分貝”(dB)。從一定的意義上講,音量和響度幾乎是同等意義的概念。
????????所以音量的表示實際上就是量化過程中每個采樣數(shù)據(jù)的level值,只要適當?shù)脑龃蠡蛘呖s小采樣的level就可以達到更改音量的目的。
????????但需要注意的是,并是不將level值*2就能得到兩倍于原聲音的音量。
????????因為如下兩個原因:
????????數(shù)據(jù)溢出: 我們都知道每個采樣數(shù)據(jù)的取值范圍是有限制的,例如一個signed 8-bit樣本,取值范圍為-128~128,值為125時,放大兩倍后的值為250,超過了可描述的范圍,此時發(fā)生了數(shù)據(jù)溢出。這個時候就需要我們做策略性的裁剪處理,使放大后的值符合當前格式的取值區(qū)間。
????????對數(shù)描述: 平時表示聲音強度我們都是用分貝(db)作單位的,聲學領域中,分貝的定義是聲源功率與基準聲功率比值的對數(shù)乘以10的數(shù)值。根據(jù)人耳的心理聲學模型,人耳對聲音感知程度是對數(shù)關系,而不是線性關系。人類的聽覺反應是基于聲音的相對變化而非絕對的變化。對數(shù)標度正好能模仿人類耳朵對聲音的反應。所以用分貝作單位描述聲音強度更符合人類對聲音強度的感知。前面我們直接將聲音乘以某個值,也就是線性調(diào)節(jié),調(diào)節(jié)音量時會感覺到剛開始音量變化很快,后面調(diào)的話好像都沒啥變化,使用對數(shù)關系調(diào)節(jié)音量的話聲音聽起來就會均勻增大。
????????如下圖所示,橫軸表示音量調(diào)節(jié)滑塊,縱坐標表示人耳感知到的音量,圖中取了兩塊橫軸變化相同的區(qū)域,音量滑塊滑動變化一樣,但是人耳感覺到的音量變化是不一樣的,在左側也就是較安靜的地方,感覺到音量變化大,在右側聲音較大區(qū)域人耳感覺到的音量變化較小。
????????那音量怎么算合適的呢?不管是耳機發(fā)燒還是喇叭發(fā)燒,正確答案是一樣的:最接近現(xiàn)場實際聆聽的音量,是最合適的音量。也就是說,你聽一張交響曲的CD,音量調(diào)到多大最合適?你就想象自己正坐在音樂廳里聽一個樂隊表演這首交響曲,假想不是在聽CD,那么,如果你的音樂廳現(xiàn)場經(jīng)驗夠豐富,你會知道,你坐在音樂廳中排位置,大致會是一個怎樣的音量。就把HI-FI的音量調(diào)到這么大,最接近現(xiàn)場真實的響度,就是最合適的。用這個音量聽,失真最小,再現(xiàn)音樂最逼真,最容易出好效果。
6.3.2 Weber–Fechner law
????????估計知道這個定律的人比較少,它是音頻系統(tǒng)中計算聲音大小的一個重要依據(jù)。從嚴格意義上講,它并不只適用于聲音感知,而是人體各種感觀(聽覺、視覺、觸覺)與刺激物理量之間的一條綜合規(guī)律。其中心思想用公式表達就是:
????????△I/I=C
????????其中△I表示差別閾值,I是原先的刺激量,而C則是常量。換句話說,就是能引起感觀變化的刺激差別量與原先的刺激量比值是固定的。這樣子說可能比較抽象,可以舉一個價格差異感的例子,價格差異感是指當購買者在面對價格的調(diào)整、變化或者不同價格時的心理認知程度。如果消費者能夠?qū)r格的差異作出理性的判斷,那么當絕對的價差—樣時,就應該產(chǎn)生相同的行為。但是實踐和實驗的結果都表明,購買者對同樣的價差的反應并不相同。下面是兩個不同假設條件的實驗:
????????實驗A:假設你所光顧的文具店計算器的價格是20元,而有人告訴你其他商店的價格是15元。
????????實驗B:假設你所光顧的文具店計算器的價格是120元,而有人告訴你其他商店的價格是115元。
????????那么,在哪種情況下你會改變到其他商店去購買?
????????實驗的結果是,在A實驗中大約68%的人會換一家商店去購買,B實驗中大約29%人會愿意換一家商店去購買。這種實驗的結果有什么特別的含義嗎?只要我們仔細分析一下兩組實驗中的價差,就會發(fā)現(xiàn)兩組實驗的差價其實是一樣的(都是5元),所以實驗結果的不同尋常之處就在于,如果購物者都是理性經(jīng)濟人的話,為什么在相同的經(jīng)濟損益面前,其行為卻有如此的不同呢?進一步分析,我們會發(fā)現(xiàn),雖然兩種實驗中購物者實際節(jié)省的都是5元,但是在A中,5元相對于價格總額是一個不小的數(shù)字;而在B中,5元相對于價格微不足道。這就是營銷學中著名的韋伯-費希納定律定律:購買者對價格的感受與基礎價格的水平有關,購買者對價格的感受更多地取決于相對價值,而非絕對價值。
????????這就是德國心理物理學家ErnstHeinrich Weber發(fā)現(xiàn)的規(guī)律,后來的學生GustavFechner把這一發(fā)現(xiàn)系統(tǒng)地用公式表達出來,就是上述公式所表達的韋伯定律。
????????后來,Fechner在此基礎上又做了改進。他提出刺激量和感知是呈對數(shù)關系的,即當刺激強度以幾何級數(shù)增長時,感知強度則以算術級數(shù)增加。這就是Weber–Fechner law,如下公式所示:
????????S = C log R
????????那么這對音頻系統(tǒng)有什么指導意義呢?
????????我們知道,系統(tǒng)音量是可調(diào)的,比如分為0-20個等級。這些等級又分別對應不同的輸出電平值,那么我們?nèi)绾未_定每一個等級下應該設置的具體電平值呢?你可能會想到平均分配。沒錯,這的確是一種方法,只不過按照這樣的算法所輸出的音頻效果在用戶聽來并不是最佳的,因為聲音的變化不連續(xù)。
????????一個更好的方案就是遵循Weber–Fechnerlaw,而采用對數(shù)的方法。在Android系統(tǒng)中,音量控制在Android系統(tǒng)的實現(xiàn)我們在后面的章節(jié)中會詳細講述。
總結
以上是生活随笔為你收集整理的Android音频基础知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 戴尔G7 7588 Windows 10
- 下一篇: How to Root Nexus 5