Cookbook / Intérprete de bolso
Um intérprete
no seu bolso

Captura de tela. O template rodando localmente.
- Modelos
- ink-2, sonic-3.6
- Idiomas
- Dois quaisquer entre inglês, espanhol, francês, hindi e japonês
- Licença
- Apache-2.0
- Stack
- Next.js 16React 19AI SDKWeb Audioshadcn/ui
- Produtos da Cartesia
- Ink 2Sonic 3.6
O que ele faz
A tela se divide para que cada pessoa leia a conversa no próprio idioma, e uma das metades pode ficar de cabeça para baixo para um celular deitado entre vocês. Embaixo de cada turno traduzido, uma linha pequena mostra o tempo até a primeira palavra traduzida e até o primeiro áudio.
Rode você mesmo
Instale
Rode os comandos abaixo com o Node 22.22 ou mais recente. O pnpm também funciona. Preencha o
.env.localcom base na tabela abaixo. Se faltar alguma chave, a página diz qual.Variáveis de ambiente - CARTESIA_API_KEY
play.cartesia.ai/keys- LLM_MODEL
provedor/modelo, por exemploopenai/gpt-5.4-mini- OPENAI_API_KEY
- Se
LLM_MODELcomeçar com openai/ - ANTHROPIC_API_KEY
- Se
LLM_MODELcomeçar com anthropic/ - AI_GATEWAY_API_KEY
- Para qualquer outro provedor
- APP_PASSWORD
- Opcional localmente. Obrigatória na Vercel, ou none para deixar o app público
- TRUST_PROXY
- Opcional. 1 atrás do seu próprio proxy reverso
Comece a falar
Abra a URL que o
npm run devmostra. Escolha os dois idiomas e clique em Start talking. Depois, falem um de cada vez, sem apertar nada entre os turnos. Um celular precisa de HTTPS para o microfone, então faça o deploy ou use um túnel como o cloudflared para testar em um.
Crie com seu agente de programação
Um prompt que diz ao seu agente de programação por onde começar e o que ler primeiro.
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.
Como funciona
Por que funciona assim
A tradução começa antes de o turno terminar
Quando você faz uma pausa, o Ink 2 envia um primeiro palpite de que você talvez tenha terminado, e a página já começa a traduzir. Se você tinha terminado, ela usa essa tradução. Se você continua falando, ela cancela e espera a frase inteira.
O LLM diz quem falou
O Ink 2 não informa qual idioma ouviu. Por isso a resposta da tradução começa com um código de idioma em uma linha só dele. A página usa esse código para escolher a voz e o lado da tela.
O app se silencia enquanto fala
Enquanto uma tradução toca, o microfone envia silêncio ao Ink 2. Do contrário, o app ouviria a própria voz e a traduziria de volta, sem parar.
Deixe com a sua cara
Use outra voz
A voz de cada idioma fica em lib/languages.ts. Escolha outras na biblioteca de vozes da Cartesia, ou use seu próprio clone, feito só com a permissão da pessoa.
Mude o jeito de traduzir
Edite lib/prompt.ts para deixar as traduções formais ou informais. Mantenha o código do idioma na primeira linha da resposta, porque o app o lê para escolher a voz.
Ajuste a detecção de turnos
O Ink 2 decide quando um turno termina. Para ele esperar mais ou cortar antes, defina turn_end_timeout_ms quando o app abre a conexão de voz. Essa chamada fica em lib/audio/listener.ts.
Junte-se às equipes que estão migrando para a Cartesia
Perguntas
Minha API key da Cartesia fica segura?
Sim. A chave fica no servidor. O navegador recebe um token que dura 60 segundos e só serve para transformar fala em texto e texto em fala.
Para onde vai a conversa?
A fala das duas pessoas vai para a Cartesia, e o texto de cada turno vai para o seu provedor de LLM para ser traduzido. Avise a outra pessoa antes de começar.
As duas pessoas podem falar ao mesmo tempo?
Não. Há um microfone e um turno por vez, então espere a tradução terminar de tocar. Você não aperta nada entre os turnos, porque o Ink 2 distingue uma pausa do fim de uma frase.
Quais idiomas ele aceita?
Quaisquer dois entre inglês, espanhol, francês, hindi e japonês. São os idiomas que o Ink 2 entende. Adicionar outro idioma exige outro modelo de fala para texto.
Funciona no celular?
O layout foi pensado primeiro para o celular. Ele foi testado no Chrome do computador com uma voz gravada como microfone, não em um celular de verdade.
Precisa de fones de ouvido?
Não. O app silencia o próprio microfone enquanto fala e por um terço de segundo depois. Em um lugar barulhento, vozes ao fundo ainda podem iniciar um turno por engano.
Existe um guia passo a passo deste template?
Sim. A receita explica o código, o README cobre a configuração, as variáveis de ambiente e a implantação, e a documentação dos eventos de turno do Ink 2 explica o lado da Cartesia.
Mais do cookbook
Comece hoje
Fale com um especialista.
Converse com alguém da nossa equipe e descubra como a Cartesia pode ajudar você a criar experiências de voz de alto nível.
Comece a criar.
Acesse nossos modelos por API e coloque um agente de voz em produção em minutos.

