def METHOD_NAME(self, cmvn_file, backbone, input_dim, output_dim):
    if cmvn_file is not None:
        mean, istd = load_kaldi_cmvn(cmvn_file)
        global_cmvn = GlobalCMVN(
            torch.from_numpy(mean).float(),
            torch.from_numpy(istd).float(),
        )
    else:
        global_cmvn = None
    hidden_dim = 128
    preprocessing = None
    input_affine_dim = backbone['input_affine_dim']
    num_layers = backbone['num_layers']
    linear_dim = backbone['linear_dim']
    proj_dim = backbone['proj_dim']
    left_order = backbone['left_order']
    right_order = backbone['right_order']
    left_stride = backbone['left_stride']
    right_stride = backbone['right_stride']
    output_affine_dim = backbone['output_affine_dim']
    backbone = FSMN(input_dim, input_affine_dim, num_layers, linear_dim,
                    proj_dim, left_order, right_order, left_stride,
                    right_stride, output_affine_dim, output_dim)
    classifier = None
    activation = None
    kws_model = KWSModel(input_dim, output_dim, hidden_dim, global_cmvn,
                         preprocessing, backbone, classifier, activation)
    return kws_model