Ankündigung

Einklappen
Keine Ankündigung bisher.

Sprachausgabe mit Javascript funktioniert nicht oder erst im zweiten Anlauf bei IOS

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sprachausgabe mit Javascript funktioniert nicht oder erst im zweiten Anlauf bei IOS

    Guten Tag,

    Ich habe eine Web-App entwickelt die für folgende Personengruppen ist:
    • Menschen die wegen eine spastischen Lähmung Probleme mit dem Sprechen haben
    • Menschen die nach einem Schlaganfall Probleme mit dem Sprechen haben
    • Menschen die Stottern

    Die Sprachausgabe habe ich wie folgt realisiert:
    Code:
    function Sprechen() {
        var vTextArea = document.getElementById('vTextzusprechen');
        var vSprachEinstellungen = new SpeechSynthesisUtterance();
    
        vSprachEinstellungen.text = vTextArea.value;
        vSprachEinstellungen.lang = "de-DE";
        vSprachEinstellungen.rate = 1;
        vSprachEinstellungen.pitch = 1;
        window.speechSynthesis.speak(vSprachEinstellungen);
        $('#trigger_me').trigger('click');
    
    }
    bei IOS gibt es anscheinend Probleme mit der Javascript SpeechSynthesis API.

    Auf meinem Ipad 3 mit IOS 9.3 funktioniert die Sprachausgabe gar nicht.
    Auf meinem Ipad 6 mit IOS 12.3 muss nach starten der Web-App das Sprechen "angeschubst" werden. Das bedeutet, es funktioniert erst im zweiten Versuch.
    Wenn dann die Sprachausgabe einmal funktioniert hat, klappt es danach immer.

    Hat jemand eine Idee wie man dieses Problem lösen kann?


  • #2
    https://caniuse.com/#search=SpeechSynthesisUtterance

    Safari für iOS kann das seit Version 7. Das müsste an sich gehen. Sonst kannst du einen polyfill (Google) versuchen. Je nach Ansprüchen solltest du das eh tun resp. Abfangen wenn jemand einen Browser benutzt, welcher die API nicht kennt.
    Fürs zweite Problem müsstest du etwas mehr Code zeigen. Wer oder was ruft wie die Funktion sprechen() auf?

    Kommentar


    • #3
      Danke!
      Sprechen wird so aufgerufen:
      HTML-Code:
      <input id="trigger_me" type="button" value="Sprechen" accesskey="s" onclick="Sprechen()" title="Der eingegebene Text wird gesprochen" style="padding:10px;width:90%; font-size:120%;">
      Ich habe es gerade mit Safari getestet, funktioniert auch erst beim zweiten mal.

      Kommentar


      • #4
        Du landest in einer Endlosschleife - 1. onclick ruft "Sprechen()" auf in der Funktion "Sprechen" klickst du wieder usw.

        Das solltest du zuerst mal in Ordnung bringen.

        Ansonsten funktioniert folgender Code unter os 12.3.1 und Safari bei mir auch beim ersten Mal.

        HTML-Code:
        <!DOCTYPE html>
        <html lang=de>
        <head>
          <meta charset=UTF-8>
          <title>Document</title>
          <script src=https://code.jquery.com/jquery-3.4.1.min.js></script>
           <script>
         function Sprechen() {
            var vTextArea = document.getElementById('vTextzusprechen');
            var vSprachEinstellungen = new SpeechSynthesisUtterance();
        
            vSprachEinstellungen.text = vTextArea.value;
            vSprachEinstellungen.lang = "de-DE";
            vSprachEinstellungen.rate = 1;
            vSprachEinstellungen.pitch = 1;
            window.speechSynthesis.speak(vSprachEinstellungen);
        
        }
          </script>  
        </head>
        <body>
         <textarea name="vTextzusprechen" id="vTextzusprechen" cols="30" rows="10">
           Sehr geehrte Damen und Herren...
         </textarea>
         <input id="trigger_me" type="button" value="Sprechen" accesskey="s" onclick="Sprechen()" title="Der eingegebene Text wird gesprochen" style="padding:10px;width:90%; font-size:120%;">
        
         </body>
        </html>
        

        Kommentar


        • #5
          Danke, aber das mit der Endlos-Schleife beseitigt.

          Bei mir funktioniert es nicht. Aber teste mal bitte meine App bei Dir: https://www.marlems-sprechassistent.de .
          Speicher mal zwei Texte und rufe einen davon ab in dem Du ihn in der Aufklappbaren Liste auswählst.
          Der geladene Texte müsste sofort gesprochen werden.

          Kommentar


          • #6
            funktioniert.

            Kommentar


            • #7
              okay! Dann lasse ich es so. Danke!

              Kommentar


              • #8
                Lösch mal den Cache auf Deinen Geräten, falls du das noch nicht gemacht hast.

                Kommentar

                Lädt...
                X