Add Dart API for Kokoro TTS 1.0 (#1806)

This commit is contained in:
Fangjun Kuang
2025-02-07 15:53:13 +08:00
committed by GitHub
parent ae32dfaa56
commit 35f5ff3166
6 changed files with 144 additions and 2 deletions

View File

@@ -155,6 +155,8 @@ final class SherpaOnnxOfflineTtsKokoroModelConfig extends Struct {
@Float()
external double lengthScale;
external Pointer<Utf8> dictDir;
external Pointer<Utf8> lexicon;
}
final class SherpaOnnxOfflineTtsModelConfig extends Struct {

View File

@@ -67,11 +67,13 @@ class OfflineTtsKokoroModelConfig {
this.tokens = '',
this.dataDir = '',
this.lengthScale = 1.0,
this.dictDir = '',
this.lexicon = '',
});
@override
String toString() {
return 'OfflineTtsKokoroModelConfig(model: $model, voices: $voices, tokens: $tokens, dataDir: $dataDir, lengthScale: $lengthScale)';
return 'OfflineTtsKokoroModelConfig(model: $model, voices: $voices, tokens: $tokens, dataDir: $dataDir, lengthScale: $lengthScale, dictDir: $dictDir, lexicon: $lexicon)';
}
final String model;
@@ -79,6 +81,8 @@ class OfflineTtsKokoroModelConfig {
final String tokens;
final String dataDir;
final double lengthScale;
final String dictDir;
final String lexicon;
}
class OfflineTtsModelConfig {
@@ -166,6 +170,8 @@ class OfflineTts {
c.ref.model.kokoro.tokens = config.model.kokoro.tokens.toNativeUtf8();
c.ref.model.kokoro.dataDir = config.model.kokoro.dataDir.toNativeUtf8();
c.ref.model.kokoro.lengthScale = config.model.kokoro.lengthScale;
c.ref.model.kokoro.dictDir = config.model.kokoro.dictDir.toNativeUtf8();
c.ref.model.kokoro.lexicon = config.model.kokoro.lexicon.toNativeUtf8();
c.ref.model.numThreads = config.model.numThreads;
c.ref.model.debug = config.model.debug ? 1 : 0;
@@ -181,6 +187,8 @@ class OfflineTts {
calloc.free(c.ref.ruleFsts);
calloc.free(c.ref.model.provider);
calloc.free(c.ref.model.kokoro.lexicon);
calloc.free(c.ref.model.kokoro.dictDir);
calloc.free(c.ref.model.kokoro.dataDir);
calloc.free(c.ref.model.kokoro.tokens);
calloc.free(c.ref.model.kokoro.voices);