ailia Voice

テキストから音声を生成するライブラリです。AI による音声合成をアプリに簡単に組み込めます。

はじめに

プラットフォームを選び、最初の音声合成を実行してみましょう。

1

インストール

ailia Voice と、サンプルで使う librosa / soundfile をインストールします。

pip3 install ailia_voice librosa soundfile
PyPI で見る
2

サンプルを実行

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 推論に対応しています。

対応 OS

  • Windows 10 / 11
  • macOS 11 以降
  • Linux (Ubuntu 20.04 以降)
  • iOS 13 / Android 7 以降

言語とコンパイラ

  • Python 3.6 以降 / Dart・Flutter 3.19 以降
  • C++17 (VS 2019 以降 / Xcode 14.2 以降 / clang) + CMake
  • C# / Unity 2021.3.10f1 以降

対応モデル

  • Tacotron2 (英語)
  • GPT-SoVITS v1 / v2 / v2-pro / v3
  • 各バージョンに JA / EN / ZH 版あり
  • 出力: 32 kHz モノラル

対応言語

  • Japanese (G2P_TYPE_GPT_SOVITS_JA)
  • English (G2P_TYPE_GPT_SOVITS_EN)
  • Chinese (G2P_TYPE_GPT_SOVITS_ZH)

機能

C / C# / Python API で利用できる音声合成機能。

TTS モデル

  • Tacotron2 — 高速な英語ベースライン
  • GPT-SoVITS v1 / v2 / v2-pro / v3

ボイスクローン

  • 10 秒程度のリファレンス音声から任意の声を再現
  • リファレンス音声と書き起こしテキストのペアで指定
  • 話者照合の埋め込み (v2-pro)

多言語対応

  • 日本語アクセント対応 (v2 以降)
  • 日本語音素変換に OpenJtalk を内蔵
  • 中国語に g2pw + jieba を採用 (v2 以降)

カスタマイズ

  • ユーザー辞書 (pyopenjtalk 形式)
  • v3 用標準ユーザー辞書をダウンロード可能
  • 再生速度コントロール (v2 以降)

プロジェクトで 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)

プラットフォーム別 API リファレンス

Python

C++

Unity

Flutter

JNI

よくある質問

ailia Voice についてのよくある質問。

対応している TTS モデルは?

2 系統あります: Tacotron2 (英語のベースライン) と GPT-SoVITS (ゼロショット ボイスクローン)。

GPT-SoVITS には v1 / v2 / v2-pro / v3 の 4 バージョンがあり、それぞれに日本語・英語・中国語の派生があります。CLI 引数 (tacotron2 / gpt-sovits / gpt-sovits-v2-en など) でサンプルを選択します。

GPT-SoVITS のバージョンはどれを使うべきですか?

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++ で使うとき、ライセンスファイルはどこに置きますか?

C++ バインディングはランタイムライブラリと同じ場所に ailia.lic を配置する必要があります:

Windows: ailia.dll と同じフォルダ (サンプルでは cpp/ 配下)。
macOS: ~/Library/SHALO/
Linux: ~/.shalo/

Python / Unity / Flutter / JNI バインディングは初回実行時にライセンスを自動ダウンロードするため、この手順は C++ バインディングに限ります。

GPU 推論を有効にするには?

macOS / iOS では Metal が自動的に使用されます。Windows / Linux では CUDA ToolkitcuDNN をインストールし、cuDNN を PATH に追加してください。

オフラインで動作しますか?

初回実行後はオフラインで動作します。モデルの重みは初回に initialize_model(model_path=...) へ指定したディレクトリにダウンロードされ、評価ライセンスも自動取得されます。以降はネット接続不要です。

ライセンスはどう扱われますか?

評価ライセンスは実行時に自動でダウンロードされ、開発・評価用途に利用できます。商用配布には製品ライセンスを申請してください。詳細は ailia ライセンス規約 を参照してください。

資料