小程序中使用微信同声传译插件实现语音识别、语音合成、文本翻译功能----语音合成(二)

官方文档链接:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx069ba97219f66d99\&token=370941954\&lang=zh_CN#-

要使用插件需要先在小程序管理后台设置->第三方设置->插件管理 中添加插件,目前该插件仅认证后的小程序。

语音合成功能

语音合成支持的语言有 zh_CN(中国大陆),en_US(英文)。

textToSpeech(obj)

参数说明:

1、lang:文本语言 zh_CN(中国大陆)en_US(英文),String类型,必填项;

2、content:需要被翻译的文本内容,后台限制1000字节大小,String类型,必填项;

3、success:调用成功时触发的回调,Function类型;

回调结果说明:

retcode:retcode == 0 时语音合成成功,Int类型;

origin: 原始文本,String类型;

filename:语音合成返回的语音地址,可自行下载使用,String类型;

expired_time:语音合成链接超时时间戳 如1525930552,超时后无法播放,可使用时间为3小时,Int类型。

4、fail:调用失败时触发的回调,Function类型。

回调结果说明

retcode:错误码,Int类型;

msg:错误信息,String类型。

错误码说明

-20001 语音合成语言格式出错

-20002 输入的待合成格式不正确

-20003 语音合成内部错误

-20005 网络错误

-40001 接口调用频率达到限制,请联系插件开发者

使用

1、注册插件

在app.json中注册插件

"plugins": {

"WechatSI": {

"version": "0.3.5",

"provider": "wx069ba97219f66d99"

}

},

2、在页面中引入插件

//引入插件:微信同声传译

const plugin = requirePlugin('WechatSI')

3、在上述1、2步骤完成后实现语音合成

// 文字转语音

playTextToVoice(){

//创建内部 audio 上下文 InnerAudioContext 对象。

this.innerAudioContext = wx.createInnerAudioContext();

const that = this;

plugin.textToSpeech({

// 调用插件的方法

lang: 'zh_CN',

// lang: 'en_US',

content: '欢迎进入语音合成',

success: function (res) {

that.playAudio(res.filename);

}

});

},

// 播报语音

playAudio(e) {

this.innerAudioContext.src = e; //设置音频地址

this.innerAudioContext.play(); //播放音频

},

4、如果在页面隐藏或卸载时不再播放合成的语音可将其关闭或销毁播放实例

onHide() {

this.innerAudioContext.stop();

this.innerAudioContext.destroy();

},

案例实现代码:

javascript 复制代码
//引入插件:微信同声传译
const plugin = requirePlugin('WechatSI')

Page({
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 播报
    this.playTextToVoice()
  },

  // 文字转语音
  playTextToVoice(){
    //创建内部 audio 上下文 InnerAudioContext 对象。
    this.innerAudioContext = wx.createInnerAudioContext();
    const that = this;
    plugin.textToSpeech({
      // 调用插件的方法
      lang: 'zh_CN',
      // lang: 'en_US',
      content: '欢迎进入语音合成',
      success: function (res) {
        that.playAudio(res.filename);
      }
    });
  },
  // 播报语音
  playAudio(e) {
    this.innerAudioContext.src = e; //设置音频地址
    this.innerAudioContext.play(); //播放音频
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    this.innerAudioContext && this.innerAudioContext.stop();
    this.innerAudioContext && this.innerAudioContext.destroy();
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    this.innerAudioContext && this.innerAudioContext.stop();
    this.innerAudioContext && this.innerAudioContext.destroy();
  },
})

具体案例代码亦可参考:https://gitee.com/mei-ruohan/mini-program-collection/tree/master/pages/texttvoice

相关推荐
前端snow6 小时前
ai agent --- 实现 openclaw 定时间效果
前端
码云之上6 小时前
换模型之后,Chatbot 为什么要自己做 compact?
前端·agent·前端工程化
星栈6 小时前
自定义 UI-UX-Pro-Max 的 CSV 知识库,把 AI 生成的后台拉回行业该有的样子
前端·agent·weui
研☆香7 小时前
简单的图片上传 删除 预览
前端
ITresearchGuest7 小时前
我用 AI 一小时写了一个世界杯数据可视化平台|前端 VibeCoding 初体验
前端·人工智能·信息可视化
枫叶丹48 小时前
实时语音 Agent:从语音机器人到连续协作界面
人工智能·chatgpt·机器人·语音识别·agent·codex
慧一居士8 小时前
Vite项目中使用Less步骤,详细使用示例
前端·css
花间相见8 小时前
【LangChain组件03】—— LangChain Agents 执行与状态:工作流程与状态管理实战
java·前端·langchain
kyriewen9 小时前
面试官让我用 AI 重构一个 8 年陈的 React 组件——他说他不看代码,只看我会不会拆
前端·javascript·面试
计算机魔术师9 小时前
700吉瓦「幽灵用电」:美国AI数据中心的抢电闹剧正在失控
前端