当前位置: 首页 > article >正文

Vue语音播报功能

使用Web Speech API的SpeechSynthesis接口来实现文本转语音

Web Speech API可能不在所有浏览器中都能完美支持 特别是旧浏览器
在生产环境中,你可能需要添加功能检测和后备方案。
<template>
  <div>
    <textarea v-model="text" placeholder="请输入文本"></textarea>
    <button @click="speak">阅读文本</button>
    <button @click="stop">停止阅读</button>
    <button @click="listen">听我写</button>
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      text: '蜂鸟众包来新订单了 请及时接单 ',
      recognition: null,
      speech: null
    };
  },
  methods: {
    speak() {
      if ('speechSynthesis' in window) {
      const msg = new SpeechSynthesisUtterance();
      msg.text = this.text;// 内容
      msg.lang = 'zh-CN'; // 默认使用的语言:中文
      msg.volume = 1; // 默认声音音量:1
      msg.rate = 1; // 默认语速:1
      msg.pitch = 1; // 默认音高:1
      window.speechSynthesis.speak(msg)// 播放
      }else{
        alert('您的浏览器不支持语音合成');
      }
    },
    stop() {
      window.speechSynthesis.cancel();// 取消所有正在进行的语音播报
    },
    listen() {
      this.recognition = new webkitSpeechRecognition();
      this.recognition.onresult = (event) => {
        const text = event.results[0][0].transcript;
        this.text = text;
      };
      this.recognition.start();
    }
  }
};
</script>

speak-tts

npm install speak-tts
<template>
  <div>
    <button @click="speak">读出文本</button>
  </div>
</template>
 
<script>
import Speech from 'speak-tts'
 
export default {
  data () {
    return {
      speech:null,
      text:"语音播报测试 美团众包来新订单了 请及时接单 蜂鸟众包来新订单了 请及时接单",
    }
},
mounted(){
   this.speechInit();
},
methods:{
   speechInit(){
     this.speech = new Speech();
     this.speech.setLanguage('zh-CN');
     this.speech.init().then(()=>{
        console.log('语音播报初始化完成...')
      })
   },
   
   //语音播报
   speak(){
     this.speech.speak({text:this.text}).then(()=>{
       console.log("播报完成...")
     })
   }
}


};
</script>

百度合成API


http://www.kler.cn/a/504311.html

相关文章:

  • Android SystemUI——使用Dagger2加载组件(四)
  • 接口测试Day09-数据库工具类封装
  • 浅谈ArcGIS的地理处理(GP)服务之历史、现状和未来
  • 算法妙妙屋-------2..回溯的奇妙律动
  • C++实现设计模式---原型模式 (Prototype)
  • Jira用例自动去除summary重复用例
  • 模拟退火算法在Matlab中的两个应用案例及代码
  • MYSQL5.7 全文检索中文无返回数据
  • MySQL 日志:undo log、redo log、binlog 有什么用?
  • 软件工程和项目管理领域 - CMMI 极简理解
  • 【C#设计模式(23)——模板方法模式(Template Method Pattern)】
  • toJSON使用中遇到的问题
  • c语言 --- 字符串
  • 马氏距离分类器:考虑特征相关性的分类方法
  • vue+element-ui做的前端模糊查询
  • win10安装anaconda环境与opencv
  • 【Redis】初识分布式系统
  • 项目练习:若依管理系统字典功能-Vue前端部分
  • (NAACL-2024 Oral)LoRETTA:低秩经济张量训练自适应,用于大型语言模型的超低参数微调
  • lammps应用于能源材料
  • [笔记] MyBatis-Plus XML 配置详解:从基础到高级,全面提升开发效率
  • idea无法下载源码
  • 逐“绿”前行 企业综合能源管控低碳转型如何推进?
  • Linux服务器网络丢包场景及解决办法
  • HDFS迁移distcp,源端数据新增,致迁移失败处理
  • python3GUI--大屏可视化-XX产业大数据指挥舱(附下载地址) By:PyQt5