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