小程序文字转语音

项目场景:

提示:这里简述项目相关背景:小程序通过文字自动转换成语音


问题描述

`提示:后端无法传过来大量的语音文件,占用带宽,


解决方案:

提示:这里填写该问题的具体解决方案:

1,调用微信程序的同声传译组件,首先微信公众号平台申请同声传译组件
2,在小程序app.json中配置页面
app.json

  "plugins": {
        "WechatSI": {
          "version": "0.0.7",
          "provider": "wx069ba97219f66d99"//这APPID是小程序组件的APPID不是自己的
            }
      },

3,对应页面的js页面

引入这两个
 var plugin = requirePlugin("WechatSI")
const manager = plugin.getRecordRecognitionManager();

4,实现文字转语音,
wxml页面

<view class="yuyinWrap">
  <textarea class='yuyinCon' placeholder='请输入内容' model:value='{{content}}' bindinput='conInput'></textarea>
  <view class=''>
    <button class="yuyinBtn start" bindtap='wordYun'>开始</button>
    <button class="yuyinBtn" bindtap='end'>结束</button>
  </view>
</view>

data数据

Page({
  data: {
        content:'',//内容
         src:'',//路径方便直接转成语音文件播放
    },
    )}

调用的方法

wordYun:function(e){
    var that=this
     var content=this.data.content;
     plugin.textToSpeech({
        lang: "zh_CN",//语言
        tts: true,
        content: content,//接收的语音文件
        success: function(res) {
            that.setData({
                src:res.filename//语音文件下载路径
            })
           
            that.text_audio_status();//调用此方法来监听语音播放情况
        },
        fail: function(res) {
            console.log("fail tts", res)
        }
    })
    
},

获取的语音文件解析

text_audio_status:function(){
    //判断语音路径是否存在
       if (this.data.src == '') {
          console.log(暂无语音);
          return;
        }
       const innerAudioContext = wx.createInnerAudioContext();//创建音频实例
       innerAudioContext.src = this.data.src; //设置音频地址
       innerAudioContext.play(); //播放音频
       innerAudioContext.onPlay(() => {
          console.log('//监听开始播放');
        });
        innerAudioContext.onEnded(() => {
          console.log('监听播报结束,可在结束中进行相应的处理逻辑');
          innerAudioContext.stop();
          //播放停止,销毁该实例,不然会出现多个语音重复执行的情况
          console.log('销毁innerAudioContext实例')
          innerAudioContext.destroy();
        })
        innerAudioContext.onError(() => {
          console.log('监听语音播放异常')
          innerAudioContext.destroy()//销毁播放实例
        })
    },
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值