@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.
- package/README.md +46 -0
- package/SKILL.md +2 -0
- 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.
|
|
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.
|
|
33
|
+
"version": "1.13.0"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"test": "bun test",
|