Texto a voz en streaming
Esta guía te muestra cómo transmitir texto a voz en streaming y, opcionalmente, subir audio a AWS S3.
Esta guía aborda tres enfoques: generar voz como archivo, transmitir la respuesta de audio directamente y, de forma opcional, subir el audio generado a un bucket de AWS S3 para compartirlo mediante una URL firmada.
Esta guía presupone que ya has configurado tu clave de API y tu SDK. Completa primero la guía de inicio rápido si aún no lo has hecho. La sección opcional de subida a S3 también requiere una cuenta de AWS con acceso a S3.
¿Tienes curiosidad por saber por qué el streaming funciona así? Comprender el streaming de audio explica en detalle el protocolo, el almacenamiento en búfer y las compensaciones de latencia.
Convertir texto a voz (archivo)
Para convertir texto a voz y guardarlo como archivo, usaremos el método convert del SDK de ElevenLabs y después lo guardaremos localmente como archivo .mp3.
Después puedes ejecutar esta función con:
Convertir texto a voz (streaming)
Si prefieres transmitir el audio directamente sin guardarlo en un archivo, puedes usar nuestra función de streaming.
Después puedes ejecutar esta función con:
Extra: subir a AWS S3 y obtener un enlace seguro para compartir
Cuando tus datos de audio se hayan creado como archivo o stream, quizá quieras compartirlos con tus usuarios. Una forma de hacerlo es subirlos a un bucket de AWS S3 y generar un enlace seguro para compartirlos.
Crear tus credenciales de AWS
Para subir los datos a S3, tendrás que añadir el ID de tu clave de acceso de AWS, la clave de acceso secreta y el nombre de la región de AWS a tu archivo .env. Sigue estos pasos para encontrar las credenciales:
- Inicia sesión en la consola de administración de AWS: ve a la página de inicio de AWS e inicia sesión con tu cuenta.

- Accede al panel de IAM (Identity and Access Management): puedes encontrar IAM en “Security, Identity, & Compliance” en el menú de servicios. El panel de IAM gestiona de forma segura el acceso a tus servicios de AWS.

- Crea un usuario nuevo (si es necesario): en el panel de IAM, selecciona “Users” y después “Add user”. Introduce un nombre de usuario.

- Configura los permisos: adjunta políticas directamente al usuario según el nivel de acceso que quieras conceder. Para las subidas a S3, puedes usar la política AmazonS3FullAccess. Sin embargo, la práctica recomendada es conceder el mínimo privilegio o los permisos mínimos necesarios para realizar una tarea. Quizá quieras crear una política personalizada que permita específicamente solo las acciones necesarias en tu bucket de S3.

- Revisa y crea el usuario: revisa la configuración y crea el usuario. Al crearlo, se te mostrarán un ID de clave de acceso y una clave de acceso secreta. Asegúrate de descargar y guardar estas credenciales de forma segura; no podrás recuperar la clave de acceso secreta después de este paso.

- Obtén el nombre de la región de AWS: p. ej., us-east-1

Si no tienes un bucket de AWS S3, tendrás que crear uno nuevo siguiendo estos pasos:
- Accede al panel de S3: puedes encontrar S3 en “Storage” en el menú de servicios.

- Crea un bucket nuevo: en el panel de S3, haz clic en el botón “Create bucket”.

- Introduce un nombre para el bucket y haz clic en el botón “Create bucket”. Puedes dejar las demás opciones del bucket con los valores predeterminados. El bucket recién añadido aparecerá en la lista.


Instalar el SDK de AWS y añadir las credenciales
Instala boto3 para interactuar con los servicios de AWS mediante pip y npm.
Después añade las variables de entorno al archivo .env así:
Subir a AWS S3 y generar la URL firmada
Añade las siguientes funciones para subir el stream de audio a S3 y generar una URL firmada.
Después puedes llamar a la función de subida con el stream de audio del texto.
Después de subir el archivo de audio a S3, genera una URL firmada para compartir el acceso al archivo. Esta URL tendrá un tiempo limitado, lo que significa que caducará después de un periodo determinado y será segura para compartirla temporalmente.
Ahora puedes generar una URL a partir de un archivo con:
Si quieres usar el archivo varias veces, debes almacenar la ruta del archivo de S3 en tu base de datos y regenerar la URL firmada cada vez que la necesites, en lugar de guardar directamente la URL firmada, ya que caducará.
Unirlo todo
Para unirlo todo, puedes usar el siguiente script:
Conclusión
Ahora ya sabes cómo convertir texto en voz y generar una URL firmada para compartir el archivo de audio. Esta funcionalidad abre numerosas posibilidades para crear y compartir contenido de forma dinámica.
Estos son algunos ejemplos de lo que podrías crear con ella.
-
Pódcast educativos: crea contenido educativo personalizado al que estudiantes puedan acceder bajo demanda. Docentes pueden convertir sus lecciones a formato de audio, subirlas a S3 y compartir los enlaces con estudiantes para ofrecer una experiencia de aprendizaje más atractiva fuera del aula tradicional.
-
Funciones de accesibilidad para sitios web: mejora la accesibilidad de los sitios web ofreciendo contenido de texto en formato de audio. Esto puede hacer que la información de los sitios web sea más accesible para personas con discapacidad visual o para quienes prefieren el aprendizaje auditivo.
-
Mensajes automatizados de atención al cliente: produce mensajes de audio automatizados y personalizados para atención al cliente, como preguntas frecuentes o actualizaciones de pedidos. Esto puede ofrecer una experiencia de cliente más atractiva que los correos electrónicos de texto tradicionales.
-
Audiolibros y narración: convierte libros completos o relatos cortos a formato de audio y ofrece una nueva forma de disfrutar de la literatura. Autores y editoriales pueden diversificar su oferta de contenido y llegar a audiencias que prefieren escuchar en lugar de leer.
-
Herramientas para aprender idiomas: desarrolla recursos para aprender idiomas que proporcionen lecciones y ejercicios de audio. Esto permite practicar la pronunciación y la comprensión auditiva de forma específica.