🚀 Zonos-v0.1
Zonos-v0.1は、20万時間以上の多様な多言語音声データで学習された最先端のオープンウェイトのテキスト読み上げモデルで、トップレベルのTTSプロバイダーと同等、あるいはそれ以上の表現力と品質を実現します。
🚀 クイックスタート
Zonos-v0.1は、20万時間以上の多様な多言語音声データで学習された最先端のオープンウェイトのテキスト読み上げモデルです。話者の埋め込みベクトルまたは音声プレフィックスを与えることで、テキストプロンプトから非常に自然な音声を生成することができ、わずか数秒の参照クリップを与えることで正確に音声クローニングを行うことができます。また、調整設定により、話速、音高の変化、音質、喜び、恐怖、悲しみ、怒りなどの感情を細かく制御することができます。モデルはネイティブで44kHzの音声を出力します。
詳細と音声サンプルについては、こちらのブログをご覧ください。
ホスト版もplayground.zyphra.com/audioで利用できます。
Zonosは、eSpeakを用いたテキスト正規化と音素化、その後のトランスフォーマーまたはハイブリッドバックボーンを通じたDACトークン予測というシンプルなアーキテクチャを持っています。アーキテクチャの概要は以下の通りです。
💻 使用例
基本的な使用法
import torch
import 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, sampling_rate = torchaudio.load("assets/exampleaudio.mp3")
speaker = model.make_speaker_embedding(wav, sampling_rate)
cond_dict = make_cond_dict(text="Hello, world!", speaker=speaker, language="en-us")
conditioning = model.prepare_conditioning(cond_dict)
codes = model.generate(conditioning)
wavs = model.autoencoder.decode(codes).cpu()
torchaudio.save("sample.wav", wavs[0], model.autoencoder.sampling_rate)
高度な使用法
uv run gradio_interface.py
これにより、プロジェクトのルートディレクトリに sample.wav
ファイルが生成されます。
繰り返しサンプリングを行う場合は、最小限のサンプルでは毎回モデルを読み込む必要があるため、Gradioインターフェースの使用を強くおすすめします。
✨ 主な機能
- ゼロショットTTSと音声クローニング: 任意のテキストと10 - 30秒の話者サンプルを入力することで、高品質のTTS出力を生成します。
- 音声プレフィックス入力: テキストに加えて音声プレフィックスを追加することで、より高度な話者マッチングを実現します。音声プレフィックスを使用することで、話者の埋め込みベクトルからクローニングする際に再現が難しいささやき声などの動作を引き出すことができます。
- 多言語対応: Zonos-v0.1は、英語、日本語、中国語、フランス語、ドイツ語をサポートしています。
- 音質と感情制御: Zonosは、生成される音声の多くの側面を細かく制御することができます。これには、話速、音高、最大周波数、音質、喜び、怒り、悲しみ、恐怖などのさまざまな感情が含まれます。
- 高速: 当社のモデルは、RTX 4090で約2倍のリアルタイム係数で動作します。
- Gradio WebUI: Zonosには、音声を生成するための使いやすいGradioインターフェースが同梱されています。
- 簡単なインストールとデプロイ: Zonosは、リポジトリに同梱されているDockerファイルを使用して簡単にインストールおよびデプロイすることができます。
📦 インストール
現時点で、このリポジトリは、最近のNVIDIA GPU(3000シリーズ以上、VRAM 6GB以上)を搭載したLinuxシステム(好ましくはUbuntu 22.04/24.04)のみをサポートしています。
Dockerインストールも参照してください。
システム依存関係
Zonosは、eSpeakライブラリの音素化に依存しています。Ubuntuでは、以下のコマンドでインストールすることができます。
apt install -y espeak-ng
Python依存関係
インストールには、最新バージョンの uv の使用を強くおすすめします。uvがインストールされていない場合は、pip install -U uv
でインストールすることができます。
新しいuv仮想環境にインストールする(推奨)
uv sync
uv sync --extra compile
uvを使用してシステム/アクティブな環境にインストールする
uv pip install -e .
uv pip install -e .[compile]
pipを使用してシステム/アクティブな環境にインストールする
pip install -e .
pip install --no-build-isolation -e .[compile]
動作確認
インストールが正常に行われたことを確認するために、最小限のサンプルを用意しています。
uv run sample.py
🐳 Dockerインストール
git clone https://github.com/Zyphra/Zonos.git
cd Zonos
docker compose up
docker build -t Zonos .
docker run -it --gpus=all --net=host -v /path/to/Zonos:/Zonos -t Zonos
cd /Zonos
python sample.py
📄 ライセンス
このプロジェクトは、Apache-2.0ライセンスの下で公開されています。