ふと「テキストで会話してるやり取り、声がついたらもっと楽しいのにな」って思ったのがきっかけで、
キャラごとに違う声でしゃべってくれるWebアプリを作ってみました。
名前は VoiceTalker です。
テキストで書いた会話を、キャラクターの声で読み上げてくれるアプリです。
できること
VoiceTalkerでは、こんなことができます。
- テキストから会話音声を生成
- キャラクターごとに声の設定(高さ・速さ・音量・太さ)ができる
- 複数キャラの会話を1つの音声ファイルとして出力
- 調整した声をリアルタイムで試聴できる
セットアップ
環境はPythonです。以下で起動できます。
git clone https://github.com/mtrtrdev/voicetalker.git
cd voicetalker
pip install -r requirements.txt
streamlit run app.py
起動するとブラウザが開き、Webアプリが立ち上がります。
会話の作り方
サイドバーから「会話生成」を選んで、使いたいキャラクターにチェックを入れます。
テキストはこんな感じで入力します。
アリス: おはよう!
ボブ: おはよう、アリス。
そのあと「音声生成」ボタンを押すと、会話が音声化されます。
声のカスタマイズ
「声の設定」では、キャラクターごとに細かい調整ができます。
- 話す速さ:0.5~1.5(1.0が標準)
- 声の高さ:-12~+12(0が標準)
- 音量:-20~+20 dB(0が標準)
- 声の太さ:0~12(数字が大きいほど低音強め)
テスト用のテキストを入れると、その場ですぐに試聴できます。
技術スタック
VoiceTalker は以下の技術で作られています。
- Python 3.9+
- Streamlit:WebアプリのUI
- gTTS:Google Text-to-Speech(音声生成)
- librosa:音声の加工(ピッチ、速さ、音量)
- soundfile:音声ファイルの読み書き
すべてPythonだけで構成されているので、比較的扱いやすいです。
注意点
- gTTSを使用しているため、インターネット接続が必要です
- 音声生成には少し時間がかかる場合があります(数秒)
- 音声ファイルは一時的に生成されますが、サーバーには保存されません
GitHub
コードはこちらで公開しています。
スターしてもらえると励みになります!