Vue项目-文字转语音播报
SpeechSynthesisUtterance 语音合成使用
业务需求
最近公司做门诊预约系统,客户预约成功以后,公司后台管理系统来一段语音播报,提醒一下门诊小姐姐,客户预约成功,请及时联系。
方案选择
思考这个需求的时候,有三个以下选择:
参考文章:www.cnblogs.com/gfweb/p/117…
2、原生的audio
3、SpeechSynthesisUtterance (这是我的选择)
SpeechSynthesisUtterance介绍
const synth = window.speechSynthesis;
// 初始化
var u = new SpeechSynthesisUtterance();
// 属性设置
u.text = "我爱中国";
// 执行
speechSynthesis.speak(u);
// 获取声音列表
speechSynthesis.getVoices();
// 设置声音
u.voiceURI = 'Alex';
SpeechSynthesisUtterance基本属性
SpeechSynthesisUtterance.lang获取并设置话语的语言
SpeechSynthesisUtterance.pitch获取并设置话语的音调(值越大越尖锐,越低越低沉)
SpeechSynthesisUtterance.rate获取并设置说话的速度(值越大语速越快,越小语速越慢)
SpeechSynthesisUtterance.text获取并设置说话时的文本
SpeechSynthesisUtterance.voice获取并设置说话的声音
SpeechSynthesisUtterance.volume获取并设置说话的音量该实例对象还暴露了一些方法:
onstart– 语音合成开始时候的回调。onpause– 语音合成暂停时候的回调。onresume– 语音合成重新开始时候的回调。onend– 语音合成结束时候的回调。
speechSynthesis基本方法
speak()将对应的实例添加到语音队列中cancel()删除队列中所有的语音.如果正在播放,则直接停止pause()暂停语音resume()恢复暂停的语音getVoices()获取支持的语言数组.
案例
参考文章:
2、www.cnblogs.com/qihang0/p/1…
3、www.cnblogs.com/qihang0/p/1…