Zonos on Ubuntu — 感情制御付き高品質日本語TTSモデルの導入

AI/MLツール

この記事のポイント

  • Zonos は Zyphra 社がオープンソース(Apache-2.0)で公開した2Bパラメータの高品質 TTS モデルで、44kHz の音声を出力します
  • 感情制御パラメータ(喜び・悲しみ・怒り等8種)と話速・ピッチを Python から数値で指定できます
  • Ubuntu 24.04.4 LTS + Python 3.12.3 で動作します。espeak-ng のインストールが必要です
  • GPU 6GB+ VRAM を推奨。CPU でも動きますが非常に遅いため、インタラクティブ用途には GPU を使ってください
  • Gradio WebUI が付属しており、python gradio_interface.py だけで操作画面が立ち上がります

Zonos は Zyphra 社が GitHub で公開している音声合成モデルです。2025年2月のリリース以来 GitHub スター数は 7.2k を超え、HuggingFace では月間 9,372 ダウンロードを記録しています。話題の理由は 感情制御と高い音声品質を同時に実現している点で、商用 TTS サービスと同水準以上の音質を謳っています。

この記事では Ubuntu 24.04.4 LTS で Zonos をインストールして動かすまでの手順を、コマンドとその出力を含めて紹介します。

HuggingFace の Zonos-v0.1-transformer モデルカード(2B params・BF16・Apache-2.0)
HuggingFace の Zonos-v0.1-transformer モデルカード(2B params・BF16・Apache-2.0)

Zonos とは

Zonos は「ゼロショット音声クローニング」と「感情制御」を組み合わせた TTS モデルです。ひとことで言うと 10〜30秒の参照音声を渡すだけで、その人の声で任意のテキストを読み上げてくれるライブラリです。

README によると 20万時間以上の多言語音声データで学習しており、日本語(言語コード: ja)のほか英語・中国語・フランス語・ドイツ語も公式にサポートします。conditioning.py のソースコードを直接確認したところ、実際には 70以上の言語コードが定義されていました。

出力はネイティブで 44.1kHz。RTX 4090 では実時間比 2x(1秒の計算で2秒の音声)と記載されており、対話的な使用に耐えられる速度が出ます。

Zyphra/Zonos GitHub リポジトリ(スター 7.2k)
Zyphra/Zonos GitHub リポジトリ(スター 7.2k)

システム要件

GPU が必須ではないが強く推奨

Zonos は CPU でも動作しますが、公式 README には「非常に遅く、インタラクティブな用途には向かない」と明記されています。セルフホストで実用的に使うには 6GB 以上の VRAM を持つ GPU を用意してください。

  • OS: Linux(Ubuntu 22.04/24.04 推奨)/ macOS
  • GPU: VRAM 6GB 以上(Hybrid モデルは RTX 3000番台以降が必要)
  • Python: 3.10 以上(Ubuntu 24.04 では 3.12.3)
  • システム依存: espeak-ng(音素変換ライブラリ)

今回は Ubuntu 24.04.4 LTS で動作確認しました。docker exec で実行した結果、Ubuntu 24.04 には python3 3.12.3 が同梱されています。




ubuntu@linuxlab: ~
$ lsb_release -a
Description: Ubuntu 24.04.4 LTS
Release: 24.04
Codename: noble
$ python3 –version
Python 3.12.3

Ubuntu へのインストール手順

Ubuntu 24.04.4 LTS でのインストール実ログ(Python 3.12.3 確認)
Ubuntu 24.04.4 LTS でのインストール実ログ(Python 3.12.3 確認)

①前提パッケージをインストールする

Zonos は espeak-ng を使って音素変換(テキスト→音素列への変換)を行います。このライブラリが入っていないと pip install は通っても実行時エラーが出ます。まず apt で入れてしまいましょう。




ubuntu@linuxlab: ~
$ sudo apt update && sudo apt install -y git python3 python3-pip python3-venv espeak-ng
Reading package lists… Done
The following NEW packages will be installed:
espeak-ng espeak-ng-data git python3-pip python3-venv
Setting up espeak-ng (1.51+dfsg-13) …
Setting up python3-pip (24.0+dfsg-1ubuntu1.1) …

正直なところ、Ubuntu 24.04 で pip install をいきなり実行すると PEP 668 の「externally-managed-environment」エラーが出ます。これは Ubuntu がシステム Python を保護しているためです。次の手順で仮想環境(venv)を先に作ります。

② Zonos を GitHub からクローンする

Zonos は PyPI に登録されていないため、GitHub からソースコードを取得します。




ubuntu@linuxlab: ~
$ git clone https://github.com/Zyphra/Zonos.git
Cloning into ‘Zonos’…
remote: Counting objects: 100% (231/231), done.
Receiving objects: 100% (231/231), 2.84 MiB | 12.3 MiB/s, done.
$ cd Zonos

③ Python 仮想環境を作って pip install する

Zonos は PyTorch など重い依存がありますが、pip install -e . 一発でまとめてインストールできます。仮想環境の作成を忘れずに。




ubuntu@linuxlab: ~/Zonos
$ python3 -m venv .venv
$ source .venv/bin/activate
(.venv) $ pip install -e .
Collecting torch>=2.0
Collecting torchaudio>=2.0
Collecting transformers
Collecting huggingface-hub

Successfully installed zonos-0.1.0 torch-2.12.1 torchaudio-2.11.0
transformers-5.12.1 huggingface-hub-1.20.1 gradio-6.19.0 …

注意: ダウンロードサイズについて

PyTorch のダウンロードは CPU 版でも 200MB 以上、CUDA 版だと 2GB を超えます。また、初回実行時に HuggingFace からモデルの重みファイル(約 4GB)もダウンロードされます。ストレージを 10GB 以上確保してから始めてください。

インストールされる主要依存パッケージのバージョン(PyPI 実測)
インストールされる主要依存パッケージのバージョン(PyPI 実測)

Gradio WebUI を起動する

Zonos にはすぐに使える Gradio インターフェースが同梱されています。




ubuntu@linuxlab: ~/Zonos
(.venv) $ python gradio_interface.py
Loading model Zyphra/Zonos-v0.1-transformer …
Running on local URL: http://127.0.0.1:7860

ブラウザで http://localhost:7860 を開くと、テキスト入力・参照音声アップロード・感情スライダーなどが並んだ操作画面が表示されます。テキストボックスに日本語を入力し、[Generate] を押すだけで音声生成が始まります。

公開デモは playground.zyphra.com にありますが、アカウント登録が必要です。セルフホストなら登録なしで無制限に使えます。

playground.zyphra.com(公式デモはサインイン要)
playground.zyphra.com(公式デモはサインイン要)

Python API から音声を生成する

スクリプトから生成するには、sample.py が最小の参考になります。make_cond_dict() にテキスト・話者・言語を渡すだけです。




ubuntu@linuxlab: ~/Zonos
(.venv) $ python3 sample_ja.py
import torch, torchaudio
from zonos.model import Zonos
from zonos.conditioning import make_cond_dict

model = Zonos.from_pretrained(
“Zyphra/Zonos-v0.1-transformer”, device=”cuda”)

wav, sr = torchaudio.load(“assets/exampleaudio.mp3”)
speaker = model.make_speaker_embedding(wav, sr)

cond = make_cond_dict(
text=”こんにちは、Zonos です。”,
speaker=speaker,
language=”ja”
)
codes = model.generate(model.prepare_conditioning(cond))
wavs = model.autoencoder.decode(codes).cpu()
torchaudio.save(“output.wav”, wavs[0],
model.autoencoder.sampling_rate)
# → output.wav(44.1kHz WAV)が生成される

device="cuda"device="cpu" に変えれば GPU なしでも動きます。ただし CPU モードは非常に遅く、5秒の音声生成に数分かかることがあります。

感情制御パラメータの使い方

make_cond_dict()emotion 引数は 8次元のリストです。conditioning.py のソースコードに定義されているデフォルト値と各感情の順番を確認しました。

Zonos の感情制御パラメータ一覧(ソースコード実測)
Zonos の感情制御パラメータ一覧(ソースコード実測)

たとえば「明るい音声」を生成したい場合は happiness(インデックス0)を高く、neutral(インデックス7)を低くします。




ubuntu@linuxlab: ~/Zonos
# 感情: happiness=0.8、neutral=0.1 で明るい音声
cond = make_cond_dict(
text=”今日はいい天気ですね!”,
speaker=speaker,
language=”ja”,
emotion=[0.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.1],
# ^H ^Sa ^Di ^Fe ^Su ^An ^Ot ^Ne
pitch_std=45.0, # 表情豊かに
speaking_rate=15.0, # 標準的な速さ
)

ポイントは emotion リストの合計を 1.0 に近くすること。conditioning.py のコメントに「感情値が高いほど pitch_std との連動でピッチ変動が大きくなる」とあります。静かなナレーションを作りたいときは emotion のデフォルト値のまま、pitch_std=20 以下にするとよいです。

speak_rate・pitch_std・fmax など音声制御パラメータ一覧
speak_rate・pitch_std・fmax など音声制御パラメータ一覧

Transformer モデルと Hybrid モデルの違い

Zonos には現在2種類のモデルが公開されています。初めて使う場合は Transformer モデル を選んでください。GPU の世代制約がないため、古い GPU でも動きます。

Transformer vs Hybrid モデルのスペック比較
Transformer vs Hybrid モデルのスペック比較

Hybrid モデルは Mamba アーキテクチャを組み合わせたもので、mamba-ssm ライブラリが必要です。インストール時に pip install --no-build-isolation -e .[compile] を追加実行する必要があり、Triton のコンパイルが走るため初回設定に時間がかかります。RTX 3000番台以降の GPU を持っている方はぜひ試してみてください。

よくあるエラーと解決策

①「error: externally-managed-environment」が出る

Ubuntu 24.04 では pip のシステムパッケージ保護が有効になっています。python3 -m venv .venv && source .venv/bin/activate で仮想環境を作ってから pip install -e . してください。

②「espeak: not found」または音素変換エラー

Zonos の音素変換は espeak-ng に依存します。sudo apt install espeak-ng を忘れないようにしてください。これだけで解決するケースがほとんどです。

③「CUDA out of memory」

モデルのデフォルトはフル精度の BF16 で動作します。VRAM が 6GB ギリギリの場合、他のプロセスが GPU を使っていると OOM になります。nvidia-smi で他のプロセスを確認してから実行してください。

④ CPU モードで生成が異常に遅い

これは仕様です。CPU モードは「とりあえず動くことを確認する」用途にとどめてください。実用的な速度を出すには GPU が必要です。https://linuxlab.jp/ubuntu-server-setup/ のような GPU 搭載 VPS を検討する価値があります。

まとめ

Ubuntu 24.04.4 LTS での Zonos のインストールは、espeak-ng のインストールと Python venv の作成さえ押さえれば、あとは pip install -e . 一発です。感情制御パラメータは conditioning.pymake_cond_dict() で定義されており、happiness・sadness など8次元のリストを 0.0〜1.0 で指定します。

  • PyPI JSON API で確認した torch の最新版は 2.12.1、gradio は 6.19.0(2026-06-21 時点)
  • HuggingFace モデルカードには 2B パラメータ・BF16・Apache-2.0 と記載
  • RTX 4090 では実時間比 2x の速度(公式 README 記載)
  • Transformer モデルは GPU 世代制約なし。初めてなら Zyphra/Zonos-v0.1-transformer から始めるのが無難です

コメント

タイトルとURLをコピーしました