Instructions to use scrappylabsai/warble with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use scrappylabsai/warble with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir warble scrappylabsai/warble
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
| license: apache-2.0 | |
| language: | |
| - en | |
| pipeline_tag: text-to-speech | |
| tags: | |
| - text-to-speech | |
| - tts | |
| - voice | |
| - on-device | |
| - mlx | |
| - apple-silicon | |
| base_model: Audio8/Audio8-TTS-Preview-0.6b | |
| # Warble π¦ | |
| **Five warm, ready-to-use voices you can run anywhere β even on your phone. Free.** | |
| Warble is a small gift from [ScrappyLabs](https://scrappylabs.ai). It's five named voices | |
| living in one tiny model: just say which one you want and it talks β no reference clip, no | |
| cloud, no account, no meter. It runs on a laptop in real time, and it runs on an | |
| Apple-Silicon phone-class chip too. | |
| ## Credit where it's due | |
| Warble is built **entirely** on [`Audio8/Audio8-TTS-Preview-0.6b`](https://huggingface.co/Audio8/Audio8-TTS-Preview-0.6b) | |
| by the [Audio8](https://huggingface.co/Audio8) team (Apache-2.0). The clever part β a | |
| capable 0.6B text-to-speech model β is **theirs**. All we did was train a few voices we | |
| liked onto it and package it so it's easy to run. If you like Warble, go star their work | |
| first; none of this exists without them. | |
| ## The voices | |
| Pick a voice by putting its token at the front of your text. No reference audio needed. | |
| | token | voice | character | | |
| |---|---|---| | |
| | `<\|speaker:1\|>` | **Silas** | deep, gravelled, movie-trailer weight | | |
| | `<\|speaker:2\|>` | **Narrator** | even, warm, broadcast baritone | | |
| | `<\|speaker:3\|>` | **Clara** | clear, professional, friendly | | |
| | `<\|speaker:4\|>` | **Pip** | bright, light, quick | | |
| | `<\|speaker:5\|>` | **Nova** | confident morning-radio energy | | |
| Samples for each are in [`samples/`](./samples). | |
| ## Use it | |
| ```python | |
| from transformers import AutoProcessor, AutoModel | |
| import torch, soundfile as sf | |
| model_id = "scrappylabsai/warble" | |
| proc = AutoProcessor.from_pretrained(model_id, trust_remote_code=True) | |
| model = AutoModel.from_pretrained(model_id, trust_remote_code=True, dtype=torch.bfloat16).to("cuda").eval() | |
| text = "<|speaker:2|>Hi there. This is Warble, running right here on your own machine." | |
| inputs = proc(text=[text], return_tensors="pt") | |
| inputs = {k: (v.to("cuda") if hasattr(v, "to") else v) for k, v in inputs.items()} | |
| wavs, lens, _ = model.generate_audio(**inputs, max_new_tokens=1024) | |
| sf.write("out.wav", wavs[0][:int(lens[0])].float().cpu().numpy(), 44100) | |
| ``` | |
| **On a Mac / phone:** an [MLX 4-bit build](./mlx-4bit) is included β it runs on Apple Silicon, | |
| including phone-class chips, in about the memory a couple of browser tabs use. | |
| ## Honest notes | |
| - **Our voices are consent-first.** Silas, Narrator, Clara, Pip, and Nova were *designed* by | |
| us from scratch β not cloned from any real person, not scraped from anyone. We can't make | |
| that claim about the base model's own training data (that's Audio8's and undocumented), so | |
| we won't β but the five voices we're handing you are entirely our own. | |
| - The MLX 4-bit build trades a little voice-likeness for size; Silas and Clara soften the | |
| most there. Use the full-precision model if you want them exactly right. | |
| - It's a preview-generation base model, so expect the occasional rough edge. | |
| ## License | |
| **Apache-2.0**, matching the base. Use it for anything, including commercial work. No strings. | |
| --- | |
| *Made by [ScrappyLabs](https://scrappylabs.ai). We make things work, and better. This one's on the house.* π οΈ | |