@qvac/tts-ggml 0.13.0 → 0.14.0

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.
Files changed (66) hide show
  1. package/README.md +51 -10
  2. package/docs/pocket-tts.md +12 -10
  3. package/index.d.ts +43 -1130
  4. package/index.js +127 -3042
  5. package/lib/addonEvents.d.ts +26 -0
  6. package/lib/addonEvents.js +51 -0
  7. package/lib/conditioning.d.ts +50 -0
  8. package/lib/conditioning.js +184 -0
  9. package/lib/engineDetection.d.ts +14 -0
  10. package/lib/engineDetection.js +110 -0
  11. package/lib/engineIds.d.ts +15 -0
  12. package/lib/engineIds.js +39 -0
  13. package/lib/engineParams.d.ts +3 -0
  14. package/lib/engineParams.js +34 -0
  15. package/lib/engineSetup.d.ts +153 -0
  16. package/lib/engineSetup.js +2 -0
  17. package/lib/engines/audio8.d.ts +83 -0
  18. package/lib/engines/audio8.js +262 -0
  19. package/lib/engines/chatterbox.d.ts +10 -0
  20. package/lib/engines/chatterbox.js +112 -0
  21. package/lib/engines/cosyvoice.d.ts +87 -0
  22. package/lib/engines/cosyvoice.js +267 -0
  23. package/lib/engines/moss.d.ts +26 -0
  24. package/lib/engines/moss.js +177 -0
  25. package/lib/engines/mossSoundEffect.d.ts +41 -0
  26. package/lib/engines/mossSoundEffect.js +117 -0
  27. package/lib/engines/mossSpeech.d.ts +86 -0
  28. package/lib/engines/mossSpeech.js +228 -0
  29. package/lib/engines/parler.d.ts +71 -0
  30. package/lib/engines/parler.js +287 -0
  31. package/lib/engines/supertonic.d.ts +11 -0
  32. package/lib/engines/supertonic.js +115 -0
  33. package/lib/exclusiveQueue.d.ts +16 -0
  34. package/lib/exclusiveQueue.js +45 -0
  35. package/lib/jobFields.d.ts +20 -0
  36. package/lib/jobFields.js +73 -0
  37. package/lib/modelFiles.d.ts +207 -0
  38. package/lib/modelFiles.js +117 -0
  39. package/lib/nativeParams.d.ts +12 -0
  40. package/lib/nativeParams.js +73 -0
  41. package/lib/optionValidation.d.ts +2 -0
  42. package/lib/optionValidation.js +103 -0
  43. package/lib/options.d.ts +4 -0
  44. package/lib/options.js +17 -0
  45. package/lib/pocketLifecycle.d.ts +67 -0
  46. package/lib/pocketLifecycle.js +170 -0
  47. package/lib/reload.d.ts +12 -0
  48. package/lib/reload.js +76 -0
  49. package/lib/sentenceStream.d.ts +85 -0
  50. package/lib/sentenceStream.js +367 -0
  51. package/lib/setup.d.ts +7 -0
  52. package/lib/setup.js +169 -0
  53. package/lib/streamingSupport.d.ts +8 -0
  54. package/lib/streamingSupport.js +77 -0
  55. package/lib/types.d.ts +465 -0
  56. package/lib/types.js +2 -0
  57. package/lib/voiceControls.d.ts +12 -0
  58. package/lib/voiceControls.js +23 -0
  59. package/package.json +11 -10
  60. package/test/integration/audio8.test.js +6 -12
  61. package/test/integration/gpu-smoke.test.js +2 -11
  62. package/test/integration/lavasr-enhancer.test.js +2 -15
  63. package/test/integration/moss-sfx.test.js +29 -4
  64. package/test/integration/moss.test.js +1 -1
  65. package/test/utils/desktopGpuBackend.js +21 -0
  66. package/test/utils/runTTS.js +1 -1
package/README.md CHANGED
@@ -17,6 +17,22 @@ LavaSR neural denoise + 48 kHz bandwidth-extension enhancement. Unsure
17
17
  which checkpoint to stage? Start with [Choosing a model](#choosing-a-model).
18
18
 
19
19
 
20
+ ### CosyVoice3 Core ML sidecars
21
+
22
+ Apple builds support optional CosyVoice3 Core ML sidecars through the native
23
+ `speech-cpp` 2026-10-19 dependency. Export and placement details are in the
24
+ [CosyVoice3 Core ML guide](https://github.com/tetherto/qvac-fabric-speech.cpp/blob/ea128498e23d20cd122729275e92361b11a361df/engines/tts/docs/cosyvoice3.md#core-ml-sidecars).
25
+ Re-export existing CosyVoice3 LM sidecars with the updated exporter to include
26
+ the cache feedback correction for consecutive predictions.
27
+
28
+ The LM, flow frontend/decoder, F0 predictor and HiFT vocoder use resident
29
+ sidecars when present and fall back to ggml when unavailable. HiFT exports
30
+ use FP32 for waveform parity. Core ML chooses operation placement, so a
31
+ sidecar does not guarantee ANE execution or a speed improvement.
32
+ When a sidecar is present, `assessFit` returns an error with reason
33
+ `coreml-memory-estimate-unavailable`; its memory usage is not projected.
34
+
35
+
20
36
  Runs in-process with a persistent native engine — the GGUFs, the S3Gen
21
37
  preload, the ggml backend, and any voice-conditioning tensors are
22
38
  loaded once and reused across every synthesis call. GPU acceleration
@@ -675,6 +691,8 @@ Notes:
675
691
  engine runs its ggml graph on the GPU (falling back to the ggml CPU backend
676
692
  when no GPU backend initialises), a CPU engine keeps the scalar core.
677
693
  `denoiserBackendDevice` / `denoiserBackendId` in the stats report where it ran.
694
+ - Android ARM Mali devices can use Vulkan for denoising with `config.useGPU: true`.
695
+ This path is validated on Pixel 9 Pro XL (Mali-G715).
678
696
  - The tts-cpp UL-UNAS forward is implemented in
679
697
  [qvac-fabric-speech.cpp#78](https://github.com/tetherto/qvac-fabric-speech.cpp/pull/78)
680
698
  (scalar CPU port, validated bit-close to the ONNX reference); it requires a
@@ -1072,20 +1090,16 @@ The combined desktop CUDA/Vulkan speech changes in
1072
1090
  [Vulkan #308](https://github.com/tetherto/qvac-fabric-speech.cpp/pull/308),
1073
1091
  including [CUDA #321](https://github.com/tetherto/qvac-fabric-speech.cpp/pull/321),
1074
1092
  merged to native master at `84b02694001cfea863167776dbc185474a816656`.
1075
- This checkout consumes the merged [registry #423](https://github.com/tetherto/qvac-registry-vcpkg/pull/423)
1076
- at `e31be272ecdf9f20970302ebf8a2943d47803001`: `speech-cpp` 2026-10-12#1
1077
- pins that merged revision, and `ggml-speech` 2026-10-07#1 pins
1078
- `06f1b66806626a635904f31db6914ad2d0e71197`. The earlier native `f4d4c257`
1093
+ The exact native dependency versions are declared in [vcpkg.json](vcpkg.json),
1094
+ and the registry configuration is declared in
1095
+ [vcpkg-configuration.json](vcpkg-configuration.json). The earlier native `f4d4c257`
1079
1096
  passed ten smaller-model CUDA/Vulkan cases; those results do not establish GPU
1080
1097
  validation of the final native revision or the packaged addon. Rebuild the addon
1081
1098
  before running its GPU tests. Native desktop results also do not establish
1082
1099
  Android support or speech-quality signoff.
1083
1100
 
1084
- The registry `baseline` is the main commit containing #423. The shared exact
1085
- `speech-cpp` overrides and backend implementation are already on qvac main.
1086
- This baseline update completes the TTS registry configuration; packaged-addon
1087
- CUDA/Vulkan inference still requires validation on provisioned GPU hosts before
1088
- claiming a validated release.
1101
+ Packaged-addon CUDA/Vulkan inference still requires validation on provisioned
1102
+ GPU hosts before claiming a validated release.
1089
1103
 
1090
1104
  From `packages/tts-ggml`, resolve the checked-in manifest without building or
1091
1105
  downloading models (with `VCPKG_ROOT` set):
@@ -1128,7 +1142,29 @@ case completes. Run both files together without test filters: a successful full
1128
1142
  run has 12 passing tests, including the two completion checks, and no skips.
1129
1143
  Preflight only checks asset presence; actual model loading and inference must
1130
1144
  also pass. These commands cover TTS, TTSD and Speech, not MOSS-SoundEffect (SFX).
1131
- No addon CUDA/Vulkan hardware run has been completed for this test change yet.
1145
+ To validate the fresh packaged addons on the provisioned Linux GPU runner,
1146
+ dispatch the existing integration workflow on the branch being tested:
1147
+
1148
+ ```sh
1149
+ gh workflow run integration-test-nx.yml --repo tetherto/qvac --ref <branch> -f moss_packaged_gpu=true
1150
+ ```
1151
+
1152
+ This opt-in mode retains the `release` environment gate and builds both addons
1153
+ from the dispatch SHA with build concurrency capped at two. It stages the fresh
1154
+ platform packages through `link:platform`, verifies that both CUDA and Vulkan
1155
+ plugins are present, then runs CUDA and Vulkan sequentially. Each backend must
1156
+ pass the 12 TTS/TTSD/Speech tests above, two SFX tests (including exact backend
1157
+ and no-fallback assertions for both GPU clips), and the focused ASR Spanish
1158
+ transcription test with default and hotword prompts. Fixture skips fail the run.
1159
+ CPU control cases remain part of the TTS/SFX suites.
1160
+
1161
+ The runner stages q8_0 TTS/TTSD/Speech/SFX backbones and q5_0 Transcribe, with
1162
+ the required codec precision preserved. TTS/TTSD q8_0 are generated on the
1163
+ runner from the source checkpoints using the pinned native quantizer. The
1164
+ artifacts retain source pins, model and prebuild hashes, the fresh prebuilds,
1165
+ and per-backend logs/results; model weights are removed and never uploaded.
1166
+ This mode does not publish. A dispatched or building run is not GPU validation:
1167
+ only passing case logs from both backends establish packaged-addon coverage.
1132
1168
 
1133
1169
  Without strict mode, developer behavior is unchanged: an unpinned run accepts
1134
1170
  the normal GPU cascade, missing model directories skip tests, and missing
@@ -1720,4 +1756,9 @@ Apache-2.0. See [LICENSE](./LICENSE).
1720
1756
 
1721
1757
  ## Pocket TTS
1722
1758
 
1759
+ The native `speech-cpp` dependency includes Pocket Metal, CUDA, Vulkan and
1760
+ OpenCL support in the native library. The JavaScript Pocket API continues
1761
+ to require `config.useGPU: false`; updating the native dependency does not
1762
+ remove that addon validation.
1763
+
1723
1764
  See [Pocket TTS](docs/pocket-tts.md) for model conversion, addon/SDK usage, supported controls and validation commands.
@@ -1,7 +1,9 @@
1
1
  # Pocket TTS
2
2
 
3
- Pocket is an English, CPU-only TTS engine implemented in the Fabric speech
4
- library. It streams PCM16 audio through the `@qvac/tts-ggml` addon. Python
3
+ Pocket is an English TTS engine implemented in the Fabric speech library.
4
+ The native library supports CPU, Metal, CUDA, Vulkan and OpenCL; the
5
+ `@qvac/tts-ggml` JavaScript API currently accepts CPU inference only.
6
+ It streams PCM16 audio through the addon. Python
5
7
  is used only to convert weights and benchmark the upstream reference; it is
6
8
  not needed for native synthesis. Inference plugin and public SDK integration
7
9
  will follow in a separate change after the addon release.
@@ -139,22 +141,22 @@ audio and broad subjective quality evaluations remain outside this coverage.
139
141
 
140
142
  ## Native dependencies and measured performance
141
143
 
142
- The manifest requires speech-cpp and ggml-speech `2026-09-15` without changing
143
- `vcpkg-configuration.json`. These registered versions select the merged source
144
- commits `a976c4d63195601fcff8bfc0c2cdf3ef36fba539` (speech-cpp) and
145
- `59a0ca2c2bcd7de36c27d930f79e0c94cc0c2ff3` (ggml-speech).
146
- [Registry #367](https://github.com/tetherto/qvac-registry-vcpkg/pull/367)
147
- contains these packages. Pocket resolves CPU memory planning through the
144
+ The exact native dependency versions are declared in [vcpkg.json](../vcpkg.json).
145
+ The Pocket GPU implementation comes from the merged
146
+ [Fabric #338](https://github.com/tetherto/qvac-fabric-speech.cpp/pull/338)
147
+ change, registered in
148
+ [registry #433](https://github.com/tetherto/qvac-registry-vcpkg/pull/433).
149
+ Pocket resolves CPU memory planning through the
148
150
  backend registry, fixing the Linux/Android unresolved `ggml_graph_plan` import.
149
151
  The native fixes are merged in [ggml #92](https://github.com/tetherto/qvac-ext-ggml/pull/92)
150
152
  and [speech #251](https://github.com/tetherto/qvac-fabric-speech.cpp/pull/251).
151
153
 
152
- Before the addon-only review revision, these exact native port trees passed
154
+ Before the addon-only review revision, the original CPU-only native dependency versions passed
153
155
  [the full prebuild and integration run](https://github.com/tetherto/qvac/actions/runs/34975293366)
154
156
  at Fabric `49d864d2e1a2070a4cb9872cd0f62319fdb9e839`: nine platform prebuilds
155
157
  and seven desktop integration lanes covering CPU, Metal, Vulkan and CUDA.
156
158
  That run validates the native dependencies; it does not validate subsequent
157
- JavaScript review changes. The same native pins also passed all 10 Pocket
159
+ JavaScript review changes. Those original native pins also passed all 10 Pocket
158
160
  CTests with upstream numerical fixtures, static/dynamic CPU planner tests,
159
161
  and 116 selected Supertonic Metal operations against CPU. Six paired
160
162
  old-versus-merged native audio cases produced bit-identical PCM; this is