mirror of
https://github.com/k2-fsa/sherpa-onnx.git
synced 2026-11-11 05:20:52 +08:00
This pull request enhances the speech processing capabilities of sherpa-onnx by integrating DPDFNet models for speech enhancement. It introduces both offline and streaming denoising functionalities, supporting various model profiles and sample rates. This expansion provides users with more advanced and flexible options for improving audio quality in diverse applications, from real-time communication to post-processing of recordings.
42 lines
1.5 KiB
Java
42 lines
1.5 KiB
Java
// Copyright 2025 Xiaomi Corporation
|
|
|
|
// This file shows how to use DPDFNet speech enhancement models in sherpa-onnx
|
|
//
|
|
// Download DPDFNet models from the official Hugging Face hub:
|
|
// https://huggingface.co/Ceva-IP/DPDFNet
|
|
//
|
|
// Use baseline.onnx, dpdfnet2.onnx, dpdfnet4.onnx, or dpdfnet8.onnx
|
|
// for 16 kHz downstream ASR or speech recognition.
|
|
// Use dpdfnet2_48khz_hr.onnx for 48 kHz enhancement output.
|
|
|
|
import com.k2fsa.sherpa.onnx.*;
|
|
|
|
public class NonStreamingSpeechEnhancementDpdfNet {
|
|
public static void main(String[] args) {
|
|
String model = "./dpdfnet2.onnx";
|
|
OfflineSpeechDenoiserModelConfig.Builder builder =
|
|
OfflineSpeechDenoiserModelConfig.builder()
|
|
.setNumThreads(1)
|
|
.setDebug(true)
|
|
.setProvider("cpu")
|
|
.setDpdfnet(
|
|
OfflineSpeechDenoiserDpdfNetModelConfig.builder().setModel(model).build());
|
|
|
|
OfflineSpeechDenoiserModelConfig modelConfig = builder.build();
|
|
OfflineSpeechDenoiserConfig config =
|
|
OfflineSpeechDenoiserConfig.builder().setModel(modelConfig).build();
|
|
|
|
OfflineSpeechDenoiser speech_denoiser = new OfflineSpeechDenoiser(config);
|
|
|
|
String testWaveFilename = "./inp_16k.wav";
|
|
WaveReader reader = new WaveReader(testWaveFilename);
|
|
|
|
DenoisedAudio denoised = speech_denoiser.run(reader.getSamples(), reader.getSampleRate());
|
|
String outFilename = "enhanced.wav";
|
|
WaveWriter.write(outFilename, denoised.getSamples(), denoised.getSampleRate());
|
|
System.out.printf("Saved to %s\n", outFilename);
|
|
|
|
speech_denoiser.release();
|
|
}
|
|
}
|