PR表記: 当記事にはアフィリエイトリンクが含まれます。商品の購入は自己判断でお願いします。

AivisSpeechは、VOICEVOXをベースに開発された日本語音声合成(TTS)エンジンです。GUIで手軽に使えるほか、ローカルAPIサーバーとしても動作するため、動画制作の自動化にも活用できます。この記事では、導入から基本的な使い方、PythonでのAPI活用までを解説します。

AivisSpeechとは

AivisSpeechは、VOICEVOXエンジンをベースにした音声合成ソフトウェアです。主な特徴は以下の通り。

  • 無料で利用可能: 個人利用・商用利用ともに無料(利用規約はキャラクターごとに異なる)
  • 高品質な日本語音声: 自然なイントネーションの日本語音声を生成
  • ローカル動作: インターネット接続不要で、自分のPC上で完結
  • REST API対応: HTTPリクエストで音声生成が可能

VOICEVOXとの違い

AivisSpeechはVOICEVOXエンジン互換ですが、独自のキャラクターボイスと追加機能を提供しています。

項目VOICEVOXAivisSpeech
エンジンVOICEVOX EngineVOICEVOX互換
キャラクターずんだもん等独自キャラクター
API互換性-VOICEVOXと互換
ライセンスキャラごとに異なるキャラごとに異なる

APIの互換性があるため、VOICEVOXで動作するコードはAivisSpeechでもほぼそのまま動きます。

インストール方法

Windows / Mac

  1. AivisSpeech公式サイトからインストーラーをダウンロード
  2. インストーラーを実行
  3. 起動すると自動的にローカルAPIサーバー(デフォルト: http://127.0.0.1:10101)が立ち上がる

注意: 初回起動時はモデルのダウンロードに時間がかかる場合があります。

GUIでの基本的な使い方

  1. AivisSpeechを起動
  2. テキスト入力欄に読み上げたい文章を入力
  3. キャラクターとスタイル(感情)を選択
  4. 再生ボタンで試聴
  5. 「書き出し」ボタンでWAVファイルとして保存

アクセント位置やイントネーションはGUI上で手動調整も可能です。

PythonからAPI経由で使う

AivisSpeechのAPIはVOICEVOXと互換性があり、REST APIでHTTPリクエストを送ることで音声を生成できます。

音声合成の基本コード

import requests
import json

BASE_URL = "http://127.0.0.1:10101"

def text_to_speech(text: str, speaker_id: int = 1) -> bytes:
    """テキストから音声を生成してWAVバイナリを返す"""

    # Step 1: 音声合成用クエリを作成
    query_response = requests.post(
        f"{BASE_URL}/audio_query",
        params={"text": text, "speaker": speaker_id}
    )
    query_data = query_response.json()

    # Step 2: 音声合成を実行
    synthesis_response = requests.post(
        f"{BASE_URL}/synthesis",
        params={"speaker": speaker_id},
        headers={"Content-Type": "application/json"},
        data=json.dumps(query_data)
    )

    return synthesis_response.content

# 実行例
audio_data = text_to_speech("こんにちは、音声合成のテストです。")

with open("output.wav", "wb") as f:
    f.write(audio_data)

print("音声ファイルを保存しました: output.wav")

話速・ピッチの調整

def text_to_speech_custom(text: str, speaker_id: int = 1,
                          speed: float = 1.0, pitch: float = 0.0) -> bytes:
    """話速とピッチを調整して音声生成"""

    query_response = requests.post(
        f"{BASE_URL}/audio_query",
        params={"text": text, "speaker": speaker_id}
    )
    query_data = query_response.json()

    # パラメータを調整
    query_data["speedScale"] = speed   # 1.0が標準、1.5で1.5倍速
    query_data["pitchScale"] = pitch   # 0.0が標準、正の値で高く

    synthesis_response = requests.post(
        f"{BASE_URL}/synthesis",
        params={"speaker": speaker_id},
        headers={"Content-Type": "application/json"},
        data=json.dumps(query_data)
    )

    return synthesis_response.content

動画制作での活用例

YouTubeショートや解説動画のナレーション生成に活用できます。台本テキストを読み込んでセクションごとに音声ファイルを生成し、動画編集ソフトに並べるワークフローです。

sections = [
    "今日はPythonの便利なライブラリを3つ紹介します。",
    "1つ目は、requests。HTTP通信が簡単に書けます。",
    "2つ目は、pandas。データ分析の定番です。",
    "3つ目は、pathlib。ファイルパス操作がすっきり書けます。",
]

for i, text in enumerate(sections):
    audio = text_to_speech(text, speaker_id=1)
    filename = f"section_{i:02d}.wav"
    with open(filename, "wb") as f:
        f.write(audio)
    print(f"生成完了: {filename}")

このように、台本を配列に入れてループで回すだけで、セクションごとの音声ファイルを一括生成できます。

利用時の注意点

  • 利用規約: キャラクターごとにライセンスが異なるため、商用利用する場合は必ず各キャラクターの規約を確認すること
  • クレジット表記: 多くのキャラクターはクレジット表記が必要
  • GPU推奨: CPUでも動作するが、GPUがあると生成速度が大幅に改善される

まとめ

AivisSpeechは、無料で高品質な日本語音声合成ができるツールです。GUIで手軽に試せるだけでなく、REST APIを通じてPythonスクリプトからの自動化にも対応しています。動画ナレーションの自動生成など、クリエイティブな用途にも活用できます。

音声合成を使った動画自動化パイプラインの構築については、AI副業ラボで実践的な事例を公開しています。

よくある質問(FAQ)

Q1: AivisSpeechは完全に無料ですか?

ソフトウェア自体は無料でダウンロード・利用できます。ただし、キャラクターボイスの利用条件(商用利用可否、クレジット表記の要否など)はキャラクターごとに異なります。利用前に各キャラクターの規約を確認してください。

Q2: VOICEVOXのコードはそのまま使えますか?

はい、AivisSpeechはVOICEVOXエンジンと互換性のあるAPIを提供しています。ポート番号の変更(VOICEVOXは50021、AivisSpeechは10101がデフォルト)だけで、既存のコードがそのまま動作します。

Q3: Macでも使えますか?

はい、AivisSpeechはWindows・macOS・Linuxに対応しています。公式サイトからお使いのOS用のインストーラーをダウンロードしてください。Apple Silicon(M1/M2/M3/M4)にも対応しています。


参考書籍: Python×音声処理を学びたい方に。

Python実践入門(Amazon)