Add Go API for Kokoro TTS models (#1722)

This commit is contained in:
Fangjun Kuang
2025-01-16 17:35:31 +08:00
committed by GitHub
parent ad61ad6ff5
commit 2086f8c55b
6 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1 @@
../../../../go-api-examples/non-streaming-tts/run-kokoro-en.sh

View File

@@ -682,9 +682,18 @@ type OfflineTtsMatchaModelConfig struct {
DictDir string // Path to dict directory for jieba (used only in Chinese tts)
}
type OfflineTtsKokoroModelConfig struct {
Model string // Path to the model for kokoro
Voices string // Path to the voices.bin for kokoro
Tokens string // Path to tokens.txt
DataDir string // Path to espeak-ng-data directory
LengthScale float32 // Please use 1.0 in general. Smaller -> Faster speech speed. Larger -> Slower speech speed
}
type OfflineTtsModelConfig struct {
Vits OfflineTtsVitsModelConfig
Matcha OfflineTtsMatchaModelConfig
Kokoro OfflineTtsKokoroModelConfig
// Number of threads to use for neural network computation
NumThreads int
@@ -776,6 +785,21 @@ func NewOfflineTts(config *OfflineTtsConfig) *OfflineTts {
c.model.matcha.dict_dir = C.CString(config.Model.Matcha.DictDir)
defer C.free(unsafe.Pointer(c.model.matcha.dict_dir))
// kokoro
c.model.kokoro.model = C.CString(config.Model.Kokoro.Model)
defer C.free(unsafe.Pointer(c.model.kokoro.model))
c.model.kokoro.voices = C.CString(config.Model.Kokoro.Voices)
defer C.free(unsafe.Pointer(c.model.kokoro.voices))
c.model.kokoro.tokens = C.CString(config.Model.Kokoro.Tokens)
defer C.free(unsafe.Pointer(c.model.kokoro.tokens))
c.model.kokoro.data_dir = C.CString(config.Model.Kokoro.DataDir)
defer C.free(unsafe.Pointer(c.model.kokoro.data_dir))
c.model.kokoro.length_scale = C.float(config.Model.Kokoro.LengthScale)
c.model.num_threads = C.int(config.Model.NumThreads)
c.model.debug = C.int(config.Model.Debug)