目前正致力于在javascript中使用SAPI对象将一些文本转换为语音的实现。
我的基本代码如下:
VoiceObj = new ActiveXObject("Sapi.SpVoice");
VoiceObj.Speak("hello world");
我现在正在寻找一种方法来改变TTS使用哪种语音。通过在线浏览SAPI文档,我设法得到一个包含可用语音的对象,并可以通过索引选择它们。
voices = VoiceObj.GetVoices();
VoiceObj.Voice = voices.Item(1);
console.log(VoiceObj.Voice.GetDescription());
这将正确地拉回声音,并且当注销时,将给出声音的名称。当我在改变声音后尝试拨打.Speak
时出现问题。 javascript只会抛出Automation server can't create object
错误而不会听到任何语音。
这是改变声音的正确方法吗?我找不到任何可用的方法来实现这一目标。
答案 0 :(得分:0)
var voiceObj = new ActiveXObject("Sapi.SpVoice");
//voiceObj.Speak("hello world");
var voices = voiceObj.GetVoices();
var i,n=voices.Count;
var v; //VoiceObj.Voice
for(i=0; i<n; i++){
console.log("Item "+i);
var v=voices.Item(i);
console.log(v.GetDescription());
}