Local speech recognition & synthesis

Make a two-speaker dialogue WAV with Fish Audio Drama 3

Assign dialogue turns with speaker tags and match each voice to a reference clip.

Drama 3 is a TTS1 model that takes speaker-tagged dialogue, reference audio, and transcripts to generate a WAV with multiple voices. Its local setup needs Linux or WSL, at least 48 GB of NVIDIA GPU2 memory, and the FP83 path.

Requirements and key details
  • It is a mixture-of-experts model with 35B total parameters and 3B active per token.
  • Pair speaker tags with reference audio and transcripts in order.
  • Local generation requires at least 48 GB of NVIDIA GPU memory for FP8.

Give the script speakers and delivery cues

Fish Audio Drama 3 is a multi-speaker TTS model that turns a script into speech. Add speaker tags and dialogue, then provide a reference audio clip and its transcript for each voice to create one WAV with multiple speakers. It fits scenes or longer readings with recurring voice changes. Drama 3 model card

Drama 3 is a mixture-of-experts model with 35B total parameters and 3B active for each token4. Its model card lists 83 languages, and the script can identify up to 16 speakers with tags from speaker 0 through speaker 15. Repeat a speaker's tag on each turn so the same character keeps the assigned voice.

Speaker tags identify who reads each line, while short bracketed cues describe a moment's delivery. The model card shows point tags such as [sighs] and [laughs]. Generate the passage and listen to whether the cue produces the delivery you intended.

An open book, a small computer, and a speaker sit on a desk by a window.
Speaker changes in the script determine where the voice changes in the WAV.

Check GPU memory and runtime support first

Fish Audio's current installation guide requires at least 48 GB of GPU memory for Drama 3 FP8. It supports NVIDIA GPUs on Linux or WSL. CPU5, Apple MPS, AMD ROCm6, and torch.compile are not supported, so choose another model if you need to generate on a Mac or CPU. Official installation requirements

The install guide lists 24 GB of GPU memory for S2-Pro and supports CPU or NVIDIA GPU inference7. Drama 3's FP8 path needs at least 48 GB of NVIDIA GPU memory, so the two models target different hardware.

The published run used one concurrent stream on an H200 and a pre-encoded English Seed-TTS reference; the result aggregates four runs. The mean RTF8 and TTFA p50 are results for this setup.

Official runtime requirements and the model card's streaming measurement
ModelLocal runtime requirementPublished measurement
Drama 3FP8, at least 48 GB NVIDIA GPU memory, Linux or WSLOne H200 stream: mean RTF 0.131 and TTFA p50 88.9 ms
S2-Pro24 GB GPU memory listed; CPU or NVIDIA GPU supportedNo S2-Pro result is included here for a direct comparison with Drama 3.

Install the CUDA runtime on Linux or WSL

On Ubuntu or WSL, prepare Python 3.12 and an NVIDIA driver, then install the audio system packages listed by the repository. The commands below clone the source and install its CUDA9 12.9 dependencies into the Python environment.

Install the repository and CUDA dependencies on Ubuntu or WSL
sudo apt-get update && sudo apt-get install -y portaudio19-dev libsox-dev ffmpeg
curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech
uv sync --python 3.12 --extra cu129

After uv sync finishes, keep working from the repository directory. If your shell is elsewhere, change into fish-speech before continuing.

Download the model files and prepare speaker references

Download this Drama 3 revision into checkpoints/drama-3. It includes the codec10.pth required for inference, so you do not need separate S2-Pro weights. The public model can be downloaded without a login token.

Download Drama 3 and its included codec
uv pip install "huggingface_hub[cli]"
uv run hf download fishaudio/drama-3 --revision e0a9218aa48888270f06ef1ed9ea67622c0e17d2 --local-dir checkpoints/drama-3

Save the two reference recordings as speaker0.wav and speaker1.wav in the fish-speech directory. Listen to each clip and transcribe its exact words. Use recordings with the speakers' permission.

A microphone, headphones, and a monitor showing an audio waveform.
Pair each speaker's reference clip with its matching transcript.

Match two references to two speakers and save a WAV

The CLI11 pairs reference audio and transcripts in the order you provide them. Put the exact words spoken in speaker0.wav after that clip, then the transcript for speaker1.wav. The lines below are examples; replace them with the actual words in your WAV files before running the command. Keep the script's speaker numbers in the same order.

The command pairs two reference WAVs with their transcripts, then switches speakers within one script. The official CLI accepts repeated reference-audio and transcript options. Official Drama 3 CLI

Generate the two-speaker scene as drama-two-voices.wav
uv run python fish_speech/models/text2semantic/inference.py \
  --checkpoint-path checkpoints/drama-3 \
  --text "<|speaker:0|>제가 먼저 장면을 설명할게요. [laughs] <|speaker:1|>좋아요. 다음 대사를 이어가죠. [sighs]" \
  --prompt-audio speaker0.wav \
  --prompt-text "오늘은 새 전시를 소개합니다." \
  --prompt-audio speaker1.wav \
  --prompt-text "첫 번째 작품은 창가에 걸려 있어요." \
  --output drama-two-voices.wav \
  --device cuda:0

Check the voices and dialogue in the output WAV

When the command completes, drama-two-voices.wav appears in the fish-speech directory. Listen through it to check voice changes, each line's pronunciation, and the placement of the laugh and sigh. If a voice sounds wrong, check that speaker's reference clip and transcript before generating again.

The example selects cuda:0 for one GPU. For multiple GPUs, pass the CLI's comma-separated device list and reserve memory on the last GPU for both the tower and codec.

License terms: revenue threshold and delivery method

Drama 3 ships with the Fish Audio Community License 1.0, updated October 13, 2026. It permits research and non-commercial use, plus limited commercial use when your and your affiliates' combined gross revenue from all sources over the preceding 12 months is below USD 500,000. If you install the model for a third party's operations or deliver them a copy of the model, that company must also meet the threshold. Full license

A self-service API12, website, or app where users request speech generation is a Hosted Service and needs a separate written license regardless of revenue or purpose. The license excludes speech for content or products you create or control, and production work where you operate the model and deliver only finished files. A free, non-commercial research or demo service is also excluded when it meets the stated conditions. Distribution requires the “Built with Fish Audio” attribution and a license copy; obtain consent before imitating an identifiable person's voice.

Checked October 16, 2026: Hugging Face metadata still shows the earlier Research License label. The conditions above follow the LICENSE text distributed with the current model.

An audio player and headphones sit beside an open notebook.
Listen through the whole file to check delivery and transitions between turns.

Terminology notes

  1. Text-to-Speech — Technology that converts text into spoken audio with pronunciation and prosody.

    Back to the text
  2. GPU — A processor designed to handle many calculations in parallel. It performs model computations during AI inference.

    Back to the text
  3. FP8 — A floating-point format that represents each value with 8 bits.

    Back to the text
  4. Token — A unit into which a model divides input or output for processing.

    Back to the text
  5. CPU — The central processor that runs the operating system and general-purpose instructions; in AI workloads it also handles tasks such as preprocessing and data movement.

    Back to the text
  6. ROCm — AMD’s software platform for AI and high-performance computing on GPUs. Support depends on the combination of GPU, operating system, driver, and framework versions.

    Back to the text
  7. Inference — The process of using a trained model to compute an output for an input. Here, local inference means running the model on the user’s device.

    Back to the text
  8. Real-Time Factor — Generation time divided by the duration of the output. Under comparable conditions, a lower value indicates faster generation.

    Back to the text
  9. CUDA — A software platform for general-purpose computing on NVIDIA GPUs.

    Back to the text
  10. Audio codec — A method or software for encoding, compressing, and decoding digital audio. Size, compatibility, and lossiness vary by codec.

    Back to the text
  11. CLI — Short for Command-Line Interface: operating a program by entering commands in a terminal.

    Back to the text
  12. API — A defined interface that lets other code call a program’s functions.

    Back to the text

Frequently asked questions

What should you check first in this article?
Drama 3 is a TTS model that takes speaker-tagged dialogue, reference audio, and transcripts to generate a WAV with multiple voices. Its local setup needs Linux or WSL, at least 48 GB of NVIDIA GPU memory, and the FP8 path.
How much memory does it need?
Fish Audio's current installation guide requires at least 48 GB of GPU memory for Drama 3 FP8. It supports NVIDIA GPUs on Linux or WSL. CPU, Apple MPS, AMD ROCm, and torch.compile are not supported, so choose another model if you need to generate on a Mac or CPU. [Official installation requirements](https://github.com/fishaudio/fish-speech/blob/main/docs/en/install.md#requirements)
Where can you check the conditions and sources?
Fish Audio Drama 3 is a multi-speaker TTS model that turns a script into speech. Add speaker tags and dialogue, then provide a reference audio clip and its transcript for each voice to create one WAV with multiple speakers. It fits scenes or longer readings with recurring voice changes. [Drama 3 model card](https://huggingface.co/fishaudio/drama-3)