@@ -426,12 +426,24 @@ TSherpaOnnxSileroVadModelConfig = record
426426 class operator Initialize({ $IFDEF FPC} var { $ELSE} out{ $ENDIF} Dest: TSherpaOnnxSileroVadModelConfig);
427427 end ;
428428
429+ TSherpaOnnxTenVadModelConfig = record
430+ Model: AnsiString;
431+ Threshold: Single;
432+ MinSilenceDuration: Single;
433+ MinSpeechDuration: Single;
434+ WindowSize: Integer;
435+ MaxSpeechDuration: Single;
436+ function ToString : AnsiString;
437+ class operator Initialize({ $IFDEF FPC} var { $ELSE} out{ $ENDIF} Dest: TSherpaOnnxTenVadModelConfig);
438+ end ;
439+
429440 TSherpaOnnxVadModelConfig = record
430441 SileroVad: TSherpaOnnxSileroVadModelConfig;
431442 SampleRate: Integer;
432443 NumThreads: Integer;
433444 Provider: AnsiString;
434445 Debug: Boolean;
446+ TenVad: TSherpaOnnxTenVadModelConfig;
435447 function ToString : AnsiString;
436448 class operator Initialize({ $IFDEF FPC} var { $ELSE} out{ $ENDIF} Dest: TSherpaOnnxVadModelConfig);
437449 end ;
@@ -829,12 +841,23 @@ SherpaOnnxSileroVadModelConfig = record
829841 WindowSize: cint32;
830842 MaxSpeechDuration: cfloat;
831843 end ;
844+
845+ SherpaOnnxTenVadModelConfig = record
846+ Model: PAnsiChar;
847+ Threshold: cfloat;
848+ MinSilenceDuration: cfloat;
849+ MinSpeechDuration: cfloat;
850+ WindowSize: cint32;
851+ MaxSpeechDuration: cfloat;
852+ end ;
853+
832854 SherpaOnnxVadModelConfig = record
833855 SileroVad: SherpaOnnxSileroVadModelConfig;
834856 SampleRate: cint32;
835857 NumThreads: cint32;
836858 Provider: PAnsiChar;
837859 Debug: cint32;
860+ TenVad: SherpaOnnxTenVadModelConfig;
838861 end ;
839862 PSherpaOnnxVadModelConfig = ^SherpaOnnxVadModelConfig;
840863
@@ -1907,6 +1930,21 @@ function TSherpaOnnxSileroVadModelConfig.ToString: AnsiString;
19071930 ]);
19081931end ;
19091932
1933+ function TSherpaOnnxTenVadModelConfig.ToString : AnsiString;
1934+ begin
1935+ Result := Format(' TSherpaOnnxTenVadModelConfig(' +
1936+ ' Model := %s, ' +
1937+ ' Threshold := %.2f, ' +
1938+ ' MinSilenceDuration := %.2f, ' +
1939+ ' MinSpeechDuration := %.2f, ' +
1940+ ' WindowSize := %d, ' +
1941+ ' MaxSpeechDuration := %.2f' +
1942+ ' )' ,
1943+ [Self.Model, Self.Threshold, Self.MinSilenceDuration,
1944+ Self.MinSpeechDuration, Self.WindowSize, Self.MaxSpeechDuration
1945+ ]);
1946+ end ;
1947+
19101948class operator TSherpaOnnxSileroVadModelConfig.Initialize({ $IFDEF FPC} var { $ELSE} out{ $ENDIF} Dest: TSherpaOnnxSileroVadModelConfig);
19111949begin
19121950 Dest.Threshold := 0.5 ;
@@ -1916,17 +1954,27 @@ function TSherpaOnnxSileroVadModelConfig.ToString: AnsiString;
19161954 Dest.MaxSpeechDuration := 5.0 ;
19171955end ;
19181956
1957+ class operator TSherpaOnnxTenVadModelConfig.Initialize({ $IFDEF FPC} var { $ELSE} out{ $ENDIF} Dest: TSherpaOnnxTenVadModelConfig);
1958+ begin
1959+ Dest.Threshold := 0.5 ;
1960+ Dest.MinSilenceDuration := 0.5 ;
1961+ Dest.MinSpeechDuration := 0.25 ;
1962+ Dest.WindowSize := 256 ;
1963+ Dest.MaxSpeechDuration := 5.0 ;
1964+ end ;
1965+
19191966function TSherpaOnnxVadModelConfig.ToString : AnsiString;
19201967begin
19211968 Result := Format(' TSherpaOnnxVadModelConfig(' +
19221969 ' SileroVad := %s, ' +
19231970 ' SampleRate := %d, ' +
19241971 ' NumThreads := %d, ' +
19251972 ' Provider := %s, ' +
1926- ' Debug := %s' +
1973+ ' Debug := %s, ' +
1974+ ' TenVad := %s' +
19271975 ' )' ,
19281976 [Self.SileroVad.ToString, Self.SampleRate, Self.NumThreads, Self.Provider,
1929- Self.Debug.ToString
1977+ Self.Debug.ToString, Self.TenVad.ToString
19301978 ]);
19311979end ;
19321980
@@ -2077,6 +2125,13 @@ constructor TSherpaOnnxVoiceActivityDetector.Create(Config: TSherpaOnnxVadModelC
20772125 C.SileroVad.WindowSize := Config.SileroVad.WindowSize;
20782126 C.SileroVad.MaxSpeechDuration := Config.SileroVad.MaxSpeechDuration;
20792127
2128+ C.TenVad.Model := PAnsiChar(Config.TenVad.Model);
2129+ C.TenVad.Threshold := Config.TenVad.Threshold;
2130+ C.TenVad.MinSilenceDuration := Config.TenVad.MinSilenceDuration;
2131+ C.TenVad.MinSpeechDuration := Config.TenVad.MinSpeechDuration;
2132+ C.TenVad.WindowSize := Config.TenVad.WindowSize;
2133+ C.TenVad.MaxSpeechDuration := Config.TenVad.MaxSpeechDuration;
2134+
20802135 C.SampleRate := Config.SampleRate;
20812136 C.NumThreads := Config.NumThreads;
20822137 C.Provider := PAnsiChar(Config.Provider);
0 commit comments