Local speech recognition & synthesis
Last updated
Generate expressive speech with Fish Audio S2 Pro
Dialogue tags can steer delivery, but the weights are restricted to research and non-commercial use.
Fish Audio S2 Pro turns text and speaker information into speech. Its model card lists 83 languages and fine-grained expression tags for shaping dialogue delivery. The fish-audio-research-license restricts use to research and non-commercial purposes, so do not use it for commercial work.
Create speech from dialogue with delivery cues
Fish Audio S2 Pro is a speech-generation model. It takes text and speaker information, and its card describes expression tags for marking laughter, emotion, and delivery in dialogue. Tagged text is model input rather than a script that will be read literally, so listen to how the model renders each cue. Official model card

Prepare the CUDA environment and S2 Pro assets on Linux or WSL
The official installation guide provides a Python 3.12, uv, and NVIDIA CUDA1 12.9 path. On Linux or WSL, prepare a CUDA-compatible driver and a GPU2 with 24GB VRAM3, then install the system audio packages, CUDA dependencies, and S2 Pro checkpoint4.
sudo apt-get update && sudo apt-get install -y portaudio19-dev libsox-dev ffmpeg
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech
uv sync --python 3.12 --extra cu129
uv run hf download fishaudio/s2-pro --local-dir checkpoints/s2-proChange one tag at a time
Place reference.wav in the repository root and create its prompt5 tokens6. Then provide the reference transcript and target text to generate semantic tokens. Save each tagged run to a separate folder and decode7 both as WAV files for comparison.
uv run python fish_speech/models/dac/inference.py -i reference.wav --checkpoint-path checkpoints/s2-pro/codec.pth
# Creates fake.npy and fake.wavuv run python fish_speech/models/text2semantic/inference.py --text "[whisper] 오늘 회의는 오후 두 시에 시작합니다." --prompt-text "참조 음성의 정확한 문장" --prompt-tokens fake.npy --output-dir output-whisper
uv run python fish_speech/models/text2semantic/inference.py --text "[excited] 오늘 회의는 오후 두 시에 시작합니다." --prompt-text "참조 음성의 정확한 문장" --prompt-tokens fake.npy --output-dir output-exciteduv run python fish_speech/models/dac/inference.py -i output-whisper/codes_0.npy --checkpoint-path checkpoints/s2-pro/codec.pth -o whisper.wav
uv run python fish_speech/models/dac/inference.py -i output-excited/codes_0.npy --checkpoint-path checkpoints/s2-pro/codec.pth -o excited.wav
Stay within the research and non-commercial license
The fish-audio-research-license permits research and non-commercial use; commercial use requires separate permission from Fish Audio. Review the license and rights for the input voice before using the result in public content or a paid service.
Listen through the final file and revise it
Once the sample sounds right, generate the full passage and listen through. Check names, numbers, dialogue spacing and emotion tags. In your editor, even out levels and add captions and cuts for the final video.
If you only need a handful of short announcement clips, there is no reason to pick this model first. Compare it when you need many languages and long passages produced together.

Terminology notes
CUDA — A software platform for general-purpose computing on NVIDIA GPUs.
Back to the textGPU — A processor designed to handle many calculations in parallel. It performs model computations during AI inference.
Back to the textVRAM — Memory used by a graphics card’s GPU to store model weights and intermediate values.
Back to the textCheckpoint — A file containing saved model weights and related state. Versions or tasks in one model family may use different checkpoints.
Back to the textPrompt — The input text sent to a model. For generative models it describes the desired result and strongly shapes the output.
Back to the textToken — A unit into which a model divides input or output for processing.
Back to the textToken decoding — The stage that generates successive output tokens using the input and the response produced so far.
Back to the text
Frequently asked questions
- What should you check first in this article?
- Fish Audio S2 Pro turns text and speaker information into speech. Its model card lists 83 languages and fine-grained expression tags for shaping dialogue delivery. The fish-audio-research-license restricts use to research and non-commercial purposes, so do not use it for commercial work.
- How much memory does it need?
- The official installation guide provides a Python 3.12, uv, and NVIDIA CUDA 12.9 path. On Linux or WSL, prepare a CUDA-compatible driver and a GPU with 24GB VRAM, then install the system audio packages, CUDA dependencies, and S2 Pro checkpoint.
- Where can you check the conditions and sources?
- Fish Audio S2 Pro is a speech-generation model. It takes text and speaker information, and its card describes expression tags for marking laughter, emotion, and delivery in dialogue. Tagged text is model input rather than a script that will be read literally, so listen to how the model renders each cue. [Official model card](https://huggingface.co/fishaudio/s2-pro)
Read next
Local speech recognition & synthesis
Make speech on your own computer: a local TTS guide
Local speech recognition & synthesis
Compare local TTS models: languages, hardware and speed evidence
Local speech recognition & synthesis
Generate Korean speech with OmniVoice's 600+ language and dialect coverage
Local speech recognition & synthesis
Transcribe Korean speech live and save text with Nemotron 3.5 ASR
