【album】语音合成技术
持续更新中。
基础
语音合成(Text To Speech,TTS),将文字转化为语音的一种技术。
语音合成技术 - 知乎 (zhihu.com)
论文推介:Glow-WaveGAN—学习一种用于高质量语音合成的语音表征 (qq.com)
个性化
语音个性化定制(custom voice)是一项非常重要的文本到语音合成(text to speech, TTS)服务。其通过使用较少的目标说话人的语音数据,来微调(适配)一个源 TTS 模型,以合成目标说话人的声音。但当前语音个性化定制仍面临一系列挑战:1)为了支持不同类型的说话人,源 TTS 模型需要支持不同类型的声学条件,比如不同的口音、说话风格、录音环境等,这可能与训练源TTS模型使用的声音数据的声学条件并不相同;2)为了支持大量的说话人,需要减少声音定制过程中使用的目标说话人的数据以及适配参数,以实现高效的声音定制化。
AdaSpeech 1/2/3
2021年,微软亚洲研究院机器学习组和微软 Azure 语音团队合作推出了 AdaSpeech 1/2/3 系列工作,旨在实现更有泛化性且更高效的语音个性化定制:
1)AdaSpeech 1 (Adaptive Text to Speech for Custom Voice) 主要提升源 TTS 模型的鲁棒泛化性,以更好地支持不同类型的说话人;同时降低模型的适配参数量,以更好地支持更多数量的说话人。
2)AdaSpeech 2 (Adaptive Text to Speech with Untranscribed Data) 支持目标说话人仅使用无文本标注的语音数据进行声音的定制,实现了和有文本标注的语音数据相当的适配语音质量。
3)AdaSpeech 3 (Adaptive Text to Speech for Spontaneous Style) 主要针对自发风格的语音(spontaneous-style speech)设计了高效的定制化方法,以实现此类语音风格的定制。
AdaSpeech 1/2/3 系列相关研究论文已分别收录于 ICLR 2021 / ICASSP 2021 / INTERSPEECH2021 三个顶级学术会议。同时,该系列研究工作也被应用于微软 Azure TTS 语音合成技术,以构建更好的语音定制化服务。
详情可查看:https://speech.microsoft.com/customvoice
下图为adaspeech 1:
FastSpeech
FastSpeech: Fast, Robust and Controllable Text to Speech (arxiv.org)
xcmyz/FastSpeech: The Implementation of FastSpeech based on pytorch. (github.com)
语音合成 | FastSpeech:Fast,Robust and Controllable Text to Speech论文阅读_yiqiyuan17的博客-CSDN博客
论文阅读 FastSpeech_赫凯的博客-CSDN博客
2019年,浙江大学和微软亚洲研究院联合推出了一篇论文,关于快速的端到端的语音合成系统。
当前技术难点 | FastSpeech优点 |
---|---|
AR模型生成Mel频谱图的速度慢。E2E模型主要是使用因果卷积,all模型都会生成以先前生成的Mel频谱图为条件的Mel频谱图,以AR的方式生成Mel频谱图之后再通过声码器合成语音,而一段语音的Mel频谱图通常能到几百上千帧,合成速度较慢。 | Fast:通过并行生成Mel频谱图,加快合成过程。 |
合成的语音不健壮。E2E模型通常采用编码器-注意力-解码器机制进行自回归生成,由于序列生成的错误传播以及注意力对齐不准,导致出现重复和跳过。 | Robust:音素持续时间预测器确保音素与Mel频谱图之间的对齐,减少重大错误(跳过单词,重复单词)。 |
合成语音缺乏可控性。自回归的神经网络会自动逐个生成Mel频谱图,而不会明确地利用文本和语音之间的对齐。因此,通常很难直接控制生成语音的速度或者韵律停顿等。 | Controllable:加入长度调节器,通过延长或缩短音素持续时间来调节语音速度。通过在相邻音素之间添加间隔来控制部分韵律。 |
Tacotron/Tacotron2
TACOTRON:端到端的语音合成_左左左左想-CSDN博客
Tacotron&Tacotron2——基于深度学习的端到端语音合成模型 - 知乎 (zhihu.com)
Tacotron是第一个端对端的TTS神经网络模型,输入raw text,Tacotron可以直接输出mel-spectrogram,再利用Griffin-Lim算法就可以生成波形了。总体来说,模型和sequence-to-sequence模型非常相似,大体上由encoder和decoder组成,raw text经过pre-net, CBHG两个模块映射为hidden representation,之后decoder会生成mel-spectrogram frame。
实际上Tacotron的卖点主要是在end-to-end,其表现虽然比传统方法要好,但是相比Wavenet并没有明显的提升(甚至不如Wavenet),因此也就有了后面的Tacotron2。
Tacotron2
Tacotron2是由Google Brain 2017年提出来的一个语音合成框架。 Tacotron2:一个完整神经网络语音合成方法。模型主要由三部分组成: 1. 声谱预测网络:一个引入注意力机制(attention)的基于循环的Seq2seq的特征预测网络,用于从输入的字符序列预测梅尔频谱的帧序列。 2. 声码器(vocoder):一个WaveNet的修订版,用预测的梅尔频谱帧序列来生成时域波形样本。 3. 中间连接层:使用低层次的声学表征-梅尔频率声谱图来衔接系统的两个部分。
Tacotron 2 | PyTorch
The Tacotron 2 and WaveGlow model form a text-to-speech system that enables user to synthesise a natural sounding speech from raw transcripts without any additional prosody information. The Tacotron 2 model produces mel spectrograms from input text using encoder-decoder architecture. WaveGlow (also available via torch.hub) is a flow-based model that consumes the mel spectrograms to generate speech.
WaveGlow
发表于 ICASSP 2019会议。
WaveGlow不需要自回归的过程,只由一个网络构成,用一个损失函数进行训练,简单有效。
融合了wavenet和glow两个工作的新的神经网络架构。其中wavenet中的膨胀卷积层,仍然在waveglow中被使用。而glow的思想也被使用:基于流模型的(基于梅尔谱为memory指导的)一系列对正态噪音的建模构建最终的语音信号的输出。
目的:to provide fast, efficient, and high-quality audio synthesis。更快,更高效,以及更高质量的语音信号的输出。
WaveRNN
2018年,谷歌提出的语音合成算法,可应用在手机,嵌入式等资源比较少的系统。WaveRNN 采用了三种先进的计算方法去提高生成语音的质量同时保证模型很小。
前言
常见的语音合成声码器模型,如 WaveNet,是相对比较成熟的技术,其生成的语音质量接近自然人声。不过,在实际运用中,传统 WaveNet 模型也存在着诸多不足。一是 WaveNet 模型结构十分复杂,对计算力要求很高;二是 WaveNet 模型语音合成时间较长,在实际交互场景中难以满足用户对实时性的要求;三是随着智能语音应用场景的普及,智能语音合成平台需要对更多设备提供支持,工作负载加大,声码器模型的语音合成工作效能有待提升;四是对于企业而言,扩容带来的成本增加。
简介
语音合成 text-to-speech WaveRNN - 简书 (jianshu.com)
WaveRNN——基于神经网络的高速音频合成 - 知乎 (zhihu.com)
工作亮点:
- 该文提出了一个单层的RNN 网络架构,使用了两个softmax layer, 实现了当前最佳语音生成水准, 可以实时生成24kHz 16-bit的语音。
- 这篇文章采用了 weight pruning technique, 实现了96% sparsity.
- 这篇文章提出了高并行度生成语音算法,在语音生成中,把很长的序列生成折叠成若干个短的序列,每个短序列同时生成,进而提高了长序列的生成速度 (fold a long sequency into a batch of shorter sequences and allows one to generate multiple samples at once)
Espnet
2018年,Espnet团队开源了Espnet(end-to-end speech processing toolkit),可实现端到端 ASR和TTS系统。
Espnet特色
(1) 融合了Kaldi的数据处理和特征提取;
(2) 借助Pytorch跟Chainer,使用Python实现了端到端