Cookbook / Interprete tascabile
Un interprete
in tasca

Screenshot. Il template in esecuzione in locale.
- Modelli
- ink-2, sonic-3.6
- Lingue
- Due a scelta tra inglese, spagnolo, francese, hindi e giapponese
- Licenza
- Apache-2.0
- Stack
- Next.js 16React 19AI SDKWeb Audioshadcn/ui
- Prodotti Cartesia
- Ink 2Sonic 3.6
Cosa fa
Lo schermo si divide in due così ognuno legge la conversazione nella propria lingua, e una metà si può capovolgere per un telefono appoggiato tra voi due. Sotto ogni turno tradotto, una piccola riga mostra il tempo fino alla prima parola tradotta e fino al primo audio.
Eseguilo tu
Installa
Esegui i comandi qui sotto con Node 22.22 o successivo. Funziona anche pnpm. Compila
.env.localseguendo la tabella qui sotto. Se manca una chiave, la pagina ti dice quale.Variabili d'ambiente - CARTESIA_API_KEY
play.cartesia.ai/keys- LLM_MODEL
provider/model, per esempioopenai/gpt-5.4-mini- OPENAI_API_KEY
- Se
LLM_MODELinizia con openai/ - ANTHROPIC_API_KEY
- Se
LLM_MODELinizia con anthropic/ - AI_GATEWAY_API_KEY
- Per qualsiasi altro fornitore
- APP_PASSWORD
- Facoltativa in locale. Obbligatoria su Vercel, oppure none per rendere l'app pubblica
- TRUST_PROXY
- Facoltativa. 1 dietro un tuo reverse proxy
Inizia a parlare
Apri l'URL stampato da
npm run dev. Scegli le due lingue e premi Start talking. Poi parlate a turno, senza premere nulla tra un turno e l'altro. Un telefono ha bisogno di HTTPS per il microfono, quindi fai il deploy o usa un tunnel come cloudflared per provarla su un telefono.
Crealo con il tuo agente di programmazione
Un prompt che dice al tuo agente di programmazione da dove partire e cosa leggere per primo.
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.
Come funziona
Perché funziona così
La traduzione parte prima della fine del turno
Quando fai una pausa, Ink 2 invia una prima ipotesi che tu possa aver finito, e la pagina inizia subito a tradurre. Se avevi finito, usa quella traduzione. Se continui a parlare, la annulla e aspetta la frase intera.
L'LLM dice chi ha parlato
Ink 2 non dice quale lingua ha sentito. Per questo la risposta di traduzione inizia con un codice di lingua su una riga a sé. La pagina usa quel codice per scegliere la voce e il lato dello schermo.
L'app si silenzia mentre parla
Mentre viene riprodotta una traduzione, il microfono invia silenzio a Ink 2. Altrimenti l'app sentirebbe la propria voce e la tradurrebbe all'indietro, all'infinito.
Personalizzalo
Usa una voce diversa
La voce di ogni lingua è impostata in lib/languages.ts. Scegline altre dalla libreria di voci di Cartesia, oppure usa un tuo clone, creato solo con il permesso della persona.
Cambia il modo di tradurre
Modifica lib/prompt.ts per traduzioni formali o informali. Tieni il codice della lingua sulla prima riga della risposta, perché l'app lo legge per scegliere la voce.
Regola il rilevamento dei turni
Ink 2 decide quando finisce un turno. Per farlo aspettare di più o chiudere prima, imposta turn_end_timeout_ms quando l'app apre la connessione vocale. Quella chiamata è in lib/audio/listener.ts.
Unisciti ai team che passano a Cartesia
Domande
La mia API key di Cartesia è al sicuro?
Sì. La chiave resta sul server. Il browser riceve un token che dura 60 secondi e serve solo a trascrivere la voce e a sintetizzare il testo.
Dove va la conversazione?
Il parlato di entrambe le persone va a Cartesia, e il testo di ogni turno va al tuo fornitore LLM per la traduzione. Avvisa l'altra persona prima di iniziare.
Le due persone possono parlare insieme?
No. C'è un solo microfono e un turno alla volta, quindi aspetta che una traduzione finisca di suonare. Non premi nulla tra un turno e l'altro, perché Ink 2 distingue una pausa dalla fine di una frase.
Quali lingue supporta?
Due a scelta tra inglese, spagnolo, francese, hindi e giapponese. Sono le lingue che Ink 2 capisce. Aggiungere un'altra lingua richiede un altro modello di trascrizione.
Funziona su un telefono?
Il layout è pensato prima di tutto per il telefono. È stato provato in Chrome desktop con una voce registrata come microfono, non su un telefono vero.
Servono le cuffie?
No. L'app silenzia il proprio microfono mentre parla e per un terzo di secondo dopo. In un ambiente rumoroso, le voci di sottofondo possono comunque avviare un turno per sbaglio.
Esiste una guida passo passo per questo template?
Sì. La ricetta spiega il codice passo per passo, il README copre configurazione, variabili d'ambiente e deploy, e la documentazione sugli eventi di turno di Ink 2 spiega la parte Cartesia.
Altro dal cookbook
Inizia oggi
Parla con un esperto.
Contatta un membro del nostro team e scopri come Cartesia può aiutarti a creare esperienze vocali di altissimo livello.
Inizia a sviluppare.
Accedi ai nostri modelli tramite API e porta un agente vocale in produzione in pochi minuti.

