开发文档:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx069ba97219f66d99&token=61191740&lang=zh_CN
插件功能
语音转文字
语音合成
文本翻译
具体使用案例可以查看面对面翻译小程序开源项目: https://github.com/Tencent/Face2FaceTranslator
简单DEMO实现:
step 1:添加插件
在使用前,需要登录官网 设置 → 第三方服务 → 添加插件
搜索 【微信同声传译】并添加
在需要使用插件的小程序 app.json 中指明需要使用的插件版本等信息
// app.json
{
...
"plugins": {
...
"WechatSI": {
"version": "0.0.6",
"provider": "wx069ba97219f66d99"
}
}
接下来,在index.js引入插件,获取全局唯一的语音识别管理器recordRecoManager
// index.js
const plugin = requirePlugin("WechatSI")
const manager = plugin.getRecordRecognitionManager()
step 2:语音输入
希望做到的效果是按住某个按钮,开始识别语音,松开按钮就结束识别
<view catchtouchstart="streamRecord" catchtouchend="endStreamRecord">中文view>
// index.js
Page({
data: {},
streamRecord: function() {
manager.start({
lang: 'zh_CN',
})
},
streamRecordEnd: function() {
manager.stop()
}
})
step 3:绑定录音回调事件
<view>语音识别内容:{{currentText}}view>
// page.js
Page({
data: {
currentText: '',
},
initRecord: function() {
//有新的识别内容返回,则会调用此事件
manager.onRecognize = (res) => {
let text = res.result
this.setData({
currentText: text,
})
}
// 识别结束事件
manager.onStop = (res) => {
let text = res.result
if(text == '') {
// 用户没有说话,可以做一下提示处理...
return
}
this.setData({
currentText: text,
})
// 得到完整识别内容就可以去翻译了
this.translateTextAction()
}
},
translateTextAction: function() {},
onLoad: function() {
this.initRecord()
}
})
step 4:文本翻译
<view>翻译结果:{{translateText}}view>
// page.js
Page({
data: {
currentText: '',
translateText: '',
},
translateTextAction: function() {
let lfrom = 'zh_CN'
let lto = 'en_US'
plugin.translate({
lfrom: lfrom,
lto: lto,
content: this.data.currentText,
tts: true, // 需要合成语音
success: (resTrans)=>{
// 翻译可以得到 翻译文本,翻译文本的合成语音,合成语音的过期时间
let text = resTrans.result
this.setData({
translateText: text,
})
// 得到合成语音让它自动播放出来
wx.playBackgroundAudio({
dataUrl: resTrans.filename,
title: '',
})
},
})
},
})
step 5:语音合成
plugin.textToSpeech({
lang: 'zh_CN',
content: '我想重新进行语音合成',
success: resTrans => {
// 可以重新得到语音合成文件和过期时间
},
})
能增加控制语速的功能吗
我的需求是这样的,不知道大家有更好的方法没有?用户根据系统提供的文字录入一段语音,我要保存他的语音,同时判断语音中的内容是否和系统提供的文字内容一致,不知道这样的需求大家是如何实现的呢????谢谢各位
你好,在onStop(callback)回调中有tempFilePath字段返回录音临时文件。
嗯呢,谢谢,我看到了,非常感谢
主要没有找到对应的API文档说明
文档: https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx069ba97219f66d99&token=61191740&lang=zh_CN
谢谢。。。
onStop(callback)回调中tempFilePath字段返回的录音临时文件,在用户本地存多久呢,如果用户使用频繁量大,会不会很占内存
能调节语速吗
有没有汉语翻译为维语的
声音可以更人性化点嘛
我试了下 根本就不回调onError和onStop
试一试
您好,我想问一下插件包大小是多少,我的小程序引入后就超大小了
textToSpeech 完全去复制文档,但是爆出-20003的错误,查看文档说是内部合成错误。。。完全不明白是什么意思,是什么原因会造成这种错误呢?
你好,麻烦提供一下APPID,微信版本号,机型,以及出现该错误的时间点,我们查一下。
下午的时候又好了 也没动他,不知道为什么,也没有清缓存,- -好奇怪哦