uniapp小程序文字与语音互相转化

小程序文字与语音互相转化

    • 插件名称: 微信同声传译
    • 插件使用
    • 文字转语音功能
    • 语音转文字
    • 总结

插件名称: 微信同声传译

微信同声传译由微信智聆语音团队、微信翻译团队与公众平台联合推出的同传开放接口,首期开放语音转文字、文本翻译、语音合成接口,为开发者赋能。

插件使用

  1. 微信公众平台 ,进行登录小程序;
  2. 在设置,第三方设置,插件管理,添加**微信同声传译插件官网**;
  3. 在uniapp中manifest.json,源码视图中添加下面代码;
"plugins" : {
   "WechatSI" : {
        "version" : "0.0.7",
        "provider" : "wx069ba97219f66d90"
    }
}
  1. 下面就可以在页面中进行使用了;

文字转语音功能

  1. 先引入微信同声传译插件
var plugin = requirePlugin("WechatSI")
  1. 使用 textToSpeech() 来进行转换,注意这里返回的是mp3链接
let _this = this;
plugin.textToSpeech({
    lang: "zh_CN",
    tts: true,
    content: "这是内容",
    success: function(res) {
		_this.pay = true
        console.log("succ tts", res)
    },
    fail: function(res) {
        console.log("fail tts", res)
    }
})
  1. 使用mp3进行自动播放,createInnerAudioContext创建innerAudioContext对象https://uniapp.dcloud.net.cn/api/media/audio-context.html点击查看innerAudioContext
let _this = this;
_this.innerAudioContext = uni.createInnerAudioContext();
_this.innerAudioContext.src = res.filename
_this.innerAudioContext.play()
_this.innerAudioContext.onPlay(() => {
  console.log('开始播放');
});
_this.innerAudioContext.onEnded(() => {
  console.log('播放结束');
  _this.pay = false
});

语音转文字

  1. 先引入微信同声传译插件
var plugin = requirePlugin("WechatSI")
  1. 获取全局唯一的语音识别管理器recordRecoManager,调用语音管理器的方法,onStart ,onStop ,onError ,onRecognize 来进行判断微信同声传译插件官网
let _this = this;
//获取全局唯一的语音识别管理器recordRecoManager
this.manager = plugin.getRecordRecognitionManager();
this.manager.onRecognize = function(res) {
console.log("current result", res.result)
}
this.manager.onError = function(res) {
    console.log("error msg", res)
}
this.manager.onStop = function(res) {
    console.log("record file path", res)
    console.log("result", res.result)
}
this.manager.onStart = function(res) {
    console.log("成功开始录音识别", res)
}
  1. 开启语音监听
// duration: 指定录音的时长,单位ms,最大为60000
// lang: 识别的语言,目前支持zh_CN en_US zh_HK
this.manager.start({duration:60000, lang: "zh_CN"})
  1. 结束语音,结束语音后,语音识别管理器会调用onStop 方法, 会把你说的话进行转化,这个方法接收一个回调函数,result:就是最终识别结果。
this.manager.stop()

总结

你可以把上面的功能封装为组件,进行传递参数,我是这么进行封转的,感谢您的浏览,有好的建议或方法咱们可以进行进行留言谢谢,都到这里了 点一个关注在离开吧,以后每周都会固定更新一篇哦,想知道什么欢迎留言

你可能感兴趣的:(uni-app,小程序,语音识别)