|
Download README.md from SyzygyResearch/Mach-Boom: direct link, hf CLI and curl.
- Browser
- Download file 4.06 kB
-
https://huggingface.co/SyzygyResearch/Mach-Boom/resolve/main/README.md
- Command line
-
hf download hf://SyzygyResearch/Mach-Boom/README.md
-
curl -L -o README.md https://huggingface.co/SyzygyResearch/Mach-Boom/resolve/main/README.md
4.06 kB
| license: apache-2.0 | |
| base_model: gradium/phonon-31m-en | |
| pipeline_tag: text-to-speech | |
| language: | |
| - en | |
| tags: | |
| - text-to-speech | |
| - mach | |
| - cpu | |
| - on-device | |
|  | |
| # Mach Boom | |
| Mach Boom is Gradium's Phonon 31m English text-to-speech model at **3.5 bits per weight**: an 18.2 MB file that speaks | |
| 8 to 10x faster than real time on one CPU core. | |
| ## Benchmarks | |
|  | |
| Word error rate on the 250 held-out English sentences of | |
| [Gradium TTS Hard Cases](https://huggingface.co/datasets/gradium/tts-hard-sentences-202610), which are full of numbers, | |
| dates, times, money, units, codes and abbreviations. Each model ran through its own runtime as shipped, with its own text | |
| handling and default voice, and was transcribed and scored the same way. | |
| | Model | Download | Word error rate | Rules off | | |
| | --- | ---: | ---: | ---: | | |
| | **Mach Boom** | **19.5 MB** | **5.18%** | 14.01% | | |
| | Underdog Woof, Juno | 40.6 MB | 6.50% | 41.27% | | |
| | Underdog Woof, Mira | 40.6 MB | 7.12% | | | |
| | Fish Audio Drama 3 | 41.5 GB | 7.62% | 7.62% | | |
| | Phonon 31m, as released (fp32) | 103.4 MB | 8.61% | 11.99% | | |
| | Phonon 31m, 4-bit (q4k GGUF) | 55.6 MB | 10.61% | 13.91% | | |
| | Kokoro 82M | 327.7 MB | 14.07% | | | |
| | Qwen3-TTS 1.7B CustomVoice | 4.52 GB | 16.77% | 16.77% | | |
| | Pocket TTS | 225.5 MB | 18.13% | 18.13% | | |
| | Kitten Nano 0.8 | 27.6 MB | 18.56% | 19.94% | | |
| | Supertonic 3 | 398.7 MB | 22.92% | 22.92% | | |
| | LFM3-Audio-2B | 4.17 GB | 35.59% | 35.59% | | |
| Transcribed with faster-whisper large-v3-turbo (int8, greedy, CPU). The reference and the transcript both go through | |
| Whisper's English normalizer, digit runs are joined and a few unit spellings are unified. | |
| ## Speed and memory | |
| | | Mach Boom | Underdog Woof (int8) | | |
| | --- | ---: | ---: | | |
| | Speed, 1 core | 8.3-8.4x real time | 4.1-4.2x | | |
| | Speed, 4 cores | 11.3-11.7x | 8.6-8.9x | | |
| | Speed, 1 core, AVX2 only | 4.2-4.3x | 3.9-4.3x | | |
| | Peak memory, 1 core | 93 MB | 255 MB | | |
| | First audio, streaming, 1 core | 61-78 ms | after the whole clip | | |
| A 4-core Intel Xeon VM (Emerald Rapids, with AMX), nothing else running, the same 9 sentences, each runtime as shipped, | |
| two alternating rounds; the ranges are the two rounds. The AVX2 row holds both runtimes' BLAS to AVX2 and runs Mach | |
| Boom's AVX2 build. First audio is the median of 5 runs for a short and a long sentence with `--first 2`, with the voice | |
| cached. On a 4-core Granite Rapids Xeon, Mach Boom runs 9.6-10.1x real time on one core and 19.5-19.8x on four, | |
| against Woof's 3.8-4.3x and 9.3-9.6x. | |
| ## Use | |
| ```bash | |
| hf download SyzygyResearch/Mach-Boom --local-dir mach-boom && cd mach-boom | |
| pip install numpy tokenizers | |
| python tts.py "Your booking reference is AB-4471-Z, and the meeting moved to 3:30 p.m." -o out.wav --voice Zoey | |
| python tts.py "..." -o out.wav --threads 4 | |
| python tts.py "..." --pcm --first 2 | aplay -q -r 24000 -f S16_LE | |
| ``` | |
| From inside the `mach-boom` folder: | |
| ```python | |
| from mach import MachBoom | |
| tts = MachBoom("mach-boom.bin", voices_dir="voices", tokenizer="tokenizer.json") | |
| wav = tts.synth("Call 020 7946 0018 before 5:30 p.m. on 14/03.", "Zoey", seed=0) # float32, 24 kHz | |
| for piece in tts.synth_stream("Your table is booked for 8 p.m.", "Zoey", first=2): | |
| ... | |
| ``` | |
| Requirements: Linux on x86-64, Python 3.8+, numpy, `tokenizers`, and gcc or clang. The first run compiles the kernels | |
| for the CPU (about 5 s). Kernels cover AVX-512 VBMI, AVX-512, AVX2 and plain C; on Xeons with AMX (4th generation and | |
| later) the audio decoder runs as bf16 tiles, and `PHM_AMX=0` turns that off. Four voices ship in `voices/` (Zoey, | |
| Juniper, Everly, Harper), and any voice file from [gradium/phonon-voices](https://huggingface.co/gradium/phonon-voices) | |
| drops in. The same seed and `--chunk` give the same audio at any thread count. | |
| ## License | |
| Apache-2.0, the same as Phonon 31m and the Phonon voices; see `LICENSE` and `NOTICE`. | |