网易云信变声技术之变调不变速算法

影视作品中经常出现各种有趣的音效,例如:机器人声、外星人声,甚至男声变女声等。这些好玩有趣的音效是如何实现的呢?在 RTC 领域又如何实现这些音效呢?本次分享将为您揭开变声技术以及变调不变速算法的神秘面纱。

作者:王志强 网易云信高级音视频算法工程师

一、变声技术需求

母庸置疑,娱乐业务对变声有着极大的需求。在疫情影响下,直播行业蓬勃发展。在国外以 Clubhouse 为代表的语聊房业务更是发展迅速。

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=NzA0ZDEyODZkZTQzODFjNjkyOTFhZWViNTUwYWE4MDZfQTdxYWhiYk1HZ1ZWa1BlYjhHeU04TDF1TjA2eTBWWFdfVG9rZW46Ym94Y25NVjUyd0c3QjdSOHVVWTZJR29SN1BjXzE2NDQ2NzAwMTc6MTY0NDY3MzYxN19WNA

Figure 1:clubhouse 软件下载量

上图是一张 Clubhouse 软件的下载量,在短短两个月的时间内,下载量翻了十倍之多。在国内,语聊房型的业务场景更是眼花缭乱。有电台房、交友房、相亲房和游戏陪玩房等等。在娱乐场景下,对变声的需求是非常大的,比如变出搞怪、恐怖、成熟的声音,甚至男声变女声等好玩有趣的声音。

除了娱乐业务外,在其他的一些业务场景中也存在着为了替用户保护隐私需要变声的潜在需求。例如在一些远程直播问诊的业务中,考虑到用户的隐私,需要对用户的声音做一些处理,在保持声音语义不丢失的情况下,改变声音音色,让对方听不出本人的声音。

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=OTk3MGZlOWI5ODIyNDk5MTk0MGRjODZhY2RiYjVlOWRfcjhqQkxVaXdNOWx4eXU1aHc3NTZMMUIzUDY3RXRDdzVfVG9rZW46Ym94Y25SN2l4RzdqREoyWU9RYzFiY1FXTkZjXzE2NDQ2NzAwMTc6MTY0NDY3MzYxN19WNA

Figure 2:远程医疗示例

2020 年注定是不平凡的一年,从年初疫情就已经感受到这个变化,今天能够到场和大家面对面交流也是很不容易的。看到海外人民现在还在水深火热中,我们要感谢祖国的强大。今年新冠疫情的突发,也让音视频业务得到一个井喷式的发展,特别是在家办公期间,视频会议成为每个人的刚需,也培养了用户使用视频会议的习惯。

二、变声技术简介

为了实现上述业务需求,就需要用到语音信号处理中的变声技术了。变声技术的音效具有模块性,一般来说,特定的变声效果需要特定的变声模块。在以前,这些音效会做成插件形式,在声卡等处理器上,有针对性的达到对应的效果。

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=YWZmYTA5OWMyMjYxY2JjOGQ3MzE4MWZjZWI5NmI1MzBfaWo4RkpZNkdUTTM2WVJnaHJ6c1E4b2VqckZrd3Z3RHpfVG9rZW46Ym94Y25zeVBqSzhRRFMxWlhjdFZBd3NXMjdnXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 3:音效插件

常见的音效有:

  • Tremolo(颤音),用低频信号调制语音,产生悠远飘忽的感觉;
  • Ring Modulation(环形调制),周期性幅度变化的低频信号调制语音,产生机器人音效。
  • Flanging(镶边),消除特定的谐波成分,产生干脆的音效;
  • Whisperization(耳语),改变语音信号的相位,产生外星人音效,;
  • 变调不变速算法改变语音语调,实现男声变女声等效果。
https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=OTYxYjg5ODAyNDhjYzI4OTkxMWI0N2Q2MDZmM2YzZTRfWnBIcTljU3Fqc3dWaFNYVWdVdTZ0MkZzU1l1YzVNZVZfVG9rZW46Ym94Y25EeGxnSHk2a3hLQ1ZCVFhYRnBaRmZjXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 4: 常见的音效

下面以 Tremolo、Flanging 和 Distortion 为例介绍常见的变声技术。

(一)Flanging

Flanging,即镶边的意思。Flanging 叠加原始信号和延时后的信号,抵消和加强某些谐波频率,进而在信号频谱上产生峰谷点。

基本实现原理如下:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=MmQyZjFjMjIyNGVlNzBiZGRkNmFkYjdhOGFiYjcyNWZfMDMxSEo0R0VDcFRCSUQ5MWZjOXlNNnpvcGhqQlRNeE9fVG9rZW46Ym94Y25hTGdiZjRITE9JUlFRSUpKdVVJMW9nXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 5:Flanging实现原理

增加和削弱的频谱如下:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=YTY2Nzk2OTlmYWY4YzlkYjY4OGJiN2NmZDczMmQxNTVfanpxeDcyZU5uTG9BQWZtOVh6dkFxaXRScUxkR0V2dDNfVG9rZW46Ym94Y25nV1lWem4zQWQ2eU1uQTVXRU5DbVpmXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 6:增强或削弱的频谱示意图

大家可以试听一下这种音效

(视频1)

(二)Tremolo

Tremolo,即颤音的意思。其实现原理是用低频信号调制原始语音信号,进而产生颤栗、悠远的感觉。其实现公式如下所示:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=MGZkZTU3YjYwMjlkMDY4N2EwM2Q1ZWYyZWU4ZTBjOGVfTlBJZHFqVTB0cXVXbTdLTVF5b3dBdzZNTTVlbXV1MU1fVG9rZW46Ym94Y25tRVN3WEFNOVBkUm9Qa2tXd2N6MGhGXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 7:Tremolo原理示意图

大家可以试听一下这种悠远的音效:

(音频文件)(处理前音频 音频1,处理后的音频 音频2)

(上方左侧为原始音频,右侧为处理后的音频)

(三)Distortion

Distortion,即失真的意思。在以前,收音机、电话机和广播播放出来的声音,存在一定的线性和非线性失真,进而产生特有的失真音效。在一些影视作品中,为了模仿这种效果,会使用一些失真器,让作品具备年代感。

简单的失真器原理如图所示:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=MTVlMTBiOTE4MTg3ZjliNzBjN2RjMTgzMzZlYjkwMjlfRDljN1RLaldzTkpLSTlJM3FXbHl2c2NuUlhpMW1TMGRfVG9rZW46Ym94Y25BeE5jVG1TY3BjclBpYUYzSVhFZExlXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 8:失真器原理示意图

对应公式如下:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=OGY5ZTQ0NTEzMDc0NGQ5ZDFjMjc1NDRjMjExNzZhNWJfZG1vMlMwR29SZDRmcHk0R2hWVmM1d1RZeklEREppTFRfVG9rZW46Ym94Y25MYXM1eGVoOXJIYXlQQ3EzenN1RlhlXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 10 失真器原理公式

其产生的谐波失真如下所示:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=NjdjODY4ODY0ZTllMWY1MjY5N2Q5NzhjNmUyYjM3N2NfU1ZUVjltSjJjTk5RYndlbUtzZHR0YUNDNFBRempNNE9fVG9rZW46Ym94Y25jSTZDR3N2YkN6Mkd3cnRLd2I1eWxmXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 11 谐波失真示意图

可以感受一下这种失真器的声效。

(音频文件)(处理前音频 音频3,处理后的音频 音频4)

(上方左侧为原始音频,右侧为处理后的音频)

三、网易云信变声技术

上述是影视作品中常见的变声技术,除了这些好玩有趣的音效外,网易云信还创造了非常多的变声效果,如下表:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=OTk0YTAzYWY3ODg4NmI3ZDVlMjU0Njk0NGZhZTNlMjFfN1FvbldZVkNsSW5DMHIwc3JXbG9wbWt5UktUV2kxMnlfVG9rZW46Ym94Y25tSU1SWXZvcWF3V3NMZE1mY29HQkpiXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 11: 网易云信变声效果

就机器人音效一类而言,我们对其进行了非常多的优化和调参,最终产生的效果与《Dalek Robot》的机器人音效非常相似。大家可以体验一下:

(视频2)

除了基础的机器人、巨人、恐怖和成熟等音效外,网易云信还提供好玩有趣的男声变女声、女声变男声、男声变萝莉和女声变萝莉等。

与前面的基础变声实现原理有所不同,男声变女声主要是采用变调不变速算法,精确变换人声的频率特征,从而实现声音性别的转换。下面是网易云信的男声变女声音效:

(音频文件)(处理前音频 音频5,处理后的音频 音频6)

除了实现声音性别的转换,稍加变换,变调不变速算法还能达到保护隐私的效果。对原始人声进行变换,在不影响语义的情况下,改变人声音色,让其他人听不出说话人身份。下面是网易云信保护隐私处理前后的音效:

(音频文件)(处理前音频 音频7,处理后的音频 音频8)

基于变调不变速算法的重要性,网易云信优化了该算法,效果达到了业内优异水准。

四、变调不变速算法

变调不变速算法有多种实现方法,最常用的方法是结合变速不变调和重采样。变速不变调在不改变频率的情况下改变语音速率,重采样既改变语音速率又改变语音频率。两者结合,在不改变语音速率的情况下改变语音频率,即变调不变速。在该方法思路下,一般有四种常用的算法。

(一)OLA + Resample

OLA 全称为 Overlap-Add,即重叠叠加的意思,Resample 为重采样的意思。其实现的基本步骤是,先对原始语音信号进行分帧,将多采样点的语音信号分成一帧一帧的语音信号,然后再按照对应的速率进行拼接,从而达到变速不变调的效果。如下图所示:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=MjcwZmJhZTIzYzVjYzI1MDI3ZWNjMTE2NTVhOGIwZTVfRmtCem9sTzhSSGF4VDlIN2JWNVI2Uk1UN21NNlBxalNfVG9rZW46Ym94Y25Ka0gyQ0ZnTjFWejNkVEtnbHhpQU1jXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 12:OLA 示意图

该算法有一定的局限性,在拼接的过程中,非常容易出现基音断裂现象,导致声音听起来有着“咔哒”的嘈杂音。

(二)WSOLA + Resample

WSOLA,全称为 Waveform Similarity Overlap-Add,即波形相似重叠叠加算法。为了解决 OLA 算法在拼接时产生的不连续现象,WSOLA 利用帧间的相似性,在一定的范围内寻找最为相似的帧进行拼接,有效避免了基音断裂的现象。如下图所示:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=MGQwMzEyY2I1NDcxMTIzOTVjZDhhZmVlOWVhYjA1NjRfb1JVeW8yUmVDUmZOMjg2QmR0SzdMWDd3aFBMeElzUjJfVG9rZW46Ym94Y25BOWJWYVVRQjA2MmFzWjEyZTVtN2FlXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 13:WSOLA 示意图

由于其较好的效果和简易性,开源的 SoundTouch 库和声网的变调不变速算法都是基于此实现的。但该算法也具备一定的局限性, 其根据相似性进行拼接语音帧,非常容易导致高频成分过多的情况,处理过后的声音听起来非常尖锐。

(三)PSOLA

PSOLA,全称为 Pitch Synchronous Overlap-Add,即基音同步重叠叠加算法。该算法不再整帧处理,而是直接处理基频信号:其先进行基频提取,找到语音信号的 Pitch 信号,然后再根据速率裁剪信号,进而直接产生变调不变速算法。如下图所示:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=ZGY5YzE1Mzg1OTk1OTNlN2IzMGI0YTE3Nzg1YzgxOThfdUw5MGVIQVljUEF6Qk5vOFQ4RTZOTlR6ZXBMSEM5QVNfVG9rZW46Ym94Y252aGhuaTRONWVnbVFKV2dGU3FtbTJiXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 14:PSOLA 示意图

该算法在变调参数比较小的时候效果非常好,处理后的声音非常自然,毫无机器处理痕迹。故常用于语音合成领域。

但该算法也具有一定的局限性,因为该算法只处理基音,而不处理整个信号。容易产生主次音的感受。该缺陷在变调参数大时非常明显。

(四)PhaseVocoder + Resample

PhaseVocoder,即相位编码器。该算法将语音信号分解为各个频率的正弦型信号,根据时间的跨度重新计算对应的相位,进而裁剪拼接信号。达到变速不变调效果,结合 Resample,实现变调不变速。如下图所示。

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=NDIwOTNhOGU1NmNjNjQ4M2RjYjYzYzU4MGRkMDZhNzZfbE5MR0xENkVpSldJMjVIVU85dzBiQ1RuMjdXREM0S05fVG9rZW46Ym94Y25FU1ZwRHdnUUQxUXpoSHA4YTNmTlVmXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 15:PhaseVocoder示意图

该算法能在一定程度上弥补 WSOLA + Resample 的高频尖锐声,在变调参数大时处理较为自然。但该算法也有一定的局限,会因为处理分辨率不够和频点间相位相关性的丢失产生 phasiness 现象,该现象听起来是一种模糊,混响的感觉,声音有一种拖尾不干净的感受。

网易云信在充分调研并实验各种变调不变速算法后,选择了非常适合云信娱乐业务的算法,并有针对性的进行了优化,大大提高了算法性能,在精准变调的基础上,解决了上述描述的算法局限性,消除了经处理后产生的不自然感受,为用户带来极致的体验。

为了验证云信该算法性能的优势,我们组织了一次盲测实验,与业内知名友商进行对比。结果图如下所示:

https://netease-we.feishu.cn/space/api/box/stream/download/asynccode/?code=ZmRkODEzMjNkM2JkYmIzNWRlODU4Nzc1NWZkYmZjZTFfNm0wTUlXMzFnNW5nQWdSN3h1dHVyWFcyYlRtbE9WbkhfVG9rZW46Ym94Y25iQ1dZWnpKdENER29PYkpsVDkwSHdoXzE2NDQ2NzAyODI6MTY0NDY3Mzg4Ml9WNA

Figure 16:变调算法盲测结果

上图中的横坐标是变调参数,指变多少音调。纵坐标是盲测得分,因为传统的算法都能精确实现变调,故得分以舒适度为标准。从图中可以看到,除了变调参数为 3 时,云信变调处理后的舒适度略低于某个友商外,其它的场景下我们均优于友商。

作者介绍

王志强,网易云信高级音视频算法工程师,从事变声音效和降噪算法相关工作的研究。在本科时期接触语音信号处理,在硕士期间专注于此。工作以来,在钻研音频算法之余,更是热爱从信号的角度欣赏音乐,曾在多通道语音增强领域有所建树,主要研究盲源分离和 VAD 算法,对麦克风阵列理论和滤波器原理略有涉及。目前在网易云信从事 RTC 业务的音频算法研究,包括变声算法和单通道语音增强算法。

关于网易云信

网易云信:网易智企旗下融合通信云服务专家、通信与视频 PaaS 平台。集网易 24 年 IM 以及音视频技术打造的融合通信云服务专家,稳定易用的通信与视频 PaaS 平台。提供融合通信与视频的核心能力与组件,包含 IM 即时通讯、5G 消息平台、一键登录、信令、短信与号码隐私保护等通信服务,音视频通话、直播、点播、互动直播与互动白板等音视频服务,视频会议等组件服务,并联合网易易盾推出一站式安全通信方案「安全通」。目前,网易云信已经成功发送 1.6 万亿条消息,覆盖智能终端 SDK 数累计超过 186 亿,我们期待每个智能终端都有云信的融合通信能力。

文章标题:网易云信变声技术之变调不变速算法,发布者:网易智企,转载请注明出处:https://worktile.com/kb/p/5848

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
网易智企的头像网易智企

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部