Discord向けテキスト読み上げ(TTS) Botの開発・運用

概要
Discordのボイスチャット上で、テキストチャットを自動的に音声で読み上げるBotです。マイクを使えない環境のユーザーとボイスチャット参加者の円滑なコミュニケーションを技術で支援します。
開発の背景と課題
ゲームコミュニティや勉強会において、「聞き専(マイクを使わずにテキストで参加する)」ユーザーが疎外感を感じたり、会話のテンポが遅れたりする課題がありました。これを解消し、誰もがリアルタイムに参加できるアクセシブルなチャット環境を作るために開発しました。
技術スタックとアーキテクチャ
非同期処理をベースとしたPythonアプリケーションとして構築し、自身の自宅サーバー上で稼働させています。
- 言語: Python
- ライブラリ: discord.py
- 音声合成エンジン: Google Cloud Text-to-Speech API / VOICEVOX
- プラットフォーム: Docker (on Proxmox/Ubuntu)
技術的な工夫
非同期処理による低遅延な読み上げ
複数のユーザーが同時に発言する環境下で、音声合成とストリーミング再生を遅延なく行うために、Pythonの asyncio をフル活用した非同期処理を実装しました。APIリクエストの待機時間によるBotのフリーズを防ぎ、スムーズな発話を実現しました。
提供価値・ユーザー体験
- ユーザーカスタマイズ: ユーザーごとに声の種類や速度、ピッチを自由に変更できる機能を実装。
- 辞書登録機能: 特殊な読み方やネットスラングを正しく読み上げるための辞書機能を備え、精度の高いコミュニケーションを可能にしました。
成果・運用状況・今後の展望
自身のサーバーにて24時間稼働中であり、コミュニティの日常的なインフラとして利用されています。今後は、VOICEVOXなどのローカルエンジンへの完全移行によるランニングコストの削減や、AIによる感情表現の付加を検討しています。