La API de voz a texto n.º 1 en precisión en streaming

Los números de teléfono, los correos y los UUID salen bien a la primera, incluso con ruido de fondo, y la detección de turnos integrada avisa a tu agente cuando quien llama ha terminado.
transcribe.py
with client.stt.auto_finalize.websocket(
    model="ink-2",
    encoding="pcm_s16le",
    sample_rate=16000,
) as ws:
    ws.send_raw(audio_chunk)
    for event in ws:
        if event.type == "turn.end":
            print(event.transcript)

wss://api.cartesia.ai/stt/turns/websocket

Ejemplo completo

Habla y mira cómo se transcribe

Haz clic o pulsa Space para iniciar una transcripción
Toca para iniciar una transcripción
¿Necesitas un tema?
¿Qué película o serie ves cuando quieres sentirte bien?

Voz a texto en Python: tu primera transcripción

Instala el SDK

Usa Python 3.9 o posterior. El extra websockets añade el streaming en tiempo real.

Terminal
python3 -m pip install -U "cartesia[websockets]"

Configura tu clave de API

Crea una clave en el playground de Cartesia y guárdala en una variable de entorno, así nunca queda en tu código.

macOS / Linux
export CARTESIA_API_KEY="your-api-key"

¿Usas PowerShell?$env:CARTESIA_API_KEY="your-api-key"

Transcribe una grabación

Guarda este script como transcribe.py junto a un archivo WAV mono de 16 bits llamado call.wav y ejecútalo. El script transmite el audio a la velocidad a la que se grabó e imprime cada turno terminado.

Terminal
python3 transcribe.py

Para audio en directo, envía los fragmentos del micrófono o de la llamada a medida que llegan, en lugar de leer un archivo.

Modelo
ink-2
Endpoint
/stt/turns/websocket
transcribe.py
import os
import time
import wave

from cartesia import Cartesia

client = Cartesia(api_key=os.environ["CARTESIA_API_KEY"])

with wave.open("call.wav", "rb") as audio:
    sample_rate = audio.getframerate()
    frames_per_chunk = sample_rate // 10  # 100 ms of audio

    with client.stt.auto_finalize.websocket(
        model="ink-2",
        encoding="pcm_s16le",
        sample_rate=sample_rate,
    ) as ws:
        while chunk := audio.readframes(frames_per_chunk):
            ws.send_raw(chunk)
            time.sleep(0.1)  # send audio as fast as it was recorded
        ws.send({"type": "close"})

        for event in ws:
            if event.type == "turn.end":
                print(event.transcript)
            elif event.type == "error":
                raise RuntimeError(event.message)

Elige el endpoint que encaja con tu audio

Transmite audio en directo por WebSocket. Sube una grabación terminada en una sola petición HTTP.

Agentes de voz

/stt/turns/websocket

Transporte
WebSocket
Devuelve
Eventos de turno con la transcripción completa

Cartesia decide cuándo ha terminado de hablar la persona y envía un evento turn.end con el turno entero.

Leer la guía de detección de turnos

Control de turnos propio

/stt/websocket

Transporte
WebSocket
Devuelve
Actualizaciones de la transcripción

Úsalo si tu aplicación ya tiene un detector de actividad de voz o pulsar para hablar. Envía finalize cuando la persona deje de hablar para recibir la transcripción al instante.

Leer la referencia de la API en tiempo real

Archivos grabados

/stt

Transporte
HTTP
Devuelve
Una transcripción

Sube un archivo WAV o MP3 completo y recibe una transcripción, con marcas de tiempo por palabra opcionales.

Leer la referencia de la API por lotes

Precisión justo donde fallan los agentes de voz

Quien llama dicta números de tarjeta, deletrea su nombre y hace pausas a mitad de frase. Tu agente necesita una transcripción correcta en cada uno de esos momentos.

N.º 1 en precisión en streaming

Ink-2, el modelo de voz a texto en streaming de Cartesia, escribe bien números de teléfono, correos y UUID, y mantiene la precisión en líneas telefónicas con ruido sin un filtro de ruido aparte.

Detección de turnos sin VAD

Ink-2 decide cuándo termina un turno a partir de lo que dice quien llama, así que puedes prescindir del detector de actividad de voz (VAD). Un evento turn.eager_end permite que tu LLM empiece a responder antes de que se confirme el turno.

Las palabras de tu producto, bien escritas

La indicación de términos clave orienta el reconocimiento hacia los nombres y la jerga que usan tus clientes. Envía hasta 100 términos en cada conexión.

SDK y frameworks de agentes de voz

Los SDK oficiales de Python y JavaScript gestionan el WebSocket por ti, y las integraciones de Cartesia con Pipecat y LiveKit añaden Ink-2 a un agente existente.

El lugar de la voz a texto en un agente de voz

Ink-2 se sitúa entre el audio de quien llama y tu LLM, y sus eventos de turno indican al agente cuándo responder.

01

Tu audio

Transmite audio del micrófono, del navegador o de llamadas como PCM sin procesar, μ-law o A-law, a la frecuencia de muestreo que ya usa tu fuente.

02

Ink-2

Escribe la transcripción mientras habla quien llama y envía turn.end cuando ha terminado.

03

Tu agente

Pasa el turno terminado a tu LLM. Empieza la respuesta con turn.eager_end para contestar antes y descártala si llega turn.resume.

Seguridad empresarial.De la nube al entorno local.

  • Insignia de Cumple con HIPAA

    Cumple con HIPAA

  • Insignia de SOC 2 Type 2

    SOC 2 Type 2

  • Insignia de GDPR

    GDPR

  • Insignia de PCI

    PCI

Añade voz a texto a tu producto

Una cuenta gratuita incluye hasta 111 minutos de transcripción con Ink-2 al mes. Habla con nosotros sobre precios por volumen, despliegue local o un BAA.

Preguntas frecuentes sobre la API de voz a texto

¿Cuál es la mejor API de voz a texto?

Para conversaciones en directo, como los agentes de voz, elige una API que sea precisa en streaming y sepa cuándo ha terminado de hablar la persona. Ink-2 está clasificado en primer lugar en precisión de reconocimiento de voz en streaming y detecta los turnos por sí mismo, así que un solo modelo sustituye a un modelo de transcripción más un detector de actividad de voz.

¿Hay alguna API de voz a texto gratis?

Sí. Una cuenta gratuita de Cartesia incluye créditos mensuales que cubren hasta 111 minutos de transcripción con Ink-2 a través de la API, y los planes de pago añaden más. Para probar la voz a texto sin escribir código, usa la herramienta online gratuita.

¿Cuánto cuesta la API de voz a texto de Cartesia?

La transcripción con Ink-2 cuesta 3 créditos por segundo de audio, que se descuentan de los créditos mensuales de tu plan. El plan gratuito cubre hasta 111 minutos al mes, y la página de precios indica los minutos que incluye cada plan de pago.

¿Cómo convierto voz a texto en Python?

Instala el SDK con pip install "cartesia[websockets]", configura CARTESIA_API_KEY y abre un WebSocket con client.stt.auto_finalize.websocket(model="ink-2", ...). Envía fragmentos de audio sin procesar con send_raw y lee cada transcripción terminada en los eventos turn.end. La sección de Python de esta página tiene un script completo.

¿Puedo transcribir archivos de audio con la API de voz a texto de Cartesia?

Sí. El endpoint por lotes recibe una grabación completa, como un archivo WAV o MP3, en una sola petición HTTP y devuelve una transcripción, con marcas de tiempo por palabra opcionales. El WebSocket en tiempo real solo acepta el audio a la velocidad a la que se grabó, así que la API por lotes es la forma más rápida de transcribir un archivo.

¿Qué idiomas admite la API de voz a texto de Cartesia?

Ink-2 transcribe inglés, español, francés, hindi y japonés, y detecta cuál de ellos se está hablando.

¿Qué es una API de voz a texto?

Una API de voz a texto (también llamada API de STT, de reconocimiento de voz o de transcripción) recibe audio de tu aplicación y devuelve las palabras como texto. Una API en streaming devuelve la transcripción mientras la persona sigue hablando, que es lo que necesitan los agentes de voz y los subtítulos en directo.

¿Puedo ejecutar la API de voz a texto de Cartesia en mi propia infraestructura?

Sí. Ink-2 se despliega en local (incluidos entornos aislados de la red), en tu propia VPC en AWS, GCP o Azure, o como licencia OEM integrada en tu producto. Estos despliegues, y la retención de datos cero, están disponibles con contratos Enterprise.