任衍敏, 侯 錕, 王大東
(吉林師范大學(xué) 計算機學(xué)院 ,吉林 四平 136000)
Android是一種基于Linux的開放源代碼的操作系統(tǒng),為軟件開發(fā)人員提供了豐富的API和足夠的開發(fā)權(quán)限,可以開發(fā)出功能強大創(chuàng)意十足的手機應(yīng)用程序[1]。現(xiàn)今Android平臺為廣大用戶提供了各種豐富多彩的應(yīng)用服務(wù)。有關(guān)實驗研究以及市面上可見得更多的是將已經(jīng)采集好的音頻文件,輸入到利用A/D轉(zhuǎn)換器,DSP芯片和各類顯示器等組裝得大型音頻分析儀中進行分析檢測[2~4]。這類分析儀的不足之處是大而沉重,攜帶不便,不能滿足現(xiàn)代人們隨時隨地,方便快捷的學(xué)習(xí)與生活方式。
介紹一種基于Android平臺進行音頻采集與分析的方法。采用AudioRecord和AudioTrack類實現(xiàn)音頻采集與輸出[5],通過接口提供給上層調(diào)用,通過快速傅立葉變換算法對音頻數(shù)據(jù)進行頻譜分析,利用隨機流文件包的指針位置設(shè)置方法獲取位置信息,實現(xiàn)頻率在屏幕上的實時顯示。
FFT是一種的高效算法,即快速傅里葉變換。其基本思想基于兩點,一是根據(jù)中系數(shù)的周期性和對稱性提高運算速度,二是把長度為點的大點數(shù)的運算分解為若干個小點數(shù)的來運算。根據(jù)蝶式運算不同可分為基-2,基-4和和任意基數(shù)的算法,其中基-2FFT算法更為靈活,應(yīng)用較多。按照抽取方式又可分為按時間和按頻率兩類方法,兩者只是復(fù)數(shù)加減法和旋轉(zhuǎn)因子乘法的次序不同,運算量一樣。采用基-2和按時間抽取FFT算法:
(1)
(1) 將序列x(n)按序號n的奇,偶分為兩個N/2點子序列:
(2) 將N點DFT分為兩組來運算:
根據(jù)
最后得
(3) 將X1(k)和X2(k)繼續(xù)分解,可將N/2點的子序列再按奇、偶分解,一直到最后分解成兩兩點的DFT為止
Android音頻系統(tǒng)框架由應(yīng)用層,F(xiàn)ramework層,庫層以及HAL層構(gòu)成。主要體現(xiàn)在Framework層,該層可以簡單地理解為一些API的集合,通過調(diào)用該層中的AudioRecord和AudioTrack類分別完成對音頻數(shù)據(jù)的捕獲和輸出,同時利用FFT算法進行音頻分析然后顯示在屏幕上。框圖如圖1所示[6]。
圖1 系統(tǒng)框圖
先通過錄音,即對音頻信號的采集,Android系統(tǒng)功能自動將其從模擬信號轉(zhuǎn)換為數(shù)字信號,存放在數(shù)據(jù)緩沖區(qū)中,寫入到文件,以便實時播放和回放;然后微處理器對收到的離散數(shù)字信號進行快速傅立葉變換,同時將輸出的數(shù)據(jù)存入另外一個緩沖區(qū)中,系統(tǒng)讀出數(shù)據(jù)并對其進行繪圖顯示。
在Andriod SDK中提供了兩個用于音頻捕獲的類,這兩個類分別是MediaRecorder類和AudioRecord類。MediaRecorder捕獲的音頻信號是壓縮編碼后的音頻數(shù)據(jù),所以在后續(xù)讀取數(shù)據(jù)時,需要解壓縮,而用AudioRecord捕獲的音頻信號可以直接獲得無壓縮的脈沖編碼調(diào)制PCM數(shù)據(jù)[7~8],因為它允許訪問原始音頻流,所以較前者更為靈活[9]?;诖耍捎肁udioRecord來捕獲音頻源,利用AudioTrack播放音頻。
AudioRecord類構(gòu)造函數(shù)包含五個參數(shù),分別為:音頻源,采樣頻率,聲道,音頻格式和緩沖區(qū)大小。為了適應(yīng)不同Android設(shè)備的采樣頻率,設(shè)定了44100HZ, 22050HZ, 11025HZ, 8000HZ四個值。由于采樣頻率越高,采樣數(shù)據(jù)越接近原始音頻數(shù)據(jù),由高向低選取設(shè)備硬件支持的最高采樣頻率。緩沖區(qū)大小調(diào)用getMinBufferSize靜態(tài)方法。其余三個參數(shù)中,音頻源設(shè)置為MediaRecorder.AudioSource.MIC,聲道設(shè)置為AudioFormat.CHANNEL_IN_MONO(單聲道),音頻格式設(shè)置為PCM16bit?,F(xiàn)在,大部分安卓手機硬件支持16位采樣,16位意味著對聲音信號以216=64k個精度單位進行表示,所表示的音頻比PCM8bit更接近真實[10]。音頻捕獲流程圖如圖2所示。
圖2 音頻捕獲流程圖
圖3 A1被試者三個“起來”的部分實時音頻分析圖
圖4 “黃鸝”、“夜鶯”、“麻雀”叫聲頻譜分析圖
實驗分為兩組,第一組一位測試者,音樂專業(yè)學(xué)生;第二組5位測試者,非專業(yè)學(xué)生。為了方便后續(xù)描述,將第一組的測試者記為A1,第二組測試者記為B1-B5。首先分別讓他們訓(xùn)練國歌中的“起來,起來,起來”,然后進行單個采集;之后讓大家選出最好的兩位;最后進行頻譜分析。選取這段因為這節(jié)是上行聲調(diào),情感也是越來越強烈,能夠更加明顯地顯示分析結(jié)果。下圖是A1測試者三個“起來”的部分實時音頻分析圖,上面是時域圖,下面是頻譜圖。
從圖中可以清晰地看到,三個“起來”時域上響度逐漸增強,密度逐漸增大。同樣,頻譜圖中頻率逐漸遞增,密度逐漸增大。
下表1中Fmin表示最小基頻,F(xiàn)max表示最大基頻。
表1 “起來,起來,起來”A1,B1-B5被試的數(shù)據(jù)
由大家選出得表現(xiàn)最好的兩位是A1和B3。
由上表4-1中的數(shù)據(jù)可以看到,A1被試與B1-B5被試者有明顯的不同。A1被試的Fmin值明顯小于B1-B5被試者的Fmin值,說明A1被試者演唱技巧要好于B1-B5被試者。同時,A1被試的Fmax值明顯高于B1-B5被試者的,說明A1被試者在演唱中可以通過更好的情感表現(xiàn)力使聲音位置達到最高的HZ值。此外,從數(shù)據(jù)上看,B3的演唱效果也是比較好的。其他幾位被試最大值(最高音)HZ值上不去,最小值(最低音)HZ值下不來[11]。
實驗中采集“黃鸝鳥”、“夜鶯”、“麻雀”三種鳥叫聲進行分析。由于條件限制以及外界噪聲干擾大且復(fù)雜的因素,三種鳥叫聲的聲源取自于網(wǎng)絡(luò)上的原聲音頻。分析圖如圖4所示。
表2 “黃鸝”、“夜鶯”、“麻雀”叫聲頻率數(shù)據(jù)
由實驗一和實驗二中的頻譜分析圖以及數(shù)據(jù)表中可以明顯地看出,這三類鳥叫聲的頻率明顯高于人發(fā)聲的頻率。也驗證了鳥叫聲更加清脆,明亮,悅耳的聽覺美感。
基于Android操作系統(tǒng)平臺,設(shè)計了一個針對音頻采集與頻譜分析的終端APP。利用Android提供的AudioRecord和AudioTrack類實現(xiàn)音頻采集和播放;然后采用基-2FFT按時間抽取的算法實現(xiàn)了對音頻數(shù)據(jù)的時頻變換;其中用隨機流文件包的指針位置設(shè)置方法獲取位置信息,實現(xiàn)頻率定點顯示的功能。
[1] 許婧. 基于Android音頻比對系統(tǒng)的設(shè)計與實現(xiàn)[D]. 武漢:華中科技大學(xué), 2013.
[2] 張家田,封川川,嚴正國.基于DSP的音頻信號分析儀設(shè)計[J].西安石油大學(xué)學(xué)報(自然科學(xué)版),2009,24(1):85-87.
[3] 張明,樊昌元,張東明,等.聲音信號頻譜檢測儀設(shè)計[J].北京聯(lián)合大學(xué)學(xué)報,2015,29(4):13-18.
[4] 陳堅,盛慶華,毛禮建,等.基于STM32的音頻信號分析儀的設(shè)計與實現(xiàn)[J].工業(yè)儀表與自動化裝置,2016,(3):79-21.
[5] Jens Saalmuller,Matthias Kuba,Andreas Oeder.A User-Friendly Android-Based Tool for 868 MHZ RF Traffic-and Spectrum-Analysis[C].Germany:embedded world2015,2015.
[6] SHETE P,KURUDE A,BHOLE M,et al.Android Based Spectrum Analyzer[J].Irenational Journal of Scientific &Technology Research,2013,2(10):303-305.
[7] 陸玲霞,彭勇剛,賀東星. 基于安卓頻譜分析儀的探究性實驗設(shè)計[J]. 實驗科學(xué)與技術(shù),2016,14(4):44-47.
[8] 蘇維嘉,楊靜,唐宇.Android手機麥克風(fēng)的數(shù)據(jù)采集與顯示[J].嵌入式技術(shù),2012,38(7):30-32.
[9] Shawn Van Every . Android多媒體開發(fā)高級編程[M]. 巢文涵,譯. 北京:清華大學(xué)出版社,2012.
[10] Shawn Van Every.Pro Android Media:Developing Graphics,Music,Video and Rich Media Apps for Smartphones and Tablets[M].Berkeley:Apress,2010.
[11] 豆鈺.歌曲演唱中情感表現(xiàn)力的嗓音分析[D].北京:中國音樂學(xué)院,2016.