Javascript 中的 Microsoft Sapi - 改变声音

问题描述 投票:0回答:2

目前正在研究在 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
错误并且听不到任何语音。

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

javascript text-to-speech sapi
2个回答
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());
}


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

你能把它做成.vbs吗

© www.soinside.com 2019 - 2024. All rights reserved.