張路瑤 蔡虹
【摘要】本項(xiàng)目采用Java語(yǔ)言,基于A(yíng)ndroid Studio平臺(tái)打造的一款智能語(yǔ)音助手APP。旨在為用戶(hù)提供智能化的服務(wù),提高人機(jī)交互速率,除實(shí)現(xiàn)了目前市場(chǎng)已有的語(yǔ)音助手的功能外,加入了特色化的音頻文件轉(zhuǎn)寫(xiě)功能,為用戶(hù)的生活、辦公等提供了方便快捷的渠道,如會(huì)議音頻文件處理。通過(guò)調(diào)用Android麥克風(fēng)接收用戶(hù)的語(yǔ)音輸入,通過(guò)集成百度SDK進(jìn)行語(yǔ)音識(shí)別,并通過(guò)算法實(shí)現(xiàn)關(guān)鍵字提取,并完成用戶(hù)需求的實(shí)現(xiàn)。音頻轉(zhuǎn)寫(xiě)功能是通過(guò)restapi形式的http接口的調(diào)用,實(shí)現(xiàn)用戶(hù)選取指定文件對(duì)其進(jìn)行轉(zhuǎn)寫(xiě)的需求。
【關(guān)鍵詞】Java Android 語(yǔ)音識(shí)別 文件轉(zhuǎn)寫(xiě)
一、引言
由于智能手機(jī)平臺(tái)和應(yīng)用日新月異的發(fā)展,使得智能手機(jī)的使用以及服務(wù)的使用變得愈加復(fù)雜,為了提高人機(jī)交互的效率,讓用戶(hù)更加方便地使用智能手機(jī),本文設(shè)計(jì)并實(shí)現(xiàn)了智能語(yǔ)音助手APP,提供給用戶(hù)更多樣、更快捷的智能服務(wù)。
二、功能分析
本項(xiàng)目為基于A(yíng)ndroid的一款智能服務(wù)類(lèi)軟件,用戶(hù)通過(guò)語(yǔ)音進(jìn)行人機(jī)交互,實(shí)現(xiàn)多種基本功能,并且可以進(jìn)行特色化的長(zhǎng)語(yǔ)音文件的轉(zhuǎn)換、保存。
語(yǔ)音識(shí)別與顯示功能為用戶(hù)提供高精度的語(yǔ)音識(shí)別服務(wù),融合百度領(lǐng)先的自然語(yǔ)言處理技術(shù),支持多場(chǎng)景智能語(yǔ)音交互,對(duì)用戶(hù)的語(yǔ)音信息經(jīng)過(guò)處理,轉(zhuǎn)換為文字信息,顯示在用戶(hù)界面上;語(yǔ)意分析與功能實(shí)現(xiàn),是用戶(hù)通過(guò)語(yǔ)音描述需求,軟件通過(guò)對(duì)語(yǔ)音信息的分析以及關(guān)鍵字的提取,獲取用戶(hù)想要實(shí)現(xiàn)的功能,并自動(dòng)進(jìn)入不同的平臺(tái)進(jìn)行功能的實(shí)現(xiàn);音頻文件向文本的轉(zhuǎn)換,用戶(hù)通過(guò)菜單項(xiàng)選擇進(jìn)入音頻文件轉(zhuǎn)寫(xiě)界面,選擇需要轉(zhuǎn)寫(xiě)的音頻文件,轉(zhuǎn)寫(xiě)完成的文字將顯示在界面的文本框中,用戶(hù)可以選擇是否進(jìn)行文本的編輯和以文檔方式的保存。
三、功能實(shí)現(xiàn)
語(yǔ)音輸入調(diào)用Android的麥克風(fēng)權(quán)限,用戶(hù)點(diǎn)擊界面的麥克風(fēng)圖標(biāo)即可開(kāi)始進(jìn)行語(yǔ)音輸入,通過(guò)捕捉音頻并通過(guò)集成百度離在線(xiàn)語(yǔ)音識(shí)別Android SDK框架,完成語(yǔ)音的識(shí)別工作,識(shí)別完成后會(huì)將識(shí)別結(jié)果展示在用戶(hù)界面。在識(shí)別結(jié)束后,通過(guò)算法實(shí)現(xiàn)語(yǔ)音的關(guān)鍵字提取完成語(yǔ)意的理解,并通過(guò)算法完成用戶(hù)需求的實(shí)現(xiàn)。核心代碼如下:
SpeechLongBottomSheetDialogspeechLongBottomSheetDia-
log = SpeechLongBottomSheetDialog.getInstance(MainActivity.this);
speechLongBottomSheetDialog.seOnResultListItemClickListener(new SpeechLongBottomSheetDialog.OnResultListItemClickListener() {@Override
public void onItemClick(String title) {analysisResult=analysis.start();
switch (analysisResult){//body}
用戶(hù)通過(guò)菜單項(xiàng)的選擇進(jìn)入音頻文件轉(zhuǎn)寫(xiě)界面,音頻文件的選擇是申請(qǐng)了Android的WRITE_EXTERNAL_STORAGE權(quán)限,獲取SD卡所有的Audio文件供用戶(hù)選擇,用戶(hù)選擇文件后可對(duì)音頻進(jìn)行播放試聽(tīng),點(diǎn)擊轉(zhuǎn)寫(xiě)按鈕對(duì)文件進(jìn)行轉(zhuǎn)寫(xiě)。核心代碼如下:
Url+=access_token;
OkHttpClient client=new OkHttpClient().newBuilder().build();
MediaType mediaType=MediaType.parse("application/json");
RequestBodyrequestBody=RequestBody.create(mediaType,"{\r\n\"speech_url\":\"http://speech-doc.gz.bcebos.com/
rest-api-asr/public_audio/16k.pcm\",\r\n\"pid\":1537,\r\
n\"rate\":16000,\r\n \"format\": \"pcm\"\r\n}");
Request request=new Request.Builder().url(Url).post(requestBody).addHeader("ContentType","application/json"
).build();
Response response=client.newCall(request).execute();
四、實(shí)現(xiàn)效果
圖2為語(yǔ)音識(shí)別功能界面實(shí)現(xiàn)圖,通過(guò)點(diǎn)擊下方麥克風(fēng)圖標(biāo)可進(jìn)行語(yǔ)音輸入,識(shí)別結(jié)果及系統(tǒng)回復(fù)將顯示在用戶(hù)界面,隨后,系統(tǒng)將根據(jù)用戶(hù)語(yǔ)音的識(shí)別結(jié)果進(jìn)行相應(yīng)的跳轉(zhuǎn),如通話(huà),打開(kāi)指定軟件,搜索等。
圖3為音頻文件轉(zhuǎn)寫(xiě)功能界面實(shí)現(xiàn)圖,通過(guò)點(diǎn)擊圖2所示的主界面中的菜單進(jìn)行跳轉(zhuǎn),在次界面,用戶(hù)點(diǎn)擊加號(hào)圖標(biāo)添加音頻文件,可通過(guò)播放按鈕控制該音頻文件的播放和暫停,點(diǎn)擊轉(zhuǎn)換按鈕,系統(tǒng)將轉(zhuǎn)換完成的文本顯示在下方文本框,供用戶(hù)操作。
參考文獻(xiàn):
[1]郭霖.第一行代碼——Android(2版)[M].人民郵電出版社,2016.
[2]楊豐盛.Android應(yīng)用開(kāi)發(fā)揭秘[M].機(jī)械工業(yè)出版社,2010.
[3]李剛.瘋狂Android講義[M].電子工業(yè)出版社,2015.
基金項(xiàng)目:課題資助:南昌航空大學(xué)第14屆三小課題。