Downloads · 30 days
151
28% of all-time downloads
orsele/sarashina2.2-tts-gguf
sarashina2.2-tts-gguf is a text-to-speech model from orsele. Use it when you need text read aloud. It is set up for cosyvoice. The card lists the license as other.
Downloads · 30 days
151
28% of all-time downloads
All-time downloads
534
Public
Repo size
5.9 GB
Likes
0
Public
Click a slice to open those files.
.gguf5.3 GB · 90%
From the Hugging Face model README
Built with Sarashina
このリポジトリは、SB Intuitions 株式会社が公開した日本語中心の音声合成モデル sbintuitions/sarashina2.2-tts の言語モデル部分を GGUF形式(4bit〜8bit、FP16)に量子化 し、付属の軽量音響デコーダー(Flow Matching + HiFT-GAN)と連携させてローカル環境で容易に音声合成を行えるようにしたパッケージです。
[!IMPORTANT] 【本リポジトリの仕組みと前提】
- GGUF 単体では音声(WAV)は出力されません:
llama.cppは言語モデル(テキスト)のエンジンであるため、GGUF が出力するのは「離散音声トークン(ID列)」です。そのトークンを実際の「声の波形(WAV)」に復元するには、付属の音響デコーダー(Flow Matching + HiFT-GAN)を通す必要があります。- 推論環境: したがって、本パッケージの実行には
llama-serverに加えて、付属の Python スクリプト(PyTorch / soundfile 等)を実行できる環境が必要です。
voices.json からナレーション、日常会話、放送アナウンス、丁寧な接客、落語などのスタイルを即座に利用可能です。IQ4_XS / Q4_K_M)により、LLMのVRAM/メモリ消費を 約500MB に圧縮。CPU環境でも約 26 tokens/sec(音声時間換算でほぼリアルタイム)でトークンを生成できます。--steps / --cfg-cutoff):
--voice-blend):
server.py):
POST /v1/audio/speech に対応した常駐型APIサーバーを内包。モデルをメモリ常駐させるため、毎回のロードオーバーヘッドがゼロになり、各種AIクライアントから直接プラグイン可能。用途やハードウェア環境に合わせて複数の量子化モデルを提供しています。
| ファイル名 | 量子化形式 | サイズ | BPW (Bits/Weight) | 特徴・推奨用途 |
|---|---|---|---|---|
sarashina2.2-tts-IQ4_XS.gguf | IQ4_XS | 459 MB | 4.25 | 最軽量。極限までメモリを抑えたい環境・モバイル向け |
sarashina2.2-tts-Q4_K_S.gguf | Q4_K_S | 490 MB | 4.37 | 軽量版4bit。CPUでの省リソース動作向け |
sarashina2.2-tts-Q4_K_M.gguf | Q4_K_M | 516 MB | 4.58 | 【推奨・デフォルト】 サイズ・速度・品質のバランスが最適 |
sarashina2.2-tts-Q5_K_M.gguf | Q5_K_M | 582 MB | 5.33 | 【高品質推奨】 4bitより自然な抑揚と発音精度を重視する場合 |
sarashina2.2-tts-Q6_K.gguf | Q6_K | 669 MB | 6.14 | 準ロスレス。FP16とほぼ同等の音質を保ちつつ約60%削減 |
sarashina2.2-tts-Q8_0.gguf | Q8_0 | 824 MB | 8.50 | 最高精度8bit。ロスを極限まで嫌う研究・評価用途向け |
sarashina2.2-tts-f16.gguf | F16 | 1.62 GB | 16.0 | オリジナルのフル精度ベースラインモデル |
| 構成 | 最小要件 (CPU動作) | 推奨要件 (GPU高速動作) |
|---|---|---|
| OS | Linux / macOS (Apple Silicon対応) / Windows | 同左 |
| CPU | 4コア以上のモダンCPU (x86_64 AVX2 / ARM64) | 4コア以上 |
| GPU (VRAM) | 不要 (CPUのみで動作可能) | VRAM 4GB 以上 (NVIDIA CUDA / Apple Metal) |
| システムRAM | 空き 2GB 以上 (全体 4GB〜8GB) | 8GB 以上 |
| ディスク空き容量 | 約 1.2 GB (単一GGUF + デコーダー使用時) | 約 5.5 GB (全GGUFバリアントを保持する場合) |
環境や設定(--steps)によって生成速度が異なります。
| 実行環境 | 設定 (--steps) | RTF (実時間比) | 3秒の音声を生成するのにかかる時間 |
|---|---|---|---|
| NVIDIA GPU (CUDA) | steps=10 | RTF 0.2〜0.4 | 約 0.6〜1.2 秒(リアルタイム超え) |
| 一般的なノートPC (CPUのみ) | steps=10 (通常) | RTF 2.5〜4.0 | 約 8〜12 秒 |
| 一般的なノートPC (CPUのみ) | steps=5 (高速推奨) | RTF 1.1〜1.8 | 約 3.5〜5.5 秒(音質劣化ほぼなし・おすすめ) |
| 一般的なノートPC (CPUのみ) | steps=4 (最速) | RTF 0.9〜1.0 | 約 3.0 秒(ほぼリアルタイム生成) |
ヒント: CPU環境で使う場合は、
--steps 5を指定することで、音質を保ちながらデコード時間を半分以下に短縮できます。
sarashina2.2-tts-gguf/
├── sarashina2.2-tts-Q4_K_M.gguf # 4bit量子化済みLLM (デフォルト推奨)
├── sarashina2.2-tts-IQ4_XS.gguf # 最軽量 4bit XS
├── sarashina2.2-tts-Q4_K_S.gguf # 4bit Small
├── sarashina2.2-tts-Q5_K_M.gguf # 高品質 5bit
├── sarashina2.2-tts-Q6_K.gguf # 超高品質 6bit
├── sarashina2.2-tts-Q8_0.gguf # 最高精度 8bit
├── sarashina2.2-tts-f16.gguf # フル精度 FP16
├── flow.pt # フローマッチング音響モデル (約430MB)
├── hift.pt # HiFT-GAN ボコーダー (約80MB)
├── campplus_cn_common.bin # ゼロショット用話者エンコーダー (約20MB)
├── voices.json # 8スタイルのプリセット話者ベクトル
├── flow_matching/ # 軽量音響デコーダー実装
├── speech_encoder/ # 話者エンコーダー実装
├── tts.py # 統合音声合成CLIスクリプト
├── server.py # OpenAI互換TTS APIサーバー (常駐型・高速)
└── run.sh # ワンコマンド実行シェルスクリプト
git clone https://huggingface.co/envblex/sarashina2.2-tts-gguf
cd sarashina2.2-tts-gguf
Python 3.10+ 環境にて、推論用パッケージをインストールします。
pip install torch torchaudio soundfile requests diffusers einops scipy s3tokenizer
また、llama.cpp 公式 Releases からお使いのOSに合ったビルド済みバイナリを取得し、llama-server にパスを通すか、本ディレクトリに配置してください。
run.sh を叩くだけで、自動的にバックグラウンドで llama-server を立ち上げ、音声を合成します。
# デフォルト(落ち着いたナレーション調)
./run.sh "こんにちは!これはGGUF形式で動作するSarashina2.2-TTSです。"
# スタイルを指定(例: 放送・ニュース調)
./run.sh "本日の天気は晴れのち雨でしょう。" broadcast output_news.wav
手持ちの参照音声(数秒の短い声)とその文字起こし(字幕)を指定することで、その人の声質や話し方をクローンして新しい文章を喋らせます。
python3 tts.py \
--audio /path/to/my_voice.wav \
--prompt-text "参照音声で実際に喋っている文字起こしテキスト" \
--text "ここに新しく喋らせたい文章を入力します。" \
--output ./my_cloned_voice.wav
注意: ゼロショットクローニングは参照音声の音響特徴も解くため、CPU環境では計算量が非常に多くなります。CPU環境で素早く使いたい場合は、パターンAのプリセット話者(
--voice)が圧倒的に高速です。
--steps 5)やモデルの切り替え# CPU環境で高速に合成する(steps=5: デコード時間半減)
python3 tts.py --text "ステップ数を減らして高速に合成します。" --steps 5 -o fast.wav
# 5bit 高品質モデル (Q5_K_M) を指定
python3 tts.py --gguf sarashina2.2-tts-Q5_K_M.gguf --text "高品質モデルで合成します。" -o output.wav
# GPU (CUDA) を使ってデコードを高速化
python3 tts.py --text "GPUで高速に波形合成します。" --device cuda -o gpu_out.wav
--voice-blend)複数のプリセット話者の声質を任意の比率で滑らかに合成します。
# ナレーション 70% + 落語 30% のブレンド
python3 tts.py --text "話者モーフィングによる合成音声です。" --voice-blend "narration:0.7,rakugo:0.3" -o blend.wav
# 男性声 50% + 女性声 50% のブレンド
python3 tts.py --text "男性と女性の声質を半分ずつ混ぜます。" --voice-blend "speaker_a_male:0.5,speaker_b_female:0.5" -o blend.wav
server.py)OpenAI Audio Speech API(POST /v1/audio/speech)互換サーバーを起動します。モデルをメモリ常駐させるため、毎回の起動オーバーヘッド(約6秒)がゼロになり、Web UI や自作エージェントから即座に利用できます。
# サーバー起動 (ポート 8000, steps=5)
python3 server.py --port 8000 --steps 5
# curl で音声生成リクエスト (WAVバイナリを受信)
curl -X POST http://127.0.0.1:8000/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "sarashina2.2-tts",
"input": "OpenAI互換APIサーバーからのリクエストです。",
"voice": "narration"
}' \
--output speech.wav
# voice パラメータにブレンドを指定することも可能
curl -X POST http://127.0.0.1:8000/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"input": "APIから話者ブレンドを指定します。",
"voice": "broadcast:0.6,customer_service:0.4"
}' \
--output blend.wav
voices.json)--voice オプションで以下の8種類のスタイル・声質を即座に利用できます。
| スタイル名 | 特徴 |
|---|---|
narration (デフォルト) | 落ち着いた標準的なナレーション調 |
speaker_a_male | 男性声 (明瞭で安定したトーン) |
speaker_b_female | 女性声 (自然なトーン) |
speaker_c_female | 女性声 (明るいトーン) |
broadcast | アナウンサー風の放送・報道ニュース調 |
conversation | 自然な日常会話の口調・抑揚 |
customer_service | 丁寧な接客・コールセンター調 |
rakugo | リズミカルな落語・語り口調 |
本モデルは、ベースモデルのライセンスである Sarashina Model NonCommercial License Agreement Version 2.0 を継承しています。
本成果物は、以下の素晴らしいオープンソースプロジェクトおよび研究成果に基づいています。