自然言語プロンプトで音声スタイルを制御できる「ParaStyleTTS」を動かす

初めに

プロンプトで音声スタイルを制御するものを触っていきます。日本語は対応していないので英語と中国語のみです

github.com

以下のアーキテクチャーで二段階に分けてスタイルを適応しているところがポイントです

  アーキテクチャの新規性

  スタイルプロンプト → SentenceTransformer (768次元)
                            ↓
          ┌─────────────────┴─────────────────┐
          ↓                                   ↓
     局所スタイル                         大域スタイル
    (FiLMで音素に適用)                (VITS全体に適用)
          ↓                                   ↓
          └─────────────────┬─────────────────┘
                            ↓
                      VITS音声生成

開発環境

環境構築

# 仮想環境の作成
uv venv --python=3.11
source .venv/bin/activate

# 依存関係のインストール

uv pip install torch==2.6.0 torchaudio==2.6.0
uv pip install Cython==3.0.12 librosa==0.10.2.post1 nltk==3.9.1  numpy==2.3.3 pypinyin==0.53.0 scipy==1.16.2 sentence_transformers==4.0.1

# Cythonモジュールのビルド
cd tts/monotonic_align
uv run python setup.py build_ext --inplace
cd ../..

# NLTKデータのダウンロード
uv run python -c "import nltk; nltk.download('cmudict')"

実行

以下を実行します

uv run python generate.py

中国語に関しては、母国語の人曰く精度はかなり良いらしいです