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