Vue项目-文字转语音播报

2,254 阅读1分钟

Vue项目-文字转语音播报

SpeechSynthesisUtterance 语音合成使用

业务需求

最近公司做门诊预约系统,客户预约成功以后,公司后台管理系统来一段语音播报,提醒一下门诊小姐姐,客户预约成功,请及时联系。

方案选择

思考这个需求的时候,有三个以下选择:

1、tts.baidu.com/

参考文章:www.cnblogs.com/gfweb/p/117…

2、原生的audio

www.cnblogs.com/yanguangtie…

3、SpeechSynthesisUtterance (这是我的选择)

blog.csdn.net/qq_40571631…

www.cnblogs.com/qihang0/p/1…

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() 获取支持的语言数组.

案例

image-20220117202333237

参考文章:

1、blog.csdn.net/wang9938287…

2、www.cnblogs.com/qihang0/p/1…

3、www.cnblogs.com/qihang0/p/1…

4、developer.mozilla.org/zh-CN/docs/…

5、www.cnblogs.com/yanguangtie…