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

文|王志强

网易云信高级音视频算法工程师

如何在 RTC 场景中实现好玩有趣的变声效果,给用户带来其乐无穷的玩法,是网易云信所探索的方向之一。本文将阐述实时变声技术原理和网易云信的变声方案。

变声技术需求

从业务上来看,互动直播对变声有着极大的需求。在疫情影响下,国内直播行业蓬勃发展,而在国外以 Clubhouse 为代表的语聊产品更是发展迅速。

上图是一张 Clubhouse 软件的下载量,在短短两个月的时间内,下载量翻了十倍之多。

在国内语聊场景更是眼花缭乱。如电台房、交友房、相亲房和游戏陪玩房等。诸如此类的声音社交场景下,对变声的需求是非常大的,比如变出搞怪、成熟的声音,甚至男声变女声等好玩有趣的声音。

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

变声技术简介

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

常见的音效有:

  • Tremolo(颤音),用低频信号调制语音,产生悠远飘忽的感觉;

  • Ring Modulation(环形调制),周期性幅度变化的低频信号调制语音,产生机器人音效。

  • Flanging(镶边),消除特定的谐波成分,产生干脆的音效;

  • Whisperization(耳语),改变语音信号的相位,产生外星人音效;

  • 变调不变速算法改变语音语调,实现男声变女声等效果。

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

 Flanging 

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

基本实现原理如下:

增加和削弱的频谱如下:

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

 Tremolo 

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

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

 Distortion 

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

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

对应公式如下:

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

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

网易云信变声技术

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

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

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

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

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

网易云信对该算法进行了重点优化,目前变声效果已经达到业内一流水准。

变调不变速算法

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

 OLA + Resample 

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

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

 WSOLA + Resample 

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

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

 PSOLA 

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

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

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

 PhaseVocoder + Resample 

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

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

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

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

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

总结

本文先介绍了常用的变声技术,让读者对变声技术的原理和效果有一定的了解,进而引入了网易云信在变声技术上的创新与实践,如机器人声、男声变女声和保护隐私方面的音效;最后着重介绍了网易云信如何结合变调不变速算法的实践成果。

 作者介绍 

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

 相关推荐阅读 

  • 技术干货 | C++20 四大特性之一:Module 特性详解

  • 技术实践 | 网易云信视频转码提速之分片转码

  • 技术系列课回顾 | 网易云信线上万人连麦技术大揭秘

技术系列课回顾 | 网易云信变声技术之变调不变速算法相关推荐

  1. 技术系列课回顾 | 网易云信线上万人连麦技术大揭秘

    导读:本文根据网易云信资深音视频服务端开发工程师陈策在<MCtalk Live#5:网易云信线上万人连麦技术大揭秘>线上直播分享整理. 文|陈策 网易云信资深音视频服务端开发工程师 大家好 ...

  2. 技术系列课|网易云信音视频通话2.0产品中的美声/变声功能

    随着技术的发展,越来越多的直播和社交类产品开始引入RTC功能.新的业务和生态对原本服务于实时通话.视频会议等场景的RTC PaaS产品提出新的需求,原本关注于通话基础功能的设计只能提供基本的交互,并没 ...

  3. 技术系列课回顾 | 浅谈 Serverless 开发和应用

    导读:本文整理自网易云信后端开发工程师葛馨霓的线上直播,文末也可查看直播回顾视频,也欢迎关注今晚的线上直播. 文|葛馨霓 网易云信后端开发工程师 AWS Serverless 服务是一种对应用的工程师 ...

  4. 技术系列课回顾 | 视频 QoE 的平衡之道

    导读:本文根据网易云信资深引擎工程师戚继跃在<MCtalk Live#4:视频 QoE 的平衡之道-揭秘网易云信 NERTC 视频质量控制系统>线上直播分享整理,文末有直播视频回顾以及 Q ...

  5. 技术系列课回顾 | 直播点播窄带高清之 JND 感知编码技术

    导读:本文整理自网易资深开发工程师程玲在线上直播 MCtalk Live#3:直播点播窄带高清之 JND 感知编码技术内容分享,文末也可查看直播回顾视频. 文|程玲 网易云信资深音视频引擎开发工程师 ...

  6. 技术系列课|AI驱动的超分辨技术应用现状

    基于AI的超分辨(Super Resolution)技术在图像恢复和图像增强等领域展现出广阔的应用前景,受到学术界和工业界的关注和重视.但是,在RTC领域中,很多算法并不能满足实际场景下的应用需求,超 ...

  7. 云信技术系列课 | RTC 系统音频弱网对抗技术发展与实践

    导读:本文整理自线上直播[MCtalk Live#2 :RTC 系统音频弱网对抗技术发展与实践]网易云信资深音视频引擎开发专家崔承宗分享内容,文末也可查看直播回顾视频. 文|崔承宗 网易云信资深音视频 ...

  8. 技术系列课|从NE264到NE265:视频编码技术缔造美好生活

    在网易,我们一直致力于用好的技术服务用户,为用户提供优质的体验,实现美好生活缔造者的愿景.而视频编码技术作为底层驱动技术,将如何改变我们的生活?如何通过视频将分隔两地的人连接起来?如何通过视频记录生活 ...

  9. 技术系列课|从0到1 构建实时音视频引擎

    随着5G和AI时代的到来,在线实时互动在越来越多的场景中被使用,支撑这一功能实现的关键性技术--RTC也受到了空前的关注.本节技术系列课,来自网易云信的讲师将以做菜的过程为比喻,深入浅出地讲述如何从0 ...

  10. 激光SLAM学习--移动机器人技术系列课(智东西)

    移动机器人技术系列课1:利用激光SLAM实现移动机器人在复杂环境下的自主导航 边旭,深圳优艾智合机器人科技有限公司CTO,西安交通大学机器人学博士 [提纲] 1.AMR机器人的关键技术解析 2.SLA ...

最新文章

  1. T-SQL查询进阶--详解公用表表达式(CTE)
  2. Hadoop学习之MapReduce(二)
  3. SAP Spartacus shipping address页面请求2.1 - setDefaultAddress
  4. SAP Leonardo机器学习模型重新训练的日志
  5. 为什么知乎页面按Ctrl C 会自动粘贴一部份文字出来?
  6. leetcode529. 扫雷游戏(dfs)
  7. java 数据库连接 释放_java - 数据库连接池耗尽 - Java - 堆栈内存溢出
  8. 清华MBZUAICMU牛津提出DenseCLIP,用上下文感知的提示进行语言引导密集预测!代码已开源!...
  9. vb 获取系统声音的电平_专业音响系统中常见问题,看看你懂几个?
  10. python调用所有函数_python 调用函数
  11. mysql打错了怎么办_数据库出错了怎么办?
  12. python difflib 源码_python difflib 模块
  13. YUV 格式与 RGB 格式的相互转换公式总结(C++版)
  14. 最终,我决定将代码迁出x86架构!
  15. 现代通信原理10.2:采用匹配滤波器的数字基带传输系统误码性能分析
  16. 省二级计算机考试VB题库,2015河南省全国计算机等级考试二级笔试试卷VB考试题库...
  17. python程序设计课程标准_《Python程序设计》课程标准
  18. 木兰当事人回应!承认部分基于 Python 二次开发
  19. Windows 10 应用创建模糊背景窗口的三种方法
  20. BZOJ 1208 宠物收养所(set 或者 splay)

热门文章

  1. MSB3644 找不到 .NETFramework,Version=v4.7 的引用程序集。要解决此问题,请为此框架版本安装......
  2. matlab中readfid函数,matlab中textscan和textread函数的比较使用
  3. python中compile函数_Python compile函数有什么用?
  4. ASIC设计流程简介
  5. SPSS实战:单因素方差分析(ANOVA)
  6. UiPath常用元素识别
  7. Word自动目录字体过大,如何全选并修改样式
  8. word2003流程图变成图片_流程图怎么画word2003
  9. C语言基础知识快速入门(全面)
  10. 用计算机求平方根立方根,利用计算器求平方根、立方根