Add Kotlin API for speech enhancement GTCRN models (#2008)
This commit is contained in:
1
kotlin-api-examples/OfflineSpeechDenoiser.kt
Symbolic link
1
kotlin-api-examples/OfflineSpeechDenoiser.kt
Symbolic link
@@ -0,0 +1 @@
|
||||
../sherpa-onnx/kotlin-api/OfflineSpeechDenoiser.kt
|
||||
@@ -371,6 +371,31 @@ function testOfflineSpeakerDiarization() {
|
||||
java -Djava.library.path=../build/lib -jar $out_filename
|
||||
}
|
||||
|
||||
function testOfflineSpeechDenoiser() {
|
||||
if [ ! -f ./gtcrn_simple.onnx ]; then
|
||||
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/speech-enhancement-models/gtcrn_simple.onnx
|
||||
fi
|
||||
|
||||
if [ ! -f ./inp_16k.wav ]; then
|
||||
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/speech-enhancement-models/inp_16k.wav
|
||||
fi
|
||||
|
||||
out_filename=test_offline_speech_denoiser.jar
|
||||
kotlinc-jvm -include-runtime -d $out_filename \
|
||||
test_offline_speech_denoiser.kt \
|
||||
OfflineSpeechDenoiser.kt \
|
||||
WaveReader.kt \
|
||||
faked-asset-manager.kt \
|
||||
faked-log.kt
|
||||
|
||||
ls -lh $out_filename
|
||||
|
||||
java -Djava.library.path=../build/lib -jar $out_filename
|
||||
|
||||
ls -lh *.wav
|
||||
}
|
||||
|
||||
testOfflineSpeechDenoiser
|
||||
testOfflineSpeakerDiarization
|
||||
testSpeakerEmbeddingExtractor
|
||||
testOnlineAsr
|
||||
|
||||
41
kotlin-api-examples/test_offline_speech_denoiser.kt
Normal file
41
kotlin-api-examples/test_offline_speech_denoiser.kt
Normal file
@@ -0,0 +1,41 @@
|
||||
package com.k2fsa.sherpa.onnx
|
||||
// Please download test files in this script from
|
||||
// https://github.com/k2-fsa/sherpa-onnx/releases/tag/speech-enhancement-models
|
||||
|
||||
fun main() {
|
||||
test()
|
||||
}
|
||||
|
||||
fun test() {
|
||||
val denoiser = createOfflineSpeechDenoiser()
|
||||
|
||||
val waveFilename = "./inp_16k.wav";
|
||||
|
||||
val objArray = WaveReader.readWaveFromFile(
|
||||
filename = waveFilename,
|
||||
)
|
||||
val samples: FloatArray = objArray[0] as FloatArray
|
||||
val sampleRate: Int = objArray[1] as Int
|
||||
|
||||
val denoised = denoiser.run(samples, sampleRate);
|
||||
denoised.save(filename="./enhanced-16k.wav")
|
||||
println("saved to ./enhanced-16k.wav")
|
||||
}
|
||||
|
||||
fun createOfflineSpeechDenoiser(): OfflineSpeechDenoiser {
|
||||
val config = OfflineSpeechDenoiserConfig(
|
||||
model = OfflineSpeechDenoiserModelConfig(
|
||||
gtcrn = OfflineSpeechDenoiserGtcrnModelConfig(
|
||||
model = "./gtcrn_simple.onnx"
|
||||
),
|
||||
provider = "cpu",
|
||||
numThreads = 1,
|
||||
),
|
||||
)
|
||||
|
||||
println(config)
|
||||
|
||||
return OfflineSpeechDenoiser(config = config)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user