个性化语音——总结

  1. 时间 2016.5.4~2016.7.20
  2. 成果:
    • 基于Voice Conversion的demo:VC demo百度网盘分享
    • 基于TTS adaption的demo:TTS adaption demo百度网盘分享
    • TTS demo:基于HMM的TTS demo百度网盘分享
  3. AHOcoder(Linux 64bit):AHOcoder、AHOdecoder
  4. 方案:
    • 基于Voice Conversion 的语音序列转换
      • 总体思路
        个性化语音——总结_第1张图片
    • 基于TTS的adaption(使用DNN或HTS demo中方法)
      个性化语音——总结_第2张图片
  5. 可行性分析

    • 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
  6. 关键点
    • 声音编码解码器: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算法
    • 。。。等
  7. 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));
  8. 神经网络方法介绍

    • 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
  9. 基于HMM的TTS原理,特定人adaption原理及代码

  10. 相关实验环境搭建
    • 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 安装和使用
  11. 相关项目链接
    • 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:SPTKref、SPTKexample
    • AHOcoder
    • EnglishHTSVoice
    • Multispeaker TTS
  12. 实验中存在的问题
    • GMM的matlab代码跑50句话时自动退出,没跑完
    • FFNN中LF0的两种转换方法,一种是依据GV进行adaption,另一种是跟随神经网络进行转换,后者实验中进行normalization和转换时数据异常,考虑是否对-1e+10这样的数据进行处理
    • LF0可以进行FFT变换
    • 考虑GV和delta constraint的参数生成算法
    • 产生delta的准确性:有两种,一种通过SPTK的delta工具,另一种通过hts中代码,实验中使用前一种,没验证其准确性。
  13. 神经网络相关资源
    • 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
  14. 相关论文
    • 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
  15. 其他参考资料
    • Mel-Frequency Cepstral Coefficients
    • 用 CNTK 搞深度学习 (一) 入门
    • 阿里巴巴BLSTM-DNN hybrid语音识别声学模型的第一个工业应用
    • 阿里云智能语音交互
    • 百度技术沙龙
    • 音频、语音与语言处理研究组
    • online text to speech
    • 开源语料库 openslr
    • Audacity音频编辑教程
  16. 相关研究主页
    • 孙立发
    • 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

你可能感兴趣的:(语音,个性化语音)