应用场景: 实现实时语音播放后端返回的新闻资讯(富文本)功能
应用技术: 科大讯飞的在线语音合成功能(WebApi) (websoket) www.xfyun.cn/services/on…
demmo实现步骤:
登陆官网 --> 我的应用 --> 创新应用 --> 点击创建好的应用 --> 语音合 成(在线) --> WebApi文档 --> 下载 js/demo(www.xfyun.cn/doc/tts/onl…) --> 将接口认证信息(AppID,APISecret,Apikey考入demo中) --> 下载依赖(npm i) --> 启动项目
上述步骤是实现基本的语音合成功能demo
项目中实际应用:
1.下载相关依赖 npm i work-loader js-base64 -dev--save
注意:work-loader的版本号一定和demo一致(2.0.0)否则会报下面的错
2.拷贝demo中核心代码,注意appi等已修改
3.项目中引用
4.富文本处理(转为普通文本)
htmlStr.replace(/<[^<>]+>/g, '')
.replace(/ /gi, '')
.replace(/”/gi, '')
.replace(/“/gi, ''),
!!!注意项目启动可能会报的错误:
报错1:_js_transcode_worker_js__WEBPACK_MODULE_36___default.a is not a constructor
报错2:Cannot read property 'createChildCompiler' of undefined
报错3:This socket has been ended by the other party
at Socket.writeAfterFIN
解决方案:
1.修改原文件名:transcode.worker.js===>text.workers.js(你喜欢的语义化的 文件即可)
2.修改vue.config.js中webapck的配置
1.修改单线程配置
parallel: false
2.修改webpack中对work-loader的配置
config.module
.rule('worker')
.test(/\.workers\.js$/i)
.use('worker-loader')
.loader('worker-loader')
.options({
inline: true,
name: 'workerName.[hash].js',
});
参考解决链接:ask.csdn.net/questions/1…