5

웹 스피치 API에 이상한 문제가 있습니다. 문자열을 말하도록 코드를 설정했습니다. 매우 드물게 일반 음성 (Mac OS X의 구술 및 말하기 설정의 "Alex")으로 말합니다. 그러나 보통, 그것은 "Albert"라는 목소리로 말한다.웹 스피치 API 음성 합성 - 음성 목록 받기

내가 여기에 나열된 W3C 웹 음성 API를 찾고 있어요

:

https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#dfn-ttsgetvoices

SpeechSynthesisVoiceList {}

나는이 기능에 액세스하려고라는 인터페이스가 , 그러나 나는 할 수 없다.

이 음성 목록에 어떻게 액세스합니까? 나는 크롬 카나리아를 사용하고 있으며, 이것을 수행하는 수많은 방법을 시도해 왔습니다. 내가 일을 기대하는 것 :

console.log(window) 

을 나는 웹 음성 API와 음성 합성에 관한 많은 것들을 볼 :

var u = new SpeechSynthesisUtterance(); 
    console.log(u.getVoices()); 

또는

var u = new SpeechSynthesisVoiceList(); 
    console.log(u); 

또한 실행했습니다 , 그러나 목소리에 관해서는 아무것도.

답변

4

모든 음성 목록을 얻으려면 speechSynthesis.getVoices()을 사용해야합니다. Chrome의 출력입니다. 3330 :

[{ 
    "default": true, 
    "localService": false, 
    "lang": "en-US", 
    "name": "Google US English", 
    "voiceURI": "Google US English" 
}, { 
    "default": false, 
    "localService": false, 
    "lang": "en-GB", 
    "name": "Google UK English Male", 
    "voiceURI": "Google UK English Male" 
}, { 
    "default": false, 
    "localService": false, 
    "lang": "en-GB", 
    "name": "Google UK English Female", 
    "voiceURI": "Google UK English Female" 
}, { 
    "default": false, 
    "localService": false, 
    "lang": "es-ES", 
    "name": "Google Español", 
    "voiceURI": "Google Español" 
}, { 
    "default": false, 
    "localService": false, 
    "lang": "fr-FR", 
    "name": "Google Français", 
    "voiceURI": "Google Français" 
}, { 
    "default": false, 
    "localService": false, 
    "lang": "it-IT", 
    "name": "Google Italiano", 
    "voiceURI": "Google Italiano" 
}, { 
    "default": false, 
    "localService": false, 
    "lang": "de-DE", 
    "name": "Google Deutsch", 
    "voiceURI": "Google Deutsch" 
}, { 
    "default": false, 
    "localService": false, 
    "lang": "ja-JP", 
    "name": "Google 日本人", 
    "voiceURI": "Google 日本人" 
}, { 
    "default": false, 
    "localService": false, 
    "lang": "ko-KR", 
    "name": "Google 한국의", 
    "voiceURI": "Google 한국의" 
}, { 
    "default": false, 
    "localService": false, 
    "lang": "zh-CN", 
    "name": "Google 中国的", 
    "voiceURI": "Google 中国的" 
}, { 
    "default": false, 
    "localService": true, 
    "lang": "", 
    "name": "native", 
    "voiceURI": "native" 
}] 
+3

https://code.google.com/p/chromium/issues/detail?id=340160 페이지로드시 사용할 수없는 경우가 있습니다. 'setInterval (..., 1);의 해결 방법은 http://aurelio.audero.it/demo/speech-synthesis-api-demo.html에서 사용 된 트릭을 수행합니다. –

+1

결과물 (특히 이름)이 변경되었습니다 ... –

+0

Firefox를 사용하면 하나의 음성을 사용할 수 있지만 Srware Iron (Chrome 포크)을 사용하면 찾을 수 없습니다. – Jackalope