VOICEVOX のインストールとPythonからの使用方法
VOICEVOXとは
VOICEVOXは、日本語の文章から自然な音声を生成できる音声合成ソフトウェアです。
Windows TTSを利用する pyttsx3 と同様に比較的手軽に利用でき、Pythonから音声合成を行うこともできます。
ここでは、TTSを手軽に利用する方法として、まず次の2つを推奨します。
TTS |
特徴 |
|---|---|
Windows TTS (pyttsx3) |
非常に軽量で高速。Windowsの音声を利用 |
VOICEVOX |
導入が簡単で、比較的自然な日本語音声 |
より高度な音声生成を試したい場合には、Qwen3-TTSやIrodori-TTSも利用できます。
手軽にTTSを使う
├─ pyttsx3
│ Windows標準TTS
│ 軽量・高速
│
└─ VOICEVOX
自然な日本語音声
多数の話者・スタイル
さらに高度なTTSを試す
├─ Qwen3-TTS
│ 高品質なニューラルTTS
│ 話し方の指示
│
└─ Irodori-TTS
自然なニューラルTTS
captionによる制御
参照音声によるVoice Clone
VOICEVOXのインストール
VOICEVOX本体を公式サイトからダウンロードしてインストールします。
通常はGPU版またはCPU版を選択できます。
VOICEVOXを起動すると、GUIから文章を入力して音声を生成できます。
Pythonから使用する場合には、VOICEVOXの音声合成エンジンに接続します。
本教材の tktts_voicevox.py では、デフォルトで
http://127.0.0.1:50021
のVOICEVOX Engineに接続します。
したがって、Pythonプログラムを実行する前にVOICEVOX Engineが利用可能な状態になっている必要があります。
Pythonライブラリのインストール
tktts_voicevox.py はVOICEVOX Engineとの通信に requests を使用します。
pip install requests
を実行してください。
tktts_voicevox.py は共通処理として
tktts_base.py
も使用します。
例えば、
sample_voicevox.py
tktts_voicevox.py
tktts_base.py
を同じディレクトリに置きます。
VOICEVOXを起動する
Pythonプログラムを実行する前に、VOICEVOXを起動します。
tktts_voicevox.py はデフォルトでは
http://127.0.0.1:50021
に接続します。
VOICEVOX Engineが動作していない場合には、Pythonから音声を生成できません。
利用できる音声を調べる
VOICEVOXには複数の話者があり、それぞれの話者に複数のスタイルが用意されている場合があります。
利用できる音声は、
python sample_voicevox.py list
で確認できます。
例えば、
=== 利用可能な voicevox voices ===
Name: 四国めたん, Style: ノーマル, ID: ...
Name: 四国めたん, Style: あまあま, ID: ...
Name: ずんだもん, Style: ノーマル, ID: ...
...
のように表示されます。
実際に表示される話者とスタイルは、使用しているVOICEVOXの環境によって異なります。
サンプルプログラム
次のプログラムを sample_voicevox.py として保存します。
# sample_voicevox.py
#
# VOICEVOX の簡単な使用例
#
# 使用例:
# python sample_voicevox.py
# python sample_voicevox.py list
# python sample_voicevox.py 四国めたん
# python sample_voicevox.py ずんだもん
import sys
import tktts_voicevox
# 利用可能な音声を表示
if len(sys.argv) >= 2 and sys.argv[1].lower() == "list":
tktts_voicevox.list_available_voices()
sys.exit()
# 話者を指定
if len(sys.argv) >= 2:
voice_name = sys.argv[1]
else:
voice_name = "四国めたん"
# 話者名からVOICEVOXのspeaker IDを取得
voices, voice_id = tktts_voicevox.resolve_speaker_id(voice_name)
print(f"Voice: {voice_name}")
print(f"Speaker ID: {voice_id}")
# 読み上げる文章
text = """
こんにちは。
これはVOICEVOXを使った音声合成のサンプルです。
Pythonから簡単に自然な日本語音声を生成できます。
"""
# 音声を生成
tktts_voicevox.speak(
outfile="sample_voicevox.wav",
text=text,
voice=voice_id,
speak_rate=1.0,
speak_pitch=0.0,
)
print("sample_voicevox.wav を作成しました。")
実行する
VOICEVOXを起動してから、
python sample_voicevox.py
を実行します。
正常に終了すると、
sample_voicevox.wav
が作成されます。
デフォルトでは、
四国めたん
を使用します。
話者を変更する
例えば、
python sample_voicevox.py ずんだもん
のように、コマンドラインから話者を指定できます。
利用できる話者は、
python sample_voicevox.py list
で確認してください。
VOICEVOX内部では各音声に数値の speaker ID が割り当てられています。
tktts_voicevox.py の
voices, voice_id = tktts_voicevox.resolve_speaker_id(voice_name)
は、話者名からこのIDを検索します。
したがって、通常はVOICEVOXの数値IDを覚えておく必要はありません。
読み上げ速度を変更する
VOICEVOXでは読み上げ速度を変更できます。
speak_rate=1.0
が標準速度です。
例えば、
tktts_voicevox.speak(
outfile="sample.wav",
text="これは少しゆっくりした音声です。",
voice=voice_id,
speak_rate=0.8,
)
とすると、読み上げ速度を遅くできます。
逆に、
speak_rate=1.2
などとすると速くなります。
音の高さを変更する
音の高さは、
speak_pitch=0.0
で指定できます。
例えば、
tktts_voicevox.speak(
outfile="sample.wav",
text="音の高さを変更することもできます。",
voice=voice_id,
speak_rate=1.0,
speak_pitch=0.05,
)
のように指定できます。
PythonからVOICEVOXを利用する仕組み
VOICEVOXの場合、Pythonプログラム自身がニューラルネットワークモデルを直接読み込んでいるわけではありません。
処理は、
Python
│
│ HTTP
↓
VOICEVOX Engine
│
│ 音声合成
↓
音声波形
│
↓
WAVファイル
となります。
まずPythonから文章と話者IDをVOICEVOX Engineに送ります。
VOICEVOX Engineは文章を解析して音声合成用の情報を作成し、その情報から音声波形を生成します。
そのため、Python側のプログラムは非常に簡単になります。