




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 一種基于微信小程序的語音輸入技術(shù)應(yīng)用研究 周虎摘要:該文通過微信小程序中的錄音功能,將生成的mp3格式文件上傳到服務(wù)器端并轉(zhuǎn)換成pcm格式的音頻文件,然后將該音頻文件發(fā)送到百度語音識(shí)別接口進(jìn)行語音識(shí)別,將識(shí)別結(jié)果返回到微信小程序,實(shí)現(xiàn)了在微信小程序中的用戶語音輸入功能?;谖⑿判〕绦虻恼Z音輸入功能大大提高了微信小程序中用戶輸入信息的速度和用戶體驗(yàn)。關(guān)鍵詞:微信小程序;語音識(shí)別;語音輸入;mp3;pcm:tp393 :a :1009-3044(2018)31-0104-021 背
2、景隨著人工智能的不斷發(fā)展,語音識(shí)別技術(shù)取得了顯著進(jìn)步,已經(jīng)開始逐步走向市場(chǎng),尤其在語音輸入應(yīng)用上,文字識(shí)別準(zhǔn)確率達(dá)到90%以上1,大大提高了用戶文字輸入的速度。微信小程序是基于微信平臺(tái)一種新的開放能力,可以在微信平臺(tái)內(nèi)被便捷地獲取和傳播,用戶不需要下載安裝即可使用的應(yīng)用,具有出色的使用體驗(yàn)2。在一些游記或記事本類的小程序中,需要用戶大量輸入文字信息,該文將在微信小程序中通過調(diào)用微信平臺(tái)的錄音功能,結(jié)合遠(yuǎn)程的語音識(shí)別,共同實(shí)現(xiàn)了語音輸入功能,大大提高了用戶信息的輸入速度。2 微信小程序語音輸入功能簡(jiǎn)介微信小程序是基于微信給用戶提供二次開發(fā)的應(yīng)用平臺(tái),用戶可以通過微信小程序開發(fā)工具開發(fā)自己的應(yīng)用。
3、雖然微信平臺(tái)可以提供語音輸入,但是在小程序中目前只是提供錄音功能,并沒有提供語音輸入功能。雖然目前語音輸入技術(shù)已經(jīng)很成熟,但是針對(duì)小程序的特殊性,要實(shí)現(xiàn)基于小程序的語音輸入功能,只能通過遠(yuǎn)程調(diào)用語音識(shí)別接口的方式來實(shí)現(xiàn),所以借助小程序的錄音功能,將錄音的音頻文件發(fā)送到遠(yuǎn)程調(diào)用語音識(shí)別接口,并返回識(shí)別結(jié)果?;谖⑿判〕绦蛘Z音輸入功能主要包括錄音mp3格式文件的生成,服務(wù)器端音頻文件的格式轉(zhuǎn)換和調(diào)用百度語音識(shí)別接口并返回識(shí)別結(jié)果,具體時(shí)序圖如圖1所示。在音頻轉(zhuǎn)換過程中,由于百度開放語音平臺(tái)接受原始 pcm 的錄音參數(shù)必須符合 8k/16k 采樣率、16bit 位深、單聲道,而微信小程序在錄音過程中
4、生成的音頻格式采樣率為8k/16k/44k,生成的音頻格式為aac/mp3,存在音頻格式不同的障礙,所以必須在服務(wù)器端要有一個(gè)音頻轉(zhuǎn)換功能。3 微信小程序語音輸入功能的實(shí)現(xiàn)微信小程序語音輸入功能主要分為音頻采集和上傳、音頻文件格式轉(zhuǎn)換和調(diào)用遠(yuǎn)程語音識(shí)別接口并返回結(jié)果三個(gè)部分。3.1 音頻采集和上傳在微信小程序中,提供了調(diào)用系統(tǒng)錄音功能的接口,通過錄音參數(shù)設(shè)置,指定相關(guān)參數(shù),如程序1所示3。const options = duration: 30000,/指定錄音的時(shí)長,單位 mssamplerate: 16000,/采樣率numberofchannels: 1,/錄音通道數(shù)encodebitr
5、ate: 96000,/編碼碼率format: 'mp3',/音頻格式,有效值 aac/mp3framesize: 50,/指定幀大小,單位 kb程序1 微信小程序錄音參數(shù)設(shè)置設(shè)定完指定參數(shù)后,微信小程序需要進(jìn)行錄音授權(quán),如果用戶允許錄音,此時(shí)將開始錄音,錄音結(jié)束后將錄音文件保存在臨時(shí)文件夾中,并將該音頻文件上傳到服務(wù)器端,實(shí)現(xiàn)代碼如程序2所示。wx.authorize(scope: 'scope.record',success() const recordermanager = wx.getrecordermanager()record
6、ermanager.onstart() => console.log('recorder start')recordermanager.onstop(res) => this.tempfilepath = res.tempfilepath;const uploadtask = wx.uploadfile(url: 'https:/服務(wù)器地址',filepath: tempfilepath,name: 'file',success: function (res) /等待返回結(jié)果) )程序2 錄音文件采集及上傳當(dāng)錄
7、音文件采集后,直接上傳到遠(yuǎn)程服務(wù)器,等待服務(wù)器將語音識(shí)別的結(jié)果返回,如果成功返回后,再將識(shí)別的結(jié)果顯示在視圖文本框中。3.2 音頻格式轉(zhuǎn)換在服務(wù)器端,接收到微信小程序發(fā)送的音頻文件后,使用java技術(shù)結(jié)合mp3spi第三方開發(fā)包,針對(duì)mp3格式文件進(jìn)行格式轉(zhuǎn)換4,首先獲取pcm格式音頻流,然后再寫入新的pcm格式文件,關(guān)鍵代碼如程序3所示。file mp3 = new file(mp3filepath);audioinputstream audioinputstream = null;audioformat targetformat = null;try audioinputstream in
8、 = null;mpegaudiofilereader mp = new mpegaudiofilereader();/讀取音頻文件的類in = mp.getaudioinputstream(mp3);audioformat baseformat = in.getformat();/設(shè)定輸出格式為pcm格式的音頻文件targetformat = new audioformat(audioformat.encoding.pcm_signed, baseformat.getsamplerate(), 16,baseformat.getchannels(), baseformat.getchanne
9、ls() * 2, baseformat.getsamplerate(), false);/輸出到音頻audioinputstream = audiosystem.getaudioinputstream(targetformat, in);audiosystem.write(audioinputstream, audiofileformat.type.wave, new file(pcmfilepath); /保存到pcm文件 catch (exception e) e.printstacktrace();程序3 mp3音頻文件轉(zhuǎn)換為pcm格式音頻文件在轉(zhuǎn)換音頻格式過程
10、中,如果出現(xiàn)異常,直接返回錯(cuò)誤信息,就不需要再調(diào)用百度語音識(shí)別接口了。3.3 調(diào)用遠(yuǎn)程語音識(shí)別接口并返回結(jié)果在服務(wù)器端對(duì)音頻文件格式轉(zhuǎn)換成功后,就可以通過引用百度的語音識(shí)別開發(fā)包,直接將pcm格式的音頻文件發(fā)送到遠(yuǎn)程語音識(shí)別接口,等待接口返回識(shí)別的結(jié)果。當(dāng)然,用戶需要先在百度上注冊(cè)自己的appid,得到對(duì)應(yīng)的apikey和secretkey才可以調(diào)用。語音識(shí)別返回的結(jié)果是json格式,需要在服務(wù)器端對(duì)返回的結(jié)果進(jìn)行解析,具體如程序4所示。import org.json.jsonobject;import com.baidu.aip.*;import com.baidu.aip.speech.a
11、ipspeech;public class voice public static final string app_id = "appid"/設(shè)置appid/ak/skpublic static final string api_key = "apikey"public static final string secret_key = "secretkey"public static string getvoicetxt(string filepath)/ 初始化一個(gè)aipspeechaipspeech client = new a
12、ipspeech(app_id, api_key, secret_key);jsonobject res = client.asr(filepath, "pcm", 16000, null);return (res.tostring(2);程序4 調(diào)用遠(yuǎn)程語音識(shí)別接口并返回結(jié)果當(dāng)服務(wù)器端獲取語音識(shí)別結(jié)果后,在將該結(jié)果通過json格式返回到微信小程序端的文本框中。4 結(jié)束語語音輸入已經(jīng)在很多應(yīng)用中得到了廣泛的使用,該文通過針對(duì)微信小程序中的語音輸入功能研究,結(jié)合微信小程序中的錄音功能、文件上傳功能、音頻格式轉(zhuǎn)換功能和遠(yuǎn)程語音識(shí)別功能共同實(shí)現(xiàn)了基于微信小程序的語音輸入功能,并在游記小程序中得到了應(yīng)用。一方面提高了用戶文字輸入的速度,同時(shí)提高了用戶體驗(yàn),當(dāng)然,這種語音輸入技術(shù)也有需要進(jìn)一步改進(jìn)的地方,如果微信平臺(tái)能開放語音識(shí)別
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 哥哥弟弟分房合同范本
- 廠房燈具安裝施工合同范本
- 2025至2030年中國氨基噻唑乙酸數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 基于大單元教學(xué)的高三地理一輪復(fù)習(xí)課教學(xué)設(shè)計(jì)研究
- 意大利蜜蜂攜帶和傳播梨火疫病菌的效能分析及脫毒技術(shù)研究
- 2025至2030年中國旋翼式流量計(jì)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國寵物反光背心數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 公園椅合同范例
- 和老公立合同范本
- 2025至2030年中國印花方巾數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- GB/T 41326-2022六氟丁二烯
- 注塑模具分類及結(jié)構(gòu)組成
- GB/T 14002-2008勞動(dòng)定員定額術(shù)語
- 盆腔炎性疾病后遺癥-病因病機(jī)-(中醫(yī))
- 沁園春雪拼音版
- 傳染病防治法培訓(xùn)講義課件
- 法律方法階梯實(shí)用版課件
- KET詞匯表(英文中文完整版)
- 實(shí)驗(yàn) 探究彈簧彈力與形變量的關(guān)系2022-2023學(xué)年高一物理(人教版2019必修第一冊(cè))
- 《三位數(shù)的加減法》單元分析
- 鋼管樁的計(jì)算公式
評(píng)論
0/150
提交評(píng)論