2014-06-06 3 views
1

현재 자바 스크립트에서 SAPI 개체를 사용하여 일부 텍스트를 음성으로 렌더링하는 구현 작업을하고 있습니다. 내가 지금 TTS 사용하기되는 음성 변경하는 방법에 찾고 있어요자바 스크립트의 Microsoft Sapi - 음성 변경

VoiceObj = new ActiveXObject("Sapi.SpVoice"); 
VoiceObj.Speak("hello world"); 

:

나는 같은 작품의 기본 코드가 있습니다. 온라인 SAPI 문서를 살펴본 결과, 사용 가능한 목소리가 들어있는 객체를 얻을 수 있었고 색인으로 선택할 수있었습니다.

voices = VoiceObj.GetVoices(); 
VoiceObj.Voice = voices.Item(1); 
console.log(VoiceObj.Voice.GetDescription()); 

이렇게하면 올바르게 음성을 끌어오고, 로그 아웃하면 음성의 이름을 제공합니다. 문제는 음성을 변경 한 후 .Speak으로 전화를 걸 때 발생합니다. 자바 스크립트는 단지 Automation server can't create object 오류를 내고 아무런 말소리도 들리지 않습니다.

음성을 바꾸는 올바른 방법입니까? 나는 이것을 달성 할 수있는 다른 방법을 찾을 수 없습니다.

+0

당신은 어떻게 자바 스크립트를 호스팅하는? SAPI 객체는 스크립팅에 안전하지 않습니다. –

답변

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

특정 언어로 말하면 xml : voiceObj.Speak (' Hello two'); 409 = EN 407 = DE – imo