
【無料TTS】AivisSpeech の使い方|高品質な日本語音声合成を試す
PR表記: 当記事にはアフィリエイトリンクが含まれます。商品の購入は自己判断でお願いします。 AivisSpeechは、VOICEVOXをベースに開発された日本語音声合成(TTS)エンジンです。GUIで手軽に使えるほか、ローカルAPIサーバーとしても動作するため、動画制作の自動化にも活用できます。この記事では、導入から基本的な使い方、PythonでのAPI活用までを解説します。 AivisSpeechとは AivisSpeechは、VOICEVOXエンジンをベースにした音声合成ソフトウェアです。主な特徴は以下の通り。 無料で利用可能: 個人利用・商用利用ともに無料(利用規約はキャラクターごとに異なる) 高品質な日本語音声: 自然なイントネーションの日本語音声を生成 ローカル動作: インターネット接続不要で、自分のPC上で完結 REST API対応: HTTPリクエストで音声生成が可能 VOICEVOXとの違い AivisSpeechはVOICEVOXエンジン互換ですが、独自のキャラクターボイスと追加機能を提供しています。 項目 VOICEVOX AivisSpeech エンジン VOICEVOX Engine VOICEVOX互換 キャラクター ずんだもん等 独自キャラクター API互換性 - VOICEVOXと互換 ライセンス キャラごとに異なる キャラごとに異なる APIの互換性があるため、VOICEVOXで動作するコードはAivisSpeechでもほぼそのまま動きます。 インストール方法 Windows / Mac AivisSpeech公式サイトからインストーラーをダウンロード インストーラーを実行 起動すると自動的にローカルAPIサーバー(デフォルト: http://127.0.0.1:10101)が立ち上がる 注意: 初回起動時はモデルのダウンロードに時間がかかる場合があります。 GUIでの基本的な使い方 AivisSpeechを起動 テキスト入力欄に読み上げたい文章を入力 キャラクターとスタイル(感情)を選択 再生ボタンで試聴 「書き出し」ボタンで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ショートや解説動画のナレーション生成に活用できます。台本テキストを読み込んでセクションごとに音声ファイルを生成し、動画編集ソフトに並べるワークフローです。 ...