当前位置: 首页 > news >正文

做学校网站需要备案么策划营销

做学校网站需要备案么,策划营销,wordpress中的联系在哪里,html5美食网站背景: 在使用微信官方语音合成插件的时候遇到一个问题,textToSpeech这个api的内容限制在官网的文档上明明是1000个字节,也就是说能保证333个中文字符应该是没有问题的,但是也不知道为什么我这里仅仅传了150个中文字符就报错了&…

背景:
在使用微信官方语音合成插件的时候遇到一个问题,textToSpeech这个api的内容限制在官网的文档上明明是1000个字节,也就是说能保证333个中文字符应该是没有问题的,但是也不知道为什么我这里仅仅传了150个中文字符就报错了,报错内容返回{“retcode”:-20003,“msg”:“text to speech inner server failed.”},查了一下是因为内容过长导致的错误。
解决办法:
事实与文档说明完全不符,这个没办法解决,就想了一个分割内容分段合成的办法,但是分段吧就会有一个问题,那就是如果每段文字合成语音后,播放,然后再合成,在播放,就会出现明显的停顿,一点都不丝滑,很难受,为了解决这个问题,想了一个预加载的办法,也就是预先合成一段段的音频文件,然后将这些音频文件存到一个数组里面,通过shift函数每次从数组取出一个这样就实现了不管多少文字内容,都能够非常丝滑的合成语音文件。
代码:

    data() {return {showAudioModal: false,textAyy: [],audioAyy: [],content: '超长的文本'};},onLoad(e) {this.audioContext =	uni.createInnerAudioContext();this.audioContext.onEnded(() => {if(this.audioAyy && this.audioAyy.length > 0){this.audioContext.src = this.audioAyy.shift()this.audioContext.play()}else{this.showAudioModal = false}})},methods: {async textToSpeech(){this.audioAyy = []this.textAyy = this.splitStringByLength(this.content,100,100)let flag = truefor (var i = 0,len = this.textAyy.length; i < len; i++) {if(i === 0){uni.showLoading({title: '语音加载中',mask: true})}await this.callTextToSpeech(this.textAyy[i]).then(res => {console.log(i)this.showAudioModal = trueif(flag){this.audioContext.src = res;this.audioContext.play();flag = false}else{this.audioAyy.push(res)}uni.hideLoading()}).catch(() => {})}if(flag){uni.hideLoading()uni.showToast({title:'语音合成失败'})}},callTextToSpeech(content){return new Promise((resolve,reject) => {this.$wcs.textToSpeech({lang: "zh_CN",tts: true,content,success: (res) => {console.log("succ tts", res.filename)resolve(res.filename)},fail: function(res) {console.log("fail tts", res)reject()}})})},splitStringByLength(str, maxSize, chunkSize) {const totalLength = str.length;if (totalLength <= maxSize) {return [str];}const chunks = [];let start = 0;while (start < totalLength) {let end = Math.min(start + chunkSize, totalLength);const chunk = str.substring(start, end);chunks.push(chunk);start = end;}return chunks;},
}

大致逻辑
通过async和await保证语音合成的有序性,第一段成功的语音直接播放,后续的放入数组,等音频播放结束事件触发后,自动从数组中获取资源,这样一来就实现了预合成的效果,达到了非常丝滑的效果

http://www.hengruixuexiao.com/news/30600.html

相关文章:

  • 学做网站的书哪些好百度人工
  • 擦边球做网站挣钱最近的电脑培训班在哪里
  • 企业登记网上注册百度seo关键词外包
  • 个人网站必须备案吗长沙本地推广平台
  • 上海网站定制团队发帖推广
  • 玉林住房和城乡规划建设委员会网站东莞做网站公司首选
  • 手机单页网站生成系统网站查询站长工具
  • 网站营销推广的公司软件培训机构哪家好
  • 自适应网站建设都找全网天下平原县网站seo优化排名
  • 北京企业网站优化百度推广优化
  • 个体户工商可以做经营性网站吗服务器
  • 政府网站运营方案网站做外链平台有哪些
  • 泰安关键词优化公司北京网站优化专家
  • 朝阳市网站建设网络宣传方案
  • php 手机网站cms拼多多seo怎么优化
  • 深圳网站制作公司可以给香港网站做维护和开发吗新手怎么引流推广
  • 专门做ppt会员网站口碑营销经典案例
  • 代理ip 海外海口关键词优化报价
  • 文安做网站谷歌推广平台
  • 珠海网站制作设计万网官网
  • 一个网站一年的费用电销精准客户资源
  • 网站开发学哪一个好广告推广的软件
  • 怎么修改网站的关键词seo综合查询什么意思
  • 网页制作的模块命名规范优化英语
  • 免费注册域名流程神马seo教程
  • asp.net 网站备份短视频询盘获客系统
  • 珠海澳门网站建设公司微信广告推广平台
  • 速成网站-seo排名哪家正规
  • seo推广优化方案seo技巧seo排名优化
  • 企业网站建设如何做好外链建设seo关键词优化