Convierte texto a voz con PHP y vozME
Hoy estoy productivo, y aunque todo sea dicho, la funcion de hoy no es especialmente difícil debido a lo accesible de la web que brinda el servicio, creo que esta función es de las mas útiles desde el punto de vista de la accesibilidad web que he visto en mi vida. La función claramente esta orientada a invidentes, personas con problemas de visión o gente vaga, muy vaga, que no tiene ganas de leer anda. Se trata de una función a partir de la cual se genera un mp3 con el texto leído imitando el lenguaje natural. Se puede traducir el texto que queramos para descargar el archivo o reproducirlo en nuestra propia web, o incluso generar un podcast continuo de nuestros post de nuestro blog.
La función voz(), es muy fácil de utilizar. Solo tenemos que poner el texto que queramos y YA! genera un mp3 con el archivo de audio, sin mas! a demas tenemos la opción de cambiar el idioma de Español (es) a Ingles (en).
-
function voz($texto, $lang = "es"){
-
$url = "http://vozme.com/text2voice.php";
-
$ch = curl_init();
-
curl_setopt($ch, CURLOPT_URL, $url);
-
curl_setopt($ch, CURLOPT_VERBOSE, 1);
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
-
curl_setopt($ch, CURLOPT_POST, 1);
-
curl_setopt($ch, CURLOPT_POSTFIELDS, "text=".$texto."&lang=".$lang."&md5=".$md5);
-
-
$s = curl_exec ($ch);//Ojo, hay un espacio en exec
-
curl_close($ch);
-
-
$exp_info = '!http(.+)'.$md5.'(.+)mp3!U';
-
-
return $original[0][0];
-
} else {
-
return $s;
-
}
-
}
Ejemplo de uso:
Para los que prefieran utilizar los servicios directos de la web decir que también hay unas muy buenas funciones en javascript que os permitirán en cuestión de segundos poner voz a vuestras webs sin retocar una linea de código. Como por ejemplo el botón de selección y lectura o el de lectura a partir del ID del texto.
Actualización: Al parecer los chicos de vozMe cambiaron la url de destino de los mp3 haciendo imposible que funcione la funcion voz() asi que he corregido el error pasadon la funcion a la version 1.1. La correccion solo influye al metodo interno de tratar la informacion asiq ue no hay problema en seguirla usando como antes.
Ante cualquier error no dudeis en avisarme. Que la disfruteis.
Muy buen tuto, muy funcional ahora mismo se me ocurren muchas ideas, especialemente para aplicaciones para personas que no saben leer, estuve checando los ejemplos y te mandan a otra pagina y en tu caso solo te genera la ruta, seria posible poder ponerlos en la misma pagina?
Gracias.
Hola Edwin, la verdad es que no estoy seguro de lo que me hablas.
La función voz() da como resultado la URL del archivo MP3, pero eso es para usar en la misma web o en otra. Hay muchas formas de utilizarlo.
La más usada es incrustarlo en un reproductor Flash pero hay alguna mas. Por ejemplo también puedes usarlo desde el CSS.
Espero haberte ayudado. Si no es así no dudes en volver a preguntar. Un saludo
Hola antares, mira yo quiero implementar este tipo de herramienta en una web que estoy diseñando, pero lo que yo quiero que haga es que cuando un usuario inicie una sesion con su login y pass se genere un audio que diga bienvenido usuario tal o bienvenido antares, algo asi parecido.
cualquier cosita en la que me colabores te lo agradezco.
Hola darman, es relativamente sencillo pero necesitaras flash para conseguirlo.
utilizando la función voz() puedes generar el archivo MP3 que reproduzca el texto pero luego necesitas un archivo flash que lo reproduzca una sola vez. Esto es relativamente fácil de conseguir, solo tienes que buscar reproductores en los que tenga que introducir la dirección del archivo mp3 (generada con la función voz) en la URL. algo parecido tiene instalado el gran Gafeman para cuando alguien pone “soy el primero” en sus comentarios. Lo que hace es escribir con javascript en un frame oculto un archivo con aplausos para que el “primero” se sienta realizado y deje de dar la vara.. el sistema en tu caso seria mucho mas fácil… no te hace falta ni usar el flash.. con meter un simple reproductor como este te vale