Streaming de texto a voz
Esta guía te muestra cómo transmitir texto a voz y, opcionalmente, subir audio a AWS S3.
Esta guía explica 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 el SDK. Completa primero la guía de inicio rápido si aún no lo has hecho. La sección opcional de carga a S3 también requiere una cuenta de AWS con acceso a S3.
¿Tienes curiosidad por saber cómo funciona el streaming? Entender el streaming de audio explica en detalle el protocolo, el almacenamiento en búfer y las compensaciones de latencia.
Convierte texto en voz (archivo)
Para convertir texto en 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:
Convierte texto en 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
Una vez que tus datos de audio se hayan creado como archivo o como flujo, 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 la 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: asocia políticas directamente al usuario según el nivel de acceso que quieras conceder. Para las cargas en S3, puedes usar la política AmazonS3FullAccess. Sin embargo, se recomienda conceder el mínimo privilegio o los permisos mínimos necesarios para realizar una tarea. Puede que 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; la clave de acceso secreta no se podrá recuperar 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 de bucket y haz clic en el botón «Create bucket». Puedes dejar el resto de 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.
A continuación, añade las variables de entorno al archivo .env de esta forma:
Subir a AWS S3 y generar la URL firmada
Añade las siguientes funciones para subir el flujo de audio a S3 y generar una URL firmada.
Después puedes llamar a la función de carga con el flujo 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á una duración limitada, es decir, caducará después de un periodo determinado, lo que la hace segura para compartirla temporalmente.
Ahora puedes generar una URL a partir de un archivo con:
Si quieres usar el archivo varias veces, debes guardar 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.
-
Podcasts educativos: crea contenido educativo personalizado al que el alumnado pueda acceder bajo demanda. El profesorado puede convertir sus lecciones a formato de audio, subirlas a S3 y compartir los enlaces con el alumnado para ofrecer una experiencia de aprendizaje más atractiva fuera del entorno tradicional del aula.
-
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: crea 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, ofreciendo al público una nueva forma de disfrutar de la literatura. Autores y editoriales pueden diversificar su oferta de contenido y llegar a quienes prefieren escuchar en lugar de leer.
-
Herramientas de aprendizaje de idiomas: desarrolla recursos para el aprendizaje de idiomas que proporcionen lecciones y ejercicios de audio. Así es posible practicar la pronunciación y la comprensión auditiva de forma específica.