Skip to content

Add native Coqui SpeedySpeech TTS - #519

Open
DrewThomasson wants to merge 2 commits into
0xShug0:mainfrom
DrewThomasson:feature/coqui-speedy-speech
Open

Add native Coqui SpeedySpeech TTS#519
DrewThomasson wants to merge 2 commits into
0xShug0:mainfrom
DrewThomasson:feature/coqui-speedy-speech

Conversation

@DrewThomasson

Copy link
Copy Markdown
Contributor

Summary

  • add native GGML inference for Coqui SpeedySpeech (LJSpeech)
  • reuse the shared eSpeak-ng frontend and HiFi-GAN vocoder component
  • add an inference-only converter for the official Apache-2.0 acoustic and vocoder checkpoints
  • add the model spec, catalog entries, documentation, speaking-rate control, and two generated MP4 examples

Model weights are proposed separately in audio-cpp/audio.cpp-gguf PR #8. The package manifest intentionally tracks refs/pr/8 until that model PR is merged.

Validation

  • full CMake build
  • python3 tools/check_loader_catalog_sync.py
  • git diff --check
  • native F32 GGUF synthesis on CPU at 22.05 kHz
  • default sample: 4.342 s output in 209 ms (20.7x realtime)
  • H.264/AAC MP4 streams verified with ffprobe

Source checkpoints

  • tts_models/en/ljspeech/speedy-speech
  • vocoder_models/en/ljspeech/hifigan_v2

@DrewThomasson

Copy link
Copy Markdown
Contributor Author

Native audio.cpp MP4 samples

Both files below were generated by audiocpp_cli from the GGUF in Hugging Face PR #8, then wrapped as H.264/AAC MP4 so they can be played in a browser.

Default rate (4.34 s)

https://raw.githubusercontent.com/DrewThomasson/audio.cpp/feature/coqui-speedy-speech/docs/assets/coqui-speedy-speech-demo.mp4

Speaking rate 1.2 (5.89 s)

https://raw.githubusercontent.com/DrewThomasson/audio.cpp/feature/coqui-speedy-speech/docs/assets/coqui-speedy-speech-demo-fast.mp4

The same files are included in the PR under docs/assets/ for review and reproducibility.

@DrewThomasson
DrewThomasson force-pushed the feature/coqui-speedy-speech branch from 38beeab to 7f50291 Compare September 12, 2026 02:11
@DrewThomasson

Copy link
Copy Markdown
Contributor Author
coqui-speedy-speech-demo-fast.mp4
coqui-speedy-speech-demo.mp4

@DrewThomasson

Copy link
Copy Markdown
Contributor Author

Hm this needs work the audio is too choppy

@DrewThomasson

Copy link
Copy Markdown
Contributor Author

Quality/parity update

The original samples exposed two frontend/runtime parity issues, now fixed in commit 55ec4c7:

  • the released checkpoint was trained with Gruut, not eSpeak; the regenerated GGUF now embeds the matching MIT-licensed Gruut English lexicon
  • Glow-TTS duration-predictor padding is now applied to convolution inputs, matching PyTorch
  • --speaking-rate now reads the framework style condition correctly

Replacement native audio.cpp MP4s (H.264/AAC):

Default rate — 4.49 s
https://raw.githubusercontent.com/DrewThomasson/audio.cpp/feature/coqui-speedy-speech/docs/assets/coqui-speedy-speech-demo.mp4

1.2x rate — 3.76 s
https://raw.githubusercontent.com/DrewThomasson/audio.cpp/feature/coqui-speedy-speech/docs/assets/coqui-speedy-speech-demo-fast.mp4

Both say: “Today is a beautiful day to create natural speech on your computer.”

Validation:

  • native/reference waveform length: 99,072 samples each
  • native vs direct PyTorch waveform correlation: 0.99999986
  • sample RMSE: 0.73 on the 16-bit PCM scale
  • Whisper base.en transcribes both normal and 1.2x samples exactly

Updated model artifact: audio-cpp/audio.cpp-gguf PR #8.

@0xShug0

0xShug0 commented Sep 12, 2026

Copy link
Copy Markdown
Owner

@DrewThomasson Thanks for the PR! I will review it this weekend.

@DrewThomasson

Copy link
Copy Markdown
Contributor Author

Don't forget to merge the gguf model addition on hugginface if it passes your tests

thx
https://huggingface.co/audio-cpp/audio.cpp-gguf/discussions/8

@DrewThomasson

Copy link
Copy Markdown
Contributor Author

Still crunchy I need to cross check with how it sounds in coqui tts

@0xShug0

0xShug0 commented Sep 12, 2026

Copy link
Copy Markdown
Owner

@DrewThomasson Let’s just keep demos out of the repo in PRs, and maybe put them in the relevant HF model directory instead.

I think the quality of Coqui XTTS v2 is fine, given that it’s pretty old. Bark needs more work and Coqui sounds robotic.

Please also test longform (test case in the path test) and see if there are any VRAM management issues. The framerwork has text chunkers for chunking long text.

@0xShug0

0xShug0 commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Also Bark and Coqui XTTS v2 should go tosrc/include community_modelssection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants