@drakulavich/kesha-voice-kit 1.12.0 → 1.13.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 (3) hide show
  1. package/README.md +46 -0
  2. package/SKILL.md +2 -0
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -32,6 +32,40 @@ kesha audio.ogg # transcript to stdout
32
32
 
33
33
  Air-gapped or behind a corporate mirror? See [docs/model-mirror.md](docs/model-mirror.md).
34
34
 
35
+ ## Nix Install (Recommended)
36
+
37
+ **Prerequisites:** [Nix](https://nixos.org/download/) with flakes enabled.
38
+
39
+ ### One-liner run (no install)
40
+ ```bash
41
+ nix run github:drakulavich/kesha-voice-kit -- install
42
+ nix run github:drakulavich/kesha-voice-kit -- audio.ogg
43
+ ```
44
+
45
+ ### Install to profile (persistent)
46
+ ```bash
47
+ nix profile install github:drakulavich/kesha-voice-kit
48
+ kesha install # downloads engine + models
49
+ kesha audio.ogg # transcript to stdout
50
+ ```
51
+
52
+ ### Development shell
53
+ ```bash
54
+ nix develop github:drakulavich/kesha-voice-kit
55
+ # Now you have: rust, cargo, bun, protoc, cargo-make
56
+ ```
57
+
58
+ ### Build only
59
+ ```bash
60
+ nix build github:drakulavich/kesha-voice-kit#kesha-engine
61
+ ./result/bin/kesha-engine --help
62
+ ```
63
+
64
+ **Why Nix?**
65
+ - ✅ Reproducible builds across Linux/macOS
66
+ - ✅ All native deps (onnxruntime, protobuf, abseil) handled automatically
67
+ - ✅ No "works on my machine" — same `flake.nix` = identical results everywhere
68
+
35
69
  ## Speech-to-text
36
70
 
37
71
  ```bash
@@ -98,6 +132,18 @@ kesha say --voice ru-vosk-m02 --ssml \
98
132
 
99
133
  Vosk-TTS 0.9-multi honors a `+` placed BEFORE the target stressed vowel — but only when the marker shifts stress AWAY from the model's default (first-syllable). `+` agreeing with the default is a no-op. See [#233](https://github.com/drakulavich/kesha-voice-kit/issues/233).
100
134
 
135
+ **Speech rate via SSML** (`ru-vosk-*` and `en-*` voices):
136
+
137
+ ```bash
138
+ kesha say --voice ru-vosk-m02 --ssml \
139
+ '<speak><prosody rate="slow">Привет, как дела.</prosody></speak>' --out slow.wav
140
+
141
+ kesha say --voice en-am_michael --ssml \
142
+ '<speak><prosody rate="x-fast">Read this fast.</prosody></speak>' --out fast.wav
143
+ ```
144
+
145
+ Honored when `<prosody rate>` wraps the whole utterance. Mid-utterance prosody warns and synthesizes at default rate (whole-segment-only is a v1 limitation; mid-utterance support tracked in [#236](https://github.com/drakulavich/kesha-voice-kit/issues/236)). `--rate` and `<prosody rate>` compose multiplicatively. Range clamped to 0.5×–2.0×.
146
+
101
147
  macOS system voices, SSML, voice listing, and the full voice catalogue: [docs/tts.md](docs/tts.md).
102
148
 
103
149
  ## Performance
package/SKILL.md CHANGED
@@ -100,6 +100,8 @@ Format is also inferred from `--out` extension (`.ogg` / `.opus` / `.oga` → OG
100
100
 
101
101
  **Russian word stress** (`ru-vosk-*` only): `<emphasis>сл+ово</emphasis>` shifts stress to the vowel marked with `+`. `<emphasis level="none">сл+ово</emphasis>` strips the `+` (cancel inherited emphasis). Other voices (`en-*`, `macos-*`) silently strip the `+` and warn once per process. Auto-stress dictionary not provided — caller writes the `+` manually. Closes [#233](https://github.com/drakulavich/kesha-voice-kit/issues/233).
102
102
 
103
+ **Speech rate via SSML** (`ru-vosk-*` and `en-*` voices): wrap the utterance in `<prosody rate="…">` to slow down or speed up synthesis. Supports SSML named values (`x-slow`/`slow`/`medium`/`fast`/`x-fast`), absolute `N%` (e.g. `120%`), and relative `+N%`/`-N%`. Honored only when `<prosody>` wraps the whole utterance — mid-utterance prosody warns and synthesizes at default rate. `--rate` and `<prosody rate>` compose multiplicatively; result is clamped to 0.5×–2.0×. AVSpeech (`macos-*` voices) does not yet accept SSML — see [#236](https://github.com/drakulavich/kesha-voice-kit/issues/236).
104
+
103
105
  ## Language detection standalone
104
106
 
105
107
  `kesha --json audio.ogg` includes both audio-based (`audioLanguage`) and text-based (`textLanguage`) detection. Use audio detection to identify the language before running language-specific logic.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drakulavich/kesha-voice-kit",
3
- "version": "1.12.0",
3
+ "version": "1.13.0",
4
4
  "description": "Open-source voice toolkit. Speech-to-text (25 langs, ~19x faster than Whisper on Apple Silicon, ONNX fallback on CPU), text-to-speech (Kokoro + Vosk-TTS + ~180 macOS system voices, SSML), voice-activity detection, language detection (107 langs). Rust engine, OpenClaw skill.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -30,7 +30,7 @@
30
30
  ]
31
31
  },
32
32
  "keshaEngine": {
33
- "version": "1.12.0"
33
+ "version": "1.13.0"
34
34
  },
35
35
  "scripts": {
36
36
  "test": "bun test",