这里调用的是百度文字转语音开放API

html:

<div>
    <input type="text" id="ttsText">
    <input type="button" id="tts_btn" onclick="doTTS()" value="播放">
  </div>
  <div id="bdtts_div_id">
    <audio id="tts_autio_id" autoplay="autoplay">
      <source id="tts_source_id" src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&per=1&text=请输入文字" type="audio/mpeg">
      <embed id="tts_embed_id" height="0" width="0" src="">
    </audio>
  </div>

js:

function doTTS() {
      var ttsDiv = document.getElementById('bdtts_div_id');
      var ttsAudio = document.getElementById('tts_autio_id');
      var ttsText = document.getElementById('ttsText').value;

      // 文字转语音
      ttsDiv.removeChild(ttsAudio);
      var au1 = '<audio id="tts_autio_id" autoplay="autoplay">';
      var sss = '<source id="tts_source_id" src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&per=3&spd=5&text=' + ttsText + '" type="audio/mpeg">';
      var eee = '<embed id="tts_embed_id" height="0" width="0" src="">';
      var au2 = '</audio>';
      ttsDiv.innerHTML = au1 + sss + eee + au2;

      ttsAudio = document.getElementById('tts_autio_id');

      ttsAudio.play();
    }

代码中改变传参可更改配置:

lan=zh(语言zh:中文;en:英文;fr:法文;)

ie=UTF-8(字符集)

per=3(每3个字符停顿)

spd=5(语音播放速度,数字越大越快0-15)

text=“”(需要转换的文字)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐