中科医院专家 http://baijiahao.baidu.com/s?id=1677340799810666638&wfr=spider&for=pc当我们使用播放器听音乐时,在播放界面会看到随音乐节奏而跳跃的频谱图,炫酷的效果让播放器界面变得生动起来;在直播场景中,主播在演唱或试唱时,通过频谱、音高线等实时变化的视图,可以更直观的判断自己的音调。借助频谱图,可以让声音具象化,增加互动性和趣味性。频谱图在线上K歌、直播电台、语聊房等多种泛娱乐场景中广泛应用,本文将与大家分享如何通过ZEGOSDK快速实现音频频谱效果,让声音不仅听得见还能看得见。频谱是如何表达声音的在进入教程前,我们先来看看频谱是如何产生的?在信号分析领域,模拟信号波形分为时域信号与频域信号,时域信号如下图,抽象而没有规律:在FourierTransform函数(简称FT)中,任何信号(满足一定的数学条件),都可以通过FT而分解成一个直流分量和无穷多个正弦信号的和。每个正弦分量都有自己的频率和幅值,以频率值作横轴,以幅值作纵轴,把上述若干个正弦信号的幅值画在其所对应的频率上,就做出了信号的幅频分布图,即频谱图。因此经过FT,能将抽象无规律的时域音频波形信号转换为具象的频域音频信号,能够直观的看到每个频率对应的幅值。在手机等数字设备中,通过系统API得到的音频数据,是系统通过麦克风采集到的模拟音频数据,这些数据是经过采样、量化、编码之后的pcm数据。这样的数据在时域的值都是量化编码的数字信号。FT可以对时域连续的模拟信号进行处理,相应的,FastFourierTransform(简称FFT)可以对时域离散的数字信号进行处理,将其转换成频域离散的数字信号,即我们所说的数字音频频谱。通过ZEGOSDK实现音频数据转换上述关于频谱的知识是复杂而系统的,如果从头实现需要花费大量的学习成本。并且在开发的过程中还有各种坑要填,如客户端的应用开发者在实现时,容易因处理大量pcm数据产生相关的性能问题。针对市场对频谱的需求,ZegoSDK增加了展现音频功率谱的能力。即把时域的音频数字信号经ZegoSDK内部处理,转换成频域的音频数字信号。下面以Android平台为例,分享如何通过调用ZEGOSDK的API接口,简单高效的实现上述复杂的变换过程:1.集成和初始化ZEGOSDK具体过程可参考“即构
转载请注明:http://www.0431gb208.com/sjszyzl/4712.html