✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Conversión de texto a voz con Amazon Polly en PHP

242

Amazon Polly es un servicio en la nube muy bien hecho que nos permite convertir texto en voz realista. Además, Amazon Polly ofrece mejoras innovadoras en la calidad del habla a través de un nuevo enfoque de aprendizaje automático. Ofrecen a los clientes las voces de texto a voz más naturales y parecidas a las humanas.

Los beneficios de usar Amazon Polly incluyen:

  • Alta calidad
  • Baja latencia
  • Soporte para una gran cartera de idiomas y voces.
  • Económico
  • Solución basada en la nube

Hay varias aplicaciones en las que Amazon Polly puede resultar útil. Algunos de ellos son: aplicaciones como lectores de noticias. juegos, plataformas de eLearning, aplicaciones para personas con discapacidad visual, etc. Puede leer más sobre este servicio en su documentación.

En este artículo, le muestro cómo convertir texto a voz con Amazon Polly y PHP.

Consola de Amazon Polly

Si no desea crear una aplicación PHP, puede usar la consola Polly directamente. Puede acceder a él iniciando sesión en su cuenta de AWS. Después de iniciar sesión, diríjase a la consola de Amazon Polly. En esta página, obtendrá las opciones para agregar voz en formato de texto sin formato o SSML. Puede elegir la región, la identificación de voz y escuchar un discurso o incluso descargarlo en formato MP3.

Usar la consola es una opción si usted es el administrador y no desea compartir las credenciales de la cuenta con nadie. Pero, ¿qué sucede si desea crear una aplicación que haga la tarea exacta de convertir texto a voz y le permita descargar MP3 de voz convertida?

Conversión de texto a voz con Amazon Polly y PHP

Para crear la aplicación PHP para Amazon Polly, primero debe obtener sus credenciales de seguridad de AWS. Puede obtenerlo iniciando sesión en la cuenta de AWS y luego haciendo clic en ‘Mis credenciales de seguridad’.

Conversión de texto a voz con Amazon Polly en PHP

Una vez que obtenga sus credenciales, instale AWS SDK para PHP con Composer. Ejecute el siguiente comando para la instalación de la biblioteca.

composer require aws/aws-sdk-php

Tras la instalación, cree un formulario que le permita al usuario cargar un archivo y enviarlo al servidor para procesarlo.

<form method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <button type="submit" name="submit">Submit</button>
</form>

Como se mencionó anteriormente, el usuario puede transmitir la voz en texto sin formato o en formato SSML. Prefiero usar SSML, que nos permite controlar la voz generada a partir del texto proporcionado. Al usar SSML, podemos incluir una pausa en el texto, cambiar la velocidad del habla, enfatizar palabras o frases específicas, etc. Lea más sobre esto en Uso de SSML. Básicamente, debe utilizar etiquetas proporcionadas por SSML en su texto.

Para este tutorial, estoy creando un archivo de texto sin formato con etiquetas SSML. Mi archivo de texto es el siguiente.

dummy.txt

<speak>
    <prosody rate='medium'>Hi, I am Sajid. I do blogging at Artisans Web.</prosody>
</speak>

A continuación, al enviar el formulario, el archivo de texto cargado se enviará al servicio en la nube de AWS y, a cambio, los archivos MP3 se descargarán automáticamente. Escriba el código de la siguiente manera.

<?php
require_once "vendor/autoload.php";
 
use AwsPollyPollyClient;
 
if (isset($_POST['submit'])) {
 
    try {
        $config = [
            'version' => 'latest',
            'region' => 'YOUR_AWS_REGION',
            'credentials' => [
                'key' => 'ACCESS_KEY_ID',
                'secret' => 'SECRET_ACCESS_KEY',
                ]
            ];
             
        $client = new PollyClient($config);
 
        $args = [
            'OutputFormat' => 'mp3',
            'Text' => file_get_contents($_FILES['file']['tmp_name']),
            'TextType' => 'ssml',
            'VoiceId' => 'Matthew', //pass preferred voice id here
        ];
 
        $result = $client->synthesizeSpeech($args);
 
        $resultData = $result->get('AudioStream')->getContents();
 
        header('Content-length: '. strlen($resultData));
        header('Content-Disposition: attachment; filename="text-to-speech.mp3"');
        header('X-Pad: avoid browser bug');
        header('Cache-Control: no-cache');
        echo $resultData;
    } catch(Exception $e) {
        echo $e->getMessage();
    }
}
?>

Reemplace los marcadores de posición con los valores reales. En el código anterior, he pasado el valor de ‘VoiceId’ es ‘Matthew’. ‘Matthew’ es una identificación de voz que agrega un acento de voz en el idioma inglés (EE. UU.) (En-EE. UU.). Por supuesto, el usuario puede elegir cualquier identificación de voz preferida. Obtendrá la lista de voces disponibles en sus Voces en la página de Amazon Polly.

Adelante, pruébalo. Al cargar su archivo de texto, obtendrá el archivo de audio MP3 de su texto.

Se trata de convertir texto a voz usando Amazon Polly en PHP. Me gustaría escuchar sus pensamientos o sugerencias en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More