File size: 3,294 Bytes
45da00c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
de9e2fa
45da00c
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
---
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.* ๐Ÿ› ๏ธ