vue使用关于speak-tss插件的详细介绍

主要介绍下speak-tss插件的使用及一些配置项,使用场景是 vue3点击按钮,播放某段文字等。

1. 首先需要下载依赖

javascript 复制代码
npm install speak-tts

2. 引用该插件

javascript 复制代码
import Speech from 'speak-tts'

3. 使用插件进行实例化,检测浏览器是否支持播报

javascript 复制代码
import Speech from 'speak-tts';

const speech = new Speech();
// 检测浏览器是否支持,returns a boolean
if(speech.hasBrowserSupport()) {
	console.log("语音引擎加载成功,支持播报")
}else {
	console.log('此浏览器不支持语音播报')
}

4. 进行插件初始化 及 阅读文本

配置项说明:

volume:语音播报的声音,默认为1(音量0-1)。

lang:语言,如果没有提供,则默认值由您的浏览器决定(下文有声明多种语言)。

voice:要使用的语音,如果未提供,则由浏览器选择默认语音。 支持 Microsoft Huihui - Chinese (Simplified, PRC) ,Microsoft Kangkang - Chinese (Simplified, PRC) ,Microsoft Yaoyao - Chinese (Simplified, PRC)

rate: 语速,默认为 1

pitch:音调,默认为 1

splitSentences: 是否在句子结束时暂停,默认 true。

listeners:附加到 SpeechSynthesis 对象的监听器对象。

受支持的语言:列表可能完整,取决于您的浏览器。

ar-SA,cs-CZ,da-DK,de-DE,el-GR,en,en-AU,en-GB,en-IE,en-IN,en-US,en-ZA,es-AR,es-ES,es-MX,es-US,fi-FI,fr-CA,fr-FR,he-IL,hi-IN,hu-HU,id-ID,it-IT,ja-JP,ko-KR,nb-NO,nl-BE,nl-NL,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sv-SE,th-TH,tr-TR,zh-CN,zh-HK,zh-TW

javascript 复制代码
// 简单示例
speech.init().then((data) => {
    // speech对象包含可用语音列表和语音合成参数
    console.log("语音已准备就绪,声音可用", data)
}).catch(e => {
    console.error("初始化时发生错误: ", e)
})

// 完整配置示例
speech.init({
   volume: 1, // 音量
   lang: 'zh-CN', // 语言
   rate: 1, // 语速1正常语速,2倍语速就写2
   pitch: 1, // 音调
   splitSentences: true, // 在句子结束时暂停
   listeners: {
     // 事件
     onvoiceschanged: voices => {
       // console.log('事件声音已更改', voices);
     },
   },
 })
 .then(data => {
   console.log('语音已准备好,声音可用', data);
 })
 .catch(e => {
   console.error('初始化时发生错误 : ', e);
 });

// 阅读文本
// text:要朗读的文本
// queue:默认 true: 如果设置为 false,当前语音发音将被中断
// listeners: 播报是否成功的回调
speech.speak({
  text: '您有新的订单响起请注意查收', //这里使用文字或者i18n 都可以 看自己需求
  queue: true,
  listeners: {
     //  开始播放
     onstart: () => {
       console.log('Start utterance')
     },
     //  判断播放是否完毕
     onend: () => {
       console.log('End utterance')
     },
     //  恢复播放
     onresume: () => {
       console.log('Resume utterance')
     },
  }
})
.then(() => {
  console.log('成功!');
})
.catch(e => {
  console.error('发生错误:', e);
});

5,实例化对象上的方法

javascript 复制代码
// 设置语言(注意该语言必须是客户端浏览器支持的):
Speech.setLanguage('zh-CN')

// 设置语音(注意语音必须客户端浏览器支持):
Speech.setVoice('Fiona') //您可以传递由 init() 函数返回的 SpeechSynthesisVoice 或仅传递其名称

// 设置语速:
Speech.setRate(1) 

// 设置音量:
Speech.setVolume(1) 

// 设置音调:
Speech.setPitch(1)

// 暂停正在进行的谈话:
Speech.pause()

// 继续正在进行的谈话:
Speech.resume()

// 取消正在进行的谈话:
Speech.cancel()

// 获取布尔值,指示话语队列是否包含尚未说出的话语:
Speech.pending()

// 获取布尔值表示谈话是否暂停:
Speech.paused()

// 获取布尔值表示谈话是否正在进行中:
Speech.speaking()
相关推荐
小林ixn11 分钟前
别再背八股了!从 5 个真实场景彻底搞懂 JavaScript 的 this
javascript
爱读源码的大都督18 分钟前
Claude Code源码分析(三):为什么系统提示词中需要有tools呢?
前端·人工智能·后端
爱勇宝23 分钟前
Claude Code 被曝暗藏“隐形检测”代码:封代理不是最可怕的,可怕的是你根本不知道它在干什么
前端·后端·程序员
小牛不牛的程序员27 分钟前
我用 Claude Code 半天撸完了一个完整网站,AI 编程到底提升了多少效率?
前端
东风破_29 分钟前
JavaScript 面试常考的字符串算法:从反转字符串到回文判断
前端·javascript
巴勒个啦30 分钟前
D3.js 入门实战:用力导向图可视化项目依赖关系
javascript
ITOM运维行者43 分钟前
从零搭建企业级服务器监控体系:踩坑实录与架构设计
前端·后端
monologues1 小时前
深入 Vue 3 源码:响应式系统的精妙设计与编译优化
前端
hunterandroid1 小时前
Paging 3 分页:从手动分页到声明式加载
前端
用户4099322502121 小时前
Vue状态管理入门第四章:组合式store和SSR风险
前端·vue.js·后端