vue使用关于speak-tss插件的详细介绍及一些配置项

 更新时间:2024年09月18日 12:19:20   作者:随笔写  
本文详细介绍了speak-tss插件在Vue3中的使用方法和配置,首先需要下载依赖,然后引入插件,并进行实例化和配置,配置项包括音量、语言、语音、语速、音调等,speak-tss支持多种语言和语音,适用于需要文本语音播报的场景

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

1. 首先需要下载依赖

npm install speak-tts

2. 引用该插件

import Speech from 'speak-tts'

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

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

// 简单示例
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,实例化对象上的方法

// 设置语言(注意该语言必须是客户端浏览器支持的):
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()

到此这篇关于vue使用关于speak-tss插件的详细介绍的文章就介绍到这了,更多相关vue speak-tss插件使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于vue实现分页/翻页组件paginator示例

    基于vue实现分页/翻页组件paginator示例

    本篇文章主要介绍了基于vue实现分页/翻页组件paginator示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Vue中的nextTick方法详解

    Vue中的nextTick方法详解

    Vue的nextTick方法是用来在下次DOM更新周期中执行回调函数的方法,用于DOM操作后获取DOM更新后的状态,使用场景包括异步更新DOM、获取更新后元素的位置等情况,一般结合Vue的异步更新机制和watch监听器使用,实现方式可使用Promise、setTimeout等异步方法
    2023-04-04
  • 详解基于Vue/React项目的移动端适配方案

    详解基于Vue/React项目的移动端适配方案

    这篇文章主要介绍了详解基于Vue/React项目的移动端适配方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 解决Vue动态加载本地图片问题

    解决Vue动态加载本地图片问题

    这篇文章主要介绍了Vue如何动态加载本地图片的相关知识,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • vue生成文件本地打开查看效果的实例

    vue生成文件本地打开查看效果的实例

    今天小编就为大家分享一篇vue生成文件本地打开查看效果的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 使用Vue-scroller页面input框不能触发滑动的问题及解决方法

    使用Vue-scroller页面input框不能触发滑动的问题及解决方法

    这篇文章主要介绍了使用Vue-scroller页面input框不能触发滑动的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Vue表单输入的双向绑定失效原因与解决方案

    Vue表单输入的双向绑定失效原因与解决方案

    在Vue.js开发中,双向绑定是实现表单输入与数据同步的核心特性之一,然而,在实际开发中,开发者可能会遇到双向绑定失效的问题,导致表单输入无法正确更新数据或视图,本文将探讨双向绑定失效的常见原因,并提供相应的解决方案,需要的朋友可以参考下
    2025-03-03
  • vue深拷贝的三种实现方式示例详解

    vue深拷贝的三种实现方式示例详解

    vue深拷贝的三种实现方式:1、通过递归方式实现深拷贝;2、JSON.parse(JSON.stringify(obj));3、jQuery的extend方法实现深拷贝,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-11-11
  • Vue+Element+Springboot图片上传的实现示例

    Vue+Element+Springboot图片上传的实现示例

    最近在学习前段后分离,本文介绍了Vue+Element+Springboot图片上传的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • vue中使用rem布局代码详解

    vue中使用rem布局代码详解

    在本篇文章里小编给大家整理的是关于vue中使用rem布局代码详解知识点,需要的朋友们参考下。
    2019-10-10

最新评论