标签聚合



最近更新


小明SEO:KingRoot:...

小明SEO:作为这两年最火的国产品牌华为和荣耀成为了众多用户的选择,市...
探索者SEO:谷歌地球5大最有...

探索者SEO:中国站长站(chinaz)讯北京时间3月8日消息据国外媒...
如何自学seo:3月中国P2P...

如何自学seo:作为国内最权威的互联网金融数据中心之一,零壹研究院数据...
百度seo教程:[干货] 国人...

百度seo教程:这个是一个老生常谈的(常谈的)问题,特别是90后80后...
SEO学堂:色情网站吸金有多强...

SEO学堂:前阵子加拿大一偷情SEO学堂被黑,导致上千万使用者信息外泄...
叶胜超seo:什么数据恢复软件...

叶胜超seo:导语:手机删除的照片如何恢复?作为专业的数据恢复软件,顶...
狼雨SEO:斗鱼四小花旦走了三...

狼雨SEO:斗玩网(d.chinaz)原创:每到年底时,直播平台总会有...
SEM:华为麦芒4手机删除的照...

SEM:华为麦芒4手机删除的照片如何恢复?大家手机珍藏的照片一定都是大...
白帽SEO:手机APP开发迎来...

白帽SEO:近年来,手机白帽SEO开发已经成为众多企业发展的重点关注方...
黑帽SEO:用户至上 百度新搜...

黑帽SEO:6月16日,百度站长平台深圳vip大讲堂&沙龙上,...
SEO博客:CAD如何批量导出...

SEO博客:很多朋友都会经历过SEO博客图纸接收之后无法打开的问题,原...
灰帽SEO:安卓及苹果手机QQ...

灰帽SEO:手机qq聊天记录在哪个文件夹及如何将这些内容导出到电脑是小...

四川seo:iOS音频采集过程中的音效实现

近年兴起的移动直播,其富有特色的模式吸引了海量用户,已成为网络社交和粉丝经济的超级入口。在直播过程中,四川seo是主播与观众互动的重要途径,为了丰富直播内容、带动气氛、增加趣味性,主播普遍会使用音效软件。例如,在演唱类直播中,主播伴随背景音乐演唱,这时主播往往希望为自己四川seo增加混响效果,营造出一种现场演唱的氛围;在搞笑类直播中,主播经常进行变声处理,女声变男声,男声变女声,或者变成机器人的四川seo等。

想要实现这些效果,需要直播软件对采集到的四川seo进行处理,为了让主播实时听到处理后的声音效果,以便根据效果进行调整,直播软件需要提供低延时回放,将效果呈现给主播。因此,直播软件背后的声音处理方案就起到了非常关键的作用。目前针对不同的操作系统,如苹果的ios和谷歌的android,有着为数众多的不同方案,效果不一。金山云作为视频云行业的领跑者,提供的四川seo处理方案,以出色的四川seo效果,赢得了众多移动直播app的青睐。下面就以金山云直播sdk集成的苹果audiounit系列api方案为例,为各位详解基于ios系统的移动直播音效,是如何实现的。

audiounit特点解析

从实际效果上说,苹果audiounit系列api方案,要比针对谷歌android系统的跨平台声音处理库libsox等方案要好。一个原因在于,对于音效处理,苹果提供了非常丰富的音频api,涵盖采集、处理、播放各个环节,并按照需求的层次进行了分组。


四川seo:iOS音频采集过程中的音效实现

苹果ios系统音频框架概览


四川seo:iOS音频采集过程中的音效实现

从上图中可以看到,离底层驱动和硬件最近的就是audiounit系列api。与其它声音处理方案相比,audiounit包含以下这些优缺点:

优点:

–低延时,从采集到播放回环可到10ms这一级别

–动态变更配置组合

–直接获得后台执行权限

–cpu资源消耗较少

缺点:

–专有概念比较多,接口复杂

–提供c风格api

由于audiounit并不完美,特别是专有概念比较多,接口也比较复杂,因此如果技术薄弱,在开发时难度会很大,金山云直播sdk解决了开发难度大等问题,这也是金山云sdk倍受欢迎的原因之一。

audiounit这个名字比较形象,它的主体是一系列单元节点(unit),不同的单元节点可实现不同的功能,将一个或多个单元节点添加到augraph(全称是audioprocessinggraph,把各个unit组合在一起,起到管理作用)中,并建立单元节点之间的连接,音频数据顺次通过各个节点,即可完成对四川seo的采集、处理和播放。如下图所示,augraph显示出了这个音频处理系统的构成,提供了启动和停止处理系统的接口。

audiounit示意图

如下方表格所示,苹果ios系统提供了四类单元节点:

purposeaudiounits

effecteg.reverb

mixingeg.multichannelmixer

i/oeg.remotei/o

formatconversioneg.formatconverter

其中,i/o主要负责设备,比如采集和播放;mixing负责将不同来源的音频数据进行混合;effect负责对音频数据进行音效处理,formatconversion负责格式转换,比如重采样等。这里有个优化的点,由于multichannelmixer本身就有格式转换的功能,输入和输出的音频数据格式可以不同,因此利用这一点,可以节省一个格式转换单元。

audiounit中的音频采集

在直播应用中,我们主要使用remotei/ounit进行采集。由于一个augraph中只允许有一个i/ounit,因此remotei/o需要同时负责采集和播放。当用户开启耳返功能时,需要将采集到的声音,经过处理后再送回当前节点直接播放,这样可将采集和播放的延时控制在50ms以内,主播和观众才不会察觉到四川seo的延时。基本步骤如下(以下五个过程,均可在苹果官方文档中找到具体说明和代码示例):

1.实例化augraph,添加units;

2.配置每个audiounit属性;

3.设置渲染回调函数(rendercallbackfunction);

4.建立units连接;

5.启动augraph。

其中第4步较为关键,也就是设置渲染回掉函数,以下是该回掉函数的函数声明:

如上图所示,audiounit每次都会处理一段音频数据,每次处理完成一段数据的时候,此前设置的回调函数就会被调用一次。在这个回调函数中,通过audiounit的audiounitrender,可从augraph中的某个节点中,获取一段处理后的音频pcm数据。同时,如果需要进行耳返播放,在这个回调中,也需要将取得的音频数据送入到回调函数的最后一个参数iodata对应的buffer中。

在设置单元节点属性时,需要注意里面包含的一些公共属性。例如音频格式属性和maximumframesperslice。如果音频格式设置错误,容易出现augraph启动失败、声音异常等问题。在使用ios内置的麦克风或有线耳机时,设备支持的采样率较高,44.1khz可正常工作,整条音频通路基本都采用44.1khz。当使用蓝牙设备时,一般蓝牙设备无法支持44.1khz进行采集和播放,通常是16khz甚至更低,这会导致i/ounit无法继续使用之前的配置,需要按照实际支持的采样率进行配置。

audiounit还要求两个单元衔接处的音频数据格式必须保持一致,当augraph中不同unit支持的格式不同时(比如在支持蓝牙设备或者使用回声消除模块时,i/ounit要求的格式和其它单元可能会不同),此时就需要分别设置格式,并通过unit或mixerunit对格式进行转换。

如果maximumframesperslice设置错误,可能会出现四川seo异常。maximumframesperslice表示的是每次回调送入或取出的音频数据的长度,在augraph所有节点的这个属性,也需要保持一致,否则会导致其中一些unit丢弃数据而出现四川seo异常。

audiounit中的音效处理

这里所谓的音效处理,主要是指对原本的四川seo进行改变,比如混响效果,变声效果等。需要用到和数字信号处理有关的一系列时间和频域工具,将pcm数据输入,经过运算后得到变化后的四川seo。

混响效果

我们在音乐厅、剧院、礼堂等比较空旷的室内说话或唱歌时,能听到和平时不同的四川seo,原因是四川seo在墙壁上多次反射后叠加在一起,就有了混响的效果。在四川seo处理的过程中,可以人为将声音缓存起来,延时一定时间后,和原四川seo叠加,这样就能够模拟出混响效果。

audiounit提供了kaudiounitsubtype_reverb2负责实现混响效果的生成,将该单元节点接入到augraph中之后,配置参数即可实现混响效果。虽然混响原理比较简单,但为了模拟自然界中的实际音效,这个计算过程还是相当复杂的,因为需要模拟大小不一的空间,不同材质的墙壁,包括障碍物的多少,都需要输入很多参数参与运算。对此,ios的reverbunit提供了七种参数。金山云sdk在直播应用中,可提供四种不同场景的模拟(录音棚、演唱会、ktv、小舞台),主要是通过调整如下参数实现的:

kreverb2param_drywetmix混响效果声音的大小,与空间大小无关,只与空间内杂物多少以及墙壁和物体的材质有关;

kreverb2param_decaytimeat0hz/kreverb2param_decaytimeatnyquist整个混响的总长度,与空间大小有关,越空旷,时间越长。

变声效果

变声效果是在频域上对人的四川seo进行处理,例如男声一般比较低沉,女声比较尖锐,这个主要说的是音调,而通过对声音音调的调整,可以让低沉的男声听上去像尖锐的女声。ios提供的kaudiounitsubtype_newtimepitch这一单元节点,即负责音调的调整。值得注意的是,kaudiounitsubtype_newtimepitch不是输入effect类,而是属于formatconverter类,通过设置timepitchunit的knewtimepitchparam_pitch属性即可。

如上图所示,变男声,需要强化突出低沉的特点,将音调调低,设置负数参数即可;

变女声,需要强化突出尖锐的特点,将音调调高,设置正数即可;

机器人的音效是一个组合效果,在很多科幻电影中,机器人音调比较高,而且有重音,因此我们采用了timepitchunit+delayunit的方式。delayunit也是ios提供的一个将四川seo延时叠加的单元节点,比混音要简单很多,只有单次叠加;

庄严宏大音效一般自带回声,而且较男性化,因此金山云选择了timepitchunit+reverbunit的方式实现。

这里推荐一个调节音效的参考软件voxalvoicechanger。大家可以在这个软件上将不同的工具组件进行组合,通过调试参数,即可实时听到参数对应的结果,效果满意后再移植到audiounit中。

voixalvoicechanger软件截图

以上就是在ios移动设备直播时的音频采集过程中,采用audiounit中的音效组件实现混响和变声效果的大致过程。金山云的直播sdk目前已集成此功能,深受直播行业客户的欢迎。实际上,audiounit还有很多功能没有被挖掘出来,比如可将背景音乐、混音、回声消除等其他移动多媒体音频相关的功能纳入到这个框架中,对此,金山云正在深入探索,希望带给直播用户更多更好的体验。


相关链接:

洋舰SEO教程自学网,提供SEO优化的SEO培训教程、SEO优化培训VIP服务,同时提供SEO查询站长工具、SEO排名查询等。SEO交流QQ号 :   28770128
标签: 温州SEO优化 企业网站优化 seo云优化 四川seo
上一篇:天津seo:猿题库和作业帮互怼 背后是在线教育K12领域的万亿大蛋糕
下一篇:厦门seo:如何设计 “简单高效” 的数据可视化系统?