テキストから音声を生成するライブラリです。AI による音声合成をアプリに簡単に組み込めます。
プラットフォームを選び、最初の音声合成を実行してみましょう。
ailia Voice と、サンプルで使う librosa / soundfile をインストールします。
pip3 install ailia_voice librosa soundfile
PyPI で見る
ailia-models から example_ailia_voice.py をダウンロードして実行します。短いリファレンス音声から声をクローンし、output.wav を書き出します。モデルは ./models/ に自動ダウンロードされます。
wget https://raw.githubusercontent.com/ailia-ai/ailia-models/master/audio_processing/gpt-sovits/example_ailia_voice.py
python3 example_ailia_voice.py
example_ailia_voice.py
ailia Voice はデスクトップとモバイルの各プラットフォームで CPU/GPU 推論に対応しています。
C / C# / Python API で利用できる音声合成機能。
自分のアプリケーションで音声を合成する最小サンプル。
import ailia_voice
voice = ailia_voice.GPTSoVITS()
voice.initialize_model(model_path="./models/")
voice.set_reference_audio(
ref_text, ailia_voice.AILIA_VOICE_G2P_TYPE_GPT_SOVITS_JA, ref_audio, rate,
)
buf, sr = voice.synthesize_voice("こんにちは。", ailia_voice.AILIA_VOICE_G2P_TYPE_GPT_SOVITS_JA)
ailia Voice についてのよくある質問。
2 系統あります: Tacotron2 (英語のベースライン) と GPT-SoVITS (ゼロショット ボイスクローン)。
GPT-SoVITS には v1 / v2 / v2-pro / v3 の 4 バージョンがあり、それぞれに日本語・英語・中国語の派生があります。CLI 引数 (tacotron2 / gpt-sovits / gpt-sovits-v2-en など) でサンプルを選択します。
v1: 最も軽量・高速。日本語アクセント非対応。
v2: 日本語のピッチ・アクセントと再生速度コントロールを追加。リアルタイム用途のデフォルトに適します。
v3: CFM + DiT + BigVGAN ディフュージョンによる最高音質。やや低速。
v2-pro: v3 のテキスト解析 + v2 の高速ボコーダ + 話者照合埋め込みを組み合わせた構成。品質と速度のバランス重視ならこれが推奨です。
GPT-SoVITS は約 10 秒の高品質なリファレンス音声と、その書き起こしテキストの組から話者の声の特徴を再現します。synthesize_voice() を呼ぶ前に両方を set_reference_audio() へ渡してください。
Tacotron2 はリファレンス音声を必要とせず、固定の声で読み上げます。
ailia Voice は日本語の音素変換に OpenJtalk を内蔵しています。発音を上書きするには、MeCab 形式の userdic.csv を用意し (末尾の 0/5 は 5 モーラ・アクセント位置 0 を表します)、pyopenjtalk でバイナリ .dic に変換します:
import pyopenjtalk
pyopenjtalk.mecab_dict_index("userdic.csv", "userdic.dic")
その後、Python では initialize_model() に user_dict_path を渡し、C では ailiaVoiceSetUserDictionary を呼び出します。v3 用の 標準ユーザー辞書 も利用できます。
日本語・英語・中国語に対応しており、set_reference_audio() と synthesize_voice() に渡す AILIA_VOICE_G2P_TYPE_GPT_SOVITS_JA / _EN / _ZH 定数で切り替えます。
C++ バインディングはランタイムライブラリと同じ場所に ailia.lic を配置する必要があります:
Windows: ailia.dll と同じフォルダ (サンプルでは cpp/ 配下)。
macOS: ~/Library/SHALO/
Linux: ~/.shalo/
Python / Unity / Flutter / JNI バインディングは初回実行時にライセンスを自動ダウンロードするため、この手順は C++ バインディングに限ります。
macOS / iOS では Metal が自動的に使用されます。Windows / Linux では CUDA Toolkit と cuDNN をインストールし、cuDNN を PATH に追加してください。
初回実行後はオフラインで動作します。モデルの重みは初回に initialize_model(model_path=...) へ指定したディレクトリにダウンロードされ、評価ライセンスも自動取得されます。以降はネット接続不要です。
評価ライセンスは実行時に自動でダウンロードされ、開発・評価用途に利用できます。商用配布には製品ライセンスを申請してください。詳細は ailia ライセンス規約 を参照してください。