Javascript中的Microsoft Sapi - 改变声音

时间:2014-06-06 14:33:06

标签: javascript text-to-speech sapi

目前正致力于在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错误而不会听到任何语音。

这是改变声音的正确方法吗?我找不到任何可用的方法来实现这一目标。

1 个答案:

答案 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());
}