Add Pascal API for Kokoro TTS models (#1724)
This commit is contained in:
@@ -76,12 +76,24 @@ type
|
||||
class operator Initialize({$IFDEF FPC}var{$ELSE}out{$ENDIF} Dest: TSherpaOnnxOfflineTtsMatchaModelConfig);
|
||||
end;
|
||||
|
||||
TSherpaOnnxOfflineTtsKokoroModelConfig = record
|
||||
Model: AnsiString;
|
||||
Voices: AnsiString;
|
||||
Tokens: AnsiString;
|
||||
DataDir: AnsiString;
|
||||
LengthScale: Single;
|
||||
|
||||
function ToString: AnsiString;
|
||||
class operator Initialize({$IFDEF FPC}var{$ELSE}out{$ENDIF} Dest: TSherpaOnnxOfflineTtsKokoroModelConfig);
|
||||
end;
|
||||
|
||||
TSherpaOnnxOfflineTtsModelConfig = record
|
||||
Vits: TSherpaOnnxOfflineTtsVitsModelConfig;
|
||||
NumThreads: Integer;
|
||||
Debug: Boolean;
|
||||
Provider: AnsiString;
|
||||
Matcha: TSherpaOnnxOfflineTtsMatchaModelConfig;
|
||||
Kokoro: TSherpaOnnxOfflineTtsKokoroModelConfig;
|
||||
|
||||
function ToString: AnsiString;
|
||||
class operator Initialize({$IFDEF FPC}var{$ELSE}out{$ENDIF} Dest: TSherpaOnnxOfflineTtsModelConfig);
|
||||
@@ -739,12 +751,21 @@ type
|
||||
DictDir: PAnsiChar;
|
||||
end;
|
||||
|
||||
SherpaOnnxOfflineTtsKokoroModelConfig = record
|
||||
Model: PAnsiChar;
|
||||
Voices: PAnsiChar;
|
||||
Tokens: PAnsiChar;
|
||||
DataDir: PAnsiChar;
|
||||
LengthScale: cfloat;
|
||||
end;
|
||||
|
||||
SherpaOnnxOfflineTtsModelConfig = record
|
||||
Vits: SherpaOnnxOfflineTtsVitsModelConfig;
|
||||
NumThreads: cint32;
|
||||
Debug: cint32;
|
||||
Provider: PAnsiChar;
|
||||
Matcha: SherpaOnnxOfflineTtsMatchaModelConfig;
|
||||
Kokoro: SherpaOnnxOfflineTtsKokoroModelConfig;
|
||||
end;
|
||||
|
||||
SherpaOnnxOfflineTtsConfig = record
|
||||
@@ -1903,6 +1924,23 @@ begin
|
||||
Dest.LengthScale := 1.0;
|
||||
end;
|
||||
|
||||
function TSherpaOnnxOfflineTtsKokoroModelConfig.ToString: AnsiString;
|
||||
begin
|
||||
Result := Format('TSherpaOnnxOfflineTtsKokoroModelConfig(' +
|
||||
'Model := %s, ' +
|
||||
'Voices := %s, ' +
|
||||
'Tokens := %s, ' +
|
||||
'DataDir := %s, ' +
|
||||
'LengthScale := %.2f' +
|
||||
')',
|
||||
[Self.Model, Self.Voices, Self.Tokens, Self.DataDir, Self.LengthScale]);
|
||||
end;
|
||||
|
||||
class operator TSherpaOnnxOfflineTtsKokoroModelConfig.Initialize({$IFDEF FPC}var{$ELSE}out{$ENDIF} Dest: TSherpaOnnxOfflineTtsKokoroModelConfig);
|
||||
begin
|
||||
Dest.LengthScale := 1.0;
|
||||
end;
|
||||
|
||||
function TSherpaOnnxOfflineTtsModelConfig.ToString: AnsiString;
|
||||
begin
|
||||
Result := Format('TSherpaOnnxOfflineTtsModelConfig(' +
|
||||
@@ -1910,10 +1948,11 @@ begin
|
||||
'NumThreads := %d, ' +
|
||||
'Debug := %s, ' +
|
||||
'Provider := %s, ' +
|
||||
'Matcha := %s' +
|
||||
'Matcha := %s, ' +
|
||||
'Kokoro := %s' +
|
||||
')',
|
||||
[Self.Vits.ToString, Self.NumThreads, Self.Debug.ToString, Self.Provider,
|
||||
Self.Matcha.ToString
|
||||
Self.Matcha.ToString, Self.Kokoro.ToString
|
||||
]);
|
||||
end;
|
||||
|
||||
@@ -1966,6 +2005,12 @@ begin
|
||||
C.Model.Matcha.LengthScale := Config.Model.Matcha.LengthScale;
|
||||
C.Model.Matcha.DictDir := PAnsiChar(Config.Model.Matcha.DictDir);
|
||||
|
||||
C.Model.Kokoro.Model := PAnsiChar(Config.Model.Kokoro.Model);
|
||||
C.Model.Kokoro.Voices := PAnsiChar(Config.Model.Kokoro.Voices);
|
||||
C.Model.Kokoro.Tokens := PAnsiChar(Config.Model.Kokoro.Tokens);
|
||||
C.Model.Kokoro.DataDir := PAnsiChar(Config.Model.Kokoro.DataDir);
|
||||
C.Model.Kokoro.LengthScale := Config.Model.Kokoro.LengthScale;
|
||||
|
||||
C.Model.NumThreads := Config.Model.NumThreads;
|
||||
C.Model.Provider := PAnsiChar(Config.Model.Provider);
|
||||
C.Model.Debug := Ord(Config.Model.Debug);
|
||||
|
||||
Reference in New Issue
Block a user