Views
No views yet
nvidia/tts_en_fastpitch + nvidia/tts_hifigan for use with CrispStrobe/CrispASR.| File | Quant | Size | Notes |
|---|---|---|---|
fastpitch-en-f16.gguf | F16 | ~230 MB | Reference quality |
fastpitch-en-q8_0.gguf | Q8_0 | ~120 MB | Near-lossless |
fastpitch-en-q4_k.gguf | Q4_K | ~70 MB | Best size/quality balance |
The F16 build was rebuilt (2026-08-03), after being briefly withdrawn. The file previously published here was corrupt: the converter handed a float32 array toadd_tensor(raw_dtype=F16), which labels bytes rather than converting them, so it held half the weights reinterpreted as garbage (943,872 NaNs) and would not open.Rebuilding it exposed a second issue that briefly looked fatal — every run aborted in ggml graph compute. It was two tensors: ggml's Metal binary ops require the second operand to be F32, andenc.pos_emb/dec.pos_embare added straight to the hidden state, so converting them to F16 killed the graph. They are kept F32 now; a matmul weight may be F16, an addend may not.The current f16 synthesises correctly and ASR-round-trips clean.
1# 1. Build CrispASR
2git clone https://github.com/CrispStrobe/CrispASR
3cd CrispASR
4cmake -B build -DCMAKE_BUILD_TYPE=Release
5cmake --build build -j --target crispasr-cli
6
7# 2. Download model (auto-download also works: -m auto --backend fastpitch)
8hf download cstr/fastpitch-en-GGUF fastpitch-en-q8_0.gguf --local-dir .
9
10# 3. Synthesize
11./build/bin/crispasr --backend fastpitch -m fastpitch-en-q8_0.gguf \
12 --tts "Hello there, how are you doing today?" \
13 --tts-output hello.wav
14
15# 4. Verify (ASR roundtrip)
16./build/bin/crispasr -m models/ggml-base.en.bin -f hello.wav1python models/convert-fastpitch-to-gguf.py \
2 --hf-model nvidia/tts_en_fastpitch \
3 --hf-vocoder nvidia/tts_hifigan \
4 --output fastpitch-en-f16.gguf --ftype f16n_speakers=1)nvidia/tts_en_fastpitch card states it is "trained on LJSpeech". LJSpeech is 13,100 clips of a single narrator — Linda Johnson, recorded 2016–17 for LibriVox — and this is the single-speaker English checkpoint (n_speakers=1). The voice you hear is one identifiable person.speaker_identity=real_person. Output synthesized with it carries a spoken AI disclosure, because audio resembling an identifiable person is a deep fake under Art. 3(60) whether or not any cloning took place. It does not require --i-have-rights: the donor's agreement to the training is a licensing matter settled upstream, which a downstream operator cannot attest to.--speaker-identity, or stamp a file permanently with
models/stamp-speaker-identity.py. See
docs/eu-ai-act.md §6.2a.