一种基于微信小程序的语音输入技术应用研究_第1页
一种基于微信小程序的语音输入技术应用研究_第2页
一种基于微信小程序的语音输入技术应用研究_第3页
一种基于微信小程序的语音输入技术应用研究_第4页
一种基于微信小程序的语音输入技术应用研究_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    一种基于微信小程序的语音输入技术应用研究    周虎摘要:该文通过微信小程序中的录音功能,将生成的mp3格式文件上传到服务器端并转换成pcm格式的音频文件,然后将该音频文件发送到百度语音识别接口进行语音识别,将识别结果返回到微信小程序,实现了在微信小程序中的用户语音输入功能。基于微信小程序的语音输入功能大大提高了微信小程序中用户输入信息的速度和用户体验。关键词:微信小程序;语音识别;语音输入;mp3;pcm:tp393    :a     :1009-3044(2018)31-0104-021 背

2、景随着人工智能的不断发展,语音识别技术取得了显著进步,已经开始逐步走向市场,尤其在语音输入应用上,文字识别准确率达到90%以上1,大大提高了用户文字输入的速度。微信小程序是基于微信平台一种新的开放能力,可以在微信平台内被便捷地获取和传播,用户不需要下载安装即可使用的应用,具有出色的使用体验2。在一些游记或记事本类的小程序中,需要用户大量输入文字信息,该文将在微信小程序中通过调用微信平台的录音功能,结合远程的语音识别,共同实现了语音输入功能,大大提高了用户信息的输入速度。2 微信小程序语音输入功能简介微信小程序是基于微信给用户提供二次开发的应用平台,用户可以通过微信小程序开发工具开发自己的应用。

3、虽然微信平台可以提供语音输入,但是在小程序中目前只是提供录音功能,并没有提供语音输入功能。虽然目前语音输入技术已经很成熟,但是针对小程序的特殊性,要实现基于小程序的语音输入功能,只能通过远程调用语音识别接口的方式来实现,所以借助小程序的录音功能,将录音的音频文件发送到远程调用语音识别接口,并返回识别结果。基于微信小程序语音输入功能主要包括录音mp3格式文件的生成,服务器端音频文件的格式转换和调用百度语音识别接口并返回识别结果,具体时序图如图1所示。在音频转换过程中,由于百度开放语音平台接受原始 pcm 的录音参数必须符合 8k/16k 采样率、16bit 位深、单声道,而微信小程序在录音过程中

4、生成的音频格式采样率为8k/16k/44k,生成的音频格式为aac/mp3,存在音频格式不同的障碍,所以必须在服务器端要有一个音频转换功能。3 微信小程序语音输入功能的实现微信小程序语音输入功能主要分为音频采集和上传、音频文件格式转换和调用远程语音识别接口并返回结果三个部分。3.1 音频采集和上传在微信小程序中,提供了调用系统录音功能的接口,通过录音参数设置,指定相关参数,如程序1所示3。const options = duration: 30000,/指定录音的时长,单位 mssamplerate: 16000,/采样率numberofchannels: 1,/录音通道数encodebitr

5、ate: 96000,/编码码率format: 'mp3',/音频格式,有效值 aac/mp3framesize: 50,/指定帧大小,单位 kb程序1   微信小程序录音参数设置设定完指定参数后,微信小程序需要进行录音授权,如果用户允许录音,此时将开始录音,录音结束后将录音文件保存在临时文件夹中,并将该音频文件上传到服务器端,实现代码如程序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:/服务器地址',filepath: tempfilepath,name: 'file',success: function (res) /等待返回结果) )程序2   錄音文件采集及上传当录

7、音文件采集后,直接上传到远程服务器,等待服务器将语音识别的结果返回,如果成功返回后,再将识别的结果显示在视图文本框中。3.2 音频格式转换在服务器端,接收到微信小程序发送的音频文件后,使用java技术结合mp3spi第三方开发包,针对mp3格式文件进行格式转换4,首先获取pcm格式音频流,然后再写入新的pcm格式文件,关键代码如程序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();/设定输出格式为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音频文件转换为pcm格式音频文件在转换音频格式过程

10、中,如果出现异常,直接返回错误信息,就不需要再调用百度语音识别接口了。3.3 调用远程语音识别接口并返回结果在服务器端对音频文件格式转换成功后,就可以通过引用百度的语音识别开发包,直接将pcm格式的音频文件发送到远程语音识别接口,等待接口返回识别的结果。当然,用户需要先在百度上注册自己的appid,得到对应的apikey和secretkey才可以调用。语音识别返回的结果是json格式,需要在服务器端对返回的结果进行解析,具体如程序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"/设置appid/ak/skpublic static final string api_key = "apikey"public static final string secret_key = "secretkey"public static string getvoicetxt(string filepath)/ 初始化一个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   调用远程语音识别接口并返回结果当服务器端获取语音识别结果后,在将该结果通过json格式返回到微信小程序端的文本框中。4 结束语语音输入已经在很多应用中得到了广泛的使用,该文通过针对微信小程序中的语音输入功能研究,结合微信小程序中的录音功能、文件上传功能、音频格式转换功能和远程语音识别功能共同实现了基于微信小程序的语音输入功能,并在游记小程序中得到了应用。一方面提高了用户文字输入的速度,同时提高了用户体验,当然,这种语音输入技术也有需要進一步改进的地方,如果微信平台能开放语音识别

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论