音频社交的变声,拍乐云应用了哪些算法?
导读:2021开年以来,音频社交市场伴随着Clubhouse的爆火再获资本的关注,国内相关产品荔枝、映客都迎来了股价的大幅上涨,预计未来音频化在社交领域还会有长期且广泛的需求。
在移动互联网技术加持下,音频社交不仅可以满足多场景下的社交需求,体验也迎来了革新,尤其是AI+5G技术,对音频社交的驱动将更为明显。很多社交产品会基于音频技术增加变声、美声、立体声、混响和场景化音效等,来丰富用户的听感体验。本篇拍乐云Pano的技术分享就来讲讲音频社交场景中的变声是应用了哪些算法来实现的。
变声是如何实现的?
当我们日常观看视频时,有时会使用倍速播放。在加快播放速度时,我们会感觉视频中的男声听起来有点像“女声”;在放慢播放速度时,我们能听到类似于《疯狂动物城》中那个说话慢吞吞的“树懒声”。这些其实就是简单的变声。
从技术的角度并不难理解,如果我们用16k的采样率去采集一个100Hz的正弦波,而用32k或者8k的采样率去播放的话,那么这个正弦波的频率就会提升一倍(200Hz)或者降低一倍(50Hz)。这样将音频的频率升高或者降低的方法很简单,提升一倍就是每隔一个丢弃一个样本,放慢一倍就是进行一个线性插值。用专业的术语来说,这是一个重采样的过程。
按照重采样方法是可以实现一个变调的,但同时也很容易发现,音频的时间变长或者变短了,和我们原始输入的音频长度不一致了,这在实时通信中是不能接受的。在实时通信中,我们要的是一个变调不变速的变声功能,单一的重采样方法是做不到的。当然除了重采样,我们还有其他的一些变声方法能够实现变调不变速的需求。
变声有哪些常见的算法?
常见的变调算法有时域、频域和参量法。时域较易实现,多采用变速不变调+重采样实现变调不变速等。频域以及参量法就相对复杂,并且计算量相比于时域大了很多。本次主要简单介绍一些常见的时域和频域算法。
在时域内主要是OLA(Overlap-Add)类算法:OLA,同步波形叠加法(Synchronized Overlap-Add, SOLA)、固定同步波形叠加法(Synchronized Overlap-Add and Fixed Synthesis, SOLAFS)、时域基音同步叠加法(Time-Domain Pitch Synchronized Overlap-Add, TD-PSOLA) 波形相似叠加法(waveform similarity overlap-and-add, WSOLA)等,频域内主要是基音同步波形叠加算法(Pitch-Synchronized OLA, PSOLA)等。
1)OLA
OLA是最简单粗暴的一种TSM方式。对原始语音进行分帧后,间隔一段采样点,重复或者丢弃其中某些语音帧来重新建立语音。这样就实现简单的变音效果。原理如下图所示:
a. 分帧,对时域音频进行分帧处理;
b. 在输入信号X上加上一个汉宁窗;
c. 在第一帧后间隔固定点数Ha取出第二帧;
d. 把第二帧语音加窗后与第一帧overlap-add。
如此操作到语音结束就能重建一个新的变调语音。但是这算法存在一定的局限性,无法保证语音是连续的,可能会出现基音断裂的情况。这样的语音听起来会有咔吧声,造成了语音的失真。
2)波形相似叠加法(waveform similarity overlap-and-add, WSOLA)
了解了简单粗暴的OLA算法后,我们可以清晰的知道OLA算法的局限和缺陷。当然也知道造成这种缺陷的原因是什么:相位不连续导致的。为了减小基音断裂和相位不连续问题,Verhelst和Roelands提出了波形相似叠加法(WSOLA)。目前开源代码soundtouch使用的就是该算法。其原理如下图:
a. 在原始音频中取出第一帧,让后对该帧进行加窗,输出到y信号上
b+c. 在虚线蓝色范围内找到第二帧,第二帧相位参数应该和第一个帧相位对齐,在蓝色范围内寻找与第二帧最相似的帧作为输出帧,作为y信号的第二帧;
d. 最为相似的帧与第一帧overlap-add到y信号上
重点在b.c两步操作中,如何寻找最相似的帧。很多论文中给出了一种最直接的方法,计算“自相关”。虽然WSOLA能够解决基音断裂和相位不连续问题,但是它会影响音色,将WSOLA应用于打击乐乐器的音频时。,这种现象将会更加的明显。
3)基音同步波形叠加算法(Pitch-Synchronized OLA, PSOLA)
PSOLA的算法原理与WSOLA有所不同,PSOLA在频域处理的,它能进一步达到基音同步的目的。在该算法中,变速和变调是两个独立的过程,由不同的参数控制。先对基音进行检测,标记基音周期。通过标记的基音周期将语音划分为多个合成单元。通过重复或者丢失合成单元来实现语速的控制。通过改变相邻合成单元的重叠长度或者重采样结合变速来改变语音的基频。
PSOLA是对基频进行修改的,因此很好的保护了共振峰,不会对音色有太大的影响。不过该算法在频域中进行处理的,计算量大,很难满足实时的变速与变调处理。
结束语
以上是拍乐云Pano简单介绍的三种常见的变声算法,这三种算法可以粗略实现大叔音、萝莉音以及怪兽声等。但是想要做到变声后的声音听起来更加真实自然,就需要进一步的优化调试了。除了这些算法外,还有其他的变声音效,比如常见的“惊悚声”,运用了vibrato或者tremolo算法,还有“山谷空灵音”运用了echo算法等等,这些算法都是基于传统的信号处理实现的。在传统的信号处理变声方法外,还有更高级的变声算法:AI变声。AI变声相比于传统的信号处理方法,会让变声后的声音更加真实自然。
注:文中图片来源于《A Review of Time-Scale Modification of Music Signals》论文
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
大数据盘点2020年直播带货那些事儿
大数据盘点2020年直播带货那些事儿 短视频、直播数据实时监测采集接口,请查看文档: TiToData 免责声明:本文档仅供学习与参考,请勿用于非法用途!否则一切后果自负。 自2016年电商平台上线直播购物功能以来,直播电商发展迅猛,2016至2019年,直播电商年市场规模增速保持在刺激,让“直播+”的概念变成了现实。据相关数据显示,2020年全国直播电商用户规模达3亿多人,直播电商的市场规模高达9千多亿元……直播电商风口已至。 2020年全国直播带货大事记 Top1 八成受访邯郸市民观看过直播带货 就邯郸本地而言,经调查,数据显示约八成邯郸本地受访市民表示观看过直播带货。Top2 超四成市民观看直播带货每月三次及以上在疫情影响下,线下业务受到冲击,更多人将目光转向线上。平均每月观看直播带货1-2次的邯郸本地市民居多,占比约为34.65%;其次为平均每月观看直播带货在6次以上,约占20.79%;此外还有19.8%、16.83%的受访者分别表示观看次数为0次、3-4次。Top3 不看直播带货的原因:不了解>没兴趣>不信任对于不看直播带货的原因,有34.65%的邯郸受访市民表示...
- 下一篇
通过随机采样和数据增强来解决数据不平衡的问题
在开发分类机器学习模型时遇到的挑战之一是类别不平衡。大多数用于分类的机器学习算法都是在假设平衡类的情况下开发的,然而,在现实生活中,拥有适当平衡的数据并不常见。因此,人们提出了各种方案来解决这个问题,以及一些应用这些解决方案的工具或者类库。例如,imbalanced-learn 这个python库,它实现了最相关的算法来解决类不平衡的问题。 在这篇文章中,我们将了解什么是类别不平衡、将准确性作为不平衡类别的度量标准的问题是什么、什么是随机欠采样和随机过采样,以及imbalanced-learn如何作为解决类别不平衡问题的替代工具。文章将分为以下几个部分: 什么是类别不平衡? 准确率悖论 欠采样和过采样 Imbalanced-learn使用实践 什么是类别不平衡 当每个类别的样本不平衡时,即在类别分布之间没有平衡比率时,会出现类别不平衡的问题。这种失衡可能是轻微的,也可能是严重的。取决于样本量,比率从1:2到1:10可以理解为轻微的不平衡,比率大于1:10可以理解为强烈的不平衡。在这两种情况下,都必须使用特殊技术(例如欠采样,过采样,cost-sensitive代价敏感等)处理具有类不平...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS关闭SELinux安全模块
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8编译安装MySQL8.0.19