Committed by
GitHub
Update iOS and Android demos to include the latest streaming zipformer (#189)
正在显示
7 个修改的文件
包含
76 行增加
和
4 行删除
| @@ -177,7 +177,7 @@ class MainActivity : AppCompatActivity() { | @@ -177,7 +177,7 @@ class MainActivity : AppCompatActivity() { | ||
| 177 | // Please change getModelConfig() to add new models | 177 | // Please change getModelConfig() to add new models |
| 178 | // See https://k2-fsa.github.io/sherpa/onnx/pretrained_models/index.html | 178 | // See https://k2-fsa.github.io/sherpa/onnx/pretrained_models/index.html |
| 179 | // for a list of available models | 179 | // for a list of available models |
| 180 | - val type = 0 | 180 | + val type = 3 |
| 181 | println("Select model type ${type}") | 181 | println("Select model type ${type}") |
| 182 | val config = OnlineRecognizerConfig( | 182 | val config = OnlineRecognizerConfig( |
| 183 | featConfig = getFeatureConfig(sampleRate = sampleRateInHz, featureDim = 80), | 183 | featConfig = getFeatureConfig(sampleRate = sampleRateInHz, featureDim = 80), |
| @@ -19,7 +19,7 @@ data class OnlineTransducerModelConfig( | @@ -19,7 +19,7 @@ data class OnlineTransducerModelConfig( | ||
| 19 | var decoder: String, | 19 | var decoder: String, |
| 20 | var joiner: String, | 20 | var joiner: String, |
| 21 | var tokens: String, | 21 | var tokens: String, |
| 22 | - var numThreads: Int = 2, | 22 | + var numThreads: Int = 1, |
| 23 | var debug: Boolean = false, | 23 | var debug: Boolean = false, |
| 24 | ) | 24 | ) |
| 25 | 25 | ||
| @@ -122,6 +122,9 @@ by following the code) | @@ -122,6 +122,9 @@ by following the code) | ||
| 122 | 122 | ||
| 123 | 2 - csukuangfj/sherpa-onnx-lstm-en-2023-02-17 (English) | 123 | 2 - csukuangfj/sherpa-onnx-lstm-en-2023-02-17 (English) |
| 124 | https://k2-fsa.github.io/sherpa/onnx/pretrained_models/lstm-transducer-models.html#csukuangfj-sherpa-onnx-lstm-en-2023-02-17-english | 124 | https://k2-fsa.github.io/sherpa/onnx/pretrained_models/lstm-transducer-models.html#csukuangfj-sherpa-onnx-lstm-en-2023-02-17-english |
| 125 | + | ||
| 126 | +3 - pkufool/icefall-asr-zipformer-streaming-wenetspeech-20230615 | ||
| 127 | + https://huggingface.co/pkufool/icefall-asr-zipformer-streaming-wenetspeech-20230615 | ||
| 125 | */ | 128 | */ |
| 126 | fun getModelConfig(type: Int): OnlineTransducerModelConfig? { | 129 | fun getModelConfig(type: Int): OnlineTransducerModelConfig? { |
| 127 | when (type) { | 130 | when (type) { |
| @@ -153,6 +156,26 @@ fun getModelConfig(type: Int): OnlineTransducerModelConfig? { | @@ -153,6 +156,26 @@ fun getModelConfig(type: Int): OnlineTransducerModelConfig? { | ||
| 153 | tokens = "$modelDir/tokens.txt", | 156 | tokens = "$modelDir/tokens.txt", |
| 154 | ) | 157 | ) |
| 155 | } | 158 | } |
| 159 | + | ||
| 160 | + 3 -> { | ||
| 161 | + val modelDir = "icefall-asr-zipformer-streaming-wenetspeech-20230615" | ||
| 162 | + return OnlineTransducerModelConfig( | ||
| 163 | + encoder = "$modelDir/exp/encoder-epoch-12-avg-4-chunk-16-left-128.int8.onnx", | ||
| 164 | + decoder = "$modelDir/exp/decoder-epoch-12-avg-4-chunk-16-left-128.onnx", | ||
| 165 | + joiner = "$modelDir/exp/joiner-epoch-12-avg-4-chunk-16-left-128.onnx", | ||
| 166 | + tokens = "$modelDir/data/lang_char/tokens.txt", | ||
| 167 | + ) | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + 4 -> { | ||
| 171 | + val modelDir = "icefall-asr-zipformer-streaming-wenetspeech-20230615" | ||
| 172 | + return OnlineTransducerModelConfig( | ||
| 173 | + encoder = "$modelDir/exp/encoder-epoch-12-avg-4-chunk-16-left-128.onnx", | ||
| 174 | + decoder = "$modelDir/exp/decoder-epoch-12-avg-4-chunk-16-left-128.onnx", | ||
| 175 | + joiner = "$modelDir/exp/joiner-epoch-12-avg-4-chunk-16-left-128.onnx", | ||
| 176 | + tokens = "$modelDir/data/lang_char/tokens.txt", | ||
| 177 | + ) | ||
| 178 | + } | ||
| 156 | } | 179 | } |
| 157 | return null; | 180 | return null; |
| 158 | } | 181 | } |
| @@ -74,6 +74,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" | @@ -74,6 +74,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" | ||
| 74 | -DSHERPA_ONNX_ENABLE_CHECK=OFF \ | 74 | -DSHERPA_ONNX_ENABLE_CHECK=OFF \ |
| 75 | -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ | 75 | -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ |
| 76 | -DSHERPA_ONNX_ENABLE_JNI=ON \ | 76 | -DSHERPA_ONNX_ENABLE_JNI=ON \ |
| 77 | + -DSHERPA_ONNX_ENABLE_C_API=OFF \ | ||
| 77 | -DCMAKE_INSTALL_PREFIX=./install \ | 78 | -DCMAKE_INSTALL_PREFIX=./install \ |
| 78 | -DANDROID_ABI="arm64-v8a" \ | 79 | -DANDROID_ABI="arm64-v8a" \ |
| 79 | -DANDROID_PLATFORM=android-21 .. | 80 | -DANDROID_PLATFORM=android-21 .. |
| @@ -74,6 +74,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" | @@ -74,6 +74,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" | ||
| 74 | -DSHERPA_ONNX_ENABLE_CHECK=OFF \ | 74 | -DSHERPA_ONNX_ENABLE_CHECK=OFF \ |
| 75 | -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ | 75 | -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ |
| 76 | -DSHERPA_ONNX_ENABLE_JNI=ON \ | 76 | -DSHERPA_ONNX_ENABLE_JNI=ON \ |
| 77 | + -DSHERPA_ONNX_ENABLE_C_API=OFF \ | ||
| 77 | -DCMAKE_INSTALL_PREFIX=./install \ | 78 | -DCMAKE_INSTALL_PREFIX=./install \ |
| 78 | -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON \ | 79 | -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON \ |
| 79 | -DANDROID_PLATFORM=android-21 .. | 80 | -DANDROID_PLATFORM=android-21 .. |
| @@ -30,6 +30,51 @@ func getBilingualStreamZhEnZipformer20230220() -> SherpaOnnxOnlineTransducerMode | @@ -30,6 +30,51 @@ func getBilingualStreamZhEnZipformer20230220() -> SherpaOnnxOnlineTransducerMode | ||
| 30 | ) | 30 | ) |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | +func getZhZipformer20230615() -> SherpaOnnxOnlineTransducerModelConfig { | ||
| 34 | + let encoder = getResource("encoder-epoch-12-avg-4-chunk-16-left-128", "onnx") | ||
| 35 | + let decoder = getResource("decoder-epoch-12-avg-4-chunk-16-left-128", "onnx") | ||
| 36 | + let joiner = getResource("joiner-epoch-12-avg-4-chunk-16-left-128", "onnx") | ||
| 37 | + let tokens = getResource("tokens", "txt") | ||
| 38 | + | ||
| 39 | + return sherpaOnnxOnlineTransducerModelConfig( | ||
| 40 | + encoder: encoder, | ||
| 41 | + decoder: decoder, | ||
| 42 | + joiner: joiner, | ||
| 43 | + tokens: tokens, | ||
| 44 | + numThreads: 2 | ||
| 45 | + ) | ||
| 46 | +} | ||
| 47 | + | ||
| 48 | +func getZhZipformer20230615Int8() -> SherpaOnnxOnlineTransducerModelConfig { | ||
| 49 | + let encoder = getResource("encoder-epoch-12-avg-4-chunk-16-left-128.int8", "onnx") | ||
| 50 | + let decoder = getResource("decoder-epoch-12-avg-4-chunk-16-left-128", "onnx") | ||
| 51 | + let joiner = getResource("joiner-epoch-12-avg-4-chunk-16-left-128", "onnx") | ||
| 52 | + let tokens = getResource("tokens", "txt") | ||
| 53 | + | ||
| 54 | + return sherpaOnnxOnlineTransducerModelConfig( | ||
| 55 | + encoder: encoder, | ||
| 56 | + decoder: decoder, | ||
| 57 | + joiner: joiner, | ||
| 58 | + tokens: tokens, | ||
| 59 | + numThreads: 2 | ||
| 60 | + ) | ||
| 61 | +} | ||
| 62 | + | ||
| 63 | +func getEnZipformer20230626() -> SherpaOnnxOnlineTransducerModelConfig { | ||
| 64 | + let encoder = getResource("encoder-epoch-99-avg-1-chunk-16-left-128", "onnx") | ||
| 65 | + let decoder = getResource("decoder-epoch-99-avg-1-chunk-16-left-128", "onnx") | ||
| 66 | + let joiner = getResource("joiner-epoch-99-avg-1-chunk-16-left-128", "onnx") | ||
| 67 | + let tokens = getResource("tokens", "txt") | ||
| 68 | + | ||
| 69 | + return sherpaOnnxOnlineTransducerModelConfig( | ||
| 70 | + encoder: encoder, | ||
| 71 | + decoder: decoder, | ||
| 72 | + joiner: joiner, | ||
| 73 | + tokens: tokens, | ||
| 74 | + numThreads: 2 | ||
| 75 | + ) | ||
| 76 | +} | ||
| 77 | + | ||
| 33 | /// Please refer to | 78 | /// Please refer to |
| 34 | /// https://k2-fsa.github.io/sherpa/onnx/pretrained_models/index.html | 79 | /// https://k2-fsa.github.io/sherpa/onnx/pretrained_models/index.html |
| 35 | /// to add more models if you need | 80 | /// to add more models if you need |
| @@ -85,7 +85,9 @@ class ViewController: UIViewController { | @@ -85,7 +85,9 @@ class ViewController: UIViewController { | ||
| 85 | // You can also modify Model.swift to add new pre-trained models from | 85 | // You can also modify Model.swift to add new pre-trained models from |
| 86 | // https://k2-fsa.github.io/sherpa/ncnn/pretrained_models/index.html | 86 | // https://k2-fsa.github.io/sherpa/ncnn/pretrained_models/index.html |
| 87 | 87 | ||
| 88 | - let modelConfig = getBilingualStreamZhEnZipformer20230220() | 88 | + // let modelConfig = getBilingualStreamZhEnZipformer20230220() |
| 89 | + // let modelConfig = getZhZipformer20230615() | ||
| 90 | + let modelConfig = getEnZipformer20230626() | ||
| 89 | 91 | ||
| 90 | let featConfig = sherpaOnnxFeatureConfig( | 92 | let featConfig = sherpaOnnxFeatureConfig( |
| 91 | sampleRate: 16000, | 93 | sampleRate: 16000, |
-
请 注册 或 登录 后发表评论