ModelConfig.fromJson constructor

ModelConfig.fromJson(
  1. Map<String, Object?> json
)

Implementation

factory ModelConfig.fromJson(Map<String, Object?> json) {
  final plbert = json['plbert'] as Map<String, Object?>;
  final quantRoot =
      (json['quantization'] ?? json['quantization_config'])
          as Map<String, Object?>;
  return ModelConfig(
    hiddenDim: (json['hidden_dim'] as num).toInt(),
    maxConvDim: (json['max_conv_dim'] as num).toInt(),
    maxDur: (json['max_dur'] as num).toInt(),
    nLayer: (json['n_layer'] as num).toInt(),
    nMels: (json['n_mels'] as num).toInt(),
    nToken: (json['n_token'] as num).toInt(),
    styleDim: (json['style_dim'] as num).toInt(),
    textEncoderKernelSize: (json['text_encoder_kernel_size'] as num).toInt(),
    asrResDim: (json['asr_res_dim'] as num).toInt(),
    plbert: AlbertModelArgs.fromJson(
      plbert,
      vocabSize: (json['n_token'] as num).toInt(),
    ),
    istftnet: Map<String, Object?>.from(
      json['istftnet'] as Map<String, Object?>,
    ),
    quantization: KittenQuantConfig.fromJson(quantRoot),
    sampleRate: (json['sample_rate'] as num? ?? 24000).toInt(),
    decoderOutDim: (json['decoder_out_dim'] as num?)?.toInt(),
    voicesPath: json['voices_path'] as String? ?? 'voices.npz',
    speedPriors: _readDoubleMap(json['speed_priors']),
    voiceAliases: _readStringMap(json['voice_aliases']),
    modelPath: json['model_path'] as String?,
    activationQuantModules:
        (json['activation_quant_modules'] as List<Object?>? ??
                const <Object?>[])
            .whereType<String>()
            .toList(growable: false),
  );
}