Introducción

Hoy os traigo una nueva utilidad de la mano de Google, esta integrada en Google Translate y simplemente haciendo una petición http con varios parámetros que veremos a continuación nos devolverá un MP3 pasando el texto que le indiquemos a voz en el idioma que le digamos.

Tiene un "pero", no pueden ser mas de 100 caracteres por petición. Aunque si nuestro texto seria mayor de 100 caracteres podríamos partirlo en varias peticiones y unir los MP3.

Aquí vemos un ejemplo de como llamar a este servicio:
http://translate.google.com/translate_tts?q=ESTO%20ES%20UN%20TEXTO%20DE%20PRUEBA&tl=es

N
os puede leer el día y la hora también
http://translate.google.com/translate_tts?q=20/10/2014%2008:59&tl=es

 

Parámetros o Argumentos

tl: Indicamos el idioma que queremos que utilice.

q: Este es el parámetro donde indicamos el texto que queremos que nos pase a voz. (No mas de 100 caracteres)

 

Uso en PHP

<?php 
 //URL con el texto que queremos pasar a voz, en este caso en español
  $url="http://translate.google.com/translate_tts?q=ESTO%20ES%20UN%20TEXTO%20DE%20PRUEBA&tl=es";
 //Con una Peticion cUrl
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  //ALMACENAMOS LA DEVOLUCIÓN, EN ESTE CASO ES UN MP3 QUE CONTIENE EL AUDIO
  $audio = curl_exec($ch);
?>

 

Ejemplo Practico

Código de PHP del archivo test_textoavoz.php
<?php
 //Almacenamos la fecha y la hora en formato Español 
 $FechayHora= "Hoy es ". date("d/m/Y") . " y son las " . date("h:i"); 
 //Codificamos el texto a formato de URL 
 $Encode_FechayHora=rawurlencode($FechayHora); 
 header("Content-type: audio/mpeg"); 
 $url="http://translate.google.com/translate_tts?q=$Encode_FechayHora&tl=es"; 
 $ch = curl_init(); 
 curl_setopt($ch, CURLOPT_URL, $url); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
 curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
 $audio = curl_exec($ch); 
 echo $audio;
?>

 

Uso de test_textoavoz.php en HTML
<audio autoplay='' controls='' src='test_textoavoz.php'></audio>

 

NOTA: Podrás escuchar el resultado si tu navegador soporta HTML5

Resultado