x-yuya Radio

全自動ポッドキャスト生成システム

PythonCodexAivisSpeechCloudflare R2GitHub Actions

x-yuya Radio — AIパーソナリティ2人のポッドキャスト自動生成

Obsidianに溜めた思考ログや日記を素材に、AIがラジオ番組の台本を書き、2人のAI話者が掛け合いで読み上げて毎日配信します。人の手を借りずに、毎日ポッドキャストが1本できあがります。


概要

毎日決まった時刻にAIが起動し、2人トーク形式のラジオ音声を生成して配信します。番組は2チャンネルあります。

チャンネルタイプ実行尺特徴
BGM最新ニュース型毎日00:00約8〜10分Web検索で最新の話題を取り上げる
価値観ラヂオ内省・深掘り型手動 / まとめて生成約10分ノートを読み込み、過去に話したテーマは避ける

処理の流れ

入力: Obsidian(思考ログ・ブックマーク・日記)+ Web検索
  ↓ Codexが2人の掛け合い形式で台本を生成(4000〜5000字)
  ↓ AivisSpeechがセリフを1行ずつ読み上げ
  ↓ 音声を連結して音量を調整し、MP3化
  ↓ Cloudflare R2 へアップロード
出力: 番組リストへ追加し、Kanbanのラジオプレイヤーで再生

ラジオプレイヤー

生成したエピソードはKanban内のプレイヤーで再生できる。再生速度の切り替えにも対応


技術スタック

番組の履歴管理


主要ファイル

scripts/
├── generate-codex.py     台本生成のメイン処理
│   ├── Obsidianから思考ログ・ブックマーク・日記を収集
│   ├── 過去に使ったテーマ・素材の重複チェック
│   └── チャンネル別にプロンプトを組み立て
├── tts-aivis.py          音声合成(台本 → MP3)
│   ├── 台本を話者1 / 話者2のセリフに分解
│   ├── 1行ずつ音声合成して連結
│   └── 番組リストへ新エピソードを追加
└── sync-codex-auth.sh    認証情報の自動更新

.github/workflows/radio.yml  毎日00:00の自動実行

技術的な見どころ