zoukankan      html  css  js  c++  java
  • SpeechSynthesisUtterance 语音合成

    参考链接:https://blog.csdn.net/qq_40571631/article/details/89738575

    ---

    SpeechSynthesisUtterance基本介绍

    SpeechSynthesisUtterance是HTML5中新增的API,用于将指定文字合成为对应的语音

    SpeechSynthesisUtterance基本属性

    SpeechSynthesisUtterance.lang 获取并设置话语的语言
    SpeechSynthesisUtterance.pitch 获取并设置话语的音调(值越大越尖锐,越低越低沉)
    SpeechSynthesisUtterance.rate 获取并设置说话的速度(值越大语速越快,越小语速越慢)
    SpeechSynthesisUtterance.text 获取并设置说话时的文本
    SpeechSynthesisUtterance.voice 获取并设置说话的声音
    SpeechSynthesisUtterance.volume 获取并设置说话的音量

    SpeechSynthesisUtterance监听事件

    onstart 开始合成
    onend 合成结束
    onerror 合成错误
    onpause 暂停
    onresume 恢复暂停
    onboundary 在句子或单词边界
    speechSynthesis基本方法

    speak() 将对应的实例添加到语音队列中

    cancel() 删除队列中所有的语音.如果正在播放,则直接停止

    pause() 暂停语音

    resume() 恢复暂停的语音

    getVoices 获取支持的语言数组. 注意:必须添加在voiceschanged事件中才能生效

    使用:

    const speak = (word) => {
      let msg = new window.SpeechSynthesisUtterance(word);
      // msg.text = word; //播放文案
      msg.volume = '1'; // 声音的音量,区间范围是0到1,默认是1。
      msg.rate = 1;// 设置播放语速,范围:0.1 - 10之间    正常为1倍播放
      msg.pitch = '0'; // 表示说话的音高,数值,范围从0(最小)到2(最大)。默认值为1。
      msg.lang = 'zh-cn'; // 使用的语言,字符串, 例如:"zh-cn"
      msg.voiceURI = 'Google 普通话(中国大陆)';
    
      msg.onend = (event) => {  //语音合成结束时候的回调(语音读完后触发)
        console.log('合成结束');
      }
      msg.onstart = (event) => {
        console.log('合成开始');
      }
      msg.onerror = (event) => {
        console.log('onerror');
      }
      msg.onpause = (event) => {
        console.log('暂停');
      }
      msg.onresume = (event) => {
        console.log('恢复');
      }
      msg.onboundary = (event) => {
        console.log('在单词或句子边界');
      }
      window.speechSynthesis.speak(msg);
      return window.speechSynthesis;
    }
    let instance = null;
    ele.addEventListener('click', () => {
      instance = speak('123456789')
    })
    pause.addEventListener('click', () => {
      instance.pause()
    })
    resume.addEventListener('click', () => {
      instance.resume()
    })
    cancel.addEventListener('click', () => {
      instance.cancel()
    })

    ---

  • 相关阅读:
    岭回归和LASSO
    涉及到的知识点有页连接符的使用、批量修改元器件属性等知识
    OrCAD中分立器件的Symbol绘制
    OrCAD来新建原理图工程、设置原理图页面、新建原理图库
    python控制TLP2041高压电源源码(modbus rtu,try捕获异常使用)
    pyqt5分离ui主线程到子线程
    modbus rtu协议
    pcb接地设计
    PSPICE参数扫描+光标跟踪曲线改变+窗口分多个坐标系
    ad 导入logo
  • 原文地址:https://www.cnblogs.com/fqh123/p/15646266.html
Copyright © 2011-2022 走看看