朱子文 李思杰 付崢
【摘要】使用Android Studio安卓開發(fā)工具設(shè)計(jì)一款A(yù)ndroid端的英語(yǔ)復(fù)讀App,該APP可以自動(dòng)識(shí)別兩段聽力之間的停頓,并根據(jù)用戶設(shè)置進(jìn)行特定時(shí)間間隔的暫停。通過(guò)音頻二進(jìn)制文件讀取音頻信息,所得到的的音頻數(shù)據(jù)幀信息再通過(guò)App邏輯層處理,進(jìn)行音頻格式和數(shù)據(jù)幀分析,以獲取英語(yǔ)聽力兩段對(duì)話的停頓時(shí)刻。通過(guò)用戶在英語(yǔ)聽力播放前的相關(guān)設(shè)置,自動(dòng)暫停,讓用戶不必進(jìn)行多余的手動(dòng)暫停操作,方便快捷。
【關(guān)鍵詞】英語(yǔ)復(fù)讀 ?APP ?音頻分析
一、引言
音頻文件是在計(jì)算機(jī)內(nèi)采用特定格式存儲(chǔ)和表示聲音的文件,將聲音數(shù)據(jù)以二進(jìn)制的格式存儲(chǔ)在計(jì)算機(jī)中。音頻文件實(shí)質(zhì)上就是用離散的數(shù)字信號(hào)表示連續(xù)的模擬信號(hào),音頻文件除了首部對(duì)音頻的格式大小等信息進(jìn)行描述之外,剩下部分就是對(duì)聲音的采樣數(shù)據(jù),以首部規(guī)定的采樣格式對(duì)實(shí)際聲音信號(hào)進(jìn)行采樣描述。音頻文件每個(gè)采樣數(shù)據(jù)描述的是該音頻在該采樣時(shí)刻對(duì)應(yīng)的音頻幅值大小,對(duì)應(yīng)實(shí)際聲音信號(hào)的大小。雖然有限大小的音頻文件對(duì)音頻的描述是有限的,但是只要采樣率夠高,即單位時(shí)間內(nèi)采樣的次數(shù)足夠多,人耳對(duì)聲音的分辨就能達(dá)到與真實(shí)聲音信號(hào)一樣的程度。
也正是因?yàn)橐纛l文件的大小是有限的,采樣率是有限大的,所以就存在不同格式和不同音質(zhì)的音頻類型,對(duì)應(yīng)的音頻文件大小也不同。一般音頻的音質(zhì)越好,對(duì)應(yīng)的音頻文件所需存儲(chǔ)空間就越大。常見的音頻格式有CD、WAVE、MPEG、MP3、MIDI、WMA等,其中,CD標(biāo)準(zhǔn)格式為44.1K的采樣頻率,16位量化位數(shù)(即一個(gè)采樣點(diǎn)幅值的存儲(chǔ)位數(shù)),可以說(shuō)是近似無(wú)損的,它的聲音基本忠于原聲。
而其他幾種音頻格式也有各自的優(yōu)點(diǎn),就拿WAVE和MP3來(lái)說(shuō),WAVE音頻文件大小一般是MP3音頻文件的10倍,相應(yīng)地音質(zhì)也明顯高于 MP3格式的音頻,MP3音頻文件的壓縮是有損壓縮,犧牲了聲音文件中12KHz到16KHz高音頻這部分的質(zhì)量來(lái)?yè)Q取文件的尺寸。但由于MP3文件壓縮率高,所以是目前應(yīng)用最廣泛的音頻格式之一。
二、分析與設(shè)計(jì)
(一)音頻格式分析
進(jìn)行英語(yǔ)聽力播放前,需要先對(duì)聽力文件的音頻數(shù)據(jù)進(jìn)行分析,音頻文件首部存儲(chǔ)著音頻格式的相關(guān)信息,應(yīng)用中以字節(jié)流形式將格式信息讀出,判斷出音頻格式和采樣格式等參數(shù)。需要讀出聲道數(shù),判斷音頻是單聲道音頻還是雙聲道立體音,雙聲道格式下音頻數(shù)據(jù)部分是左右聲道的采樣點(diǎn)依次存儲(chǔ),分析時(shí)某個(gè)特定數(shù)據(jù)幀的音頻幅值取左右聲道的疊加;需要讀出采樣位數(shù)(即單個(gè)采樣數(shù)據(jù)的存儲(chǔ)位數(shù)),以使程序能夠準(zhǔn)確提取到每一個(gè)采樣數(shù)據(jù)而不會(huì)錯(cuò)位;需要讀出采樣率(即單位時(shí)間內(nèi)采樣的次數(shù)),以判斷每秒的采樣數(shù)據(jù)量,結(jié)合“靜音”采樣點(diǎn)連續(xù)出現(xiàn)的個(gè)數(shù),計(jì)算出英語(yǔ)聽力相應(yīng)時(shí)間段“靜音”的連續(xù)時(shí)長(zhǎng),以此判斷是否為符合條件的停頓點(diǎn);識(shí)別出數(shù)據(jù)量大小以計(jì)算整個(gè)音頻的采樣數(shù)據(jù)個(gè)數(shù),所有這些格式信息規(guī)定了后面數(shù)據(jù)幀部分的具體結(jié)構(gòu)。
(二)數(shù)據(jù)幀分析
因?yàn)閿?shù)據(jù)幀部分的采樣數(shù)據(jù)表示的是音頻在該采樣時(shí)刻的幅值大小,單位時(shí)間內(nèi)有固定數(shù)量的采樣數(shù)據(jù),所以可以對(duì)幅值進(jìn)行界限的分析,若音頻信息持續(xù)一段特定時(shí)間(即一定量的采樣數(shù)據(jù))幅值處于界限以下的“靜音”狀態(tài),則該時(shí)間段被判為兩個(gè)聽力題之間的暫停時(shí)間段,同時(shí)需要排除英語(yǔ)聽力剛開始時(shí)候的靜音,這一段不屬于需要暫停的時(shí)間段。再者,對(duì)于雙聲道音頻,需要將左右聲道的音頻采樣幅值進(jìn)行疊加,然后再進(jìn)行分析。
(三)音頻處理過(guò)程
用戶在點(diǎn)擊播放音頻之前,可以對(duì)音頻的停頓時(shí)長(zhǎng)(即用戶期望兩段聽力之間的停頓時(shí)長(zhǎng))和判斷間隔(即多長(zhǎng)時(shí)間的“靜音”才被判定為兩題間的停頓)進(jìn)行設(shè)置,在點(diǎn)擊播放音頻后,程序先對(duì)音頻文件進(jìn)行數(shù)據(jù)幀的分析,使用一個(gè)特定算法計(jì)算出該音頻的所有題目之間的停頓時(shí)刻,并根據(jù)用戶事先設(shè)置的需求進(jìn)行自動(dòng)處理。由于單位時(shí)間內(nèi)采樣數(shù)據(jù)量過(guò)多,如果把每一個(gè)采樣點(diǎn)都計(jì)算在內(nèi),處理量過(guò)大,會(huì)導(dǎo)致程序運(yùn)行處理的效率大大降低,所以需要設(shè)置一個(gè)合適的時(shí)間間隔進(jìn)行跳躍,要既能保證停頓點(diǎn)判斷的準(zhǔn)確性,又能有效提高程序的運(yùn)行效率。
(四)Android界面邏輯設(shè)計(jì)
考慮到用戶使用的不同設(shè)備的分辨率與屏幕大小都不一樣,所以軟件UI采用RelativeLayout相對(duì)布局,讓用戶在使用不同設(shè)備的時(shí)候界面都能正常顯示。
UI界面上添加了一個(gè)懸浮按鈕,將眾多復(fù)雜的操作隱藏其中,使主題界面顯得簡(jiǎn)潔,提高用戶使用體驗(yàn)。在主要功能實(shí)現(xiàn)部分,采用線程監(jiān)聽播放狀態(tài),當(dāng)用戶點(diǎn)擊暫停時(shí),線程控制進(jìn)度條停止,當(dāng)用戶點(diǎn)擊播放則繼續(xù)移動(dòng)。并且用戶能夠通過(guò)ContentResolver自主添加所需處理的音頻,達(dá)到自由學(xué)習(xí)的目的。
(五)數(shù)據(jù)信息存儲(chǔ)
由于英語(yǔ)聽力文件普遍在20-30分鐘,總采樣數(shù)目過(guò)大,在英語(yǔ)播放時(shí)進(jìn)行音頻“靜音段”判斷會(huì)占據(jù)Android設(shè)備過(guò)多的運(yùn)行資源,從而影響App的運(yùn)行性能,所以需要進(jìn)行數(shù)據(jù)信息的緩存操作,存儲(chǔ)已添加播放過(guò)的音頻路徑、總采樣數(shù)、停頓點(diǎn)等信息,其中停頓點(diǎn)采集耗費(fèi)的運(yùn)行資源較多,對(duì)其進(jìn)行緩存是提高應(yīng)用運(yùn)行效率的重要措施。
(六)具體設(shè)計(jì)
基于音頻幅值判斷的“靜音段”檢測(cè)方便快捷,但是要想音頻檢測(cè)具有更好的普適性,則需要對(duì)市面上的英語(yǔ)聽力文件進(jìn)行一個(gè)廣泛的統(tǒng)計(jì)分析,得到關(guān)于兩題之間最普遍的間隔時(shí)長(zhǎng);同時(shí),需要調(diào)查市面上主要音頻格式的采樣率,讓應(yīng)用能夠分析處理盡可能多類型的采樣率。再者,還需要對(duì)英語(yǔ)聽力的“靜音”幅值范圍進(jìn)行統(tǒng)計(jì)分析,得到最合適的范圍,以使英語(yǔ)聽力的“靜音”檢測(cè)更加精確。
三、小結(jié)
基于Android的英語(yǔ)自動(dòng)復(fù)讀軟件,很好地結(jié)合了音頻處理技術(shù)和英語(yǔ)聽力練習(xí)的需求,讓英語(yǔ)聽力練習(xí)更加智能化。
參考文獻(xiàn):
[1]王先全,李建蜀.WAVE聲音文件格式的分析及其合成[J].電腦開發(fā)與應(yīng)用,1999.07:29-30.
[2]高彥.基于相似度的音頻檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].復(fù)旦大學(xué),2011.
[3]馮哲.基于內(nèi)容的視頻檢索中的音頻處理[D].復(fù)旦大學(xué),2004.
[4]李剛.瘋狂Java講義[M].電子工業(yè)出版社,2008.
基金項(xiàng)目:課題資助:南昌航空大學(xué)第14屆“三小”課題。