web-dev-qa-db-fra.com

JavaScript Speechsynthesis.Speak () Sans activation de l'utilisateur n'est plus autorisé depuis M71

J'ai utilisé des API de Speechsynthesis de cette manière:

speechSynthesis.speak(new SpeechSynthesisUtterance("hello world"));

Mais maintenant, je reçois une erreur après la mise à jour Google Chrome:

[Déprécation] SpeechSyNthesis.Speak () Sans activation de l'utilisateur n'est plus autorisée depuis M71, vers décembre 2018. Voir https://www.chromestatus.com/freature/5687444770914304 Pour plus de détails SpeechsnthesisAsiseralessage @ Application- 2C16C437C2795AE01C0A8852E5F8DA58DADAD99D6E17814A31F1EA19922C5EBD2.JS: 147

Comment puis-je résoudre ce problème et demander la permission?

14
stepozer

Bien que je n'ai trouvé aucun moyen de demander la permission, le -tilisateur peut activer la permission dans Google Chrome:

  1. Cliquez sur l'icône à gauche de la barre d'URL et ouvrez Paramètres du site

  2. Changer le paramètre Sound de "Automatique (par défaut)" à "Autoriser"

Après cela, le site sera capable de faire des sons sans interaction utilisateur, y compris la parole.

Malheureusement, je n'ai pas trouvé de manière à savoir si cela fonctionne ou non. (Peut-être pourrions-nous essayer l'une des autres API audio et voir si elle répond avec un message d'erreur.)

0
joeytwiddle

J'ai eu recours à swal("Click OK to speak").then(() => speakButton.click()); (avec https://sweetalert.js.org ) - https://patarapolw.github.io/tts-api/? Q = 你 & Lang = ZH-CN & Note = 0.8

Notez que if (confirm("Click OK to speak")) speakButton.click() ne fonctionne pas.

0
Polv