5

Web konuşma api ile garip bir sorun yaşıyorum. Bir metin dizisini konuşmak için bir kod oluşturdum - çok nadiren, normal bir sesle (Mac OS X'te Dikte ve Konuşma Ayarları'ndan "Alex") konuşuyor. Ama genellikle, "Albert" sesinde konuşur.web konuşma api konuşma sentezi - sesli liste alma

Ben burada listelenen W3C web konuşma API bakıyorum

:

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

ve

SpeechSynthesisVoiceList {}

Ben bu işlevi erişmeye çalışıyorum denilen bir arayüz var ama yapamam.

Bu ses listesine nasıl erişebilirim? Krom kanarya kullanıyorum ve bunu yapmak için çok sayıda yöntem denedim. Ne işe beklenir olacaktır:

console.log(window) 

ve ben web konuşma API ve konuşma sentezi ile ilgili olarak sayısız şeyleri görmek:

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

veya

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

ben de koşmak ettik ama sesler hakkında hiçbir şey yok.

cevap

4

Tüm seslerin bir listesini almak için speechSynthesis.getVoices() kullanmalısınız. https://code.google.com/p/chromium/issues/detail?id=340160 Başına

[{ 
    "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

, bu sayfa yüklendiğinde mevcut olmayabilir: Bu, Google Chrome 33 den bir çıkıştır. 'SetInterval'ın (..., 1) bir çözümü:' http://aurelio.audero.it/demo/speech-synthesis-api-demo.html –

+1

adresinde kullanılan hile yapar. adlar o zamandan beri değişti ... –

+0

Firefox'u kullanarak, tek bir ses buluyorum, ancak Srware Iron'ı (Chrome'un bir çatalı) kullanarak buluyorum. – Jackalope