方法一(推荐,):html
1. 利用new关键字实例化一个 SpeechSynthesisUtterance 对象
2. 给实例化对象添加语音合成的属性this
text – 要合成的文字内容,字符串。htm
lang – 使用的语言,字符串, "zh-cn"中文对象
voiceURI – 指定但愿使用的声音和服务,字符串。rem
volume – 声音的音量,区间范围是0到1,默认是1。字符串
rate – 语速,数值,默认值是1,范围是0.1到10,表示语速的倍数。get
pitch – 表示说话的音高,数值,范围从0(最小)到2(最大)。默认值为1。it
3. 接下来是使用 speechSynthesis 对象,主要做用是触发行为,例如读,停,还原等io
speak() – 只能接收SpeechSynthesisUtterance做为惟一的参数,做用是读合成的话语。function
stop() – 当即终止合成过程。
pause() – 暂停合成过程。
resume() – 从新开始合成过程。
//去除富文本里的img标签,只剩下文字 var name_1=""; $("#editor").find("p").each(function () { if(($(this).html()).indexOf("img")==-1){ name_1+=$(this).text(); } })
var msg = new SpeechSynthesisUtterance(name_1); window.speechSynthesis.cancel(msg);//清除全部语音播报 window.speechSynthesis.speak(msg);//播放
方法二(在苹果电脑上不支持播放):
var ttsDiv = document.getElementById('bdtts_div_id'); var ttsAudio = document.getElementById('tts_autio_id'); // 文字转语音 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=' + name_1 + '" 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();