PersonalCast - 日々のメモからAIパーソナリティが番組を生成!
はじめに
今回は、Google Cloud の AI サービスを活用して開発した「PersonalCast」というツールを紹介します。PersonalCast は、日々のメモや活動記録から、2人の AI パーソナリティがあなたの1日を分析・紹介するラジオ番組を自動生成するツールです。
「今日も1日お疲れさま」という気持ちを、AI が客観的かつ温かく伝えてくれる。そんな新しい振り返り体験を目指して開発しました。
(2025/7/17までアクセスできます)
解決したい課題
日々の活動記録、振り返れていますか?
みなさんメモアプリなどで日々の記録ってしてますかね?
意外(?)と日々やったことなどをメモアプリで活動を記録している人は居ると思います。自分もそうです。
ただ、こんな課題を感じたことはありませんか?
- 書きっぱなしで振り返らない - せっかく記録しても、後で見返すことは稀
- 自己評価の難しさ - 自分の成果を客観的に評価するのは意外と難しい
- モチベーション維持 - 毎日の小さな成果に気づきにくく、継続が困難
特に、自分で自分を褒めるのは客観性に欠けがち。でも、第三者から「今日もよく頑張りましたね」と言われると、素直に受け入れられることがあったりします。
AI活用による新しいアプローチ
PersonalCast は、この「客観的な視点からの振り返り」を AI で実現します。
- AI パーソナリティによる分析 - 2人のキャスターが対話形式であなたの1日を紹介
- 音声コンテンツ化 - 通勤中や家事の合間に聴ける番組形式
- エンタメ要素 - 堅苦しくない、楽しい振り返り体験
単なる活動ログの要約だけでなく、あなた専用のラジオ番組として「聴く楽しさ」を提供します。
PersonalCastの特徴
3つの主要機能
1. メモの自由な記述方法をサポート
入力するメモのフォーマットはどのようなものでも対応しています。Markdown形式から、簡単なテキストメモまで幅広く対応しています。
2. AIパーソナリティによる対話型分析
デフォルトでは「あかり」と「けんた」という2人のパーソナリティが、あなたの活動を分析します:
- あかり(メインキャスター): 冷静で分析的な視点から全体を俯瞰
- けんた(コメンテーター): 洞察力のある視点で深い分析を提供
単調な要約ではなく、自然な対話形式で情報を伝えることで、聴きやすさと理解しやすさを両立しています。
メインキャスターからコメンテーターへの質問をすることで、自然な対話となるようにしています。
3. 高品質な音声番組生成
Google の最新 TTS 技術に加えて、BGMを追加することで自然で聴き心地の良い音声データを生成しています。
- 複数の音声プリセット(Zephyr、Charon など)
- BGM 自動追加機能(ダッキング処理対応)
- MP3 形式で出力、どこでも再生可能
デモ - 実際の使用例
例えば、こんなメモから。
2024-01-20 の活動記録
【業務活動】
- 新規プロジェクトの要件定義レビューを完了
- 設計ドキュメントを作成し、チームで共有
- TypeScriptでの実装を開始(進捗: 約30%)
- コードレビューを2件実施
【学習・研究】
- TypeScriptの高度な型システムについて学習(2時間)
- 技術記事を3本読了(テーマ: マイクロサービス、CI/CD、クリーンアーキテクチャ)
【健康・運動】
- 昼休みに30分のウォーキングを実施
- 歩数: 7,250歩
【本日の成果】
- 重要タスクの完了率: 100%
- 新たに習得したスキル: TypeScriptの条件型
- 継続的な取り組み: 毎日のウォーキング(5日連続達成)
こんなスクリプトと音声が生成されます。
あかり: 皆様、こんばんは。2024年1月20日、土曜日。『Today's You』の時間です。この番組では、皆様の日々の活動データを深く分析し、パーソナルなニュースとしてお届けします。メインキャスターのあかりです。
けんた: そして、コメンテーターのけんたです。本日も皆様の活動に鋭く切り込んでまいります。
あかり: 本日注目すべきハイライトは3点です。まず、新規プロジェクトの要件定義レビューが完了したこと。次に、重要タスクの完了率が100%を達成したこと。そして、毎日のウォーキングが5日連続で達成されたことです。けんたさん、これだけでも素晴らしい成果が見て取れますね。
けんた: はい、あかりさん。データから、今日の活動が非常に計画的かつ効率的に進められたことが伺えます。特に重要タスクの完遂は、その日の生産性を象徴する指標ですね。
あかり: それでは、今日のトップニュースから見ていきましょう。本日は総活動数5件のうち、新規プロジェクトの要件定義レビューを完了し、さらに重要タスクの完了率が100%と、見事な達成度を記録しました。けんたさん、このデータはどのように評価されますか?
ユースケース例
- 日々の振り返り: 1日の終わりに、その日の成果を音声で振り返る
- 週次レビュー: 1週間分のメモをまとめて分析、大きな流れを把握
- プロジェクト進捗: 開発ログから進捗レポートを自動生成
技術スタックとアーキテクチャ
ソースコードは全て公開しています。
モノレポ構造の採用
PersonalCast は、開発生産性を考慮してモノレポ構造を採用しています。
personalcast/
├── packages/
│ ├── core/ # 共有ライブラリ
│ ├── cli/ # CLIアプリケーション
│ └── web/ # Webアプリケーション
この構造により以下の恩恵があると考えています。
- コードの再利用: コア機能を CLI と Web で共有
- 一貫性の確保: 型定義やビジネスロジックの統一
- 開発効率: 統一されたビルド・テストプロセス
共有ライブラリを作成し、cliとwebで利用することで、基本機能の開発中はcli版で動作確認をし、最後はweb版に適用するというフローを取ることができます。
これはAI Agent(Claude Codeなど)を利用した開発時に簡単にAI Agentから動作確認が行えるため、生産性が爆あがりしました。
アーキテクチャ
PersonalCast Web版の処理フローとシステム構成は以下のようになっています。
Convexを採用することで、TypeScriptの型を活かした開発をスムーズに行うことができました。
処理の流れ
-
ユーザー入力
- ブラウザからメモデータを入力
- Next.js API Routeで処理
-
ジョブ管理
- Convexでジョブレコードを作成
- 処理状態をリアルタイムで管理
-
AI処理(Google Cloud)
- Gemini APIで台本を生成
- 2人のパーソナリティで対話形式に
- Gemini APIで音声合成(TTSモデル利用)
-
音声処理
- FFmpegで複数音声を結合
- BGMの追加とダッキング処理
- MP3形式で最終出力
-
配信
- Convexストレージに保存
- Convex Fileから配信
今後の展望
機能拡張アイデア
PersonalCast の可能性はまだまだあると考えています。
- 多言語対応: 英語、中国語など他言語での番組生成
- カスタムパーソナリティ: ユーザー独自のキャラクター設定
- 統計ダッシュボード: 長期的な活動傾向の可視化
-
チーム内振り返り: 複数人が関わるチームの振り返り用に
TeamCast
として展開
まとめ
PersonalCast は、Google Cloud の AI サービスを活用して、日々の活動記録に新しい価値を提供するツールです。
よければ使ってみてください。
(2025/7/17までアクセスできます)
Discussion