online_model.dart
2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import 'package:sherpa_onnx/sherpa_onnx.dart' as sherpa_onnx;
import './utils.dart';
// Remember to change `assets` in ../pubspec.yaml
// and download files to ../assets
Future<sherpa_onnx.OnlineModelConfig> getOnlineModelConfig(
{required int type}) async {
switch (type) {
case 0:
final modelDir =
'assets/sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20';
return sherpa_onnx.OnlineModelConfig(
transducer: sherpa_onnx.OnlineTransducerModelConfig(
encoder:
await copyAssetFile('$modelDir/encoder-epoch-99-avg-1.int8.onnx'),
decoder: await copyAssetFile('$modelDir/decoder-epoch-99-avg-1.onnx'),
joiner: await copyAssetFile('$modelDir/joiner-epoch-99-avg-1.onnx'),
),
tokens: await copyAssetFile('$modelDir/tokens.txt'),
modelType: 'zipformer',
);
case 1:
final modelDir = 'assets/sherpa-onnx-streaming-zipformer-en-2023-06-26';
return sherpa_onnx.OnlineModelConfig(
transducer: sherpa_onnx.OnlineTransducerModelConfig(
encoder: await copyAssetFile(
'$modelDir/encoder-epoch-99-avg-1-chunk-16-left-128.int8.onnx'),
decoder: await copyAssetFile(
'$modelDir/decoder-epoch-99-avg-1-chunk-16-left-128.onnx'),
joiner: await copyAssetFile(
'$modelDir/joiner-epoch-99-avg-1-chunk-16-left-128.onnx'),
),
tokens: await copyAssetFile('$modelDir/tokens.txt'),
modelType: 'zipformer2',
);
case 2:
final modelDir =
'assets/icefall-asr-zipformer-streaming-wenetspeech-20230615';
return sherpa_onnx.OnlineModelConfig(
transducer: sherpa_onnx.OnlineTransducerModelConfig(
encoder: await copyAssetFile(
'$modelDir/exp/encoder-epoch-12-avg-4-chunk-16-left-128.int8.onnx'),
decoder: await copyAssetFile(
'$modelDir/exp/decoder-epoch-12-avg-4-chunk-16-left-128.onnx'),
joiner: await copyAssetFile(
'$modelDir/exp/joiner-epoch-12-avg-4-chunk-16-left-128.onnx'),
),
tokens: await copyAssetFile('$modelDir/data/lang_char/tokens.txt'),
modelType: 'zipformer2',
);
case 3:
final modelDir = 'assets/sherpa-onnx-streaming-zipformer-fr-2023-04-14';
return sherpa_onnx.OnlineModelConfig(
transducer: sherpa_onnx.OnlineTransducerModelConfig(
encoder: await copyAssetFile(
'$modelDir/encoder-epoch-29-avg-9-with-averaged-model.int8.onnx'),
decoder: await copyAssetFile(
'$modelDir/decoder-epoch-29-avg-9-with-averaged-model.onnx'),
joiner: await copyAssetFile(
'$modelDir/joiner-epoch-29-avg-9-with-averaged-model.onnx'),
),
tokens: await copyAssetFile('$modelDir/tokens.txt'),
modelType: 'zipformer',
);
default:
throw ArgumentError('Unsupported type: $type');
}
}