亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于微信小程序的語(yǔ)音輸入技術(shù)應(yīng)用研究

        2018-01-20 06:42:04周虎
        電腦知識(shí)與技術(shù) 2018年31期
        關(guān)鍵詞:語(yǔ)音輸入語(yǔ)音識(shí)別微信小程序

        周虎

        摘要:該文通過(guò)微信小程序中的錄音功能,將生成的MP3格式文件上傳到服務(wù)器端并轉(zhuǎn)換成PCM格式的音頻文件,然后將該音頻文件發(fā)送到百度語(yǔ)音識(shí)別接口進(jìn)行語(yǔ)音識(shí)別,將識(shí)別結(jié)果返回到微信小程序,實(shí)現(xiàn)了在微信小程序中的用戶語(yǔ)音輸入功能?;谖⑿判〕绦虻恼Z(yǔ)音輸入功能大大提高了微信小程序中用戶輸入信息的速度和用戶體驗(yàn)。

        關(guān)鍵詞:微信小程序;語(yǔ)音識(shí)別;語(yǔ)音輸入;MP3;PCM

        中圖分類號(hào):TP393? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1009-3044(2018)31-0104-02

        1 背景

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

        2 微信小程序語(yǔ)音輸入功能簡(jiǎn)介

        微信小程序是基于微信給用戶提供二次開(kāi)發(fā)的應(yīng)用平臺(tái),用戶可以通過(guò)微信小程序開(kāi)發(fā)工具開(kāi)發(fā)自己的應(yīng)用。雖然微信平臺(tái)可以提供語(yǔ)音輸入,但是在小程序中目前只是提供錄音功能,并沒(méi)有提供語(yǔ)音輸入功能。雖然目前語(yǔ)音輸入技術(shù)已經(jīng)很成熟,但是針對(duì)小程序的特殊性,要實(shí)現(xiàn)基于小程序的語(yǔ)音輸入功能,只能通過(guò)遠(yuǎn)程調(diào)用語(yǔ)音識(shí)別接口的方式來(lái)實(shí)現(xiàn),所以借助小程序的錄音功能,將錄音的音頻文件發(fā)送到遠(yuǎn)程調(diào)用語(yǔ)音識(shí)別接口,并返回識(shí)別結(jié)果。

        基于微信小程序語(yǔ)音輸入功能主要包括錄音MP3格式文件的生成,服務(wù)器端音頻文件的格式轉(zhuǎn)換和調(diào)用百度語(yǔ)音識(shí)別接口并返回識(shí)別結(jié)果,具體時(shí)序圖如圖1所示。

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

        3 微信小程序語(yǔ)音輸入功能的實(shí)現(xiàn)

        微信小程序語(yǔ)音輸入功能主要分為音頻采集和上傳、音頻文件格式轉(zhuǎn)換和調(diào)用遠(yuǎn)程語(yǔ)音識(shí)別接口并返回結(jié)果三個(gè)部分。

        3.1 音頻采集和上傳

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

        const options = {

        duration: 30000,//指定錄音的時(shí)長(zhǎng),單位 ms

        sampleRate: 16000,//采樣率

        numberOfChannels: 1,//錄音通道數(shù)

        encodeBitRate: 96000,//編碼碼率

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

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

        }

        程序1? ?微信小程序錄音參數(shù)設(shè)置

        設(shè)定完指定參數(shù)后,微信小程序需要進(jìn)行錄音授權(quán),如果用戶允許錄音,此時(shí)將開(kāi)始錄音,錄音結(jié)束后將錄音文件保存在臨時(shí)文件夾中,并將該音頻文件上傳到服務(wù)器端,實(shí)現(xiàn)代碼如程序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://服務(wù)器地址',

        filePath: tempFilePath,

        name: 'file',

        success: function (res) {

        ////等待返回結(jié)果

        }

        }) })}

        })

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

        當(dāng)錄音文件采集后,直接上傳到遠(yuǎn)程服務(wù)器,等待服務(wù)器將語(yǔ)音識(shí)別的結(jié)果返回,如果成功返回后,再將識(shí)別的結(jié)果顯示在視圖文本框中。

        3.2 音頻格式轉(zhuǎn)換

        在服務(wù)器端,接收到微信小程序發(fā)送的音頻文件后,使用Java技術(shù)結(jié)合mp3spi第三方開(kāi)發(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 = 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.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音頻文件轉(zhuǎn)換為pcm格式音頻文件

        在轉(zhuǎn)換音頻格式過(guò)程中,如果出現(xiàn)異常,直接返回錯(cuò)誤信息,就不需要再調(diào)用百度語(yǔ)音識(shí)別接口了。

        3.3 調(diào)用遠(yuǎn)程語(yǔ)音識(shí)別接口并返回結(jié)果

        在服務(wù)器端對(duì)音頻文件格式轉(zhuǎn)換成功后,就可以通過(guò)引用百度的語(yǔ)音識(shí)別開(kāi)發(fā)包,直接將pcm格式的音頻文件發(fā)送到遠(yuǎn)程語(yǔ)音識(shí)別接口,等待接口返回識(shí)別的結(jié)果。當(dāng)然,用戶需要先在百度上注冊(cè)自己的APPID,得到對(duì)應(yīng)的APIKEY和SECRETKEY才可以調(diào)用。語(yǔ)音識(shí)別返回的結(jié)果是JSON格式,需要在服務(wù)器端對(duì)返回的結(jié)果進(jìn)行解析,具體如程序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";//設(shè)置APPID/AK/SK

        public static final String API_KEY = "APIKEY";

        public static final String SECRET_KEY = "SECRETKEY";

        public static String getVoiceTxt(String filepath){

        // 初始化一個(gè)AipSpeech

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

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

        return (res.toString(2));

        }

        }

        程序4? ?調(diào)用遠(yuǎn)程語(yǔ)音識(shí)別接口并返回結(jié)果

        當(dāng)服務(wù)器端獲取語(yǔ)音識(shí)別結(jié)果后,在將該結(jié)果通過(guò)JSON格式返回到微信小程序端的文本框中。

        4 結(jié)束語(yǔ)

        語(yǔ)音輸入已經(jīng)在很多應(yīng)用中得到了廣泛的使用,該文通過(guò)針對(duì)微信小程序中的語(yǔ)音輸入功能研究,結(jié)合微信小程序中的錄音功能、文件上傳功能、音頻格式轉(zhuǎn)換功能和遠(yuǎn)程語(yǔ)音識(shí)別功能共同實(shí)現(xiàn)了基于微信小程序的語(yǔ)音輸入功能,并在游記小程序中得到了應(yīng)用。一方面提高了用戶文字輸入的速度,同時(shí)提高了用戶體驗(yàn),當(dāng)然,這種語(yǔ)音輸入技術(shù)也有需要進(jìn)一步改進(jìn)的地方,如果微信平臺(tái)能開(kāi)放語(yǔ)音識(shí)別功能,就可以省去調(diào)用遠(yuǎn)程語(yǔ)音識(shí)別接口的步驟,在語(yǔ)音識(shí)別的速度上將得到大大的提高。

        參考文獻(xiàn):

        [1] 佚名. 百度語(yǔ)音識(shí)別[EB/OL]. http://ai.baidu.com/tech/speech/asr.

        [2] 匡文波, 李芮, 任卓如. 微信小程序面面觀[J]. 新聞?wù)搲?2017(2).

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

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

        猜你喜歡
        語(yǔ)音輸入語(yǔ)音識(shí)別微信小程序
        語(yǔ)音輸入法,會(huì)異化新聞文本嗎?
        語(yǔ)音輸入,如何才能“出口成章”?
        一種基于離線語(yǔ)音輸入技術(shù)的檢測(cè)數(shù)據(jù)記錄系統(tǒng)
        信息技術(shù)與專業(yè)課程融合路徑探索
        決策探索(2017年12期)2017-07-13 11:11:12
        當(dāng)圖書(shū)館遇上微信小程序
        通話中的語(yǔ)音識(shí)別技術(shù)
        面向移動(dòng)終端的語(yǔ)音簽到系統(tǒng)
        農(nóng)業(yè)物聯(lián)網(wǎng)平臺(tái)手機(jī)秘書(shū)功能分析與實(shí)現(xiàn)
        基于Android手機(jī)語(yǔ)音和Arduino控制板的機(jī)器人控制系統(tǒng)
        訊飛語(yǔ)音輸入法新版極速體驗(yàn)
        91中文在线九色视频| 国内成人精品亚洲日本语音| 无码久久流水呻吟| 香港三级欧美国产精品| 亚洲双色视频在线观看| 久久精品亚洲乱码伦伦中文| 中文字幕日韩精品永久在线| 精品人妻va一区二区三区| 亚洲高清精品一区二区| 国产精品国产三级国产剧情| 蜜桃一区二区三区视频网址| 国产日产欧产精品精品| 9lporm自拍视频区| 杨幂AV污网站在线一区二区| JIZZJIZZ国产| 亚洲中文字幕av一区二区三区人 | 日日干夜夜操高清视频| 亚洲VA不卡一区| 加勒比精品一区二区三区| 青青青草视频手机在线| 中文字幕高清不卡视频二区| 亚洲爆乳无码精品aaa片蜜桃| 无码人妻人妻经典| 免费观看又污又黄的网站 | 精品日韩在线观看视频| 精品粉嫩av一区二区三区| 乱人伦精品视频在线观看| 黄色a级国产免费大片| 久青草国产在线观看| 国产精品日日摸夜夜添夜夜添| 久久九九av久精品日产一区免费 | 色婷婷一区二区三区77| 国产精品久久久久久妇女| 麻豆╳╳╳乱女另类| 国产乱妇乱子在线视频| 国产成人综合亚洲av| 亚洲一区二区岛国高清| 国产成人av一区二区三区在线观看 | 人妖国产视频一区二区| 亚洲国产成人精品无码区二本 | 成人无码av一区二区|