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

做学校网站需要备案么西安seo顾问

做学校网站需要备案么,西安seo顾问,酒水食品做的好网站,品牌注册公司背景: 在使用微信官方语音合成插件的时候遇到一个问题,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.tj-hxxt.cn/news/101064.html

相关文章:

  • 潍坊网站建设求职简历上海搜索优化推广
  • 网站首页全屏怎么做做网页
  • 浪潮云网站建设搜索引擎优化的办法有哪些
  • 政府网站建设调研外贸网站模板
  • 伍佰亿网站怎样电子商务网页制作
  • web项目模板seo去哪学
  • 深圳工程招标信息网武汉seo网站优化排名
  • 微信公众号小说代理和网站结合怎么做网站推广方法有哪些
  • 小说网站做公众号好还是网站好北京seo服务商找行者seo
  • 兰溪做网站最新病毒感染
  • 阿里网站如何做接入最近的国际新闻大事
  • 全国加盟网站大全百度移动端优化
  • 如何制作一个购物网站天猫关键词排名怎么控制
  • 企业网站建设能解决什么问题360投放广告怎么收费
  • 网络推广理论做网站好不好百度关键词批量看排名工具
  • 专做农产品的网站有哪些设计培训学院
  • 网站推广新手入门免费seo优化工具
  • 地方政府门户网站的建设win7优化大师免安装版
  • 怀集县住房和城乡规划建设网站广告收益平台
  • 做告状网站上海营销seo
  • 网站建设与管理维护说课百度一下你就知道搜索引擎
  • 怎么建网站平台济南最新消息
  • 网站建设设计设计公司优化设计答案五年级上册
  • 交换链接营销的成功案例seo交流
  • javaweb培训seo主要优化哪些
  • 广东企业网站备案app推广方案模板
  • 网站架构分析1688网站
  • 网站开发用什么编辑器企业软文
  • 免费做相册video的网站怎么引流客源最好的方法
  • 网站404做多大长春网站seo公司