File size: 4,731 Bytes
f8c0227
 
 
 
 
 
 
 
 
b786514
f8c0227
560ad9c
f8c0227
560ad9c
f8c0227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b786514
f8c0227
560ad9c
f8c0227
560ad9c
f8c0227
 
 
 
 
 
 
ef2044a
 
 
560ad9c
a3467e5
b786514
 
 
f8c0227
 
a3467e5
 
 
 
f8c0227
a3467e5
f8c0227
 
 
560ad9c
f8c0227
560ad9c
 
b786514
 
 
f8c0227
 
 
 
 
 
 
 
b786514
f8c0227
560ad9c
 
f8c0227
560ad9c
f8c0227
 
 
 
 
 
 
 
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
86
87
88
89
90
91
92
93
94
95
---
license: mit
language: en
library_name: onnx
tags:
  - text-to-speech
  - tts
  - kokoro
  - piper
  - kittentts
  - vits
  - styletts2
  - onnx
  - sherpa-onnx
  - on-device
  - threadcast
pipeline_tag: text-to-speech
---

<p align="center">
  <a href="https://threadcast.app">
    <img src="assets/logo.png" alt="ThreadCast" width="160" height="160" />
  </a>
</p>

<h1 align="center">ThreadCast β€” Neural Models Mirror</h1>

<p align="center">
  <em>Threads, now a podcast.</em><br/>
  <a href="https://threadcast.app">threadcast.app</a> Β· <a href="https://pixellabs.ventures">pixellabs.ventures</a>
</p>

---

Self-hosted mirror of the on-device neural TTS models used by **[ThreadCast](https://threadcast.app)** across both shipping platforms β€” the Chrome extension and the Android app. Three engine families on Android (Piper VITS, KittenTTS-nano VITS, Kokoro StyleTTS2), two on the extension, one source of truth.

This repository exists so each platform can ship a stable, version-pinned set of model weights without depending on the availability or rate-limits of upstream Hugging Face repos at runtime.

> **Note:** if you're a ThreadCast user, you don't need anything here β€” the extension and the Android app each download (or bundle) what they need automatically. This page is for transparency, contributors, and forks.

---

## Repository layout

```
threadcast-neural-models/
β”œβ”€β”€ extension/                          ← Chrome extension β€” HF transformers.js packaging
β”‚   β”œβ”€β”€ neural-28m/                     Piper VITS β€” 5 voices, raw HF format
β”‚   └── neural-82m/                     Kokoro StyleTTS2 β€” 1 model + 11 voice embeddings
β”‚
└── mobile-android/                     ← Android app β€” production zips fetched at runtime
    └── v1/                             8 zips: 1 shared espeak + 5 per-voice Piper
                                        + 1 KittenTTS-nano ("Local AI Plus")
                                        + 1 Kokoro ("Local AI Studio")
```

| Subtree | Format | Consumed by | Sub-README |
|---|---|---|---|
| `extension/` | Raw HF (per-file `.onnx`, `.bin`, `tokenizer.json`) | Chrome extension via `@huggingface/transformers` + `@realtimex/piper-tts-web` | [extension/README.md](extension/README.md) |
| `mobile-android/` | ZIP archives, sherpa-onnx packaging | Android app at runtime via [AssetInstaller.kt](https://github.com/Pixel-Labs/Reddit-Reader/blob/main/packages/mobile/modules/threadcast-neural/android/src/main/java/app/threadcast/neural/AssetInstaller.kt) β€” first-launch download with cancel/delete | [mobile-android/README.md](mobile-android/README.md) |

The two subtrees parallel each other on purpose β€” same engine families (Piper VITS, Kokoro StyleTTS2), same `neural-28m` / `neural-82m` parameter-count naming, just packaged for each platform's runtime.

---

## Engines at a glance

| Engine | Architecture | Params | Per-voice cost | Quality tier |
|---|---|---|---|---|
| **`neural-28m`** | Piper VITS | ~28 M | One ONNX file per voice (~63 MB) | Standard β€” fast, CPU-friendly, single-thread WASM real-time on a laptop. Surfaced on Android as **Local AI Lite**, on the extension as **AI Neural CPU**. |
| **`neural-15m`** | KittenTTS-nano VITS | ~15 M | Single fp16 model + 8 speaker embeddings (one ~26 MB file serves all) | Sweet spot β€” 8 voices with style-vector switching at a fraction of the storage cost. Android-only, surfaced as **Local AI Plus**. |
| **`neural-82m`** | Kokoro StyleTTS2 | ~82 M | Single model + 256-dim style vectors per voice (one ~325 MB file serves all) | Premium β€” more natural prosody, GPU-accelerated on Chrome (WebGPU); CPU-only on Android (perf-gated). Surfaced on Android as **Local AI Studio**, on the extension as **AI Neural GPU**. |

---

## License

This repository **mirrors** upstream models for distribution stability. Each upstream project retains its own license:

- **Kokoro-82M:** Apache-2.0 ([upstream model card](https://huggingface.co/hexgrad/Kokoro-82M))
- **KittenTTS-nano (v0.1):** Apache-2.0 ([upstream model card](https://huggingface.co/KittenML/kitten-tts-nano-0.1))
- **Piper voices:** MIT, with individual voice attributions in each `.onnx.json`
- **transformers.js, onnxruntime-web, onnxruntime-android:** Apache-2.0
- **sherpa-onnx:** Apache-2.0

The mirror layout, READMEs, and any custom additions in this repository are licensed under MIT by [Pixel Labs](https://pixellabs.ventures).

---

## Links

- 🌐 ThreadCast: [threadcast.app](https://threadcast.app)
- πŸ§‘β€πŸ’» Pixel Labs: [pixellabs.ventures](https://pixellabs.ventures)
- 🐦 Issues / questions: open an issue on the [ThreadCast extension repo](https://threadcast.app/support)