{"id":663,"date":"2020-03-15T11:18:36","date_gmt":"2020-03-15T10:18:36","guid":{"rendered":"http:\/\/programaraciegas.net\/?p=663"},"modified":"2020-03-15T11:24:36","modified_gmt":"2020-03-15T10:24:36","slug":"haz-hablar-a-tu-web-con-web-speech-api","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=663","title":{"rendered":"Haz hablar a tu web con Web Speech API"},"content":{"rendered":"<p>Las voces sint&eacute;ticas han permitido que personas ciegas accedan a la informatica de forma m\u00e1s f\u00e1cil y barata. Adem&aacute;s estas voces tambi\u00e9n han permitido la aparici\u00f3n de nuevas formas de usar la tecnolog\u00eda y enriquecer la experiencia vivida por muchos usuarios a la hora de utilizar distintos dispositivos.<\/p>\n<p>El uso de motores de voz para enriquecer la experiencia de usuario se ha visto generalizado tanto en plataformas de escritorio como en plataformas para dispositivos m\u00f3viles. La Web tambi\u00e9n posee esta posibilidad gracias a <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Web_Speech_API\">Web Speech API<\/a><\/p>\n<p>En este art&iacute;culo veremos un ejemplo simple para saludar utilizando voz gracias a Web Speech API.<\/p>\n<p><!--more--><\/p>\n<p>Web Speech API permite a un navegador web acceder a caracter&iacute;sticas relacionadas con la voz. Esta API nos permite tanto reconocer texto hablado como verbalizar texto con las voces instaladas en nuestro equipo.<\/p>\n<p>Para todo esto Web Speech API nos proporciona varias clases y funciones para poder programar nuestras funciones y comportamientos dentro de nuestras p&aacute;ginas web.<\/p>\n<p>El problema con Web Speech API al igual que otras tecnolog&iacute;as de la Web es que no est&aacute;n completamente soportadas por todos los navegadores. Google Chrome, Mozilla Firefox y Apple Safari si soportan Web Speech API pero otros navegadores s\u00f3lo lo hacen parcialmente y en sus \u00faltimas versiones.<\/p>\n<h2>Usar Web Speech API gracias a Javascript<\/h2>\n<p>Gracias al lenguaje de programaci\u00f3n Javascript es posible extender la funcionalidad de una p\u00e1gina web e incorporar nuevas funcionalidades y caracter\u00edsticas. A diferencia de HTML y CSS Javascript si es un lenguaje de programaci&oacute;n por lo que requiere especial atenci&oacute;n a la hora de escribir las distintas l&iacute;neas de c&oacute;digo.<\/p>\n<p>Hay multitud de cursos, tutoriales y material para aprender Javascript por lo que no lo trataremos en este art&iacute;culo.<\/p>\n<p>Lo mismo sucede con las tecnolog&iacute;as HTML. Este lenguaje de marcado de texto es indispensable para crear p&aacute;ginas web y es muy recomendable aprenderlo.<\/p>\n<p>Para la realizaci&oacute;n del ejemplo propuesto en este art&iacute;culo se debe tener unos conocimientos m&iacute;nimos de HTML y Javascript.<\/p>\n<h3>Incluir la funcionalidad<\/h3>\n<p>Lo primero que debemos hacer es declarar una funci&oacute;n que nos permita hacer uso de Web Speech API. Para ello declararemos una funci&oacute;n llamada <strong>speak<\/strong> que nos permita utilizar la clase <strong>SpeechSynthesisUtterance<\/strong> de Web Speech API.<\/p>\n<p>La clase SpeechSynthesisUtterance nos permite conectar el motor de voz de nuestro navegador web ajustando el texto que se debe verbalizar, el idioma a utilizar y otros par&aacute;metros como la velocidad, volumen y m&aacute;s.<\/p>\n<p><code><\/p>\n<pre>\r\n&lt;script type=\"text\/javascript\"&gt;\r\n\tfunction speak(text, language) {\r\n\t\tvar s = new SpeechSynthesisUtterance(text);\r\n\t\ts.lang = language;\tspeechSynthesis.speak(s);\r\n\t}\r\n&lt;\/script&gt;\r\n<\/pre>\n<p><\/code><\/p>\n<p>Este c&oacute;digo es recomendable incluirlo en el <em>head<\/em> de la p&aacute;gina aunque si se hace en el <em>body<\/em> de la p&aacute;gina no supondr&iacute;a ning&uacute;n problema de accesibilidad.<\/p>\n<p><h3>Creando un bot&oacute;n para saludar.<\/h3>\n<p>Ahora debemos crear en el <em>body<\/em> de nuestra p&aacute;gina un elemento para hacer hablar a nuestra p&aacute;gina como puede ser un bot&#038;oacute&#8217;n que al pulsarlo verbalice la frase <em>Hola mundo!<\/em>. El c&oacute;digo ser&iacute;a el siguiente:<\/p>\n<p><code><\/p>\n<pre>\r\n&lt;button onclick=\"speak('Hola mundo!', 'es-es');\"&gt;\r\nSaludar\r\n&lt;\/button&gt;\r\n<\/pre>\n<p><\/code><\/p>\n<p>Puedes ver este ejemplo funcionando en <a href=\"http:\/\/www.programaraciegas.net\/files\/holaMundoWebSpeech.htm\" target=\"_blank\" title=\"Ejemplo de p\u00e1gina que saluda usando Web Speech API (Abre en ventana nuev)\" rel=\"noopener noreferrer\">Ejemplo de saludo con Web Speech API<\/a><\/p>\n<p>Abre el c&oacute;digo fuente de la p&aacute;gina de ejemplo si tienes alguna duda.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las voces sint&eacute;ticas han permitido que personas ciegas accedan a la informatica de forma m\u00e1s f\u00e1cil y barata. Adem&aacute;s estas voces tambi\u00e9n han permitido la aparici\u00f3n de nuevas formas de usar la tecnolog\u00eda y enriquecer la experiencia vivida por muchos usuarios a la hora de utilizar distintos dispositivos. El uso de motores de voz para &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=663\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abHaz hablar a tu web con Web Speech API\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[114,6],"tags":[329,327,328,94],"class_list":["post-663","post","type-post","status-publish","format-standard","hentry","category-navegadores-web","category-programacion","tag-api","tag-javascript","tag-speech","tag-web"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=663"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/663\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}