本記事では、VOICEVOXを利用したい初心者向けに、インストールからPythonで利用する方法までを解説していきます。

関連記事:OllamaをPythonから操作:WindowsでローカルLLM入門

VOICEVOXとは

VOICEVOXは、自然な発音で音声を生成できる、国産の音声合成ソフトウェアです。GUIの画面もありますが、PythonからでもAPI経由で簡単に使うことができます。

VOICEVOXでは複数のキャラクター音声が利用可能ですが、今回使用するのは「ずんだもん」です。ずんだもんは、東北地方の名物「ずんだ餅」をモチーフにした人気キャラクターで、YouTubeなどでもよく見かけます。

VOICEVOXとずんだもんで生成した音声は、「VOICEVOX: ずんだもん」とクレジットを記載することで、商用/非商用の利用が可能です。

VOICEVOXをPythonで使う手順

VOICEVOXのインストールから、PythonからVOICEVOXを利用して音声合成する手順を解説します。

1. VOICEVOXのインストール

まず、以下のVOICEVOXの公式サイトにアクセスし、インストーラーをダウンロードします。


公式ページの右上の[ダウンロード]ボタンを押下すると、以下のポップアップ画面が表示されます。Windows/MacのOSやGPU有無など、あなたのPC環境に合致したものを選び、右下の[ダウンロード]ボタンを押下します。
スクリーンショット 2025-06-07 165921
なお利用規約には、「ご利用の際は VOICEVOX を利用したことがわかるクレジット表記が必要です。」との記載がありますので、利用時にはクレジット表記を忘れないようにしてください。

ダウンロード後は、インストーラーをダブルクリックしてインストールします。

2. VOICEVOXのAPIサーバを起動

VOICEVOXは、画面操作で利用することができますが、Pythonで利用するためにローカルサーバとして起動します。

VOICEVOXは、以下のようなディレクトリに保存されているはずです。
C:\Users\ユーザー名\AppData\Local\Programs\VOICEVOX\vv-engine\vv-engine

上記フォルダの中に、run.exeという実行ファイルがありますので、こちらをコマンドプロンプトから実行します。
C:\Users\ユーザー名\AppData\Local\Programs\VOICEVOX\vv-engine\run.exe

以下のような実行結果が表示されれば問題なく起動できています。
なおVOICEVOXのHTTPサーバは、デフォルトでlocalhost:50021でAPIサーバが動作します。
スクリーンショット 2025-06-07 171032

3. VOICEVOXのAPIドキュメントを確認

VOICEVOXはHTTPサーバとして起動しているので、ブラウザからアクセスできます。ローカルでデフォルトのポート50021で起動した場合、以下をURLにアクセスすると、VOICEVOXのAPIドキュメントを確認できます。
http://localhost:50021/docs

以下の画面のような、Swagger UI形式でのAPI仕様が表示されれば、VOICEVOX APIが正常に起動しています。
スクリーンショット 2025-06-08 235449

4. VOICEVOX APIで使用する話者IDを確認

VOICEVOXでは「ずんだもん」などの話者ごとにIDが割り振られており、音声合成時に指定する必要があります。話者IDは以下の手順で確認できます。

①VOICEVOXを起動した状態で http://localhost:50021/docs にアクセス
②「その他」カテゴリの/speakers のエンドポイントを開き、「Try it out」をクリック
③「Execute」ボタンを押すと、利用可能な話者一覧がJSON形式で返ってくる

5. PythonからVOICEVOX APIを使用して音声を生成する

VOICEVOX APIを使って音声を生成するために、requestsライブラリでAPIエンドポイントにテキストを送信します。requestsライブラリとは、PythonでHTTPリクエストを送信するための外部ライブラリです。

まず、requestsライブラリをpipコマンドでインストールします。
pip install requests

次に、以下のコードを実行して、PythonからVOICEVOX APIを使って音声を生成してみます。
import requests

# 読み上げたいテキスト
text = "こんにちは、パイソンからVOICEVOXでテキストを音声に変換します。"

# 話者IDを指定 (ずんだもんの "ノーマル"を指定)
speaker=3

# 1. 音声合成用のクエリを作成する
query_payload = {'text': text, 'speaker': speaker}
query_response = requests.post(f'http://localhost:50021/audio_query', params=query_payload)
query = query_response.json()

# 2. クエリから音声合成する
synthesis_payload = {'speaker': speaker}
synthesis_response = requests.post(f'http://localhost:50021/synthesis', params=synthesis_payload, json=query)

# 音声合成ファイルを作成する
with open("voicevox_output.wav", 'wb') as f:
    f.write(synthesis_response.content)
print(f"音声ファイルが作成されました。")
上記のコードの流れを解説します。
・まずtext に読み上げたい文章を設定し、speaker に話者ID(3のずんだもん)を指定します。
 話者IDは/speakersのエンドポイントで確認した話者一覧を見て指定します。

・VOICEVOXの /audio_query エンドポイントにPOSTし、読ませたいtextを音声合成用のクエリに変換します。クエリはJSON形式のファイルです。

・取得したクエリを /synthesis エンドポイントにPOSTし、クエリからWAV形式の音声データを取得します。

・取得した音声データ(WAV形式)をファイルで保存します。

まとめ

VOICEVOXは、無料かつ高品質な音声合成を提供する非常に便利なツールです。様々なキャラクターがいるので、お気に入りのキャラを見つけてみてください。

関連記事:Ollama×Streamlit×VoiceVoxで作るローカルLLM音声対話アプリ【完全ハンズオン】