999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于微信小程序的語音輸入技術應用研究

2018-01-20 06:42:04周虎
電腦知識與技術 2018年31期

周虎

摘要:該文通過微信小程序中的錄音功能,將生成的MP3格式文件上傳到服務器端并轉換成PCM格式的音頻文件,然后將該音頻文件發(fā)送到百度語音識別接口進行語音識別,將識別結果返回到微信小程序,實現了在微信小程序中的用戶語音輸入功能。基于微信小程序的語音輸入功能大大提高了微信小程序中用戶輸入信息的速度和用戶體驗。

關鍵詞:微信小程序;語音識別;語音輸入;MP3;PCM

中圖分類號:TP393? ? 文獻標識碼:A? ? ?文章編號:1009-3044(2018)31-0104-02

1 背景

隨著人工智能的不斷發(fā)展,語音識別技術取得了顯著進步,已經開始逐步走向市場,尤其在語音輸入應用上,文字識別準確率達到90%以上[1],大大提高了用戶文字輸入的速度。微信小程序是基于微信平臺一種新的開放能力,可以在微信平臺內被便捷地獲取和傳播,用戶不需要下載安裝即可使用的應用,具有出色的使用體驗[2]。在一些游記或記事本類的小程序中,需要用戶大量輸入文字信息,該文將在微信小程序中通過調用微信平臺的錄音功能,結合遠程的語音識別,共同實現了語音輸入功能,大大提高了用戶信息的輸入速度。

2 微信小程序語音輸入功能簡介

微信小程序是基于微信給用戶提供二次開發(fā)的應用平臺,用戶可以通過微信小程序開發(fā)工具開發(fā)自己的應用。雖然微信平臺可以提供語音輸入,但是在小程序中目前只是提供錄音功能,并沒有提供語音輸入功能。雖然目前語音輸入技術已經很成熟,但是針對小程序的特殊性,要實現基于小程序的語音輸入功能,只能通過遠程調用語音識別接口的方式來實現,所以借助小程序的錄音功能,將錄音的音頻文件發(fā)送到遠程調用語音識別接口,并返回識別結果。

基于微信小程序語音輸入功能主要包括錄音MP3格式文件的生成,服務器端音頻文件的格式轉換和調用百度語音識別接口并返回識別結果,具體時序圖如圖1所示。

在音頻轉換過程中,由于百度開放語音平臺接受原始 PCM 的錄音參數必須符合 8k/16k 采樣率、16bit 位深、單聲道,而微信小程序在錄音過程中生成的音頻格式采樣率為8k/16k/44k,生成的音頻格式為aac/mp3,存在音頻格式不同的障礙,所以必須在服務器端要有一個音頻轉換功能。

3 微信小程序語音輸入功能的實現

微信小程序語音輸入功能主要分為音頻采集和上傳、音頻文件格式轉換和調用遠程語音識別接口并返回結果三個部分。

3.1 音頻采集和上傳

在微信小程序中,提供了調用系統(tǒng)錄音功能的接口,通過錄音參數設置,指定相關參數,如程序1所示[3]。

const options = {

duration: 30000,//指定錄音的時長,單位 ms

sampleRate: 16000,//采樣率

numberOfChannels: 1,//錄音通道數

encodeBitRate: 96000,//編碼碼率

format: 'mp3',//音頻格式,有效值 aac/mp3

frameSize: 50,//指定幀大小,單位 KB

}

程序1? ?微信小程序錄音參數設置

設定完指定參數后,微信小程序需要進行錄音授權,如果用戶允許錄音,此時將開始錄音,錄音結束后將錄音文件保存在臨時文件夾中,并將該音頻文件上傳到服務器端,實現代碼如程序2所示。

wx.authorize({

scope: 'scope.record',

success() {

const recorderManager = wx.getRecorderManager()

recorderManager.onStart(() => {

console.log('recorder start')

})

recorderManager.onStop((res) => {

this.tempFilePath = res.tempFilePath;

const uploadTask = wx.uploadFile({

url: 'https://服務器地址',

filePath: tempFilePath,

name: 'file',

success: function (res) {

////等待返回結果

}

}) })}

})

程序2? ?錄音文件采集及上傳

當錄音文件采集后,直接上傳到遠程服務器,等待服務器將語音識別的結果返回,如果成功返回后,再將識別的結果顯示在視圖文本框中。

3.2 音頻格式轉換

在服務器端,接收到微信小程序發(fā)送的音頻文件后,使用Java技術結合mp3spi第三方開發(fā)包,針對mp3格式文件進行格式轉換[4],首先獲取pcm格式音頻流,然后再寫入新的pcm格式文件,關鍵代碼如程序3所示。

File mp3 = new File(mp3filepath);

AudioInputStream audioInputStream = null;

AudioFormat targetFormat = null;

try {

AudioInputStream in = null;

MpegAudioFileReader mp = new MpegAudioFileReader();//讀取音頻文件的類

in = mp.getAudioInputStream(mp3);

AudioFormat baseFormat = in.getFormat();

//設定輸出格式為pcm格式的音頻文件

targetFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16,

baseFormat.getChannels(), baseFormat.getChannels() * 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音頻文件轉換為pcm格式音頻文件

在轉換音頻格式過程中,如果出現異常,直接返回錯誤信息,就不需要再調用百度語音識別接口了。

3.3 調用遠程語音識別接口并返回結果

在服務器端對音頻文件格式轉換成功后,就可以通過引用百度的語音識別開發(fā)包,直接將pcm格式的音頻文件發(fā)送到遠程語音識別接口,等待接口返回識別的結果。當然,用戶需要先在百度上注冊自己的APPID,得到對應的APIKEY和SECRETKEY才可以調用。語音識別返回的結果是JSON格式,需要在服務器端對返回的結果進行解析,具體如程序4所示。

import org.json.JSONObject;

import com.baidu.aip.*;

import com.baidu.aip.speech.AipSpeech;

public class Voice {

public static final String APP_ID = "APPID";//設置APPID/AK/SK

public static final String API_KEY = "APIKEY";

public static final String SECRET_KEY = "SECRETKEY";

public static String getVoiceTxt(String filepath){

// 初始化一個AipSpeech

AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);

JSONObject res = client.asr(filepath, "pcm", 16000, null);

return (res.toString(2));

}

}

程序4? ?調用遠程語音識別接口并返回結果

當服務器端獲取語音識別結果后,在將該結果通過JSON格式返回到微信小程序端的文本框中。

4 結束語

語音輸入已經在很多應用中得到了廣泛的使用,該文通過針對微信小程序中的語音輸入功能研究,結合微信小程序中的錄音功能、文件上傳功能、音頻格式轉換功能和遠程語音識別功能共同實現了基于微信小程序的語音輸入功能,并在游記小程序中得到了應用。一方面提高了用戶文字輸入的速度,同時提高了用戶體驗,當然,這種語音輸入技術也有需要進一步改進的地方,如果微信平臺能開放語音識別功能,就可以省去調用遠程語音識別接口的步驟,在語音識別的速度上將得到大大的提高。

參考文獻:

[1] 佚名. 百度語音識別[EB/OL]. http://ai.baidu.com/tech/speech/asr.

[2] 匡文波, 李芮, 任卓如. 微信小程序面面觀[J]. 新聞論壇, 2017(2).

[3] 佚名. 微信小程序API[EB/OL]. https://developers.weixin.qq.com/miniprogram/dev/api/getRecorderManager.html.

[4] 桑園. 淺析幾種Java播放音頻技術及實例[J]. 數字技術與應用, 2016(4).

主站蜘蛛池模板: 日本不卡在线播放| 久操中文在线| 欧美 亚洲 日韩 国产| 五月婷婷欧美| 国产视频自拍一区| 亚洲男人天堂久久| 97超级碰碰碰碰精品| 伊人色天堂| 最新国产在线| 毛片一级在线| 超级碰免费视频91| 婷婷99视频精品全部在线观看 | 77777亚洲午夜久久多人| 国产永久在线视频| 日韩精品一区二区三区中文无码 | 天堂成人在线| 亚洲欧美一级一级a| 亚洲第一福利视频导航| 无码区日韩专区免费系列 | 国产第一色| 青青草国产免费国产| 成人一级免费视频| 国产手机在线ΑⅤ片无码观看| 日韩二区三区无| 国产精鲁鲁网在线视频| 亚洲精品在线影院| 国产黄在线观看| 国产成人精品一区二区不卡| 在线免费亚洲无码视频| 亚洲精品中文字幕无乱码| 91色老久久精品偷偷蜜臀| 国产午夜无码专区喷水| 国产精品专区第1页| 免费无码AV片在线观看中文| 黄色网页在线观看| 一本色道久久88| 波多野结衣国产精品| 午夜毛片免费观看视频 | 国产成人久久777777| 国产精品第页| 亚洲日本中文字幕天堂网| 在线国产三级| 国产成人精品2021欧美日韩| 91青青在线视频| 国产午夜在线观看视频| 理论片一区| 91美女在线| 中文天堂在线视频| 欧美午夜在线视频| 欧美亚洲国产日韩电影在线| 久久96热在精品国产高清| 无码专区在线观看| 毛片免费视频| 六月婷婷激情综合| m男亚洲一区中文字幕| 这里只有精品在线播放| 亚洲第一av网站| 美女裸体18禁网站| 波多野结衣无码视频在线观看| 国产欧美在线观看一区| 亚洲中文字幕国产av| 欧美特黄一级大黄录像| 国产二级毛片| 青青网在线国产| 日本a∨在线观看| 波多野结衣第一页| 欧美日韩国产精品va| 美女扒开下面流白浆在线试听| 女人毛片a级大学毛片免费| 国产视频一区二区在线观看| 亚洲香蕉伊综合在人在线| AV熟女乱| 丁香婷婷激情网| 丝袜美女被出水视频一区| 成人毛片在线播放| 中国毛片网| 99视频在线免费看| 国产99免费视频| 国产一在线| 成人福利在线免费观看| 在线va视频| 欧美另类视频一区二区三区|