Skip to content

Commit 17c735d

Browse files
authored
Add Go API for KittenTTS (#2478)
1 parent 353658e commit 17c735d

File tree

18 files changed

+84
-10
lines changed

18 files changed

+84
-10
lines changed

.github/workflows/test-go.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,11 @@ jobs:
311311
go build
312312
ls -lh
313313
314+
echo "Test kitten en"
315+
./run-kitten-en.sh
316+
rm -rf kitten-*
317+
ls -lh
318+
314319
echo "Test kokoro zh+en"
315320
./run-kokoro-zh-en.sh
316321
rm -rf kokoro-multi-*

go-api-examples/non-streaming-tts/main.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ func main() {
4141
flag.StringVar(&config.Model.Kokoro.Lexicon, "kokoro-lexicon", "", "Path to lexicon files for Kokoro")
4242
flag.Float32Var(&config.Model.Kokoro.LengthScale, "kokoro-length-scale", 1.0, "length_scale for Kokoro. small -> faster in speech speed; large -> slower")
4343

44+
flag.StringVar(&config.Model.Kitten.Model, "kitten-model", "", "Path to the kitten ONNX model")
45+
flag.StringVar(&config.Model.Kitten.Voices, "kitten-voices", "", "Path to voices.bin for kitten")
46+
flag.StringVar(&config.Model.Kitten.Tokens, "kitten-tokens", "", "Path to tokens.txt for kitten")
47+
flag.StringVar(&config.Model.Kitten.DataDir, "kitten-data-dir", "", "Path to espeak-ng-data for kitten")
48+
flag.Float32Var(&config.Model.Kitten.LengthScale, "kitten-length-scale", 1.0, "length_scale for kitten. small -> faster in speech speed; large -> slower")
49+
4450
flag.IntVar(&config.Model.NumThreads, "num-threads", 1, "Number of threads for computing")
4551
flag.IntVar(&config.Model.Debug, "debug", 0, "Whether to show debug message")
4652
flag.StringVar(&config.Model.Provider, "provider", "cpu", "Provider to use")
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex
4+
5+
if [ ! -f ./kitten-nano-en-v0_1-fp16/model.fp16.onnx ]; then
6+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/kitten-nano-en-v0_1-fp16.tar.bz2
7+
tar xf kitten-nano-en-v0_1-fp16.tar.bz2
8+
rm kitten-nano-en-v0_1-fp16.tar.bz2
9+
fi
10+
11+
go mod tidy
12+
go build
13+
14+
./non-streaming-tts \
15+
--kitten-model=./kitten-nano-en-v0_1-fp16/model.fp16.onnx \
16+
--kitten-voices=./kitten-nano-en-v0_1-fp16/voices.bin \
17+
--kitten-tokens=./kitten-nano-en-v0_1-fp16/tokens.txt \
18+
--kitten-data-dir=./kitten-nano-en-v0_1-fp16/espeak-ng-data \
19+
--debug=1 \
20+
--output-filename=./test-kitten-en.wav \
21+
"Friends fell out often because life was changing so fast. The easiest thing in the world was to lose touch with someone."

go-api-examples/offline-tts-play/main.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ func main() {
4141
flag.StringVar(&config.Model.Kokoro.Lexicon, "kokoro-lexicon", "", "Path to lexicon files for Kokoro")
4242
flag.Float32Var(&config.Model.Kokoro.LengthScale, "kokoro-length-scale", 1.0, "length_scale for Kokoro. small -> faster in speech speed; large -> slower")
4343

44+
flag.StringVar(&config.Model.Kitten.Model, "kitten-model", "", "Path to the kitten ONNX model")
45+
flag.StringVar(&config.Model.Kitten.Voices, "kitten-voices", "", "Path to voices.bin for kitten")
46+
flag.StringVar(&config.Model.Kitten.Tokens, "kitten-tokens", "", "Path to tokens.txt for kitten")
47+
flag.StringVar(&config.Model.Kitten.DataDir, "kitten-data-dir", "", "Path to espeak-ng-data for kitten")
48+
flag.Float32Var(&config.Model.Kitten.LengthScale, "kitten-length-scale", 1.0, "length_scale for kitten. small -> faster in speech speed; large -> slower")
49+
4450
flag.IntVar(&config.Model.NumThreads, "num-threads", 1, "Number of threads for computing")
4551
flag.IntVar(&config.Model.Debug, "debug", 0, "Whether to show debug message")
4652
flag.StringVar(&config.Model.Provider, "provider", "cpu", "Provider to use")
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex
4+
5+
if [ ! -f ./kitten-nano-en-v0_1-fp16/model.fp16.onnx ]; then
6+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/kitten-nano-en-v0_1-fp16.tar.bz2
7+
tar xf kitten-nano-en-v0_1-fp16.tar.bz2
8+
rm kitten-nano-en-v0_1-fp16.tar.bz2
9+
fi
10+
11+
go mod tidy
12+
go build
13+
14+
./offline-tts-play \
15+
--kitten-model=./kitten-nano-en-v0_1-fp16/model.fp16.onnx \
16+
--kitten-voices=./kitten-nano-en-v0_1-fp16/voices.bin \
17+
--kitten-tokens=./kitten-nano-en-v0_1-fp16/tokens.txt \
18+
--kitten-data-dir=./kitten-nano-en-v0_1-fp16/espeak-ng-data \
19+
--debug=1 \
20+
"Friends fell out often because life was changing so fast. The easiest thing in the world was to lose touch with someone."

go-api-examples/offline-tts-play/run-kokoro-en.sh

100644100755
File mode changed.

go-api-examples/offline-tts-play/run-kokoro-zh-en.sh

100644100755
File mode changed.

go-api-examples/offline-tts-play/run-matcha-en.sh

100644100755
File mode changed.

go-api-examples/offline-tts-play/run-matcha-zh.sh

100644100755
File mode changed.

go-api-examples/offline-tts-play/run-vits-ljs.sh

100644100755
File mode changed.

0 commit comments

Comments
 (0)