CS-TACOTRON的PYTORCH实现,这是一种基于TACOTRON的端到端生成型TTS模型的代码切换语音合成。有关Tacotron的常规版本,请参阅此仓库。
随着最近的机器学习文本到语音模型的广泛成功,关于综合现实语音的有希望的结果证明了机器可以合成类似人类的声音的能力。但是,在中文英语密码转换文本到语音综合的领域几乎没有取得进展,在此过程中,机器必须学习以多语言方式处理输入和输出。当扬声器在两种或多种语言之间交替,如今人们在日常生活中以代码开关语言进行交流时,就会发生代码切换,因此必须开发出口语技术,例如TTS来处理多语言输入和输出。
在这项工作中,我们提出了基于最先进的端到端文本到语音生成模型TaCotron(Wang等,2017)构建的代码转换Tacotron。 CS-TACOTRON能够合成以RAW CS文本为条件的代码转换语音。给定CS文本和音频对,我们的模型可以通过适当的数据预处理进行端到端培训。除了图尔莫尔,我们在讲课中训练模型,这是一种基于中文的英语密码开关数据集,该数据集源自台湾大学(NTU)提供的课程数字信号处理(DSP)。我们提出了几种关键的实施技术,以使Tacotron模型在这项具有挑战性的多语言语音生成任务上表现良好。 CS-TACOTRON具有从CS文本中产生CS演讲的能力,并以LecturedSp的扬声器的风格生动地说话。
有关此工作的更多详细信息,请参见Report.pdf 。
欢迎拉动请求!
CS-TACOTRON的音频样本。以下所有短语在培训期间都看不见。
安装Python 3。
根据您的平台安装最新版本的Pytorch 。为了获得更好的性能,请在可行的情况下使用GPU支持(CUDA)安装。该代码可与Pytorch 1.0和更高版本一起使用。
(可选)根据您的平台安装最新版本的TensorFlow。这可以是可选的,但是现在需要进行语音处理。
安装要求:
pip3 install -r requirements.txt
警告:您需要根据平台安装火炬和TensorFlow / TensorFlow-GPU。在这里,我们列出了构建此项目时使用的Pytorch和TensorFlow版本。
python3 test.py --interactive --plot --long_input --model 470000
python3 test.py --plot --model 480000 --test_file_path ../data/text/test_sample.txt
* '--long_input' is optional to add
注意:我们在自己的数据集上训练了我们的模型:lecturedsp。目前,该数据集无法公开发布,并且仍然是实验室中的私人集合。有关此数据集的更多信息,请参见“ Report.pdf”。
下载您选择的代码开关数据集。
将数据集解开为~/data/text和~/data/audio 。
解开包装后,您的数据树应该看起来像这样的默认路径:
./CS-Tacotron
|- data
|- text
|- train_sample.txt
|- test_sample.txt
|- audio
|- sample
|- audio_sample_*.wav
|- ...
注意:对于以下部分,根据数据集的文件名设置路径,这只是一些示例数据的演示。数据集的格式应匹配所提供的示例数据以使该代码工作。
使用src/preprocess.py预处理文本数据:
python3 preprocess.py --mode text --text_input_raw_path ../data/text/train_sample.txt --text_pinyin_path '../data/text/train_sample_pinyin.txt'
使用src/preprocess.py进行预处理数据:
python3 preprocess.py --mode audio --audio_input_dir ../data/audio/sample/ --audio_output_dir ../data/audio/sample_processed/ --visualization_dir ../data/audio/sample_visualization/
音频预处理差异的可视化:
使用src/preprocess.py从文本和音频中制作模型的元文件:
python3 preprocess.py --mode meta --text_pinyin_path ../data/text/train_sample_pinyin.txt --audio_output_dir ../data/audio/sample_processed/
使用src/train.py训练模型
python3 train.py
可调超参数可在src/config.py中找到。您可以通过编辑文件来调整这些参数并设置。建议使用默认的超参数用于lecturedsp和其他中文英语代码切换数据。
使用TensorBoardX(可选)监视器
tensorboard --logdir 'path to log dir'
培训师默认情况下每2000个步骤一次倾倒音频和对齐。您可以在CS-tacotron/ckpt中找到这些。
我们要归功于Yamamoto Ryuichi的工作,Yamamoto是Tacotron的精彩实施,我们主要基于我们的工作。
我们显示了模型测试阶段的对齐图,其中第一个显示了单语中文输入的对齐,第二个是中文 - 英语代码转换输入,第三个是单语言英语输入。