1. acoustic_base.py
    1. prepare_nn_data(self, in_file_list_dict, out_file_list, in_dimension_dict, out_dimension_dict)
      1. in_file_list_dict
        1. in_file_list_dict['mgc'] = ['/afs/inf.ed.ac.uk/group/project/dnn_tts/data/nick/mgc/herald_001.mgc', '/afs/inf.ed.ac.uk/group/project/dnn_tts/data/nick/mgc/herald_002.mgc']
        2. in_file_list_dict['lf0'] = ['/afs/inf.ed.ac.uk/group/project/dnn_tts/data/nick/lf0/herald_001.lf0', '/afs/inf.ed.ac.uk/group/project/dnn_tts/data/nick/lf0/herald_002.lf0']
        3. in_file_list_dict['bap'] = ['/afs/inf.ed.ac.uk/group/project/dnn_tts/data/nick/bap/herald_001.bap', '/afs/inf.ed.ac.uk/group/project/dnn_tts/data/nick/bap/herald_002.bap']
      2. out_file_list
        1. 特征长度都是三倍于 in_dimsension
      3. in_dimension_dict
        1. 类似于: { 'mgc' : 50, 'lf0' : 1, 'bap' : 25}
      4. out_dimension_dict
        1. 类似于: { 'mgc' : 150, 'lf0' : 3, 'vuv' : 1, 'bap' : 75}
    2. prepare_data(self, in_file_list_dict, out_file_list, in_dimension_dict, out_dimension_dict)
    3. interpolate_f0(self, data)
      1. 计算f0 插值,如果已经计算过,此方法直接返回原值
    4. compute_dynamic_vector(self, vector, dynamic_win, frame_number)
      1. MFCC等只有静态特征,根据帧数和窗口大小(前后取几帧)来补充动态特征
    5. compute_dynamic_matrix(self, data_matrix, dynamic_win, frame_number, dimension)
      1. 调用compute_dynamic_vector方法计算整个矩阵的动态特征
  2. acoustic_composition.py
    1. AcousticComposition(AcousticBase)
      1. make_equal_frames(self, in_file_list, ref_file_list, in_dimension_dict)
        1. in_file_list
          1. utt文件列表,从二进制文件中读取内容
        2. ref_file_list
        3. in_dimension_dict
          1. 特征维度词典,每个utt文件都有一个对应的项
        4. 将输入文件中每一项与对应的应用文件对齐
      2. prepare_data(self, in_file_list_dict, out_file_list, in_dimension_dict, out_dimension_dict)
      3. acoustic_decomposition(self, in_file_list, out_dimension_dict, file_extension_dict)
        1. 基本没有用
  3. acoustic_normalisation.py
    1. load_cmp_file(self, file_name)
      1. 读入HTK格式的cmp文件,并解析出 mgc,bap,lf0
    2. interpolate_f0(self, data)
      1. 与acoustic_base方法重复
    3. compute_delta(self, vector, delta_win)
      1. 与acoustic_base方法 compute_dynamic_vector基本重复(少一个参数)
    4. produce_nn_cmp(self, in_file_list, out_file_list)
      1. load_cmp_file的输入文件是静态特征的cmp文件,此方法添加动态特征之后,重新存储为二进制文件
  4. label_composer.py
    1. load_label_configuration(self, filename)
      1. 载入用户自定义的 label配置文件
    2. compute_label_dimension()
      1. 主要是计算label_dimension
      2. 很多特征都没有实现
  5. label_modifier.py
    1. HTSLabelModification
      1. check_silence_pattern(self, label)
        1. 检查 label字符中是否存在 静音 格式。静音格式为 -#+
      2. modify_duration_labels(self, in_gen_label_align_file_list, gen_dur_list, gen_label_list)
      3. modify_dur_from_state_alignment_labels(self, label_file_name, gen_dur_file_name, gen_lab_file_name)
        1. 在 状态 对齐lab中添加时间信息
          1. 默认有5个状态
        2. label_file_name
          1. 无时间信息的标注文件
        3. gen_dur_file_name
          1. 标注文件对应的时间信息文件,二进制
        4. gen_lab_file_name
          1. 最后生成带时间信息的,完整的标注lab文件
      4. modify_dur_from_phone_alignment_labels(self, label_file_name, gen_dur_file_name, gen_lab_file_name)
        1. 在 音素 对齐lab中添加时间信息
        2. label_file_name
          1. 无时间信息的标注文件
        3. gen_dur_file_name
          1. 标注文件对应的时间信息文件,二进制
        4. gen_lab_file_name
          1. 最后生成带时间信息的,完整的标注lab文件
    2. 主要是在HTS的label格式中添加预测的时间信息
  6. label_normalisation.py
    1. LabelNormalisation
      1. extract_linguistic_features(self, in_file_name, out_file_name=None, label_type="state_align", dur_file_name=None)
    2. HTSLabelNormalisation(LabelNormalisation)
      1. prepare_dur_data(self, ori_file_list, output_file_list, label_type="state_align", feature_type=None, unit_size=None, feat_size=None)
        1. 抽取所有utt内容的时域特征
      2. extract_dur_features(self, in_file_name, out_file_name=None, label_type="state_align", feature_type=None, unit_size=None, feat_size=None)
      3. extract_dur_from_state_alignment_labels(self, file_name, feature_type, unit_size, feat_size)
        1. 从状态对齐(5个状态)的lab文件中抽取时间信息和其他特征,写入到特征矩阵中
      4. extract_dur_from_phone_alignment_labels(self, file_name, feature_type, unit_size, feat_size)
        1. 从 音素 对齐的lab文件中抽取时间信息和其他特征,写入到特征矩阵中
      5. load_labels_with_phone_alignment(self, file_name, dur_file_name)
      6. load_labels_with_state_alignment(self, file_name)
      7. extract_durational_features(self, dur_file_name=None, dur_data=None)
      8. compute_coarse_coding_features(self, num_states)
      9. extract_coarse_coding_features_relative(self, phone_duration)
      10. extract_coarse_coding_features_absolute(self, phone_duration)
      11. pattern_matching(self, label)
      12. pattern_matching_binary(self, label)
      13. pattern_matching_continous_position(self, label)
      14. load_question_set(self, qs_file_name)
      15. load_question_set_continous(self, qs_file_name)
      16. wildcards2regex(self, question, convert_number_pattern=False)
      17. 将HTS格式的标签转换为连续值或二进制值,并以float32格式存储为二进制
    3. HTSDurationLabelNormalisation(HTSLabelNormalisation)
      1. load_labels_with_state_alignment(self, file_name, add_frame_features=False)
  7. linguistic_base.py
    1. perform_normalisation(self, ori_file_list, output_file_list, label_type="state_align", dur_file_list=None)
      1. 多线程,规范化每个原始语言数据文件内容到输出文件
    2. extract_linguistic_features(self, in_file_name, out_file_name, label_type, dur_file_name=None)
  8. feature_normalisation_base.py
    1. FeatureNormBase
      1. feature_normalisation
      2. feature_denormalisation
      3. normal_standardization(self, in_file_list, out_file_list, feature_dimension)
        1. 规范化
      4. find_min_max_values(self, in_file_list, start_index, end_index)
        1. 计算文件列表中所有特征的最大最小值,并存储到对应vector中
      5. compute_mean(self, file_list, start_index, end_index)
        1. 计算整个文件列表中所有特征的均值,start_index和end_index都是特征维
      6. compute_std(self, file_list, mean_vector, start_index, end_index)
        1. 计算整个文件列表中所有特征的标准差,start_index和end_index都是特征维
  9. mean_variance_norm.py
    1. MeanVarianceNorm(FeatureNormBase)
      1. feature_normalisation(self, in_file_list, out_file_list)
      2. feature_denormalisation(self, in_file_list, out_file_list, mean_vector, std_vector)
      3. load_mean_std_values(self, acoustic_norm_file)
      4. compute_mean(self, file_list, start_index, end_index)
      5. compute_std(self, file_list, mean_vector, start_index, end_index)
  10. merge_features.py
    1. MergeFeat
      1. merge_data(self, binary_label_file_list, new_feat_file_list, out_feat_file_list)
        1. 将两个特征文件合并到一个矩阵中,并写入到二进制文件
  11. min_max_norm.py
    1. MinMaxNormalisation
      1. load_min_max_values(self, label_norm_file)
        1. 从存储规范化的lab标注二进制文件中读取最大、最小矩阵
      2. find_min_max_values(self, in_file_list)
        1. 从二进制文件列表中找到最大最小值
      3. normalise_data(self, in_file_list, out_file_list)
      4. denormalise_data(self, in_file_list, out_file_list)
      5. normal_standardization(self, in_file_list, out_file_list)
      6. compute_mean(self, file_list)
      7. compute_std(self, file_list, mean_vector)
      8. 计算 .sp 文件的一些统计特性
  12. mlpg.py
    1. MLParameterGeneration
      1. build_theano_function_wdw(self)
        1. 用theano构建函数 wdw
      2. build_theano_function_wdu(self)
        1. 用theano构建函数 wdu
      3. generation(self, features, covariance, static_dimension)
        1. 使用GPU加速来生成一些音频处理的参数
      4. prepare_window(self, frame_number)
      5. prepare_D(self, frame_number, D_value)
      6. prepare_U(self, frame_number, U_vector)
  13. mlpg_fast.py
    1. MLParameterGenerationFast
      1. build_win_mats(self, windows, frames)
      2. build_poe(self, b_frames, tau_frames, win_mats, sdw=None)
      3. generation(self, features, covariance, static_dimension)
        1. 使用简单方法计算参数
  14. parameter_generation.py
    1. ParameterGeneration
      1. duration_decomposition(self, in_file_list, dimension, out_dimension_dict, file_extension_dict)
        1. 解析 频域 特征二进制文件,就是简单的将值>1的特征赋值为1,重新存储
      2. acoustic_decomposition(self, in_file_list, dimension, out_dimension_dict, file_extension_dict, var_file_dict, do_MLPG=True, cfg=None)
        1. 解析 声码 特征,lf0,vuv等特征,添加生成特征,写入二进制文件
      3. load_covariance(self, var_file_dict, out_dimension_dict)
      4. check_silence_pattern(self, label, silence_pattern)
  15. silence_remover.py
    1. SilenceRemover
      1. remove_silence(self, in_data_list, in_align_list, out_data_list, dur_file_list=None)
        1. 移除cmp文件中帧长度超过音频本身的,这些帧被认为是静音。
      2. check_silence_pattern(self, label)
        1. 检查标注文件 lab是否为 带静音的标注格式
      3. load_phone_alignment(self, alignment_file_name, dur_file_name=None)
        1. 从 音素对齐 文件中读入数据,只返回非静音的帧索引列表
      4. load_alignment(self, alignment_file_name, dur_file_name=None)
        1. 从 非音素对齐 (可能是状态对齐)文件中读入数据,只返回非静音帧索引列表
      5. trim_silence(in_list, out_list, in_dimension, label_list, label_dimension, silence_feature_index, percent_to_keep=0)
        1. 如果音频数据长度比标注文件lab长,则剪掉多余部分
        2. 如果标注文件比音频长,则用音频的最后一帧填充。始终保持标注文件恒定