Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 13 van 13

Onderwerp: Problemen met speechSynthesis

  1. #1
    Vraag is niet opgelost

    Problemen met speechSynthesis

    Bij een test bestandje heb ik onderstaande code. Hiermee wordt de tekst 'dit is een test ' gesproken. Dit zowel op een chrome browser op een windows computer als met safari op een Ipad.

    Nu heb ik deze code willen integreren in een andere toepassing waar de browser een berichtje spreekt ipv dat dit in een popup getoond wordt.
    Vreemd is dat als ik de toepassing start in de chrome browser op de windows computer dat het berichtje inderdaad gesproken wordt maar in safari op een ipad wordt dit niet gesproken.

    Wat kan hier de reden voor zijn ?

    Code:
    <button>dit is een test</button>
    
    <script>
    function spreek (result) {
        const say = text => speechSynthesis.speak(new SpeechSynthesisUtterance(text));
        say(result);
    }
    
    document.querySelector('button').addEventListener('click', () => {
        spreek('dit is een test');
    })
    </script>
    Laatst aangepast door bron : 26 juli 2021 om 17:04

  2. #2
    Het probleem zit niet in de code volgens mij maar in het cache geheugen. Hoe kan ik er voor zorgen dat het cache geheugen van de site telkens gerefreshed wordt ?

  3. #3
    Mega Honourable Senior Member Aar's avatar
    Geregistreerd
    3 augustus 2014
    Vanwaar die redenatie?
    Was voorheen: PHP4U

  4. #4
    De ene keer dat ik het probeer lukt het wel en de andere keer niet.

  5. #5
    Mega Honourable Senior Member Aar's avatar
    Geregistreerd
    3 augustus 2014
    Tja, het is een experimentele feature. Dus dan kan je verwachten dat het nog niet lekker werkt.
    Ik zou eerder aanraden een bugmelding bij Webkit indienen, die over Safari gaat.
    Je zou mogen verwachten dat het onder alle omstandigheden zou moeten werken.
    Was voorheen: PHP4U

  6. #6
    Of een andere reden zou ook kunnen dat 2 spraakopdrachten na elkaar een probleem opleveren, zodat mogelijks het ene commando nog niet uitgevoerd is als er een tweede gesproken moet worden. Zou hier een oplossing voor bestaan ?

  7. #7
    Mega Honourable Senior Member Aar's avatar
    Geregistreerd
    3 augustus 2014
    Je kan met SpeechSynthesis.speaking bekijken of er een spraak-sessie bezig is.
    In dat geval kan je een nieuwe actie afschieten.

    Zie hier de rest van de API:
    https://developer.mozilla.org/en-US/...tiredLocale=nl

    Ook GitHub heeft een leuke repository met wat voorbeelden:
    https://github.com/mdn/web-speech-ap...easy-synthesis
    Laatst aangepast door Aar : 24 juli 2021 om 23:35
    Was voorheen: PHP4U

  8. #8
    Ok, bedankt. Het is wel leuk in mijn toepassing dat de gebruiker een gesproken berichtje krijgt ipv een popup melding. Het is maar een beetje Spielerei

  9. #9
    Moderator bron's avatar
    Geregistreerd
    13 augustus 2013
    Locatie
    Nederland
    Hieronder in een andere vorm. Zou hetzelfde resultaat geven denk ik.
    Code:
    <button type="button" class="btn">Spreek</button>
    
    <script>
    function spreek (utter, tekst) {
        utter.lang = 'nl-NL';
        utter.text = tekst;
        utter.volume = 0.5;
        utter.onend = function() {
            // je kan hier iets doen na de spraak
        }
        window.speechSynthesis.speak(utter);
    }
    
    document.querySelector('.btn').addEventListener("click", function(event) {
        let utter = new SpeechSynthesisUtterance();
        spreek (utter, 'Allemaal een goedenavond');
    });
    </script>
    Controleer bij elke speech optie even bij "welke browsers (klik)" of het werkt. Tja, het is bijna 4 jaar experimenteel, het wordt tijd dat ze er een standaard van maken.
    Laatst aangepast door bron : 26 juli 2021 om 17:08
    Bestaande- en nieuwe websites op smartphone, tablet en pc.

  10. #10
    Bedankt, maar er blijft iets vreemds bij mij gebeuren.
    Met onderstaande code wordt er een functie uitgevoerd om gegevens via submit.php te bewaren in de database.
    Als het resultaat hiervan gelukt is dient de melding gesproken te worden dat het goed is aangepast.

    Als ik de pagina via een Windows computer met Chrome uitvoer lukt dit. Bij een Ipad lukt dit echter niet.

    Code:
     function button_save() {
     
     	  var txtNaam = document.getElementById("txtNaam").value;
     	  var txtEdit = document.getElementById("txtEdit").value;
     	  var txtOrigineel = document.getElementById("txtOrigineel").value;
    
          $.ajax({
            url : 'submit.php',
            type : 'POST',
            data: jQuery.param({ field1: txtNaam, field2 : txtEdit, field3 : txtOrigineel }) ,
            contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
            success : function (result) { 
             
            let utter = new SpeechSynthesisUtterance();        
            spreek (utter, txtEdit + '   is goed aangepast');
            
            window.location.href = "http://xxx.xxx.xxx.xxx/lvs_labels/index.php";
          },
            error : function () {
            console.log ('error');
          }
        });  
        
     }
    Als ik de code aanpas door een extra 'hallo' te laten spreken voor de submit.php aangeroepen wordt gaat de Ipad zeggen 'hallo, xxxx is goed aangepast'.
    De windows computer gaat nu enkel 'hallo' zeggen.

    Code:
    function button_save() {
     
          let utter = new SpeechSynthesisUtterance();        
          spreek (utter, 'hallo');
            
     	  var txtNaam = document.getElementById("txtNaam").value;
     	  var txtEdit = document.getElementById("txtEdit").value;
     	  var txtOrigineel = document.getElementById("txtOrigineel").value;
    
          $.ajax({
            url : 'submit.php',
            type : 'POST',
            data: jQuery.param({ field1: txtNaam, field2 : txtEdit, field3 : txtOrigineel }) ,
            contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
            success : function (result) { 
             
            let utter = new SpeechSynthesisUtterance();        
            spreek (utter, txtEdit + '   is goed aangepast');
            
            window.location.href = "http://xxx.xxx.xxx.xxx/lvs_labels/index.php";
          },
            error : function () {
            console.log ('error');
          }
        });  
        
     }

  11. #11
    Moderator bron's avatar
    Geregistreerd
    13 augustus 2013
    Locatie
    Nederland
    ..... om gegevens via submit.php te bewaren in de database.
    Als het resultaat hiervan gelukt is dient de melding gesproken te worden dat het goed is aangepast.
    De nieuwe policy in browsers is dat een webpagina geen video of audio kan afspelen tenzij de bezoeker bewust op afspelen klikt. Dit wordt gedaan omdat de advertenties hier teveel gebruik van gingen maken en op de meest ongelegen momenten uit de luidprekers knalden. Er waren zoveel klachten dat deze policy ingevoerd gaat worden. Met andere woorden, als de ajax een success melding krijgt dan kan je binnen de nieuwe policy niet automatisch een tekst / speech starten.
    Bestaande- en nieuwe websites op smartphone, tablet en pc.

  12. #12
    Dat is jammer, toch wel vreemd dat op de wijze zoals ik het heb aangepast met voorafgaand 'hallo' te laten zeggen dat het bij de Ipad dan toch wel lukt.

  13. #13
    Moderator bron's avatar
    Geregistreerd
    13 augustus 2013
    Locatie
    Nederland
    Hangt van de browser versie af. Bijvoorbeeld voor Chrome deze info

    Update. De feature "SpeechSynthesis.speak met autoplay" is/wordt uit Javascript gehaald. Status
    Laatst aangepast door bron : 26 juli 2021 om 18:30
    Bestaande- en nieuwe websites op smartphone, tablet en pc.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren