クックブック / 音声日記
1週間を読み返してくれる
音声日記

スクリーンショット. ローカルで動かしたテンプレート。
- モデル
- ink-whisper, sonic-3.6
- 言語
- 英語
- ライセンス
- Apache-2.0
- 技術スタック
- ExpoReact NativeExpo Router API routesAI SDKAsyncStorage
- Cartesia の製品
- InkSonic 3.6
できること
1つのアプリがiOS、Android、Webで動きます。エントリーは端末に保存されるので、データベースもログインもありません。録音は文字起こしのためにCartesiaへ、文字起こしはあなたのLLMプロバイダーへ送られます。アプリは録音ボタンの下でそのことを伝え、サーバーは音声を保存しません。
自分で動かす
インストールする
Node 22.22以降で下のコマンドを実行します。pnpmでも動きます。下の表を見て
.env.localを埋めます。環境変数 - CARTESIA_API_KEY
play.cartesia.ai/keys- LLM_MODEL
provider/model。例:openai/gpt-5.4-mini- OPENAI_API_KEY
LLM_MODELがopenai/で始まる場合- ANTHROPIC_API_KEY
LLM_MODELがanthropic/で始まる場合- AI_GATEWAY_API_KEY
- それ以外のプロバイダーの場合
- TRUST_PROXY
- 任意。自前のリバースプロキシの背後に置く場合は1
エントリーを録音する
npm run devを実行し、wを押してWebアプリを開きます。スマートフォンで使う場合は、プロジェクトを試せるExpoの無料アプリExpo GoでQRコードを読み取ります。Start recordingでエントリーを録音します。そのあとRecapを開いてWrite my recapをタップします。
コーディングエージェントで作る
どこから始めて、最初に何を読むべきかをコーディングエージェントに伝えるプロンプトです。
Build a voice journal app in Expo with Cartesia. Start from https:/ 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:/ to get one.
仕組み
この設計にした理由
録音済みのファイルにストリームは不要
日記のエントリーは録音し終えたものなので、ink-whisperに1回アップロードする方がライブストリームより簡単です。ストリーミングには話している間の生の音声が必要ですが、ExpoのレコーダーはWebではそれを出せません。
まとめは聞くために書く
まとめは直近7日間のエントリーを古い順に読み、聞くための文章として120〜200語で書かれます。Sonic 3.6はそれをMP3で返し、どのプラットフォームでも再生できます。
カスタマイズする
初期設定の音声を変える
デフォルトの声はlib/limits.tsで設定しています。Cartesiaの音声ライブラリから別の声を選び、app/recap.tsxでその紹介文を書き換えます。
別の言語を書き起こす
文字起こしの言語はapp/api/transcribe+api.tsで変えます。次に、app/api/speak+api.tsで読み上げの言語を変え、その言語を話す声を選びます。
気分の種類を変える
気分の一覧はlib/schema.tsにあります。振り返りとまとめのプロンプトはlib/server/prompts.tsにあります。
よくある質問
モバイルアプリでAPIキーは安全ですか?
サーバーに置いておけば安全です。キーを読むのはアプリのサーバールートだけで、スマートフォンに配るアプリには入りません。キーにEXPO_PUBLIC_という接頭辞を付けないでください。Expoはその値をアプリに埋め込み、誰でも読めるようになります。
実際のiPhoneやAndroidで動きますか?
開発中はExpo Goで動きます。ストア向けのビルドでは、サーバールートをデプロイし、アプリからそこを参照させます。Web版はChromeでテストしました。スマートフォン版はビルドできますが、実機では動かしていません。
このまま公開できますか?
できません。サーバールートは誰でも呼べるので、デプロイする前にログインを追加し、各ルートで確認してください。組み込みのレート制限は、軽い悪用を遅らせる程度です。
これはセラピーのアプリですか?
違います。プロンプトは、診断や医療的な助言をしないようモデルに指示しています。エントリーに自傷の話があれば、モデルは信頼できる人や地域の相談窓口を案内します。
まとめに自分の声を使えますか?
このテンプレートではできません。音声クローンはあえて入れていないので、アプリはCartesiaのライブラリの音声だけを使います。
このテンプレートの詳しい手順ガイドはありますか?
はい。レシピでコードを順に解説し、READMEでセットアップ、環境変数、デプロイを説明しています。Cartesia側の仕組みはバッチ書き起こしのAPIリファレンスにあります。
クックブックのほかの例
今すぐ始める
専門家に相談する。
音声体験の開発にCartesiaをどう活用できるか、私たちのチームにご相談ください。
開発を始める。
APIでモデルにアクセスし、数分で音声エージェントを本番環境に導入できます。

