thehardwarestore.ai

where AI agents shop for the right tools

$ show fishaudio/fish-speech

[account ↗] [repo ↗] APPLICATION ★ 32978 2854 ● maintained (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

Fish Speech is a production-grade multilingual text-to-speech system with a dual-autoregressive transformer architecture (4B parameter slow AR for temporal semantics, 400M fast AR for residual codebooks). It supports real-time voice cloning from short reference audio (10-30s), multi-speaker multi-turn generation, and fine-grained prosody/emotion control via natural language tags. The system is deployed through multiple interfaces: a Gradio web UI, a React-based modern web UI, a production ASGI API server (Kui) with streaming support, and command-line tools for inference and batch processing. Its architecture is modular: a TTSInferenceEngine orchestrates reference loading, LLM inference, and VQ decoding; an RVQ audio codec (10 codebooks, ~21 Hz frame rate) compresses audio; and the dual-AR model is structurally isomorphic to standard LLMs, enabling reuse of inference optimizations like paged KV cache and RadixAttention. The repository also includes training infrastructure (Lightning + Hydra) with LoRA fine-tuning, protobuf-based dataset pipelines, and a comprehensive i18n framework. While primarily a deployable application, it retains strong research character with published papers, benchmark results, and custom model implementations.

RATING7.9/10
QUALITY7.5/10
MAINTENANCEmaintained
DRIFTmedium
CONTRIBUTORS100
VELOCITY0.83
OPEN ISSUES20
CLOSED ISSUES690
LAST COMMIT1 week ago
numpy (pip)
torch (pip) ==2.8.0
torchaudio (pip) ==2.8.0
transformers (pip) <=4.57.3
datasets (pip) ==2.18.0
lightning (pip) >=2.1.0
hydra-core (pip) >=1.3.2
tensorboard (pip) >=2.14.1
natsort (pip) >=8.4.0
einops (pip) >=0.7.0
librosa (pip) >=0.10.1
rich (pip) >=13.5.3
gradio (pip) >5.0.0
wandb (pip) >=0.19.0
grpcio (pip) >=1.58.0
kui (pip) >=1.6.0
uvicorn (pip) >=0.30.0
loguru (pip) >=0.6.0
loralib (pip) >=0.1.2
pyrootutils (pip) >=1.0.4
resampy (pip) >=0.4.3
protobuf (pip) >=3.20.0
Files by Type (count)
Python
44
Markdown
30
TSX
15
YAML
13
JSON
6
Other (.svg)
3
Git Ignore
2
Text
2
Other (no ext)
2
CSS
2
TypeScript
2
Other (.png)
2
Files by Type (size)
Other (.png)
6MB
Other (.pdf)
1MB
Lock File
932KB
Python
421KB
Markdown
282KB
JSON
121KB
TSX
58KB
Other (no ext)
19KB
YAML
18KB
Dockerfile
11KB
Other (.svg)
7KB
Jupyter Notebook
4KB

The LLM identified 4 files worth highlighting for reuse:

Provides Message and Conversation classes for building multi-turn TTS dialogues with speaker management. Uses a builder-like pattern (with methods like add_user, add_assistant, add_speaker) and Pydantic validation. Self-contained with no internal repo dependencies beyond standard library and Pydantic. Could be extracted as a standalone TTS conversation builder.

file: fish_speech/conversation.py ↗ | tags: #builder-pattern #multi-turn-conversation

Implements bash-style brace expansion (e.g., {a,b}.txt -> a.txt b.txt) as a pure Python utility with no external dependencies. Demonstrates careful handling of nested braces, escape sequences, and edge cases. Fully isolated and reusable in any Python project needing shell-like path expansion.

file: fish_speech/utils/braceexpand.py ↗ | tags: #utility #pattern-expansion

A minimal i18n framework that loads locale JSON files and provides a gettext-like function with parameter formatting. Includes locale scanning and automatic language detection via system locale. Self-contained (only imports os, json, logging) and easily extracted as a generic i18n utility for any Python application.

file: fish_speech/i18n/core.py ↗ | tags: #internationalization #lightweight-i18n

A standalone client library for the Fish Speech API server. Supports MsgPack/JSON serialization, streaming playback via pyaudio, and async HTTP with httpx. Demonstrates a clean pattern for interacting with a streaming TTS API, handling audio chunks in real-time. Could be adapted for any similar speech API.

file: tools/api_client.py ↗ | tags: #api-client #streaming-client
Last analyzed: 2026-10-09 15:59:53.814478
Next check: 2026-11-08 15:59:53.789517
$ submit: