English | 日本語
Sarashina2.2-TTS is a Japanese-centric text-to-speech system built on a large language model, developed by SB Intuitions. It supports Japanese and English, delivering high pronunciation accuracy, naturalness, and stability across diverse speaking styles, with zero-shot voice generation support.
🎧 Listen to our audio samples here.
This model was trained on audio data collected from legitimately purchased audio sources, public speech archives, and data gathered in compliance with applicable domestic laws. During collection, we adhered to robots.txt directives and terms of service to ensure proper data acquisition.
📖 Before using the model, please read the Prompting Guide to learn how to choose a good audio prompt - it has a significant impact on output quality.
Clone this repo
git clone https://github.com/sbintuitions/sarashina2.2-tts.git
cd sarashina2.2-tts
Install dependencies
python -m venv venv
source venv/bin/activate
pip install -e .
If you want to use vLLM for faster inference:
pip install -e ".[vllm]"
Start the Gradio web UI. Models will be automatically downloaded from HuggingFace on first run.
python server/gradio_app.py
To use vLLM backend:
python server/gradio_app.py --use-vllm
Open http://localhost:7860 in your browser.
By default, the Docker image uses the HuggingFace Transformers backend (no vLLM). This keeps the image small and works on GPUs with limited VRAM (~6 GB).
docker build -t sarashina2.2-tts .
docker run --gpus all -p 7860:7860 sarashina2.2-tts
Models are downloaded inside the container on first run. To avoid re-downloading every time, download the models to a local directory and mount it:
# Download models
huggingface-cli download sbintuitions/sarashina2.2-tts --local-dir /path/to/local/pretrained_models
# Run with mounted models
docker run --gpus all -p 7860:7860 \
-v /path/to/local/pretrained_models:/app/pretrained_models \
sarashina2.2-tts
To use vLLM for faster inference and higher throughput (requires more VRAM), build and run with:
# Build with vLLM support
docker build --build-arg INSTALL_VLLM=1 -t sarashina2.2-tts-vllm .
# Run with vLLM enabled
docker run --gpus all -e USE_VLLM=1 -p 7860:7860 sarashina2.2-tts-vllm
from sarashina_tts.generate.generate import SarashinaTTSGenerator
# Models are automatically downloaded on first run.
# An inaudible watermark is embedded by default. Please do not remove it.
generator = SarashinaTTSGenerator()
# Or use vLLM for faster inference
# generator = SarashinaTTSGenerator(use_vllm=True)
audio_prompt_path = "path/to/your/audio_prompt.wav"
audio_prompt_text = "ここに音声プロンプトに対応するテキストを入力してください。"
audio_prompt_tokens = generator._extract_audio_prompt_tokens(
audio_prompt_path=audio_prompt_path
)
flow_embedding = generator._extract_zero_shot_embedding(
audio_prompt_path=audio_prompt_path
)
audio_prompt_feat = generator._extract_audio_prompt_feat(
audio_prompt_path=audio_prompt_path
)
texts = [
"東京から金沢までは新幹線を利用するのが便利で、所要時間は約2時間半です。",
]
wavs = generator.generate(
texts,
flow_embedding=flow_embedding,
audio_prompt_text=audio_prompt_text,
audio_prompt_tokens=audio_prompt_tokens,
audio_prompt_feat=audio_prompt_feat,
audio_prompt_path=audio_prompt_path,
flow_embedding_only=False,
)
generator.save_audios(wavs, output_dir="./output")
The generated audio will be saved in ./output directory.
The generated audio contains an inaudible watermark powered by SilentCipher, which allows the audio to be identified as AI-generated. Please do not remove or disable the watermark when using this model.
Sarashina2.2-TTS is a research-oriented foundation model. It was trained on a large volume of speech data spanning diverse styles and quality levels, without filtering for specific use cases. This means the model has learned a wide range of speaking patterns - but it also means that the quality and characteristics of the audio prompt directly determine the quality of the generated speech. A well-chosen prompt is the key to getting the best results.
The audio quality of the prompt is carried over to the generated speech. If you want clean, high-quality output, use a prompt with clear audio — minimal background noise, no clipping, and consistent volume.
The model transfers the speaking style of the prompt to the generated speech. This includes intonation, pauses, rhythm, and tone. Choose a prompt whose style matches your desired output.
A prompt of around 3 seconds is generally sufficient for voice cloning (timbre transfer). However, for better style transfer - capturing intonation patterns, rhythm, and expressive characteristics, we recommend using a longer prompt of over 5 seconds or longer, which allows the model to extract richer style information.
。, !, ?, .). Omitting sentence-ending punctuation may cause the generated speech to be cut off or incomplete.The prompt transcript should accurately match the actual spoken content in the audio. Mismatches between the audio and its transcript can degrade generation quality.
For long input texts, the Gradio demo automatically splits text at punctuation boundaries. However, automatic segmentation may sometimes break sentences at suboptimal positions, which can affect naturalness. For the highest quality, consider splitting your text manually or writing custom segmentation rules tailored to your use case.
This model is built upon or incorporates code and models from the following open-source projects:
@misc{liu2026sarashina22ttstacklingkanjipolyphony,
title={Sarashina2.2-TTS: Tackling Kanji Polyphony in Japanese Speech Generation via Data Scaling and Targeted Data Synthesis},
author={Lianbo Liu and Shiao Zhu and Kai Washizaki and Reo Yoneyama and Haesung Jeon and Mengjie Zhao and Yusuke Fujita and Hao Shi and Nao Yoshida and Yuan Gao and Roman Koshkin and Yukiya Hono and Yui Sudo},
year={2026},
eprint={2606.25369},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2606.25369},
}
This model is licensed under Sarashina Model NonCommercial License Agreement.
If you are interested in using this model for commercial purposes, please feel free to contact us through our contact page.
10 commits
Python
99.5%
English | 日本語
Sarashina2.2-TTS is a Japanese-centric text-to-speech system built on a large language model, developed by SB Intuitions. It supports Japanese and English, delivering high pronunciation accuracy, naturalness, and stability across diverse speaking styles, with zero-shot voice generation support.
🎧 Listen to our audio samples here.
This model was trained on audio data collected from legitimately purchased audio sources, public speech archives, and data gathered in compliance with applicable domestic laws. During collection, we adhered to robots.txt directives and terms of service to ensure proper data acquisition.
📖 Before using the model, please read the Prompting Guide to learn how to choose a good audio prompt - it has a significant impact on output quality.
Clone this repo
git clone https://github.com/sbintuitions/sarashina2.2-tts.git
cd sarashina2.2-tts
Install dependencies
python -m venv venv
source venv/bin/activate
pip install -e .
If you want to use vLLM for faster inference:
pip install -e ".[vllm]"
Start the Gradio web UI. Models will be automatically downloaded from HuggingFace on first run.
python server/gradio_app.py
To use vLLM backend:
python server/gradio_app.py --use-vllm
Open http://localhost:7860 in your browser.
By default, the Docker image uses the HuggingFace Transformers backend (no vLLM). This keeps the image small and works on GPUs with limited VRAM (~6 GB).
docker build -t sarashina2.2-tts .
docker run --gpus all -p 7860:7860 sarashina2.2-tts
Models are downloaded inside the container on first run. To avoid re-downloading every time, download the models to a local directory and mount it:
# Download models
huggingface-cli download sbintuitions/sarashina2.2-tts --local-dir /path/to/local/pretrained_models
# Run with mounted models
docker run --gpus all -p 7860:7860 \
-v /path/to/local/pretrained_models:/app/pretrained_models \
sarashina2.2-tts
To use vLLM for faster inference and higher throughput (requires more VRAM), build and run with:
# Build with vLLM support
docker build --build-arg INSTALL_VLLM=1 -t sarashina2.2-tts-vllm .
# Run with vLLM enabled
docker run --gpus all -e USE_VLLM=1 -p 7860:7860 sarashina2.2-tts-vllm
from sarashina_tts.generate.generate import SarashinaTTSGenerator
# Models are automatically downloaded on first run.
# An inaudible watermark is embedded by default. Please do not remove it.
generator = SarashinaTTSGenerator()
# Or use vLLM for faster inference
# generator = SarashinaTTSGenerator(use_vllm=True)
audio_prompt_path = "path/to/your/audio_prompt.wav"
audio_prompt_text = "ここに音声プロンプトに対応するテキストを入力してください。"
audio_prompt_tokens = generator._extract_audio_prompt_tokens(
audio_prompt_path=audio_prompt_path
)
flow_embedding = generator._extract_zero_shot_embedding(
audio_prompt_path=audio_prompt_path
)
audio_prompt_feat = generator._extract_audio_prompt_feat(
audio_prompt_path=audio_prompt_path
)
texts = [
"東京から金沢までは新幹線を利用するのが便利で、所要時間は約2時間半です。",
]
wavs = generator.generate(
texts,
flow_embedding=flow_embedding,
audio_prompt_text=audio_prompt_text,
audio_prompt_tokens=audio_prompt_tokens,
audio_prompt_feat=audio_prompt_feat,
audio_prompt_path=audio_prompt_path,
flow_embedding_only=False,
)
generator.save_audios(wavs, output_dir="./output")
The generated audio will be saved in ./output directory.
The generated audio contains an inaudible watermark powered by SilentCipher, which allows the audio to be identified as AI-generated. Please do not remove or disable the watermark when using this model.
Sarashina2.2-TTS is a research-oriented foundation model. It was trained on a large volume of speech data spanning diverse styles and quality levels, without filtering for specific use cases. This means the model has learned a wide range of speaking patterns - but it also means that the quality and characteristics of the audio prompt directly determine the quality of the generated speech. A well-chosen prompt is the key to getting the best results.
The audio quality of the prompt is carried over to the generated speech. If you want clean, high-quality output, use a prompt with clear audio — minimal background noise, no clipping, and consistent volume.
The model transfers the speaking style of the prompt to the generated speech. This includes intonation, pauses, rhythm, and tone. Choose a prompt whose style matches your desired output.
A prompt of around 3 seconds is generally sufficient for voice cloning (timbre transfer). However, for better style transfer - capturing intonation patterns, rhythm, and expressive characteristics, we recommend using a longer prompt of over 5 seconds or longer, which allows the model to extract richer style information.
。, !, ?, .). Omitting sentence-ending punctuation may cause the generated speech to be cut off or incomplete.The prompt transcript should accurately match the actual spoken content in the audio. Mismatches between the audio and its transcript can degrade generation quality.
For long input texts, the Gradio demo automatically splits text at punctuation boundaries. However, automatic segmentation may sometimes break sentences at suboptimal positions, which can affect naturalness. For the highest quality, consider splitting your text manually or writing custom segmentation rules tailored to your use case.
This model is built upon or incorporates code and models from the following open-source projects:
@misc{liu2026sarashina22ttstacklingkanjipolyphony,
title={Sarashina2.2-TTS: Tackling Kanji Polyphony in Japanese Speech Generation via Data Scaling and Targeted Data Synthesis},
author={Lianbo Liu and Shiao Zhu and Kai Washizaki and Reo Yoneyama and Haesung Jeon and Mengjie Zhao and Yusuke Fujita and Hao Shi and Nao Yoshida and Yuan Gao and Roman Koshkin and Yukiya Hono and Yui Sudo},
year={2026},
eprint={2606.25369},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2606.25369},
}
This model is licensed under Sarashina Model NonCommercial License Agreement.
If you are interested in using this model for commercial purposes, please feel free to contact us through our contact page.
10 commits
Python
99.5%