EvolverRadioSystem

ラジオの自動配信システム開発

本来はACE-Stepを利用して天気などに合わせて音楽の自動生成を行おうとしたのですが、
性能が追い付かずあらかじめSunoなどで作成した音楽を配信する仕組みに落ち着きました。。。
ファイル構成などのみここに記録します。

コードを公開するかは検討中

# Evolver RadioSystem v2.0

自動ラジオ番組生成システム(GUI対応版・コピペ対応)

## 🆕 v2.0の新機能

**🎛️ GUI制御**: 直感的なグラフィカルインターフェース

**🕐 柔軟なスケジューリング**: 取得・再生タイミングを個別設定

**🌤️ 複数エリア天気**: カンマ区切りで複数地域の天気を取得

**📰 カスタムRSS**: 自由なRSSソース追加

**🎙️ 音声テンプレート**: セクション別テキスト設定

**📊 統計機能**: 番組生成・再生履歴の可視化

**🔄 手動更新**: ワンクリックで番組更新

## 概要

天気情報とニュースを自動取得し、TTSで音声化してBGMと組み合わせた自動ラジオ番組を生成するシステムです。GUI版とCLI版の両方に対応しています。

## 特徴

– ✅ **GUI & CLI両対応**: 用途に応じて選択可能

– ✅ **コピペ対応**: 相対パスベースでどこにでも配置可能

– ✅ **無料API使用**: 気象庁API、無料RSSニュース使用

– ✅ **VOICEVOX対応**: 高品質な日本語TTS

– ✅ **天気連動BGM**: 天気に応じた音楽フォルダ自動選択

– ✅ **スケジュール機能**: 自動で定期番組生成・再生

– ✅ **統計表示**: 番組生成履歴と再生統計

## 必要な環境

### ソフトウェア

– Python 3.8以上

– VOICEVOX Engine(TTS用)

– ffplay(音楽再生用、オプション)

### Pythonパッケージ

“`bash

pip install -r requirements.txt

“`

## 📁 フォルダ構成

“`

Evolver_RadioSystem_Folder/

├── scripts/              # メインプログラム

│   ├── radio_gui.py      # GUI版メイン(NEW)

│   ├── main_loop.py      # CLI版メイン

│   ├── radio_scheduler.py # スケジューラー(NEW)

│   ├── config_manager.py  # 設定管理(NEW)

│   ├── music_manager.py   # 音楽管理(NEW)

│   ├── program_statistics.py # 統計機能(NEW)

│   ├── config.py         # 基本設定ファイル

│   ├── weather_fetcher.py    # 天気取得

│   ├── news_fetcher.py       # ニュース取得

│   ├── tts_generator.py      # TTS音声生成

│   ├── music_generator.py    # 音楽生成

│   └── audio_merger.py       # 音声結合

├── music/                # BGM音楽ファイル

│   ├── sunny/            # 晴れ用BGM

│   ├── cloudy/           # 曇り用BGM

│   ├── rainy/            # 雨用BGM

│   └── snowy/            # 雪用BGM

├── output/               # 生成されたラジオ番組

├── logs/                 # ログファイル

├── news_cache/           # ニュースキャッシュ

├── prompts/              # 音楽生成プロンプト

├── start_gui.bat         # GUI版起動用(NEW)

├── start_cli.bat         # CLI版起動用(NEW)

├── requirements.txt      # 依存パッケージ

└── README.md             # このファイル

“`

## 🚀 使用方法

### 📋 事前準備

1. **VOICEVOXエンジンを起動**

   – VOICEVOX公式サイトからダウンロード

   – エンジンを起動してポート50021で待機

2. **BGM音楽ファイル準備**

   “`

   music/sunny/   – 晴れ用BGM(.wav/.mp3)

   music/cloudy/  – 曇り用BGM(.wav/.mp3)

   music/rainy/   – 雨用BGM(.wav/.mp3)

   music/snowy/   – 雪用BGM(.wav/.mp3)

   “`

### 🎛️ GUI版(推奨)

“`bash

# 簡単起動

start_gui.bat

# または手動起動

cd scripts

python radio_gui.py

“`

**GUI機能:**

– 📅 **スケジュール設定**: 取得・再生タイミングを個別設定

– 🌍 **複数エリア天気**: 「東京, 大阪, 名古屋」などカンマ区切り入力

– 📰 **RSS設定**: 複数行でRSSソースを自由追加

– 🎙️ **音声テンプレート**: Intro/Weather/News/Guide/Outro各セクション

– 🔄 **手動更新**: ワンクリックで即座に番組生成

– 📊 **統計表示**: 番組履歴・再生回数・システムログ

### 💻 CLI版(従来版)

“`bash

# 簡単起動

start_cli.bat

# または手動起動

cd scripts

python main_loop.py

“`

実行モード選択:

**1**: 1回だけ番組作成

**2**: 継続的に番組作成(30分間隔)

**3**: 終了

## ⚙️ 設定のカスタマイズ

### GUI版設定

– GUI内で全設定を変更可能

– 設定は `config_gui.json` に自動保存

– 設定エクスポート・インポート機能

### CLI版設定

`scripts/config.py` で以下を調整可能:

**更新間隔**: `UPDATE_INTERVAL` (秒)

**対象都市**: `WEATHER_CITY`

**VOICEVOX話者**: `VOICEVOX_SPEAKER`

**音量バランス**: `VOICE_VOLUME`, `MUSIC_VOLUME`

**ニュース記事数**: `MAX_NEWS_ARTICLES`

## 🎯 コピペ対応について

このシステムは相対パスベースで設計されており、以下の利点があります:

– ✅ フォルダごとコピーすればどこでも動作

– ✅ 絶対パス依存なし

– ✅ ユーザー環境に依存しない

– ✅ Git管理しやすい

– ✅ USBメモリでの持ち運び可能

## 🚀 新機能詳細(v2.0)

### GUI制御パネル

**直感的操作**: ボタンクリックで開始・停止・手動更新

**リアルタイムログ**: システムログをGUI内で確認

**設定保存**: 全設定を自動保存・復元

### 高度なスケジューリング

**取得スケジュール**: 「今すぐ」または指定時刻から開始

**再生スケジュール**: 番組生成と再生タイミングを独立制御

**間隔設定**: 分単位で柔軟な間隔指定

### 複数エリア天気対応

“`

天気エリア設定例:

東京, 大阪, 名古屋, 福岡, 札幌

“`

### カスタム音声テンプレート

各セクション別に自由なテキスト設定:

**Intro**: 番組開始の挨拶

**Weather**: 天気予報の導入

**News**: ニュースセクションの導入

**Guide**: 番組案内・宣伝

**Outro**: 番組終了の挨拶

### 統計・ログ機能

**番組統計**: 生成数・ファイルサイズ・天気別統計

**再生履歴**: 各番組の再生回数追跡

**システムログ**: エラー・警告・情報ログの表示

**設定履歴**: 設定変更の追跡

## 🔧 トラブルシューティング

### よくある問題

1. **VOICEVOXエンジン接続エラー**

   – VOICEVOXエンジンが起動しているか確認

   – ポート50021が空いているか確認

   – Windowsファイアウォールの設定確認

2. **音楽ファイルが見つからない**

   – `music/天気名/` フォルダにwav/mp3ファイルを配置

   – ファイル拡張子を確認(.wav, .mp3, .flac, .ogg対応)

   – フォルダ作成ボタンで自動作成

3. **ニュース取得失敗**

   – インターネット接続を確認

   – RSS URLが有効か確認

   – プロキシ設定の確認

4. **パッケージインストールエラー**

   “`bash

   pip install –upgrade pip

   pip install -r requirements.txt

   “`

5. **GUI起動エラー**

   – Pythonのtkinterモジュール確認

   – 管理者権限で実行

   – Python 3.8以上の使用確認

### ログ確認

詳細なログは以下で確認できます:

**GUI版**: アプリ内ログ表示 + `logs/` フォルダ

**CLI版**: `logs/radio_system_YYYYMMDD.log`

**統計DB**: `program_stats.db`(SQLite形式)

## 📈 将来の機能拡張

– 🌍 **Web配信対応**: ストリーミング配信機能

– 🧠 **AI音声生成**: OpenAI API連携でより自然な音声

– 📱 **モバイルアプリ**: スマートフォン用制御アプリ

– 🎵 **音楽自動生成**: AI音楽生成機能

– 📊 **高度な統計**: リスナー分析・推奨機能

## 📄 ライセンス

MIT License

## 📝 更新履歴

**v2.0**: GUI対応、高度なスケジューリング、統計機能

**v1.0**: CLI版初回リリース(相対パス対応)

**🎉 Evolver RadioSystem v2.0をお楽しみください!**