Create a new HTK HMM model given a model and a mapping dictionary.

    :param input_model: The model to transform of type dict
    :param mapping: A dictionary from string -> list(string)
    :return: The transformed model of type dict

def map_hmms(input_model, mapping):
    """Create a new HTK HMM model given a model and a mapping dictionary.

    :param input_model: The model to transform of type dict
    :param mapping: A dictionary from string -> list(string)
    :return: The transformed model of type dict
    """

    output_model = copy.copy(input_model)

    o_hmms = []
    for i_hmm in input_model['hmms']:
        i_hmm_name = i_hmm['name']
        o_hmm_names = mapping.get(i_hmm_name, [i_hmm_name])

        for o_hmm_name in o_hmm_names:
            o_hmm = copy.copy(i_hmm)
            o_hmm['name'] = o_hmm_name

            o_hmms.append(o_hmm)

    output_model['hmms'] = o_hmms

    return output_model