張文興
摘要:針對車載電子系統(tǒng)中多路音頻輸出時混音所帶來的問題以及傳統(tǒng)多路音頻控制方案中存在的缺陷,設(shè)計一種基于音頻焦點的多路音頻控制方案。根據(jù)音頻流類型定義其優(yōu)先級,進而定義音頻焦點控制策略。當(dāng)音頻焦點變化時,根據(jù)預(yù)設(shè)的音量規(guī)則,調(diào)整各個音頻流播放音量。測試結(jié)果表明,該方案能夠有效地去除混音所帶來的聽覺混淆并克服了傳統(tǒng)多路音頻控制方案中的缺陷。從實現(xiàn)上看,其具有較強的通用性,較好的可擴展性以及可維護性。該方案已經(jīng)被應(yīng)用于量產(chǎn)并且投入市場的某車載電子產(chǎn)品中,從市場反饋來看,用戶體驗度以及駕駛安全性都得到了很大提升。
[關(guān)鍵詞]多路音頻控制音頻焦點音量規(guī)則車載電子系統(tǒng)
1引言
隨著車輛的普及,各類車載電子產(chǎn)品層出不窮,功能多樣。聲音作為系統(tǒng)與駕駛者交互的一種方式,發(fā)揮著越來越重要的作用,同時,人們對其實用性、安全性、友好性的要求越來越高。眾所周知,在一個系統(tǒng)中,同一時刻,可能有多個應(yīng)用需要使用音頻設(shè)備輸出音頻流,原生系統(tǒng)的混音功能,使得人耳在同一時刻,聽到的是多路聲音的共同輸出。對于車載電子系統(tǒng)來說,車輛在行駛過程中,導(dǎo)航播報、音樂播放、語音助理、電話等應(yīng)用,可能同時發(fā)聲,車內(nèi)的人聽到的是各個音頻流混音后的效果,有可能造成聽覺混淆,甚至導(dǎo)致安全隱患。因此,需要對各個音頻流進行統(tǒng)一控制,使得同一時刻,人耳聽到的是清晰、明確、可靠的聲音。
為了去除混音所帶來的問題,傳統(tǒng)的音頻控制方案主要是針對音頻流本身的播放邏輯進行控制,例如,通話中,音樂暫停;通話結(jié)束,音樂繼續(xù)播放。這種方案處理的對象是各個音頻流的實例,存在以下缺點:
(1)需要維護各個音頻流的狀態(tài)機,控制邏輯復(fù)雜,狀態(tài)切換頻繁,并且切換過程中往往伴隨著資源的申請和釋放,對系統(tǒng)性能影響較大。
(2)當(dāng)控制策略發(fā)生變化時,需修改源碼,可擴展性較低,不能適應(yīng)不同產(chǎn)品之間的變化,維護成本較高。
(3)不適用對實時音頻流的處理,例如本地電臺,此音頻流是不能被暫停的,需要單獨的控制邏輯。
本文針對其缺陷,提出一種基于音頻焦點并結(jié)合預(yù)設(shè)音量規(guī)則的多路音頻控制方案,然后給出其在Android原生系統(tǒng)中的實施用例以及測試分析,最終得出結(jié)論。
2基于音頻焦點的多路音頻控制
基于音頻焦點的多路音頻控制的基本思想為:根據(jù)音頻焦點控制策略確定享有音頻焦點的音頻流;實時監(jiān)聽系統(tǒng)音頻焦點的變化,根據(jù)預(yù)設(shè)的音量規(guī)則對系統(tǒng)各路音頻流音量進行調(diào)整。音頻焦點控制策略為:根據(jù)系統(tǒng)中每路音頻流類型規(guī)定其優(yōu)先級,當(dāng)某個音頻流需要播放時,請求音頻焦點,如果其優(yōu)先級大于當(dāng)前正在播放的音頻流的優(yōu)先級,賦予其音頻焦點,否則便不賦予其音頻焦點;當(dāng)享有音頻焦點的音頻流停止播放時,釋放其音頻焦點,并為剩余正在播放的音頻流中優(yōu)先級最高的音頻流賦予音頻焦點。預(yù)設(shè)的音量規(guī)則為:規(guī)定每種音頻流的原始音量,享有音頻焦點時的音量以及其不享有音頻焦點時的音量。在控制過程中實時維護每路音頻流信息,包括:類型、優(yōu)先級、原始音量、享有1不享有音頻焦點時的音量、當(dāng)前是否享有音頻焦點。按照功能可以將以上所述劃分為如下模塊:
(1)控制模塊:根據(jù)音頻焦點控制策略
確定享有音頻焦點的音頻流,更新相關(guān)的音頻流信息,并通知調(diào)整模塊;
(2)調(diào)整模塊:監(jiān)聽音頻焦點的變化,獲取各路音頻流信息,按照預(yù)設(shè)的音量規(guī)則,調(diào)整其播放音量;
(3)維護模塊:維護各路音頻流信息,包括類型、優(yōu)先級、原始音量、享有1不享有音頻焦點時的音量、當(dāng)前是否享有音頻焦點。各個模塊間的交互如圖1所示。
控制模塊流程如圖2所示,調(diào)整模塊流程如圖3所示。
3測試分析
將該方案移植進Android原生系統(tǒng)進行測試,音頻流類型以及為各個類型音頻流預(yù)設(shè)音量規(guī)則如表1所示。其中,規(guī)定優(yōu)先級由高到低為0-9,音量值范圍為0-15。
測試效果需通過聽覺進行感知,該方案能夠有效去除多路音頻輸出時混音所帶來的聽覺混淆,其已經(jīng)被應(yīng)用于量產(chǎn)并且投放市場的某車載電子產(chǎn)品中,系統(tǒng)中跟音頻輸出相關(guān)的應(yīng)用為電話、語言助理、導(dǎo)航、音樂、藍牙,所對應(yīng)的音頻流類型規(guī)定為STREAM_VOICE_CALL、STREAM_NOTIFICATION、STREAM_SYSTEM、STREAMMUSIC、STREAMBLUETOOTHSCO,音量規(guī)則按照表1進行設(shè)定,從市場反饋來看,用戶體驗度和駕駛安全性都得到了很大提升。
4結(jié)論
根據(jù)定義的音頻焦點控制策略以及預(yù)設(shè)的音量規(guī)則,當(dāng)音頻焦點變化時,調(diào)整各音頻流的播放音量。對享有音頻焦點和不享有音頻焦點的音頻流設(shè)置不同的播放音量,從而實現(xiàn)對多個音頻流分別采用不同的播放音量同時播放,可以很好的解決混音所帶來的問題,既能實現(xiàn)多路音頻的同時播放,又不會造成聽覺混淆,極大的提升了使用者的體驗度和安全性。
從實現(xiàn)上來看,可以將音頻焦點控制策略以及音量規(guī)則定義成可配置的文件,與傳統(tǒng)的多路音頻控制方案相比,優(yōu)勢在于:
(1)當(dāng)控制策略發(fā)生變化時,無需修改源碼,只需修改配置即可,可擴展性較強,能夠快速適應(yīng)不同產(chǎn)品之間的變化,降低了開發(fā)和維護成本;
(2)對音頻流的控制不改變音頻流本身的播放邏輯,不存在系統(tǒng)資源的申請和釋放,對性能影響較小;
(3)對實時音頻流的控制和本地音頻流的控制相同,無需獨立的邏輯。
該方案的應(yīng)用場景并不局限于車載電子系統(tǒng),可以將其應(yīng)用于任何有此類需求的智能系統(tǒng)中,并且適用于各種類型的音頻流,對其進行統(tǒng)一管理,并對播放規(guī)則進行控制,通用性較強,可擴展性較好,且維護成本較低。
參考文獻
[1]李釣,谷守康,車載信息系統(tǒng)市場應(yīng)用現(xiàn)狀[J].汽車工程師,2018(05):14-17.
[2]王穎,張偉,吳姓,車載信息系統(tǒng)與駕駛安全研究綜述[J].科技導(dǎo)報,2009(13):105-110.
[3]白杰。車載娛樂信息系統(tǒng)的設(shè)計與實現(xiàn)[D].吉林:吉林大學(xué)計算機科學(xué)與技術(shù)學(xué)院,2015.
[4]竺增寶,車載多媒體音頻系統(tǒng)的設(shè)計與實現(xiàn)[D]上海:上海交通大學(xué)電子信息與電氣工程學(xué)院,2015.
[5]林學(xué)森,深入理解Android內(nèi)核設(shè)計思想[M].第2版(上冊).北京:人民郵電出版社,2017:2-35,526-611.