Flutter Config toJson/fromJson (#1893)

This commit is contained in:
Grey Faulkenberry, MD MPH
2025-02-25 01:43:48 -05:00
committed by GitHub
parent 808587accd
commit 70742b69ec
11 changed files with 817 additions and 17 deletions

View File

@@ -14,11 +14,33 @@ class SileroVadModelConfig {
this.windowSize = 512,
this.maxSpeechDuration = 5.0});
factory SileroVadModelConfig.fromJson(Map<String, dynamic> json) {
return SileroVadModelConfig(
model: json['model'] as String? ?? '',
threshold: (json['threshold'] as num?)?.toDouble() ?? 0.5,
minSilenceDuration:
(json['minSilenceDuration'] as num?)?.toDouble() ?? 0.5,
minSpeechDuration:
(json['minSpeechDuration'] as num?)?.toDouble() ?? 0.25,
windowSize: json['windowSize'] as int? ?? 512,
maxSpeechDuration: (json['maxSpeechDuration'] as num?)?.toDouble() ?? 5.0,
);
}
@override
String toString() {
return 'SileroVadModelConfig(model: $model, threshold: $threshold, minSilenceDuration: $minSilenceDuration, minSpeechDuration: $minSpeechDuration, windowSize: $windowSize, maxSpeechDuration: $maxSpeechDuration)';
}
Map<String, dynamic> toJson() => {
'model': model,
'threshold': threshold,
'minSilenceDuration': minSilenceDuration,
'minSpeechDuration': minSpeechDuration,
'windowSize': windowSize,
'maxSpeechDuration': maxSpeechDuration,
};
final String model;
final double threshold;
final double minSilenceDuration;
@@ -28,23 +50,43 @@ class SileroVadModelConfig {
}
class VadModelConfig {
VadModelConfig(
{this.sileroVad = const SileroVadModelConfig(),
this.sampleRate = 16000,
this.numThreads = 1,
this.provider = 'cpu',
this.debug = true});
@override
String toString() {
return 'VadModelConfig(sileroVad: $sileroVad, sampleRate: $sampleRate, numThreads: $numThreads, provider: $provider, debug: $debug)';
}
VadModelConfig({
this.sileroVad = const SileroVadModelConfig(),
this.sampleRate = 16000,
this.numThreads = 1,
this.provider = 'cpu',
this.debug = true,
});
final SileroVadModelConfig sileroVad;
final int sampleRate;
final int numThreads;
final String provider;
final bool debug;
factory VadModelConfig.fromJson(Map<String, dynamic> json) {
return VadModelConfig(
sileroVad: SileroVadModelConfig.fromJson(
json['sileroVad'] as Map<String, dynamic>? ?? const {}),
sampleRate: json['sampleRate'] as int? ?? 16000,
numThreads: json['numThreads'] as int? ?? 1,
provider: json['provider'] as String? ?? 'cpu',
debug: json['debug'] as bool? ?? true,
);
}
Map<String, dynamic> toJson() => {
'sileroVad': sileroVad.toJson(),
'sampleRate': sampleRate,
'numThreads': numThreads,
'provider': provider,
'debug': debug,
};
@override
String toString() {
return 'VadModelConfig(sileroVad: $sileroVad, sampleRate: $sampleRate, numThreads: $numThreads, provider: $provider, debug: $debug)';
}
}
class SpeechSegment {