Microsoft Speech SDK例子(js)
<html><head><title>语音测试例子</title></head><body>音量:<input id="vol"></input>语速<input id="rat"></input><p>朗读人:<select id="speaker"></select>输出设备:<select id="outputer"></select><p><textarea id="text" rows="3" cols="80">我们的教育真是问题成堆,很多情况下不是在培育英才而是在糟蹋人才。不上学大不了是个不识字的文盲,进校门后就可能成为弄虚作假的高手;不上大学可能还对学术有一份敬重,进大学后才知道学术是“什么玩艺儿”。一个人从幼儿园和小学开始,学校就逼着他如何搞形式,如何说假话,如何拉关系。只要在中国从幼儿园读到大学毕业,任何一个天真纯洁的孩子,都可能培养成为一个圆滑世故的老油条;任何一个真诚的儿童,都可能成为一个伪君子。</textarea><p><button onClick="speak()">朗读</button><button onClick="stop()">停止</button><p><p id="test"></p><script >var sap;//初始化TTSfunction init(){if(navigator.appName!="Microsoft Internet Explorer"){alert("请切换到IE内核");return false;}try{ sap= new ActiveXObject("Sapi.SpVoice");} catch(ex) {alert("初始化失败!"+ex);return false; } if(sap==null) {alert("初始化失败!没有Sapi.SpVoice控件");return false; } // return true;}//初始化设置参数function setting(){vol.value=sap.Volume;rat.value=sap.Rate;var VoicesToken = sap.GetVoices(); var AudioOutputsToken = sap.GetAudioOutputs(); //朗读引擎for( var i=0; i <VoicesToken.Count; i++ ) { var oOption = document.createElement("OPTION"); speaker.options.add(oOption); oOption.innerText = VoicesToken.Item(i).GetDescription(); oOption.value = i; } //输出设备for( var i=0; i <AudioOutputsToken.Count; i++ ) { var oOption = document.createElement("OPTION"); outputer.options.add(oOption); oOption.innerText = AudioOutputsToken.Item(i).GetDescription(); oOption.value = i; }}//获取设置参数function change(){try{sap.Volume=parseInt(vol.value);sap.Rate=parseInt(rat.value);sap.Voice = sap.GetVoices().Item(parseInt(speaker.value));sap.AudioOutput = sap.GetAudioOutputs().Item(parseInt(speaker.value));}catch(err){alert("设置出错!"+err);}}if(init()){setting();}function speak(){change();try{sap.speak(text.innerText,1);}catch(err){alert("朗读出错");}}function stop(){sap.speak("",2);}//语音朗读状态function getStatus(){st=sap.Status;msg="Status:"+",\n CurrentStreamNumber:"+st.CurrentStreamNumber+",\n InputSentenceLength:"+st.InputSentenceLength +",\n InputSentencePosition:"+st.InputSentencePosition+",\n InputWordLength:"+st.InputWordLength +",\n InputWordPosition:"+st.InputWordPosition +",\n InputWord:"+text.innerText.substring(st.InputWordPosition,st.InputWordPosition+st.InputWordLength ) +",\n LastBookmark :"+st.LastBookmark +",\n LastBookmarkId :"+st.LastBookmarkId +",\n LastHResult :"+st.LastHResult +",\n LastStreamNumberQueued :"+st.LastStreamNumberQueued +",\n PhonemeId :"+st.PhonemeId +",\n RunningState :"+st.RunningState +",\n VisemeId :"+st.PhonemeId ;test.innerText=msg;}//getStatus();setInterval("getStatus()",100);</script></body></html>
?
英文可以读,中文读不了,怎么办?