前端实现语音合成

2020-11-29  本文已影响0人  欢欣的膜笛

HTML5语音Web Speech API

HTML5中和Web Speech相关的API实际上有两类,一类是“语音识别(Speech Recognition)”,另外一个就是“语音合成(Speech Synthesis)”,即“语音转文字”和“文字变语音”。

语音合成

SpeechSynthesisUtterance:主要用来构建语音合成实例
SpeechSynthesis:主要作用是触发行为,例如读,停,还原等

语音识别

SpeechRecognition
由于到目前为止,浏览器还没有广泛支持,所以需要webKit的前缀:
var newRecognition = webkitSpeechRecognition();

除了result事件外,还有其他一些事件,例如,soundstartspeechstarterror等。

百度文字转语音开放API

  <div>
      文本:
      <input name="text" type="text" placeholder="请输入您想合成的语音" />
  </div>
  <div>
      语速:
      <input name="spd" type="range" min="0" max="15" value="5" step="1" />
  </div>
  <div>
      <button onclick="voicePlay()">合成语音</button>
  </div>

  <script>
      const voicePlay = () => {
          let text = encodeURI(document.querySelector('input[name="text"]').value);
          let spd = document.querySelector('input[name="spd"]').value;

          let audio = new Audio();
          audio.autoplay = 'autoplay';

          // lan=zh – 语言是中文,如果改为lan=en,则语言是英文
          // ie=UTF-8 – 文字格式
          audio.src = `http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&text=${text}&spd=${spd}`;

          document.body.appendChild(audio);
      }
  </script>
上一篇 下一篇

猜你喜欢

热点阅读