FastSpeech2中文音频合成编码器模型

FastSpeech2模型的语音编码器部分,用于将文本转换编码特征,适用于kendryte系列K230/K230D芯片

# FastSpeech2模型编码器部分 ## 概述 本模型是FastSpeech2模型的语音编码器部分,用于将文本转换为编码特征。 模型输入形状为[1]和[1,50],输出形状为[1,50,256]、[1,50]。分别表示每个音素的编码特征(256维)和每个音素重复长度。 ## 转换脚本说明 本模型的转换脚本为`convert_kmodel.py`,使用方法如下: ```bash python convert_kmodel.py --target k230 --model fastspeech2_encoder.onnx --ptq_option 2 --calib_dir ./calibration_data --sample_count 100 ``` 参数说明: | 参数 | 说明 | | --- | --- | | `--target` | 目标芯片,默认值为`k230`,可选`k230`和`cpu`,选择`cpu`时不存在量化过程 | | `--model` | 输入的onnx模型路径 | | `--ptq_option` | 量化过程的校准方式和精度,默认值为0,表示默认校准方式为 `Noclip`,精度为权重`uint8`,数据`uint8` | | `--calib_dir` | 校准数据集目录,默认值为`./calibration_data` | | `--sample_count` | 校准数据集样本数量,默认值为20 | ## 参数说明 在使用nncase转换kmodel的过程中,最重要的两部分参数为编译选项部分和量化选项部分,当前模型这两部分参数设置如下表所示: - **编译选项参数说明** | 参数 | 设置值|说明| | --- | --- | --- | |`compile_options.target`|`k230`|编译目标硬件,这里选择k230| |`compile_options.preprocess`|`False`|是否将部分预处理封装进模型内部,这里设置为False| |`compile_options.swapRB`|`False`|当开启预处理时,是否交换输入的RB通道,这里设置为False,不交换RB通道,这里的设置看模型需要什么顺序和数据源是什么顺序| |`compile_options.input_shape`|`[[1],[1,50]]`|设置模型输入形状为[1]和[1,50]| |`compile_options.input_type`|`float32`|当开启预处理时,指定输入数据类型为`float32`| |`compile_options.input_range`|`[0,1]`|当开启预处理时,指定反量化后输入数据范围,这里设置为[0,1]| |`compile_options.mean`|`[0.485, 0.456, 0.406]`|当开启预处理时,指定输入数据前处理标准化的均值,这里设置为[0.485, 0.456, 0.406]| |`compile_options.std`|`[0.229, 0.224, 0.225]`|当开启预处理时,指定输入数据前处理标准化的标准差,这里设置为[0.229, 0.224, 0.225]| |`compile_options.input_layout`|``|不指定输入数据布局| |`compile_options.output_layout`|``|不指定输出数据布局| - **量化选项参数说明** | 参数 | 设置值|说明| | --- | --- | --- | |`ptq_options.samples_count`|`100`|量化时使用校准数据的数量| |`ptq_options.calibrate_method`|`Noclip`|指定量化校准方法为`Noclip`| |`ptq_options.w_quant_type`|`uint8`|指定权重量化精度为`uint8`| |`ptq_options.quant_type`|`int16`|指定数据量化精度为`int16`| ## 输出结果 模型转换完成后,将在当前目录生成同名的 `fastspeech2_encoder.kmodel` 文件。

查看完整页面