paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav
tts style control
在 FastSpeech2 中,我们可以控制 duration、pitch 和 energy。
duration/speed:
表示音素的持续时间,当我们减少持续时间时,音频的速度会增加,当我们增加持续时间时,音频的速度会降低。简称音频速度。
音频速度,该值应设置在 0 到 3 之间。 默认值:1.0
pitch:
当我们将一个句子的音高设置为平均值并将音素设置为 1 时,我们将获得机器人风格的音色。
当我们提高成年女性的音高(具有固定的比例)时,我们会得到一种儿童风格的音色。
volume:
音频音量,该值应设置在 0 到 3 之间。 默认值: 1.0
paddlespeech tts cli:
am = acoustic model = 声学模型
voc = vocoder = 声码器
声学模型(am)是把语言特征转成音频的声学特征。
声码器(voc)源自人声编码器的缩写,又称语音信号分析合成系统,对声音进行分析与合成的系统,主要应用于合成人类语音。
声码器的主要功能是把声学特征转成可播放的语音波形。声码器的好坏直接决定了音频的音质高低,尤其是近几年来基于神经网络声码器的出现,使语音合成的质量提高一个档次。
目前,声码器大致可以分为基于相位重构的声码器和基于神经网络的声码器。基于相位重构的声码器主要因为TTS使用的声学特征(mel特征等等)已经损失相位特征,因此使用算法来推算相位特征,
并重构语音波形。基于神经网络的声码器则是直接把声学特征和语音波形做mapping,因此合成的音质更高。目前,比较流行的神经网络声码器主要包括wavenet、wavernn、melgan、waveglow、fastspeech和lpcnet等等。
其中,lpcent兼具复杂度低、合成音质高等优点,因此受到学术界和工业界的关注。
默认的声学模型(am)是 Fastspeech2,默认的声码器(voc)是 Parallel WaveGAN.
--input 必填,待合成生成音频的文本内容。
--am {speedyspeech_csmsc,fastspeech2_csmsc,fastspeech2_ljspeech,fastspeech2_aishell3,fastspeech2_vctk,tacotron2_csmsc,tacotron2_ljspeech} 选择 tts 任务的声学模型类型。
--am_config 声学模型的配置。 为 None 时使用默认配置。
--am_stat 训练声学模型时用于归一化频谱图的均值和标准差。
--phones_dict 电话词汇字典。
--tones_dict 音调词汇字典。
--speaker_dict 说话者字典。
--spk_id 说话人 id,用于多说话人语音合成,默认值: 0。
--voc {pwgan_csmsc,pwgan_ljspeech,pwgan_aishell3,pwgan_vctk,mb_melgan_csmsc,style_melgan_csmsc,hifigan_csmsc,hifigan_ljspeech,hifigan_aishell3,hifigan_vctk,wavernn_csmsc} 选择 tts 任务的声码器类型
--voc_config 声码器的配置。为 None 时使用默认配置。
--voc_cpkt 声码器的检查点文件。
--voc_stat 训练声码器时用于归一化频谱图的均值和标准差。
--lang 选择模型语言。 zh 或 en
--device 选择设备来执行模型推理。
--output 输出音频文件的磁盘存储路径。
-d, --job_dump_result 将任务结果保存到文件中。
-v, --verbose 增加当前任务的记录器详细程度。
在通过修改 --am
和 --voc
后,最终输出的音频文件并没有什么变化,可能这两块不是改变音色的配置吧。
不知道如果修改音频的配置,比如 speed、pitch、volume 等,可能是在 --voc-config
中修改,但没有找到示例文件或文档说明。