Flutter Config toJson/fromJson (#1893)
This commit is contained in:
committed by
GitHub
parent
808587accd
commit
70742b69ec
@@ -16,11 +16,25 @@ class OnlineTransducerModelConfig {
|
||||
this.joiner = '',
|
||||
});
|
||||
|
||||
factory OnlineTransducerModelConfig.fromJson(Map<String, dynamic> json) {
|
||||
return OnlineTransducerModelConfig(
|
||||
encoder: json['encoder'] as String? ?? '',
|
||||
decoder: json['decoder'] as String? ?? '',
|
||||
joiner: json['joiner'] as String? ?? '',
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'OnlineTransducerModelConfig(encoder: $encoder, decoder: $decoder, joiner: $joiner)';
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'encoder': encoder,
|
||||
'decoder': decoder,
|
||||
'joiner': joiner,
|
||||
};
|
||||
|
||||
final String encoder;
|
||||
final String decoder;
|
||||
final String joiner;
|
||||
@@ -29,11 +43,23 @@ class OnlineTransducerModelConfig {
|
||||
class OnlineParaformerModelConfig {
|
||||
const OnlineParaformerModelConfig({this.encoder = '', this.decoder = ''});
|
||||
|
||||
factory OnlineParaformerModelConfig.fromJson(Map<String, dynamic> json) {
|
||||
return OnlineParaformerModelConfig(
|
||||
encoder: json['encoder'] as String? ?? '',
|
||||
decoder: json['decoder'] as String? ?? '',
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'OnlineParaformerModelConfig(encoder: $encoder, decoder: $decoder)';
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'encoder': encoder,
|
||||
'decoder': decoder,
|
||||
};
|
||||
|
||||
final String encoder;
|
||||
final String decoder;
|
||||
}
|
||||
@@ -41,11 +67,21 @@ class OnlineParaformerModelConfig {
|
||||
class OnlineZipformer2CtcModelConfig {
|
||||
const OnlineZipformer2CtcModelConfig({this.model = ''});
|
||||
|
||||
factory OnlineZipformer2CtcModelConfig.fromJson(Map<String, dynamic> json) {
|
||||
return OnlineZipformer2CtcModelConfig(
|
||||
model: json['model'] as String? ?? '',
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'OnlineZipformer2CtcModelConfig(model: $model)';
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'model': model,
|
||||
};
|
||||
|
||||
final String model;
|
||||
}
|
||||
|
||||
@@ -63,11 +99,42 @@ class OnlineModelConfig {
|
||||
this.bpeVocab = '',
|
||||
});
|
||||
|
||||
factory OnlineModelConfig.fromJson(Map<String, dynamic> json) {
|
||||
return OnlineModelConfig(
|
||||
transducer: OnlineTransducerModelConfig.fromJson(
|
||||
json['transducer'] as Map<String, dynamic>? ?? const {}),
|
||||
paraformer: OnlineParaformerModelConfig.fromJson(
|
||||
json['paraformer'] as Map<String, dynamic>? ?? const {}),
|
||||
zipformer2Ctc: OnlineZipformer2CtcModelConfig.fromJson(
|
||||
json['zipformer2Ctc'] as Map<String, dynamic>? ?? const {}),
|
||||
tokens: json['tokens'] as String,
|
||||
numThreads: json['numThreads'] as int? ?? 1,
|
||||
provider: json['provider'] as String? ?? 'cpu',
|
||||
debug: json['debug'] as bool? ?? true,
|
||||
modelType: json['modelType'] as String? ?? '',
|
||||
modelingUnit: json['modelingUnit'] as String? ?? '',
|
||||
bpeVocab: json['bpeVocab'] as String? ?? '',
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'OnlineModelConfig(transducer: $transducer, paraformer: $paraformer, zipformer2Ctc: $zipformer2Ctc, tokens: $tokens, numThreads: $numThreads, provider: $provider, debug: $debug, modelType: $modelType, modelingUnit: $modelingUnit, bpeVocab: $bpeVocab)';
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'transducer': transducer.toJson(),
|
||||
'paraformer': paraformer.toJson(),
|
||||
'zipformer2Ctc': zipformer2Ctc.toJson(),
|
||||
'tokens': tokens,
|
||||
'numThreads': numThreads,
|
||||
'provider': provider,
|
||||
'debug': debug,
|
||||
'modelType': modelType,
|
||||
'modelingUnit': modelingUnit,
|
||||
'bpeVocab': bpeVocab,
|
||||
};
|
||||
|
||||
final OnlineTransducerModelConfig transducer;
|
||||
final OnlineParaformerModelConfig paraformer;
|
||||
final OnlineZipformer2CtcModelConfig zipformer2Ctc;
|
||||
@@ -90,11 +157,23 @@ class OnlineModelConfig {
|
||||
class OnlineCtcFstDecoderConfig {
|
||||
const OnlineCtcFstDecoderConfig({this.graph = '', this.maxActive = 3000});
|
||||
|
||||
factory OnlineCtcFstDecoderConfig.fromJson(Map<String, dynamic> json) {
|
||||
return OnlineCtcFstDecoderConfig(
|
||||
graph: json['graph'] as String? ?? '',
|
||||
maxActive: json['maxActive'] as int? ?? 3000,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'OnlineCtcFstDecoderConfig(graph: $graph, maxActive: $maxActive)';
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'graph': graph,
|
||||
'maxActive': maxActive,
|
||||
};
|
||||
|
||||
final String graph;
|
||||
final int maxActive;
|
||||
}
|
||||
@@ -117,11 +196,52 @@ class OnlineRecognizerConfig {
|
||||
this.blankPenalty = 0.0,
|
||||
});
|
||||
|
||||
factory OnlineRecognizerConfig.fromJson(Map<String, dynamic> json) {
|
||||
return OnlineRecognizerConfig(
|
||||
feat: FeatureConfig.fromJson(
|
||||
json['feat'] as Map<String, dynamic>? ?? const {}),
|
||||
model: OnlineModelConfig.fromJson(json['model'] as Map<String, dynamic>),
|
||||
decodingMethod: json['decodingMethod'] as String? ?? 'greedy_search',
|
||||
maxActivePaths: json['maxActivePaths'] as int? ?? 4,
|
||||
enableEndpoint: json['enableEndpoint'] as bool? ?? true,
|
||||
rule1MinTrailingSilence:
|
||||
(json['rule1MinTrailingSilence'] as num?)?.toDouble() ?? 2.4,
|
||||
rule2MinTrailingSilence:
|
||||
(json['rule2MinTrailingSilence'] as num?)?.toDouble() ?? 1.2,
|
||||
rule3MinUtteranceLength:
|
||||
(json['rule3MinUtteranceLength'] as num?)?.toDouble() ?? 20.0,
|
||||
hotwordsFile: json['hotwordsFile'] as String? ?? '',
|
||||
hotwordsScore: (json['hotwordsScore'] as num?)?.toDouble() ?? 1.5,
|
||||
ctcFstDecoderConfig: OnlineCtcFstDecoderConfig.fromJson(
|
||||
json['ctcFstDecoderConfig'] as Map<String, dynamic>? ?? const {}),
|
||||
ruleFsts: json['ruleFsts'] as String? ?? '',
|
||||
ruleFars: json['ruleFars'] as String? ?? '',
|
||||
blankPenalty: (json['blankPenalty'] as num?)?.toDouble() ?? 0.0,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'OnlineRecognizerConfig(feat: $feat, model: $model, decodingMethod: $decodingMethod, maxActivePaths: $maxActivePaths, enableEndpoint: $enableEndpoint, rule1MinTrailingSilence: $rule1MinTrailingSilence, rule2MinTrailingSilence: $rule2MinTrailingSilence, rule3MinUtteranceLength: $rule3MinUtteranceLength, hotwordsFile: $hotwordsFile, hotwordsScore: $hotwordsScore, ctcFstDecoderConfig: $ctcFstDecoderConfig, ruleFsts: $ruleFsts, ruleFars: $ruleFars, blankPenalty: $blankPenalty)';
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'feat': feat.toJson(),
|
||||
'model': model.toJson(),
|
||||
'decodingMethod': decodingMethod,
|
||||
'maxActivePaths': maxActivePaths,
|
||||
'enableEndpoint': enableEndpoint,
|
||||
'rule1MinTrailingSilence': rule1MinTrailingSilence,
|
||||
'rule2MinTrailingSilence': rule2MinTrailingSilence,
|
||||
'rule3MinUtteranceLength': rule3MinUtteranceLength,
|
||||
'hotwordsFile': hotwordsFile,
|
||||
'hotwordsScore': hotwordsScore,
|
||||
'ctcFstDecoderConfig': ctcFstDecoderConfig.toJson(),
|
||||
'ruleFsts': ruleFsts,
|
||||
'ruleFars': ruleFars,
|
||||
'blankPenalty': blankPenalty,
|
||||
};
|
||||
|
||||
final FeatureConfig feat;
|
||||
final OnlineModelConfig model;
|
||||
final String decodingMethod;
|
||||
@@ -151,11 +271,27 @@ class OnlineRecognizerResult {
|
||||
OnlineRecognizerResult(
|
||||
{required this.text, required this.tokens, required this.timestamps});
|
||||
|
||||
factory OnlineRecognizerResult.fromJson(Map<String, dynamic> json) {
|
||||
return OnlineRecognizerResult(
|
||||
text: json['text'] as String,
|
||||
tokens: List<String>.from(json['tokens'] as List),
|
||||
timestamps: (json['timestamps'] as List)
|
||||
.map<double>((e) => (e as num).toDouble())
|
||||
.toList(),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'OnlineRecognizerResult(text: $text, tokens: $tokens, timestamps: $timestamps)';
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'text': text,
|
||||
'tokens': tokens,
|
||||
'timestamps': timestamps,
|
||||
};
|
||||
|
||||
final String text;
|
||||
final List<String> tokens;
|
||||
final List<double> timestamps;
|
||||
|
||||
Reference in New Issue
Block a user