Creé un sitio de reconocimiento de voz siguiendo la API: https://wicg.github.io/speech-api/ . El sitio funciona en Chrome pero no en Safari.
Esto tiene sentido: según los detalles de soporte del navegador: https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API#browser_support , (la voz a texto actualmente está limitada a Chrome para escritorio y Android .)
Pero no tiene sentido según: https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition#browser_compatibility El último enlace afirma que hay soporte.
Estoy confundido, ¿Safari ofrece soporte o no?
El error que obtengo de Safari es: Error de reconocimiento de voz detectado: servicio no permitido
¿Qué significa este error?
servicio no permitido
El agente de usuario rechazó el servicio de reconocimiento de voz solicitado, ya sea porque el agente de usuario no lo admite o por razones de seguridad, privacidad o preferencia del usuario. En este caso permitiría utilizar en su lugar otro servicio de reconocimiento de voz más adecuado.
https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognitionErrorEvent/error
Intenté dar permiso explícito para el micrófono, en la configuración de Safari y en la configuración de mi computadora. No funcionó. No sé cómo dar permiso explícito a safari para el reconocimiento de voz. Debería pedir permiso, pero no lo hace.
¿Alguien tiene algún consejo sobre cómo proceder para que el reconocimiento de voz funcione en Safari?
Este es el código:
var recognition = new speechRecognition() var textBox = $("#textbox") var instructions = $("#instructions") var cont = '' recognition.continuous = true // Recognition started recognition.onstart = function () { instructions.text("Voice recognition is on") } recognition.onspeechend = function () { instructions.text("No speech detected") } recognition.onerror = function (event) { instructions.text('Speech recognition error detected: ' + event.error) } recognition.onresult = function (event) { var current = event.resultIndex; var transcript = event.results[current][0].transcript; cont += transcript textBox.val(cont) } $("#start-btn").click(function (event) { if(cont.length){ cont += '' } recognition.start() })``` I created this based on this tutorial: https://www.youtube.com/watch?v=rwB6RqqCmXcMe di cuenta de esto. Para Safari, los usuarios deben habilitar el dictado para que funcione la voz a texto. Los detalles se pueden encontrar aquí: https://bugs.webkit.org/show_bug.cgi?id=225298
¿Se aseguró de tener un certificado SSL configurado en el sitio? A veces, el navegador puede bloquear el acceso al micrófono si no está en una conexión segura.
Ahora, si este es un sitio local, puede usar un certificado SSL autofirmado como solución alternativa si no se publica.