50 lines
1.3 KiB
Kotlin
50 lines
1.3 KiB
Kotlin
package com.k2fsa.sherpa.onnx
|
|
|
|
fun main() {
|
|
test2Pass()
|
|
}
|
|
|
|
fun test2Pass() {
|
|
val firstPass = createFirstPass()
|
|
val secondPass = createSecondPass()
|
|
|
|
val waveFilename = "./sherpa-onnx-streaming-zipformer-en-20M-2023-02-17/test_wavs/0.wav"
|
|
|
|
var objArray = WaveReader.readWaveFromFile(
|
|
filename = waveFilename,
|
|
)
|
|
var samples: FloatArray = objArray[0] as FloatArray
|
|
var sampleRate: Int = objArray[1] as Int
|
|
|
|
firstPass.acceptWaveform(samples, sampleRate = sampleRate)
|
|
while (firstPass.isReady()) {
|
|
firstPass.decode()
|
|
}
|
|
|
|
var text = firstPass.text
|
|
println("First pass text: $text")
|
|
|
|
text = secondPass.decode(samples, sampleRate)
|
|
println("Second pass text: $text")
|
|
}
|
|
|
|
fun createFirstPass(): SherpaOnnx {
|
|
val config = OnlineRecognizerConfig(
|
|
featConfig = getFeatureConfig(sampleRate = 16000, featureDim = 80),
|
|
modelConfig = getModelConfig(type = 1)!!,
|
|
endpointConfig = getEndpointConfig(),
|
|
enableEndpoint = true,
|
|
)
|
|
|
|
return SherpaOnnx(config = config)
|
|
}
|
|
|
|
fun createSecondPass(): SherpaOnnxOffline {
|
|
val config = OfflineRecognizerConfig(
|
|
featConfig = getFeatureConfig(sampleRate = 16000, featureDim = 80),
|
|
modelConfig = getOfflineModelConfig(type = 2)!!,
|
|
)
|
|
|
|
return SherpaOnnxOffline(config = config)
|
|
}
|