您的位置:首页 > 其它

个性化语音——总结

2016-07-21 09:33 951 查看
时间 2016.5.4~2016.7.20

成果:

基于Voice Conversion的demo:VC demo百度网盘分享

基于TTS adaption的demo:TTS adaption demo百度网盘分享

TTS demo:基于HMM的TTS demo百度网盘分享

AHOcoder(Linux 64bit):AHOcoderAHOdecoder

方案:

基于Voice Conversion 的语音序列转换

总体思路



基于TTS的adaption(使用DNN或HTS demo中方法)



可行性分析

Voice Conversion 方法可以尝试,但效果达不到在工业界上应用的标准,学术界有利用GMM、DNN、RNN进行特征转换的尝试,最少能利用5句话进行训练,demo效果一般。链接如下:

微软:DNN VC

香港科技大学:BLSTM VC

印度OHSU:Joint AE VC

日本东京大学:GMM VC

法国tut:基于DKPL回归

Voice Morphing:Voice Morphing

TTS方法较VC方法效果更好,百度和微软使用,如百度的个性化TTS,没有找到相关产品链接。学术界的demo链接如下:

日本Kobayashi 实验室:Speaker-Independent HMM-Based Voice Conversion

爱丁堡大学:Listening test materials for “A study of speaker adaptation for DNN-based speech synthesis”

TOKUDA and NANKAKU LABORATORY

关键点

声音编码解码器:AHOcoder,STRAIGHT,HTK,Sphinx,Kaldi

时间序列对齐算法:SPTK中dtw,或一些matlab代码

参数生成算法:考虑global variance的parameter generation algorithm,参考hts_engine源码

模型:GMM,FFNN,SJAE,RNN(BLSTM)

TTS:HMM+神经网络

adaption算法:参考hts_engine源码,或一些基于DNN的adaption算法

。。。等

GMM方法介绍

对cmu语料库,使用wav2raw将16khz的raw文件转换为wav文件,再使用sox命令将wav文件转换为AHOcoder所要求的格式的文件

用./ahocoder .wav .lf0 .mgc生成lf0和mgc文件,可分别选5句话作为train,其余作为test

使用adaption.sh对lf0进行adaption转换,首先要选好train和test的list,之后进行adaption

对mgc进行dtw

生成gmm模型function [G,P]=gmmtrain(X,m)

进行blfwas转换训练function [alfa,R]=blfwastrain(X,Y,P)

进行测试:

对向量分类function [P,L]=gmmprobs(G,X)

进行blf转换,并把c0加进去,function Y=blfwasconv(X,alfa,R,P));

神经网络方法介绍

lf0 adaption 同上

对mgc进行dtw

生成train、test数据:

生成模型

model = nn.Sequential()
model:add(nn.Linear(featuresize, 1600))
model:add(nn.Sigmoid())
model:add(nn.Linear(1600,1600))
model:add(nn.Sigmoid())
model:add(nn.Linear(1600,featuresize))
parameters,gradParameters = model:getParameters()
criterion = nn.MSECriterion()


模型训练function train(dataset, epoch), epoch至少30

模型测试

gmm和ffnn比较

对要进行test的句子进行dtw

将dtw后的mgc,生成与之匹配的lf0

将dtw后的mgc放入模型中训练

比较gmm和ffnn的loss

结果:

sentence 201 gmmloss 0.036529385447057
sentence 201 ffnnloss 0.046960693755606
sentence 202 gmmloss 0.035971315142976
sentence 202 ffnnloss 0.045717428320603
sentence 203 gmmloss 0.036316870476923
sentence 203 ffnnloss 0.048515932974621
sentence 204 gmmloss 0.03515496055483
sentence 204 ffnnloss 0.044821883321134
sentence 205 gmmloss 0.035342631346648
sentence 205 ffnnloss 0.046809512919579
ffnn和gmm的LSD比较:
gmm 201 :2.2984 ffnn 201 : 2.2333
gmm 202 :2.3307 ffnn 202 : 2.6521
gmm 203 : 2.3779 ffnn 203 : 2.5498
gmm 204 : 2.4843 ffnn 204 : 2.3554
gmm 205 : 2.3104 ffnn 205 : 2.3458


基于HMM的TTS原理,特定人adaption原理及代码

相关实验环境搭建

AHOcoder:对声音要求,wav-pcm-uncompressed-16khz-16bit-mono。HTSdemo的老版本中的RAW文件是16khz的,新版本的RAW文件是48khz的。将MP3或wav文件转换为符合要求的文件所使用的命令:ffmpeg -i 111.mp3 -acodec pcm_s16le -ar 16000 out.wav 和 sox cmu_us_arctic_slt_a0001.wav -r 16000 -c 1 -b 16 cmu_us_arctic_slt_a0001-1.wav,若需将raw文件转换为wav文件,使用/usr/local/bin/raw2wav -s 48 -d . cmu_us_arctic_slt_a0001.raw 命令

HTS demo:参考HTS demo搭建

Matlab:参考Matlab安装

Torch:Torch安装

Audacity:ubuntu 录音软件audacity 安装和使用

相关项目链接

github

voice-conversion

dnnmapper

VoiceConversion

festival:Festival

HTK:

主页:HTK Speech Recognization Toolkit

Manual:HTKbook

HTS:

HTS Home

Slides:HTSslides

hts_engine:hts_engine API

CNTK:

主页:CNTK

讨论:Microsoft/CNTK

Tutorial:CNTK Tutorial

STRAIGHT:

官方:STRAIGHT, a speech analysis, modification and synthesis system

github:STRAIGHT

SPTK:

主页:Speech Signal Processing Toolkit (SPTK)

manual:SPTKrefSPTKexample

AHOcoder

EnglishHTSVoice

Multispeaker TTS

实验中存在的问题

GMM的matlab代码跑50句话时自动退出,没跑完

FFNN中LF0的两种转换方法,一种是依据GV进行adaption,另一种是跟随神经网络进行转换,后者实验中进行normalization和转换时数据异常,考虑是否对-1e+10这样的数据进行处理

LF0可以进行FFT变换

考虑GV和delta constraint的参数生成算法

产生delta的准确性:有两种,一种通过SPTK的delta工具,另一种通过hts中代码,实验中使用前一种,没验证其准确性。

神经网络相关资源

RNN资源博客 Recurrent Neural Network的经典论文、代码、课件、博士论文和应用汇总

Richard Socher

Deep learning:四十一(Dropout简单理解)

torch学习(六) rnn package

ZeroBrane Studio

Torch7 Tensor

lua的table库中的常用函数总结

Torch utility functions

Torch Module

Torch Transfer

Torch Simple Layers

Table Layers

LSTM implementation explained

Lua 菜鸟教程

Deep Learning with Torch

Torch7. Hello World, Neural Networks!

Deep Learning(深度学习)学习笔记整理系列之(六)

Deep Belief Networks

DBN(信息量较大)

我爱机器学习

【deep learning学习笔记】最近读的几个ppt(一)

神经网络模型随机梯度下降法—简单实现与Torch应用

机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)

How to normalize a signal to zero mean and unit variance?

Torch Serialization

Deep Learning with Torch: 7

Recurrent Neural Networks

TensorFlow seq2seq Library

Standford: Deep learning for Natural Language Processing

相关论文

Sequence Error(SE) Minimization Training of Neural Network for Voice Conversion

Voice Conversion Using RNN Pre-Trained by Recurrent Temporal Restricted Boltzmann Machines_files

Semi-supervised Training of a Voice Conversion Mapping Function using Joint-Autoencoder

voice conversion using deep bidirectional long short-term memory based recurrent neural networks

voice conversion based on maximum-likelihood estimation of spectral parameter trajectory

Bidirectional Recurrent Neural Networks

voice conversion using gmm with enhanced global variance

voice conversion algorithm based on gaussian mixture model with dynamic frequency warping of straaight spectrum

Simultaneous modeling of phonetic and prosodic parameters, and characteristic conversion for HMM-based text-to-speech systems

voice conversion using deep neural networks with speaker-independent pre-training

deep neural networks for acoustic modeling in speech recognition

A study of speaker adaptation for DNN-based

speech synthesis

其他参考资料

Mel-Frequency Cepstral Coefficients

用 CNTK 搞深度学习 (一) 入门

阿里巴巴BLSTM-DNN hybrid语音识别声学模型的第一个工业应用

阿里云智能语音交互

百度技术沙龙

音频、语音与语言处理研究组

online text to speech

开源语料库 openslr

Audacity音频编辑教程

相关研究主页

孙立发

TOKUDA and NANKAKU LABORATORY

Voice Conversion with Neural Network

Seyed Hamidreza (Hamid) Mohammadi

Junichi Yamagishi HTS demo

voice conversion introduction

爱丁堡大学武执正的个人主页

爱丁堡大学CSTR实验室

tomoki教授

Fernando Villavicencio教授

Junichi教授

MirjamWester教授

中科大陈凌辉

微软谢丰龙

ssn Speech Lab

coVoC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  个性化语音