Committed by
GitHub
Add missing field for two-pass APK. (#511)
正在显示
5 个修改的文件
包含
74 行增加
和
1 行删除
| @@ -25,9 +25,14 @@ data class OnlineParaformerModelConfig( | @@ -25,9 +25,14 @@ data class OnlineParaformerModelConfig( | ||
| 25 | var decoder: String = "", | 25 | var decoder: String = "", |
| 26 | ) | 26 | ) |
| 27 | 27 | ||
| 28 | +data class OnlineZipformer2CtcModelConfig( | ||
| 29 | + var model: String = "", | ||
| 30 | +) | ||
| 31 | + | ||
| 28 | data class OnlineModelConfig( | 32 | data class OnlineModelConfig( |
| 29 | var transducer: OnlineTransducerModelConfig = OnlineTransducerModelConfig(), | 33 | var transducer: OnlineTransducerModelConfig = OnlineTransducerModelConfig(), |
| 30 | var paraformer: OnlineParaformerModelConfig = OnlineParaformerModelConfig(), | 34 | var paraformer: OnlineParaformerModelConfig = OnlineParaformerModelConfig(), |
| 35 | + var zipformer2Ctc: OnlineZipformer2CtcModelConfig = OnlineZipformer2CtcModelConfig(), | ||
| 31 | var tokens: String, | 36 | var tokens: String, |
| 32 | var numThreads: Int = 1, | 37 | var numThreads: Int = 1, |
| 33 | var debug: Boolean = false, | 38 | var debug: Boolean = false, |
kotlin-api-examples/SherpaOnnx2Pass.kt
0 → 120000
| 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 | @@ -51,3 +51,21 @@ kotlinc-jvm -include-runtime -d main.jar Main.kt WaveReader.kt SherpaOnnx.kt fak | ||
| 51 | ls -lh main.jar | 51 | ls -lh main.jar |
| 52 | 52 | ||
| 53 | java -Djava.library.path=../build/lib -jar main.jar | 53 | java -Djava.library.path=../build/lib -jar main.jar |
| 54 | + | ||
| 55 | +# For two-pass | ||
| 56 | + | ||
| 57 | +if [ ! -f ./sherpa-onnx-streaming-zipformer-en-20M-2023-02-17/encoder-epoch-99-avg-1.int8.onnx ]; then | ||
| 58 | + wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-en-20M-2023-02-17.tar.bz2 | ||
| 59 | + tar xvf sherpa-onnx-streaming-zipformer-en-20M-2023-02-17.tar.bz2 | ||
| 60 | + rm sherpa-onnx-streaming-zipformer-en-20M-2023-02-17.tar.bz2 | ||
| 61 | +fi | ||
| 62 | + | ||
| 63 | +if [ ! -f ./sherpa-onnx-whisper-tiny.en/tiny.en-encoder.int8.onnx ]; then | ||
| 64 | + wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-whisper-tiny.en.tar.bz2 | ||
| 65 | + tar xvf sherpa-onnx-whisper-tiny.en.tar.bz2 | ||
| 66 | + rm sherpa-onnx-whisper-tiny.en.tar.bz2 | ||
| 67 | +fi | ||
| 68 | + | ||
| 69 | +kotlinc-jvm -include-runtime -d 2pass.jar test-2pass.kt WaveReader.kt SherpaOnnx2Pass.kt faked-asset-manager.kt | ||
| 70 | +ls -lh 2pass.jar | ||
| 71 | +java -Djava.library.path=../build/lib -jar 2pass.jar |
kotlin-api-examples/test-2pass.kt
0 → 100644
| 1 | +package com.k2fsa.sherpa.onnx | ||
| 2 | + | ||
| 3 | +fun main() { | ||
| 4 | + test2Pass() | ||
| 5 | +} | ||
| 6 | + | ||
| 7 | +fun test2Pass() { | ||
| 8 | + val firstPass = createFirstPass() | ||
| 9 | + val secondPass = createSecondPass() | ||
| 10 | + | ||
| 11 | + val waveFilename = "./sherpa-onnx-streaming-zipformer-en-20M-2023-02-17/test_wavs/0.wav" | ||
| 12 | + | ||
| 13 | + var objArray = WaveReader.readWaveFromFile( | ||
| 14 | + filename = waveFilename, | ||
| 15 | + ) | ||
| 16 | + var samples: FloatArray = objArray[0] as FloatArray | ||
| 17 | + var sampleRate: Int = objArray[1] as Int | ||
| 18 | + | ||
| 19 | + firstPass.acceptWaveform(samples, sampleRate = sampleRate) | ||
| 20 | + while (firstPass.isReady()) { | ||
| 21 | + firstPass.decode() | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + var text = firstPass.text | ||
| 25 | + println("First pass text: $text") | ||
| 26 | + | ||
| 27 | + text = secondPass.decode(samples, sampleRate) | ||
| 28 | + println("Second pass text: $text") | ||
| 29 | +} | ||
| 30 | + | ||
| 31 | +fun createFirstPass(): SherpaOnnx { | ||
| 32 | + val config = OnlineRecognizerConfig( | ||
| 33 | + featConfig = getFeatureConfig(sampleRate = 16000, featureDim = 80), | ||
| 34 | + modelConfig = getModelConfig(type = 1)!!, | ||
| 35 | + endpointConfig = getEndpointConfig(), | ||
| 36 | + enableEndpoint = true, | ||
| 37 | + ) | ||
| 38 | + | ||
| 39 | + return SherpaOnnx(config = config) | ||
| 40 | +} | ||
| 41 | + | ||
| 42 | +fun createSecondPass(): SherpaOnnxOffline { | ||
| 43 | + val config = OfflineRecognizerConfig( | ||
| 44 | + featConfig = getFeatureConfig(sampleRate = 16000, featureDim = 80), | ||
| 45 | + modelConfig = getOfflineModelConfig(type = 2)!!, | ||
| 46 | + ) | ||
| 47 | + | ||
| 48 | + return SherpaOnnxOffline(config = config) | ||
| 49 | +} |
-
请 注册 或 登录 后发表评论