@qvac/tts-ggml 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -9
- package/package.json +10 -7
package/README.md
CHANGED
|
@@ -49,8 +49,9 @@ validated on Apple/Metal.
|
|
|
49
49
|
`config.useGPU: true` on GPU-capable hosts — including Android, where
|
|
50
50
|
`tts-cpp` selects the GPU backend per its per-vendor allowlist (see
|
|
51
51
|
[Backends & GPU acceleration](#backends--gpu-acceleration)).
|
|
52
|
-
- **Apple Core ML sidecars** for the Supertonic vocoder
|
|
53
|
-
|
|
52
|
+
- **Apple Core ML sidecars** for the Supertonic vocoder, the Audio8 codec,
|
|
53
|
+
and one stage each of MOSS, MOSS-SoundEffect, and MOSS-Speech on macOS /
|
|
54
|
+
iOS, picked up when staged next to the model (see
|
|
54
55
|
[Core ML sidecars on Apple](#core-ml-sidecars-on-apple)).
|
|
55
56
|
- **Dynamic backend loading on Android** — per-arch CPU + Vulkan +
|
|
56
57
|
OpenCL `.so` files ship under `prebuilds/<bare-target>/qvac__tts-ggml/`
|
|
@@ -240,13 +241,20 @@ moss-tts-delay-f16.gguf (~17 GB)
|
|
|
240
241
|
moss-ttsd-f16.gguf (~17 GB; MOSS-TTSD dialogue backbone, optional)
|
|
241
242
|
moss-codec-decoder-f16.gguf (~1.8 GB)
|
|
242
243
|
moss-codec-encoder-f16.gguf (~1.8 GB; cloning and dialogue only)
|
|
244
|
+
moss-codec-decoder.mlmodelc/ (optional, macOS / iOS: Apple Core ML sidecar for
|
|
245
|
+
the codec decoder while streaming; see Core ML
|
|
246
|
+
sidecars on Apple)
|
|
243
247
|
|
|
244
248
|
# MOSS-SoundEffect (OpenMOSS MOSS-SoundEffect-v2; 48 kHz text-to-sound-effects)
|
|
245
249
|
moss-sfx-v2-q8_0.gguf (~3.5 GB; or moss-sfx-v2-f16.gguf, ~6.4 GB)
|
|
250
|
+
moss-sfx-v2-dit.mlmodelc/ (optional, macOS / iOS: Apple Core ML sidecars for
|
|
251
|
+
moss-sfx-v2-vae.mlmodelc/ the diffusion transformer and the VAE decoder)
|
|
246
252
|
|
|
247
253
|
# MOSS-Speech (fnlp/MOSS-Speech; 24 kHz speech-to-speech)
|
|
248
254
|
moss-speech-q8_0.gguf (~9.7 GB; or moss-speech-bf16.gguf, ~18.2 GB)
|
|
249
255
|
moss-speech-codec-f16.gguf (~1.3 GB; carries the default reply voice)
|
|
256
|
+
moss-speech-codec-tokenizer.mlmodelc/ (optional, macOS / iOS: Apple Core ML
|
|
257
|
+
sidecar for the speech tokenizer)
|
|
250
258
|
```
|
|
251
259
|
|
|
252
260
|
Download the registry-published Chatterbox, Supertonic, and Parler models into
|
|
@@ -695,7 +703,8 @@ keeps the automatic preference above.
|
|
|
695
703
|
### Core ML sidecars on Apple
|
|
696
704
|
|
|
697
705
|
The macOS / iOS prebuilds carry the Apple Core ML (Neural Engine) sidecars
|
|
698
|
-
for the Supertonic vocoder
|
|
706
|
+
for the Supertonic vocoder, the Audio8 codec, and the MOSS models' fixed-shape
|
|
707
|
+
stages. They are presence-driven:
|
|
699
708
|
each stage runs on a compiled `.mlmodelc` found next to its model file
|
|
700
709
|
(`supertonic3-q8_0.gguf` -> `supertonic3-vocoder.mlmodelc`) and falls back to
|
|
701
710
|
the ggml graph when it is absent, so a model directory without sidecars
|
|
@@ -707,13 +716,19 @@ published model set yet; supply your own to opt in.
|
|
|
707
716
|
| --- | --- | --- | --- | --- |
|
|
708
717
|
| Supertonic 1 / 2 / 3 | `<model>-vocoder.mlmodelc` | vocoder, in 64-latent-frame windows | GGUFs whose vocoder weights are stored below 8 bits (`q4_0`) | `SUPERTONIC_COREML_DISABLE=1` |
|
|
709
718
|
| Audio8 | `audio8-codec-decoder.mlmodelc`, beside the codec decoder GGUF | codec synthesis stack (upsampling + DAC decoder), in 64-post-frame windows synthesised while the language model is still generating, so only the last one is left after it; the language model stays on the ggml backend | a call that fails on the sidecar, which also retires it for every later call on that instance | `AUDIO8_COREML_DISABLE=1` |
|
|
710
|
-
|
|
|
719
|
+
| MOSS, MOSS-TTSD | `moss-codec-decoder.mlmodelc`, beside the codec decoder GGUF | codec decoder, 25 frames (2 s) per call, keeping its attention cache between calls (macOS 15 / iOS 18) | non-streaming synthesis and streams with `streamChunkTokens` above 25, which ggml decodes faster in one pass | `MOSS_COREML_DISABLE=1` |
|
|
720
|
+
| MOSS-SoundEffect | `moss-sfx-v2-dit.mlmodelc` and `moss-sfx-v2-vae.mlmodelc` | diffusion transformer, one velocity per call; VAE decoder in 320-frame windows | a call that fails on the sidecar, which retires it | `MOSS_COREML_DISABLE=1` |
|
|
721
|
+
| MOSS-Speech | `moss-speech-codec-tokenizer.mlmodelc`, beside the codec GGUF | speech tokenizer (Whisper-VQ encoder), one full 30 s segment per call | segments shorter than 30 s, which ggml encodes faster; so most spoken questions | `MOSS_COREML_DISABLE=1` |
|
|
722
|
+
| Chatterbox, Parler, CosyVoice3, LavaSR | none | — | always | — |
|
|
711
723
|
|
|
712
724
|
Set the force-ggml variables in the process environment before `load()`.
|
|
713
725
|
Audio8 reports its codec path in `response.stats`: `codecSidecarLoaded` is 1
|
|
714
726
|
while the sidecar is attached and `codecOnCoreml` is 1 when that synthesis
|
|
715
727
|
ran its codec on it (see [Response shape](#response-shape)). The Supertonic
|
|
716
|
-
vocoder path is not reported in the stats.
|
|
728
|
+
vocoder path is not reported in the stats, and neither are the MOSS paths.
|
|
729
|
+
The MOSS sidecars run on the GPU unless `MOSS_COREML_COMPUTE_UNITS` (`all`,
|
|
730
|
+
`cpu_and_ane`, `cpu_only`) says otherwise: none of their stages ran faster on
|
|
731
|
+
the Neural Engine, and the speech tokenizer loses code accuracy there.
|
|
717
732
|
|
|
718
733
|
Worth it where the GPU is consumer-class: on an Apple M4 the Supertonic
|
|
719
734
|
vocoder runs 1.6-2.9x faster on the Neural Engine than on Metal (1.06-1.13x
|
|
@@ -722,14 +737,25 @@ so do not stage a sidecar there. `q4_0` models ignore the vocoder sidecar:
|
|
|
722
737
|
it carries full-precision weights and would substitute a different vocoder
|
|
723
738
|
rather than accelerate the quantized one.
|
|
724
739
|
|
|
740
|
+
The MOSS sidecars, per stage against Metal with f16 models:
|
|
741
|
+
|
|
742
|
+
| Stage | Apple M4 | Apple M3 Ultra |
|
|
743
|
+
| --- | --- | --- |
|
|
744
|
+
| MOSS-SoundEffect diffusion transformer | 1.23x | 1.06x |
|
|
745
|
+
| MOSS-SoundEffect VAE decoder | 1.70x | 1.81x |
|
|
746
|
+
| MOSS-Speech tokenizer, full 30 s segment | 1.24x | 1.08x |
|
|
747
|
+
| MOSS codec, streamed in 25-frame chunks | 1.03x | 1.13x |
|
|
748
|
+
|
|
725
749
|
Export the sidecars from the model GGUFs with
|
|
726
|
-
`engines/tts/scripts/export-supertonic-coreml.py
|
|
727
|
-
`engines/tts/scripts/export-audio8-codec-coreml.py
|
|
750
|
+
`engines/tts/scripts/export-supertonic-coreml.py`,
|
|
751
|
+
`engines/tts/scripts/export-audio8-codec-coreml.py`, and
|
|
752
|
+
`engines/tts/scripts/export-moss-{codec,sfx,speech-tokenizer}-coreml.py` from the
|
|
728
753
|
[`qvac-fabric-speech.cpp`](https://github.com/tetherto/qvac-fabric-speech.cpp)
|
|
729
754
|
tree at the ref `speech-cpp` pins. Its
|
|
730
|
-
[Supertonic](https://github.com/tetherto/qvac-fabric-speech.cpp/blob/master/engines/tts/docs/supertonic.md#core-ml-vocoder-sidecar)
|
|
755
|
+
[Supertonic](https://github.com/tetherto/qvac-fabric-speech.cpp/blob/master/engines/tts/docs/supertonic.md#core-ml-vocoder-sidecar),
|
|
756
|
+
[Audio8](https://github.com/tetherto/qvac-fabric-speech.cpp/blob/master/engines/tts/docs/audio8.md#core-ml-codec-sidecar),
|
|
731
757
|
and
|
|
732
|
-
[
|
|
758
|
+
[MOSS](https://github.com/tetherto/qvac-fabric-speech.cpp/blob/master/engines/tts/docs/moss.md#core-ml-codec-decoder)
|
|
733
759
|
guides cover export, placement, and measurements.
|
|
734
760
|
|
|
735
761
|
When the addon is built with `ENABLE_CUDA` — on in the published linux-x64
|
|
@@ -1553,6 +1579,14 @@ The vcpkg port is hosted in
|
|
|
1553
1579
|
[`vcpkg-configuration.json`](./vcpkg-configuration.json) for the
|
|
1554
1580
|
baseline commit.
|
|
1555
1581
|
|
|
1582
|
+
`ggml-speech` and `speech-cpp` are pinned with vcpkg `overrides` to the
|
|
1583
|
+
same versions in every speech addon (`@qvac/asr-ggml`,
|
|
1584
|
+
`@qvac/audiogen-ggml`, `@qvac/bci-whispercpp`, `@qvac/tts-ggml`), and
|
|
1585
|
+
`package.json` records the `ggml-speech` build as `qvac["ggml-speech"]`.
|
|
1586
|
+
The speech addons ship their ggml backends under the same file names, so
|
|
1587
|
+
an app that bundles several of them keeps one copy of each: use releases
|
|
1588
|
+
that record the same `ggml-speech`.
|
|
1589
|
+
|
|
1556
1590
|
GPU backends are controlled by the `speech-cpp` port's vcpkg features:
|
|
1557
1591
|
`metal` (default on osx/ios), `vulkan` (default on
|
|
1558
1592
|
linux/windows/android), `opencl` (default on android), and `cuda`
|
package/package.json
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qvac/tts-ggml",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "Text to Speech (TTS) addon for qvac (ggml backend, wrapping the chatterbox + supertonic + parler + cosyvoice3 + audio8 + moss + moss-sfx + moss-speech + Pocket engines from tts-cpp)",
|
|
5
5
|
"addon": true,
|
|
6
|
+
"qvac": {
|
|
7
|
+
"ggml-speech": "2026-10-07#1"
|
|
8
|
+
},
|
|
6
9
|
"engines": {
|
|
7
10
|
"bare": ">=1.19.0"
|
|
8
11
|
},
|
|
@@ -195,7 +198,7 @@
|
|
|
195
198
|
"bugs": "https://github.com/tetherto/qvac/issues",
|
|
196
199
|
"homepage": "https://qvac.tether.io",
|
|
197
200
|
"devDependencies": {
|
|
198
|
-
"@qvac/asr-ggml": "
|
|
201
|
+
"@qvac/asr-ggml": "0.8.1",
|
|
199
202
|
"@qvac/registry-client": "^0.6.1",
|
|
200
203
|
"cmake-bare": "^1.7.5",
|
|
201
204
|
"cmake-vcpkg": "^1.1.0",
|
|
@@ -231,10 +234,10 @@
|
|
|
231
234
|
},
|
|
232
235
|
"types": "index.d.ts",
|
|
233
236
|
"optionalDependencies": {
|
|
234
|
-
"@qvac/tts-ggml-linux-x64": "0.11.
|
|
235
|
-
"@qvac/tts-ggml-linux-arm64": "0.11.
|
|
236
|
-
"@qvac/tts-ggml-darwin-arm64": "0.11.
|
|
237
|
-
"@qvac/tts-ggml-darwin-x64": "0.11.
|
|
238
|
-
"@qvac/tts-ggml-win32-x64": "0.11.
|
|
237
|
+
"@qvac/tts-ggml-linux-x64": "0.11.1",
|
|
238
|
+
"@qvac/tts-ggml-linux-arm64": "0.11.1",
|
|
239
|
+
"@qvac/tts-ggml-darwin-arm64": "0.11.1",
|
|
240
|
+
"@qvac/tts-ggml-darwin-x64": "0.11.1",
|
|
241
|
+
"@qvac/tts-ggml-win32-x64": "0.11.1"
|
|
239
242
|
}
|
|
240
243
|
}
|