gtcrn.pas
1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{ Copyright (c) 2025 Xiaomi Corporation }
{
This file shows how to use the speech enhancement API from sherpa-onnx
Please first download files used in this script before you run it.
wget https://github.com/k2-fsa/sherpa-onnx/releases/download/speech-enhancement-models/gtcrn_simple.onnx
wget https://github.com/k2-fsa/sherpa-onnx/releases/download/speech-enhancement-models/inp_16k.wav
}
program main;
{$mode delphi}
uses
sherpa_onnx,
SysUtils;
var
Wave: TSherpaOnnxWave;
Config: TSherpaOnnxOfflineSpeechDenoiserConfig;
Sd: TSherpaOnnxOfflineSpeechDenoiser;
Audio: TSherpaOnnxDenoisedAudio;
begin
Wave := SherpaOnnxReadWave('./inp_16k.wav');
Initialize(Config);
Config.Model.Gtcrn.Model := './gtcrn_simple.onnx';
Config.Model.NumThreads:= 1;
Config.Model.Debug:= True;
Config.Model.Provider:= 'cpu';
Sd := TSherpaOnnxOfflineSpeechDenoiser.Create(Config);
Audio := Sd.Run(Wave.Samples, Wave.SampleRate);
SherpaOnnxWriteWave('./enhanced-16k.wav', Audio.Samples, Audio.SampleRate);
WriteLn('Saved to ./enhanced-16k.wav');
FreeAndNil(Sd);
end.