Tacotron2中文训练笔记

Tacotron2(NVIDIA版)中文训练笔记

Tacotron2项目地址:https://github.com/NVIDIA/tacotron2

Tacotron2英文训练笔记:https://blog.csdn.net/qq_44951010/article/details/124828260

从科大讯飞爬取音频数据:https://blog.csdn.net/qq_44951010/article/details/124829630

步骤

  1. 下载项目或通过git clone https://github.com/NVIDIA/tacotron2.git拉取项目

  2. 准备数据,可以用开源的中文数据集,也可以自己制造,自己制造过程如下:

    • 准备中文文本(我直接提取了标贝数据集的中文),放在一个txt文件中,格式如下:

      卡尔普陪外孙玩滑梯
      假语村言别再拥抱我
      宝马配挂跛骡鞍貂蝉怨枕董翁榻
      邓小平与撒切尔会晤
      老虎幼崽与宠物犬玩耍
      身长约五尺二寸五分或以上
      ...
      
    • 通过爬虫从科大讯飞爬取文本对应的音频,详见从科大讯飞爬取音频数据

    • 将音频转换为.wav格式,需要安装ffmpeg并添加到环境变量,代码参考:

      # -*- coding: utf-8 -*-
      from ffmpy import FFmpeg as mpy
      import os
      
      
      def trans(mp3_file, wav_folder):
          # 创建 wav 文件路径
          wav_file = os.path.join(wav_folder)
          wav_file = os.path.join(wav_file, 
              '{}.wav'.format(os.path.basename(mp3_file).strip().split('.')[0]))
          # 创建转换时的命令行参数字符串
          cmder = '-f wav -ac 1 -ar 16000'
          # 创建转换器对象
          mpy_obj = mpy(
              inputs = {
                  mp3_file: None
              },
              outputs = {
                  wav_file: cmder
              }
          )
          print('执行cmder命令: {}'.format(mpy_obj.cmd))
          # 执行转换
          mpy_obj.run()
      
      
      def mp3_to_wav(mp3_folder, wav_folder):
          for mp3_file in os.listdir(mp3_folder):
              mp3_file = os.path.join(mp3_folder, mp3_file)
              trans(mp3_file, wav_folder)
      
      
      if __name__ == '__main__':
          mp3_to_wav('mp3文件夹', 'wav文件夹')
      
    • 通过lazy_pinyin模块生成中文文本对应的拼音,代码示例:

      from pypinyin import lazy_pinyin, Style
      
      text = "我好菜啊"
      text = " ".join(lazy_pinyin(text, style=Style.TONE3))
      print(text)
      
  3. 得到中文文本的应的音频和拼音后,建它们的关系,即需要生成filelists目录下的三个文件,格式如下:
    在这里插入图片描述

  4. 打开hparams.py文件,将samling_rate(采样率)改为16000,然后就可以开始训练了

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值