API de texto a voz con Python para aplicaciones en tiempo real
speech.wav
Tu primera solicitud de síntesis de voz
Convierte un guion en una grabación WAV con el SDK de Python de Cartesia. Instala el paquete, añade tu clave de API y ejecuta el ejemplo en tu servidor.
Instalar el SDK
Utiliza Python 3.9 o posterior en un entorno virtual.
Configurar tu clave de API
Crea una clave en Playground. Sustituye el marcador siguiente y mantén la clave en el servidor.
¿Utilizas PowerShell?
$env:CARTESIA_API_KEY="your-api-key"Generar tu primera grabación
Guarda este ejemplo como speech.py. Ejecútalo desde el terminal y abre speech.wav para escucharlo.
Cambia la transcripción o elige un ID de voz de Playground para escuchar un resultado distinto.
- Archivo de salida
- speech.wav
- Formato de audio
- 44.1 kHz, 16-bit PCM
Elige cómo llega el audio a tu aplicación
El transporte adecuado depende de cuándo esté listo tu texto y de cómo pienses reproducir la respuesta.
Guardar una grabación
- Transporte
- HTTP
- Salida
- WAV o MP3
Convierte un guion completo en audio y guárdalo para reproducirlo después. El ejemplo anterior genera un archivo WAV con una cabecera que los reproductores de audio pueden leer.
Consultar la referencia de salida de audioHablar a medida que llega el texto
- Transporte
- WebSocket
- Salida
- Fragmentos de audio sin procesar
Envía fragmentos de texto mientras escribe tu LLM y recibe fragmentos de audio mientras los genera Sonic. Reenvíalos a un reproductor configurado para el formato de audio solicitado.
Crear un ejemplo de streamingTransmitir audio a partir de un guion completo
¿Ya tienes todo el texto? Utiliza with_streaming_response para leer la respuesta HTTP por fragmentos.
Utiliza streaming por WebSocket cuando llegue texto nuevo durante la generación, como en una respuesta de un LLM.
Mantén tu clave en el servidor
Un backend de Python puede gestionar la solicitud mientras tu aplicación web, móvil o sistema telefónico se encarga de la reproducción.
Tu servidor Python
Lee la clave de API desde tu entorno. Elige la voz, el modelo y los ajustes de audio para cada solicitud.
Sonic
Convierte el texto en voz. Recibe una respuesta de audio o mantén un WebSocket abierto para enviar texto de forma incremental.
Tu aplicación
Guarda la grabación o envía el audio a tu reproductor. Ajusta su codificación y frecuencia de muestreo a las de la respuesta.
De un script a un servicio en producción
Una solicitud correcta a la API es solo el comienzo. Desarrolla el comportamiento que la rodea para la aplicación que utilizarán tus oyentes.
Integra tu entorno de Python
Utiliza el cliente síncrono para scripts y tareas en segundo plano. Utiliza AsyncCartesia en un servicio asíncrono como FastAPI. Cierra el cliente cuando termine y envía el audio al servicio de almacenamiento o reproducción.
Prueba toda la experiencia de escucha
Establece tiempos de espera y gestiona los límites de solicitudes. Prueba guiones realistas con la voz que publicarás. Para conversaciones, mide el tiempo hasta el audio audible y asegúrate de que las interrupciones detengan la reproducción pendiente. La red y el reproductor influyen en lo que escucha la persona.
Seguridad empresarial.De la nube al entorno local.
Cumple con HIPAA

SOC 2 Type 2

GDPR

PCI
Preguntas sobre síntesis de voz con Python
¿Cómo convierto texto en voz con Python?
Instala cartesia, define CARTESIA_API_KEY en el entorno del servidor y crea un cliente Cartesia. Llama a client.tts.generate con la transcripción, el modelo, el ID de voz y el formato de salida, y guarda la respuesta con write_to_file. El ejemplo de esta página produce speech.wav. Consulta los ejemplos de Python para ver solicitudes completas.
¿Qué versión de Python y qué SDK necesito?
El SDK oficial requiere Python 3.9 o posterior. Instálalo con python -m pip install --upgrade cartesia. Para usar WebSocket, instala python -m pip install "cartesia[websockets]". Comprueba la versión instalada del paquete con la documentación del SDK al adaptar un ejemplo antiguo.
¿Puedo guardar la voz generada en WAV o MP3?
Sí. El endpoint de TTS admite salida WAV, MP3 y audio sin procesar. Elige el contenedor y sus parámetros compatibles en output_format antes de generar voz. Usa WAV para el ejemplo de esta página y MP3 cuando tu aplicación necesite ese formato. Cambiar solo la extensión del archivo no convierte el audio.
¿Cómo convierto una respuesta de LLM en voz en streaming con Python?
Usa WebSocket cuando tu aplicación reciba texto por partes. Envía esos fragmentos mediante un contexto de generación compartido y consume los fragmentos de audio devueltos a medida que lleguen. Tu aplicación sigue necesitando almacenar temporalmente y reproducir ese audio. La API WebSocket explica la continuación y la cancelación en aplicaciones conversacionales.
¿Debo utilizar HTTP o WebSockets para la síntesis de voz?
Usa HTTP cuando la transcripción ya esté disponible, por ejemplo, una narración completa o una notificación. Una respuesta HTTP también puede entregar audio progresivamente. Usa WebSocket cuando necesites enviar texto de forma incremental o gestionar una conversación continua. La entrada y la salida en streaming son decisiones independientes; guardar un archivo no es la única forma de consumir una respuesta HTTP.
¿Puedo utilizar Cartesia con Python asíncrono o FastAPI?
Sí. Usa AsyncCartesia y espera sus llamadas a la API con await en una aplicación asíncrona. Los ejemplos asíncronos del SDK muestran generación, salida a archivos y streaming. Conecta el audio devuelto a la respuesta o al reproductor de tu aplicación y cierra el cliente cuando termine su ciclo de vida.
¿Dónde debo guardar mi clave de API de Cartesia?
Mantén la clave de larga duración en una variable de entorno del servidor o en el gestor de secretos de la implementación. No la incluyas en commits ni la envíes al código del navegador. Si el navegador necesita una conexión directa, haz que el backend cree un token de corta duración y alcance limitado mediante la API de tokens de acceso.
¿Cómo elijo una voz y un idioma para la síntesis de voz en Python?
Escucha una voz en Playground y envía su ID en la solicitud. Define language o locale para la transcripción, pero no ambos. Prueba nombres, números y abreviaturas de tus propios guiones. Consulta la referencia de solicitudes para ver los parámetros de idioma y voz, en lugar de asumir que todas las voces admiten los mismos acentos.
¿Qué ID de modelo de Sonic debo utilizar en producción?
Elige un modelo de la documentación actual de Sonic y pruébalo con tu aplicación. El ID sonic-3.6 recibe actualizaciones de versiones estables. Una versión fechada publicada mantiene fijo el comportamiento del modelo mientras evalúas una nueva versión. Registra el ID del modelo junto con las pruebas para poder comparar resultados después de actualizar.
¿Por qué el PCM sin procesar necesita ajustes de reproducción especiales?
El audio PCM sin procesar no contiene una cabecera que indique cómo reproducirlo. El reproductor necesita la frecuencia de muestreo y la codificación usadas en la solicitud. Si no coinciden, puede producirse ruido, silencio o habla a una velocidad incorrecta. Empieza con salida WAV para comprobar la voz generada por separado del reproductor de streaming y después prueba la reproducción del audio sin procesar.
¿Qué debo preparar antes de utilizar síntesis de voz con Python en producción?
Gestiona los fallos de autenticación, los límites de solicitudes, los errores de red y los tiempos de espera. Configura los reintentos y los tiempos de espera del SDK según tu aplicación. Prueba las interrupciones de reproducción y evita reproducir audio en cola después de que el usuario cambie de dirección. Mide desde que el texto está disponible hasta que la voz se oye, incluidos la red y el búfer de reproducción.
Sigue creando con Sonic
Compara voces, revisa los formatos de audio y prepara tu integración.
Empieza hoy
Habla con un experto.
Habla con nuestro equipo y descubre cómo puede ayudarte Cartesia a crear experiencias de voz de primer nivel.
Empieza a crear.
Accede a nuestros modelos mediante API y lleva un agente de voz a producción en minutos.