Cookbook / Intérprete de bolsillo
Un intérprete
en el bolsillo

Captura de pantalla. La plantilla ejecutándose en local.
- Modelos
- ink-2, sonic-3.6
- Idiomas
- Dos cualesquiera entre inglés, español, francés, hindi y japonés
- Licencia
- Apache-2.0
- Stack
- Next.js 16React 19AI SDKWeb Audioshadcn/ui
- Productos de Cartesia
- Ink 2Sonic 3.6
Qué hace
La pantalla se divide para que cada persona lea la conversación en su idioma, y una mitad se puede girar para un teléfono apoyado en la mesa entre los dos. Bajo cada turno traducido, una línea pequeña muestra el tiempo hasta la primera palabra traducida y hasta el primer audio.
Ejecútalo tú mismo
Instala
Ejecuta los comandos de abajo con Node 22.22 o posterior. pnpm también funciona. Rellena
.env.localcon la tabla de abajo. Si falta una clave, la página dice cuál.Variables de entorno - CARTESIA_API_KEY
play.cartesia.ai/keys- LLM_MODEL
proveedor/modelo, por ejemploopenai/gpt-5.4-mini- OPENAI_API_KEY
- Si
LLM_MODELempieza por openai/ - ANTHROPIC_API_KEY
- Si
LLM_MODELempieza por anthropic/ - AI_GATEWAY_API_KEY
- Para cualquier otro proveedor
- APP_PASSWORD
- Opcional en local. Obligatoria en Vercel, o none para que la app sea pública
- TRUST_PROXY
- Opcional. 1 si está detrás de tu propio proxy inverso
Empieza a hablar
Abre la URL que muestra
npm run dev. Elige los dos idiomas y pulsa Start talking. Después hablad por turnos, sin pulsar nada entre uno y otro. Un móvil necesita HTTPS para el micrófono, así que despliégala o usa un túnel como cloudflared para probarla en uno.
Créalo con tu agente de programación
Un prompt que le dice a tu agente de programación por dónde empezar y qué leer primero.
Prompt
Build a two-person voice translation app with Cartesia. Start from https:/ and follow its AGENTS.md for the commands, files and rules. The server mints a 60 second access token with only the stt and tts grants. The browser streams the microphone to ink-2 on /stt/turns/websocket with @cartesia/cartesia-js, sends each turn to an AI SDK route that replies with the language code and the translation, and speaks it with sonic-3.6 over the TTS WebSocket. Keep the mute gate that sends silence to Ink 2 while Sonic plays. If I don't have a Cartesia API key yet, follow https:/ to get one.
Cómo funciona
Por qué funciona así
La traducción empieza antes de que acabe el turno
Cuando haces una pausa, Ink 2 envía una primera suposición de que quizá has terminado, y la página empieza a traducir enseguida. Si habías terminado, usa esa traducción. Si sigues hablando, la cancela y espera a la frase completa.
El LLM dice quién habló
Ink 2 no dice qué idioma ha oído. Por eso la respuesta de traducción empieza con un código de idioma en su propia línea. La página usa ese código para elegir la voz y el lado de la pantalla.
La app se silencia mientras habla
Mientras suena una traducción, el micrófono envía silencio a Ink 2. Si no, la app oiría su propia voz y la volvería a traducir sin parar.
Adáptalo a ti
Usa otra voz
La voz de cada idioma está en lib/languages.ts. Elige otras de la biblioteca de voces de Cartesia, o usa tu propio clon, hecho solo con el permiso de la persona.
Cambia cómo traduce
Edita lib/prompt.ts para que las traducciones sean formales o informales. Mantén el código de idioma en la primera línea de la respuesta, porque la app lo lee para elegir la voz.
Ajusta la detección de turnos
Ink 2 decide cuándo termina un turno. Para que espere más o corte antes, define turn_end_timeout_ms cuando la app abre la conexión de voz. Esa llamada está en lib/audio/listener.ts.
Únete a los equipos que dan el salto a Cartesia
Preguntas
¿Está segura mi API key de Cartesia?
Sí. La clave se queda en el servidor. El navegador recibe un token que dura 60 segundos y solo sirve para pasar voz a texto y texto a voz.
¿Adónde va la conversación?
La voz de las dos personas va a Cartesia, y el texto de cada turno va a tu proveedor de LLM para la traducción. Avisa a la otra persona antes de empezar.
¿Pueden hablar las dos personas a la vez?
No. Hay un micrófono y un turno cada vez, así que espera a que termine de sonar la traducción. No pulsas nada entre turnos, porque Ink 2 distingue una pausa del final de una frase.
¿Qué idiomas admite?
Dos cualesquiera entre inglés, español, francés, hindi y japonés. Son los idiomas que Ink 2 entiende. Añadir otro idioma necesita otro modelo de voz a texto.
¿Funciona en un móvil?
El diseño está pensado primero para el móvil. Se probó en Chrome de escritorio con una voz grabada como micrófono, no en un móvil real.
¿Hacen falta auriculares?
No. La app silencia su propio micrófono mientras habla y durante un tercio de segundo después. En un sitio ruidoso, las voces de fondo todavía pueden iniciar un turno por error.
¿Hay una guía paso a paso de esta plantilla?
Sí. La receta recorre el código, el README cubre la instalación, las variables de entorno y el despliegue, y la documentación de los eventos de turno de Ink 2 explica la parte de Cartesia.
Más del cookbook
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.

