2014-02-09 10 views
9

Ich erstelle HTML5 Sprachsynthese-Anwendung wie unten Link.Firefox und Sprachsynthese API

http://updates.html5rocks.com/2014/01/Web-apps-that-talk---Introduction-to-the-Speech-Synthesis-API

Windows7 und Android Chrome33beta oder Mac Safari funktioniert gut.

aber Windows7-Firefox 27 scheint Unterstützung Speech-Synthesis-API, aber nicht funktionieren, weil leere Sprachliste zurückgeben.

Gibt es eine Lösung?

+0

Es gibt ein 'about: config'-Flag mit dem Namen' media.webspeech.synth.enabled', das 'spracheSynthese' in Firefox aktiviert. Problem bleibt, 'redeSynthesis.getVoices(). Length === 0'. – dakab

Antwort

1

Leider sieht es so aus, als ob nur Firefox OS (und vielleicht auch Firefox für Android, habe ich nicht überprüft) Bundles und unterstützt eine Sprachsynthese-Bibliothek.

Es gibt eine offene bug in Bezug auf Desktop-Unterstützung.

4

Überprüfen Sie, ob Speech Synthesis API Ihrem Browser
http://caniuse.com/#feat=speech-synthesis

unterstützt wird, kann es überprüfen mit modernizr
http://v3.modernizr.com/download/#-speechsynthesis

Wenn Browser nicht unterstützt, können Sie meSpek.js
http://www.masswerk.at/mespeak/

verwenden können
+0

Mein Firefox 50 für Linux sagt ich habe 0 Stimmen (Fedora 23). Müssen wir jede Stimme von Hand herunterladen? Gibt es dafür ein Standard-Repository? Chrome 55 kommt bereits mit 19. –

1

Ab Release 44 ist die Sprachsynthese-Hälfte der API auf Firefox Desktop verfügbar.

Aber komischerweise immer noch erfordert, dass die Flagge gesetzt werden. Unter "Browser Compatibility": config:

kann über die media.webspeech.synth.enabled und media.webspeech.recognition.enable Fahnen in über aktiviert sein. Beachten Sie, dass zur Zeit nur der Sprachsyntheseteil in Firefox Desktop verfügbar ist - der Spracherkennungsteil wird in Kürze verfügbar sein, sobald die erforderlichen internen Berechtigungen aussortiert sind.

Ich frage mich warum. MDN hat sich sogar die Mühe gemacht, some nice working examples zu peitschen, warum nicht die Funktionalität als Standard aktiviert sein? diesen Code auf Ihre Website

0

Wenn Sie laut der Seite vorzulesen nur eine Schaltfläche, um Ihre Webseite hinzufügen möchten, fügen Sie:

<script src='https://code.responsivevoice.org/responsivevoice.js'></script> 
<script type="text/javascript"> 
    <!-- // 
    var speechpause=0; 
    function toggleSpeech(){ 
     if(speechpause!=1){ 
     responsiveVoice.pause(); 
     speechpause=1; 
     }else{ 
     responsiveVoice.resume(); 
     speechpause=0; 
     } 
    } 
    //--> 
</script> 
<div style="float:right"> 
     <input onclick="responsiveVoice.speak($('#some_div_with_content').text(), 'Deutsch Female', {pitch: .7});" type="button" value=" Play" /> 
     <input onclick="toggleSpeech()" type="button" value="||" /> 
</div> 

Dieses jquery verwendet den Text des Inhalts zu bekommen, aber das könnte leicht geändert werden.