Um diário de voz
que lê a sua semana de volta

Toque para gravar uma entrada de diário. O modelo ink-whisper da Cartesia transforma a gravação em texto, e um LLM adiciona um título, um humor e uma reflexão de uma linha. Quando você quiser, o Sonic 3.6 lê um resumo curto dos seus últimos sete dias na voz que você escolher.
Captura de tela de celular da tela Weekly recap: um painel This week com uma entrada e um selo de humor Hopeful, o seletor de voz em Tessa, o botão Write my recap e o resumo mais recente tocando em 0:04 de 0:32

Captura de tela. O template rodando localmente.

Modelos
ink-whisper, sonic-3.6
Idiomas
Inglês
Licença
Apache-2.0
Stack
ExpoReact NativeExpo Router API routesAI SDKAsyncStorage
Produtos da Cartesia
InkSonic 3.6

O que ele faz

Um único app roda no iOS, no Android e na web. As entradas ficam no seu aparelho, então não há banco de dados nem login. As gravações vão para a Cartesia para transcrição, e as transcrições vão para o seu provedor de LLM. O app avisa isso embaixo do botão de gravar, e o servidor dele não guarda áudio.

Rode você mesmo

  1. Instale

    Rode os comandos abaixo com o Node 22.22 ou mais recente. O pnpm também funciona. Preencha o .env.local com base na tabela abaixo.

    npx degit cartesia-ai/cookbook/examples/voice-journal voice-journal
    cd voice-journal
    # add CARTESIA_API_KEY, LLM_MODEL and the matching provider key
    cp .env.example .env.local
    npm install
    npm run dev
    

    Variáveis de ambiente
    CARTESIA_API_KEY
    play.cartesia.ai/keys
    LLM_MODEL
    provedor/modelo, por exemplo openai/gpt-5.4-mini
    OPENAI_API_KEY
    Se LLM_MODEL começar com openai/
    ANTHROPIC_API_KEY
    Se LLM_MODEL começar com anthropic/
    AI_GATEWAY_API_KEY
    Para qualquer outro provedor
    TRUST_PROXY
    Opcional. 1 atrás do seu próprio proxy reverso
  2. Grave uma entrada

    Rode npm run dev e aperte w para abrir o app web. Para usar um celular, escaneie o QR code com o Expo Go, o app gratuito da Expo para testar projetos. Grave uma entrada com Start recording. Depois abra Recap e toque em Write my recap.

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

Claude CodeCursorCodex

Build a voice journal app in Expo with Cartesia. Start from https://github.com/cartesia-ai/cookbook/tree/main/examples/voice-journal and follow its AGENTS.md for the commands, files and rules. Expo Router API routes hold the keys: /api/transcribe sends each recording to ink-whisper with client.stt.transcribe from @cartesia/cartesia-js, the AI SDK writes the title, mood, reflection and weekly recap, and /api/speak turns the recap into an MP3 with sonic-3.6 through client.tts.generate. Never give a key an EXPO_PUBLIC_ prefix. If I don't have a Cartesia API key yet, follow https://www.cartesia.ai/agent-quickstart.md to get one.

Como funciona

Gravaçãoexpo-audio, m4a no celular e WebM na web
ink-whisperO servidor envia cada gravação para a Cartesia
LLMUm título, um humor e uma reflexão, e depois um resumo dos últimos sete dias
Sonic 3.6Devolve o resumo como MP3
AparelhoEntradas e resumos ficam no aparelho

Por que funciona assim

Uma gravação pronta não precisa de streaming

Uma entrada de diário é uma gravação pronta, então um único envio ao ink-whisper é mais simples que um fluxo ao vivo. O streaming também precisaria do áudio bruto enquanto você fala, e o gravador do Expo não entrega isso na web.

O resumo é escrito para ser ouvido

O resumo lê suas entradas dos últimos sete dias, da mais antiga para a mais nova, e sai com 120 a 200 palavras escritas para serem ouvidas. O Sonic 3.6 devolve o resumo como um MP3 que toca em todas as plataformas.

Deixe com a sua cara

Mude a voz padrão

A voz padrão fica em lib/limits.ts. Escolha outra na biblioteca de vozes da Cartesia e depois atualize a descrição dela em app/recap.tsx.

Transcreva outro idioma

Mude o idioma da transcrição em app/api/transcribe+api.ts. Depois mude o idioma da fala em app/api/speak+api.ts e escolha uma voz que fale esse idioma.

Mude os humores

A lista de humores fica em lib/schema.ts. Os prompts da reflexão e do resumo ficam em lib/server/prompts.ts.

Perguntas

Minha API key fica segura em um app de celular?

Sim, desde que fique no servidor. As rotas de servidor do app leem a chave, e ela nunca vai para o app instalado nos celulares. Não dê a uma chave o prefixo EXPO_PUBLIC_, porque o Expo coloca esses valores no app, onde qualquer pessoa pode lê-los.

Funciona em um iPhone ou Android de verdade?

Sim, no Expo Go durante o desenvolvimento. Para uma versão de loja, você faz o deploy das rotas de servidor e aponta o app para elas. A versão web foi testada no Chrome, e as versões de celular compilam, mas não foram rodadas em um aparelho.

Posso publicar como está?

Não. As rotas de servidor estão abertas para qualquer pessoa, então adicione login e confira em cada rota antes do deploy. O limite de requisições embutido só freia abusos casuais.

É um app de terapia?

Não. Os prompts pedem ao modelo que não faça diagnósticos nem dê conselhos médicos. Se uma entrada falar de automutilação, o modelo sugere alguém de confiança ou uma linha de apoio local.

Posso usar a minha própria voz no resumo?

Não neste template. A clonagem de voz ficou de fora de propósito, então o app só usa vozes da biblioteca da Cartesia.

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 referência da API de transcrição em lote explica o lado da Cartesia.

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.

Fale com vendas

Comece a criar.

Acesse nossos modelos por API e coloque um agente de voz em produção em minutos.

Experimente a Cartesia