Add Pascal API for Dolphin CTC models (#2096)

This commit is contained in:
Fangjun Kuang
2025-04-03 16:00:22 +08:00
committed by GitHub
parent 07a5701af6
commit 8137ac9f0b
11 changed files with 343 additions and 7 deletions

View File

@@ -1969,7 +1969,7 @@ int32_t SherpaOnnxLinearResamplerResampleGetOutputSampleRate(
return p->impl->GetOutputSamplingRate();
}
void SherpaOnnxLinearResamplerReset(SherpaOnnxLinearResampler *p) {
void SherpaOnnxLinearResamplerReset(const SherpaOnnxLinearResampler *p) {
p->impl->Reset();
}

View File

@@ -270,6 +270,11 @@ type
function ToString: AnsiString;
end;
TSherpaOnnxOfflineDolphinModelConfig = record
Model: AnsiString;
function ToString: AnsiString;
end;
TSherpaOnnxOfflineWhisperModelConfig = record
Encoder: AnsiString;
Decoder: AnsiString;
@@ -331,6 +336,7 @@ type
SenseVoice: TSherpaOnnxOfflineSenseVoiceModelConfig;
Moonshine: TSherpaOnnxOfflineMoonshineModelConfig;
FireRedAsr: TSherpaOnnxOfflineFireRedAsrModelConfig;
Dolphin: TSherpaOnnxOfflineDolphinModelConfig;
class operator Initialize({$IFDEF FPC}var{$ELSE}out{$ENDIF} Dest: TSherpaOnnxOfflineModelConfig);
function ToString: AnsiString;
end;
@@ -694,6 +700,9 @@ type
SherpaOnnxOfflineNemoEncDecCtcModelConfig = record
Model: PAnsiChar;
end;
SherpaOnnxOfflineDolphinModelConfig = record
Model: PAnsiChar;
end;
SherpaOnnxOfflineWhisperModelConfig = record
Encoder: PAnsiChar;
Decoder: PAnsiChar;
@@ -740,6 +749,7 @@ type
SenseVoice: SherpaOnnxOfflineSenseVoiceModelConfig;
Moonshine: SherpaOnnxOfflineMoonshineModelConfig;
FireRedAsr: SherpaOnnxOfflineFireRedAsrModelConfig;
Dolphin: SherpaOnnxOfflineDolphinModelConfig;
end;
SherpaOnnxOfflineRecognizerConfig = record
@@ -1461,6 +1471,12 @@ begin
[Self.Model]);
end;
function TSherpaOnnxOfflineDolphinModelConfig.ToString: AnsiString;
begin
Result := Format('TSherpaOnnxOfflineDolphinModelConfig(Model := %s)',
[Self.Model]);
end;
function TSherpaOnnxOfflineWhisperModelConfig.ToString: AnsiString;
begin
Result := Format('TSherpaOnnxOfflineWhisperModelConfig(' +
@@ -1534,14 +1550,15 @@ begin
'TeleSpeechCtc := %s, ' +
'SenseVoice := %s, ' +
'Moonshine := %s, ' +
'FireRedAsr := %s' +
'FireRedAsr := %s, ' +
'Dolphin := %s' +
')',
[Self.Transducer.ToString, Self.Paraformer.ToString,
Self.NeMoCtc.ToString, Self.Whisper.ToString, Self.Tdnn.ToString,
Self.Tokens, Self.NumThreads, Self.Debug.ToString, Self.Provider,
Self.ModelType, Self.ModelingUnit, Self.BpeVocab,
Self.TeleSpeechCtc, Self.SenseVoice.ToString, Self.Moonshine.ToString,
Self.FireRedAsr.ToString
Self.FireRedAsr.ToString, Self.Dolphin.ToString
]);
end;
@@ -1610,6 +1627,8 @@ begin
C.ModelConfig.FireRedAsr.Encoder := PAnsiChar(Config.ModelConfig.FireRedAsr.Encoder);
C.ModelConfig.FireRedAsr.Decoder := PAnsiChar(Config.ModelConfig.FireRedAsr.Decoder);
C.ModelConfig.Dolphin.Model := PAnsiChar(Config.ModelConfig.Dolphin.Model);
C.LMConfig.Model := PAnsiChar(Config.LMConfig.Model);
C.LMConfig.Scale := Config.LMConfig.Scale;