Add missing field for two-pass APK. (#511)
This commit is contained in:
@@ -25,9 +25,14 @@ data class OnlineParaformerModelConfig(
|
|||||||
var decoder: String = "",
|
var decoder: String = "",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
data class OnlineZipformer2CtcModelConfig(
|
||||||
|
var model: String = "",
|
||||||
|
)
|
||||||
|
|
||||||
data class OnlineModelConfig(
|
data class OnlineModelConfig(
|
||||||
var transducer: OnlineTransducerModelConfig = OnlineTransducerModelConfig(),
|
var transducer: OnlineTransducerModelConfig = OnlineTransducerModelConfig(),
|
||||||
var paraformer: OnlineParaformerModelConfig = OnlineParaformerModelConfig(),
|
var paraformer: OnlineParaformerModelConfig = OnlineParaformerModelConfig(),
|
||||||
|
var zipformer2Ctc: OnlineZipformer2CtcModelConfig = OnlineZipformer2CtcModelConfig(),
|
||||||
var tokens: String,
|
var tokens: String,
|
||||||
var numThreads: Int = 1,
|
var numThreads: Int = 1,
|
||||||
var debug: Boolean = false,
|
var debug: Boolean = false,
|
||||||
|
|||||||
2
kotlin-api-examples/.gitignore
vendored
2
kotlin-api-examples/.gitignore
vendored
@@ -1,3 +1,3 @@
|
|||||||
hs_err*
|
hs_err*
|
||||||
main.jar
|
|
||||||
vits-zh-aishell3
|
vits-zh-aishell3
|
||||||
|
*.jar
|
||||||
|
|||||||
1
kotlin-api-examples/SherpaOnnx2Pass.kt
Symbolic link
1
kotlin-api-examples/SherpaOnnx2Pass.kt
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../android/SherpaOnnx2Pass/app/src/main/java/com/k2fsa/sherpa/onnx/SherpaOnnx.kt
|
||||||
@@ -51,3 +51,21 @@ kotlinc-jvm -include-runtime -d main.jar Main.kt WaveReader.kt SherpaOnnx.kt fak
|
|||||||
ls -lh main.jar
|
ls -lh main.jar
|
||||||
|
|
||||||
java -Djava.library.path=../build/lib -jar main.jar
|
java -Djava.library.path=../build/lib -jar main.jar
|
||||||
|
|
||||||
|
# For two-pass
|
||||||
|
|
||||||
|
if [ ! -f ./sherpa-onnx-streaming-zipformer-en-20M-2023-02-17/encoder-epoch-99-avg-1.int8.onnx ]; then
|
||||||
|
wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-en-20M-2023-02-17.tar.bz2
|
||||||
|
tar xvf sherpa-onnx-streaming-zipformer-en-20M-2023-02-17.tar.bz2
|
||||||
|
rm sherpa-onnx-streaming-zipformer-en-20M-2023-02-17.tar.bz2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f ./sherpa-onnx-whisper-tiny.en/tiny.en-encoder.int8.onnx ]; then
|
||||||
|
wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-whisper-tiny.en.tar.bz2
|
||||||
|
tar xvf sherpa-onnx-whisper-tiny.en.tar.bz2
|
||||||
|
rm sherpa-onnx-whisper-tiny.en.tar.bz2
|
||||||
|
fi
|
||||||
|
|
||||||
|
kotlinc-jvm -include-runtime -d 2pass.jar test-2pass.kt WaveReader.kt SherpaOnnx2Pass.kt faked-asset-manager.kt
|
||||||
|
ls -lh 2pass.jar
|
||||||
|
java -Djava.library.path=../build/lib -jar 2pass.jar
|
||||||
|
|||||||
49
kotlin-api-examples/test-2pass.kt
Normal file
49
kotlin-api-examples/test-2pass.kt
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
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)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user