语音合成(TTS)论文优选:DenoiSpeech: Denoising Text to Speech with Frame-Level Noise Modeling

浙江大学和亚洲微软合作的DenoiSpeech论文提出了一种针对少量带噪数据的高质量语音合成方法。通过帧级噪声建模,该系统能在不损害语音信号的情况下,有效利用噪声数据进行合成。实验表明,DenoiSpeech在去除噪声方面优于现有方案,适用于数据量有限的个性化定制场景。

声明:语音合成(TTS)论文优选系列主要分享论文,分享论文不做直接翻译,所写的内容主要是我对论文内容的概括和个人看法。如有转载,请标注来源。

欢迎关注微信公众号:低调奋进

DenoiSpeech: Denoising Text to Speech with Frame-Level Noise Modeling

本篇文章是浙江大学,亚洲微软在2020.12.18更新的文章,主要做少数据量带噪数据进行高质量合成的研究,本文主要思想是对帧级别的噪声进行学习,学习粒度更小,结果更好,具体的文章链接

https://arxiv.org/pdf/2012.09547.pdf (这种的研究最主要的应用还是20多句话的个性化定制)

1 背景

虽然现在的语音合成系统可以合成高质量的音频,但对训练的数据质量有极高的要求和较高的成本,因此使用大量的带噪数据进行语音合成引起产业界和工业界的关注,尤其是手机录制20句话的个性化定制。目前,对于带噪数据的训练主要包含两种方案:1)使用去噪算法进行去噪,这种方法也会造成语音信号的损伤;2)添加noise embedding来标注noise类型,但该种方法是句子级别。本文提出了帧级别的noise标注,使用带噪数据能够获取较干净的语音合成。

2 详细设计

 本文提出的系统为DenoiSpeech,如图1的(a)所示。首先,音素先输入到phoneme encoder中,然后输入到length regulator,该模块把音素级别特征扩展到帧级别。接下来,输出的特征进行noise 提取,具体的结构如(b)(c)(d)所示,为了更好获取noise表征,添加了aversarial CTC模块。最后进行mel特征的生成。该算法的训练和推理的流程如算法1所示,训练的时候先训练noise模块,然后再和TTS联合训

语言引导去噪网络(Lgdn)用于视频语言建模,是一种将语言信息融入视频处理以提升视频语言建模效果的技术。在视频语言建模任务中,需要处理视频中的视觉信息和与之相关的语言描述信息,而Lgdn通过利用语言信息来引导去噪过程,帮助模型更好地理解视频内容与语言之间的关联。 具体而言,Lgdn可能通过以下方式工作:首先,语言信息被编码成特定的特征表示,这些特征可以反映语言的语义和上下文信息。然后,在视频处理阶段,这些语言特征会被引入到去噪网络中,指导网络去除视频中的噪声,同时保留与语言描述相关的关键视觉信息。这样,模型可以更准确地学习视频和语言之间的对齐关系,从而提高视频语言建模的性能,例如在视频字幕生成、视频问答等任务中表现更优。 ```python # 以下是一个简单的伪代码示例,展示Lgdn可能的工作流程 import torch import torch.nn as nn # 假设这是一个简单的语言编码器 class LanguageEncoder(nn.Module): def __init__(self, input_dim, hidden_dim): super(LanguageEncoder, self).__init__() self.fc = nn.Linear(input_dim, hidden_dim) def forward(self, language_input): return self.fc(language_input) # 假设这是一个简单的视频去噪网络 class VideoDenoisingNetwork(nn.Module): def __init__(self, video_input_dim, language_hidden_dim, output_dim): super(VideoDenoisingNetwork, self).__init__() self.fc1 = nn.Linear(video_input_dim + language_hidden_dim, output_dim) def forward(self, video_input, language_features): combined_input = torch.cat((video_input, language_features), dim=1) return self.fc1(combined_input) # 实例化模型 language_encoder = LanguageEncoder(input_dim=100, hidden_dim=50) video_denoiser = VideoDenoisingNetwork(video_input_dim=200, language_hidden_dim=50, output_dim=200) # 模拟输入 language_input = torch.randn(1, 100) video_input = torch.randn(1, 200) # 编码语言信息 language_features = language_encoder(language_input) # 进行视频去噪 denoised_video = video_denoiser(video_input, language_features) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫永强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值