CN112667828B - 一种音频可视化方法及终端 - Google Patents
一种音频可视化方法及终端 Download PDFInfo
- Publication number
- CN112667828B CN112667828B CN202011628255.4A CN202011628255A CN112667828B CN 112667828 B CN112667828 B CN 112667828B CN 202011628255 A CN202011628255 A CN 202011628255A CN 112667828 B CN112667828 B CN 112667828B
- Authority
- CN
- China
- Prior art keywords
- audio
- sub
- data
- group
- bezier curve
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
Abstract
本发明公开了一种音频可视化方法及终端,包括如下步骤:S1:实时获取音频数据,并将音频数据按频率进行排序得到数据组D;S2:将数据组D的前n*m项拆分成n个等长的子数组M1、M2、...、Mn,每个子数组Mi包括m个数据;S3:计算每个子数组Mi的各项加权平均值A以及每个子数组Mi中最大的数值处于该子数组的位置w;S4:将每个子数组的A、w、m输入到数据处理模型中,获取每个子数组贝塞尔曲线的起点、控制点及终点并进行绘制,形成该子数组的贝塞尔曲线;S5:连接所有子数组的贝塞尔曲线,形成音频可视化图像;该发明可通过获取音频数据,展示对应的图案,以实现在播放音频时,图像可随音频的变化而变化,在听音乐的同时,给人对应的视觉效果。
Description
技术领域
本发明涉及信号处理技术领域,具体的说是一种音频可视化方法及终端。
背景技术
随着社会的发展,市场上音频设备的种类越来越多,功能也越来越丰富,许多音频设备设有多个音频输入接口以及多个音频输出接口。现有的部分音乐软件带有可视化功能,例如形状、图形、颜色等的变换。但现有的音频可视化化方法的音频数据处理流程较为繁琐,处理时间较长,且展示效果较差,不能快速、有效地同时反映出音频的音量高低和音频的变化频率,降低了人们的视觉体验。
发明内容
本发明的目的在于提供一种音频可视化方法及终端,该音频可视化方法可通过获取音频数据,展示对应的图案,以实现在播放音频时,图案可随音频的变化而变化,在听音乐的同时,给人对应的视觉效果。
为实现上述目的,本发明采用以下技术方案:
一种音频可视化方法,包括如下步骤:
S1:实时获取音频数据,并将音频数据按频率进行排序得到数据组D;
S2:将数据组D的前n*m项拆分成n个等长的子数组M1、M2、...、Mn,每个子数组Mi包括m个数据;所述n、m、i分别为正整数,所述1≤i≤n;
S3:计算每个子数组Mi的各项加权平均值A以及每个子数组Mi中最大的数值处于该子数组的位置w;
S4:将每个子数组的A、w、m输入到数据处理模型中,获取每个子数组贝塞尔曲线的起点、控制点及终点并进行绘制,形成该子数组的贝塞尔曲线;
S5:连接所有子数组的贝塞尔曲线,形成音频可视化图像。
优选地,步骤S1中所述音频数据为FFT数据,数据组D为浮点型数值数据组。
优选地,步骤S2中前n*m项的长度小于或等于数据组D的长度。
优选地,步骤S4中所述贝塞尔曲线的具体绘制方法为:
S40:将子数组K=M1,start=0代入数据处理模型,得出子数组M1的两组三阶贝塞尔曲线的节点组一和组二;
S41:根据组一及组二的点绘制贝塞尔曲线,得到子数组M1所对应的音频图像;
S42:将K=Mi,其中i=2,3,...,n及start=end+start分别依次代入数据处理模型,并执行步骤S41,分别得到子数组M2至Mn所对应的音频图像。
优选地,步骤S5中所述贝塞尔曲线的具体连接方法为:将子数组M1至Mn所对应的音频图像依次拼接,得到整个音频数据的贝塞尔曲线。
优选地,步骤S4中所述数据处理模型为:设end=(0.5+0.5*w/m)*rateX,所述w为数值最大的子项在子数组K中的排列位置,m为数组K的长度;end为子数组K对应音频图像的横轴长度;
设Xo=0.5*end*(1-innerRate/2+innerRate*w/m),Yo=0.488*A*rateY;innerRate=0.5,Xo为子数组K中的组一的贝塞尔曲线的横轴长度;Yo为子数组K的贝塞尔曲线的纵轴高度;
得出子数组K的两组三阶贝塞尔曲线的节点,组一:起点(start,0),控制点1(Xo*0.7+start,0),控制点2(Xo*0.7+start,Yo),终点(Xo+start,Yo);组二:起点(Xo+start,Yo),控制点1(Xo*1.3+start,Yo),控制点2(Xo*1.3+start,0),终点(end+start,0);
其中,组一为子数组K递增区间的贝塞尔曲线,组二为子数组K递减区间的贝塞尔曲线,组一和组二结合形成完整的子数组K的贝塞尔曲线。
优选地,步骤S41中根据组一及组二的点绘制贝塞尔曲线后,还对绘制的贝塞尔曲线进行水平镜像处理,并得到相对于水平线对称的子数组Mi所对应的音频图像。
优选地,步骤S3中的加权平均值A为子数组Mi的所有子项的均方差。
优选地,一种音频可视化方法其还包括步骤S6:展示音频可视化图像。
一种音频可视化终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-9中任意一项所述的音频可视化方法中的各个步骤。
采用上述技术方案后,本发明具有如下有益效果:
本发明一种音频可视化方法,创新性地设置新的数据处理模型,根据该数据处理模型,优化了数据处理流程,快速得到音频数据的转换图像,实现实时将音频数据转换成图像并进行展示效果。同时,本发明的音频图像展示参考了音频的频率,通过图像的波峰高度可反映音频的音量高低,通过图像的宽度及波峰位置可反映音频的变化频率,可有效反映出音频的信息,提高音频数据的视觉效果。
附图说明
图1为本发明的音频可视化过程的流程框图;
图2为音频转换的可视化图像;
图3为子数组K的贝塞尔曲线图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
请参阅图1,一种音频可视化方法,具体包括如下步骤:
S1:实时获取音频数据,并将音频数据按频率进行排序得到数据组D;
S2:将数据组D的前n*m项拆分成n个等长的子数组M1、M2、...、Mn,每个子数组Mi包括m个数据;所述n、m、i分别为正整数,所述1≤i≤n;
S3:计算每个子数组Mi的各项加权平均值A以及每个子数组Mi中最大的数值处于该子数组的位置w;
S4:将每个子数组的A、w、m输入到数据处理模型中,获取每个子数组贝塞尔曲线的起点、控制点及终点并进行绘制,形成该子数组的贝塞尔曲线;
S5:连接所有子数组的贝塞尔曲线,形成音频可视化图像。
本发明采用上述方案,创新性地设置新的数据处理模型,根据该数据处理模型,优化了数据处理流程,快速得到音频数据的转换图像,实现实时将音频数据转换成图像并进行展示效果。
在一优选实施例中,所述步骤S1中所述音频数据为FFT数据,数据组D为浮点型数值数据组。
在一优选实施例中,步骤S2中前n*m项的长度小于或等于数据组D的长度。
在一优选实施例中,步骤S4中所述贝塞尔曲线的具体绘制方法为:
S40:将子数组K=M1,start=0代入数据处理模型,得出子数组M1的两组三阶贝塞尔曲线的节点组一和组二;
S41:根据组一及组二的点绘制贝塞尔曲线,得到子数组M1所对应的音频图像;
S42:将K=Mi,其中i=2,3,...,n及start=end+start分别依次代入数据处理模型,并执行步骤S41,分别得到子数组M2至Mn所对应的音频图像。
其中,组一为子数组K递增区间的贝塞尔曲线,组二为子数组K递减区间的贝塞尔曲线,组一和组二结合形成完整的子数组K的贝塞尔曲线。
在一优选实施例中,步骤S5中所述贝塞尔曲线的具体连接方法为:将子数组M1至Mn所对应的音频图像依次拼接,得到整个音频数据的贝塞尔曲线。
在一优先实施例中,步骤S4中所述数据处理模型为:设end=(0.5+0.5*w/m)*rateX,所述w为数值最大的子项在子数组K中的排列位置,m为数组K的长度;end为子数组K对应音频图像的横轴长度;
设Xo=0.5*end*(1-innerRate/2+innerRate*w/m),Yo=0.488*A*rateY;innerRate=0.5,Xo为子数组K中的组一的贝塞尔曲线的横轴长度;Yo为子数组K的贝塞尔曲线的纵轴高度;
得出子数组K的两组三阶贝塞尔曲线的节点,组一:起点(start,0),控制点1(Xo*0.7+start,0),控制点2(Xo*0.7+start,Yo),终点(Xo+start,Yo);组二:起点(Xo+start,Yo),控制点1(Xo*1.3+start,Yo),控制点2(Xo*1.3+start,0),终点(end+start,0)。
本发明通过创新性的设置了数据处理模型,将每个子数组K均带入该数据处理模型,可快速计算得到每个子数组K的起点、控制点和终点,从而得到每个子数组K的贝塞尔曲线。将每个子数组K的贝塞尔曲线连接,得到音频的贝塞尔曲线。
请参阅图2,在一优先实施例中,步骤S41中根据组一及组二的点绘制贝塞尔曲线后,还对绘制的贝塞尔曲线进行水平镜像处理,并得到相对于水平线对称的子数组Mi所对应的音频图像。其中,一种音频数据经转换及镜像后显示的图像如图2所示。通过水平镜像处理,使得到的贝塞尔曲线更近美观。
在一优先实施例中,步骤S3中的加权平均值A为子数组Mi的所有子项的均方差。
在一优先实施例中,本发明的音频可视化方法还包括步骤S6:展示音频可视化图像。通过展示音频的可视化图像,使用户在听音频的时候,还可以看到该音频对应的可视化图像,使用户不仅具有听觉的体验,还有视觉的体验,且音频的可视化图像与音频的频率相匹配,大大提高用户体验。
实施例1
本实施例公开一种音频可视化方法,具体包括如下步骤:
步骤1:获取音频数据,并将所述音频数据按频率进行排序得到数据组D;其中,所述音频数据进行傅里叶变换后得到freq数据,其为浮点型数值数组,所述freq数据按频率从低到高排序,得到数据组D;此为数据源,可视化图像据此数据进行变化;
步骤2:定义浮点型数值子数组M1、M2、...、Mn,共n个子数组,每个子数组长度为m,其中前n*m项的长度小于或等于数据组D的长度;由于数据组D为音频数据通过傅里叶变换后得到freq数据,具有大量的子数组。由于本实施例主要考虑基于音频的频率将音频进行可视化,当音频的频率过高时,可视化的意义并不大,且freq数据是按频率从低到高进行排序的数据组,因此,本发明一般选取数据组D排序在前400以内的子数组,即n的取值一般不超过400。当然,在实际应用中,还根据实际应用情况,调整n的取值范围;
步骤3:将数据组D的前n*m项按顺序拆分成n份,每份m个数据,并将其按顺序复制到M1至Mn的子数组中;
步骤4:将音频数据处理为坐标轴上的数据点时,设数据点的横轴扩大倍数rateX,数据点的纵轴扩大倍数rateY,其中rateX>0,rateY>0;
步骤5:设子数组K=M1,start=0;
步骤6:计算子数组K中所有子项的均方差A,此值影响图像的波峰高度;
步骤7:计算子数组K中数值最大的子项在子数组K中的排列位置w,此值影响图像宽度及波峰位置;
步骤8:设end=(0.5+0.5*w/m)*rateX,所述w为数值最大的子项在子数组K中的排列位置,m为数组K的长度;end为子数组K对应音频图像的横轴长度;
步骤9:设Xo=0.5*end*(1-innerRate/2+innerRate*w/m),Yo=0.488*A*rateY;innerRate=0.5,Xo为子数组K组一的贝塞尔曲线的横轴长度;Yo为子数组K的贝塞尔曲线的纵轴高度;
步骤10:得出子数组K的两组三阶贝塞尔曲线的节点,组一:起点(start,0),控制点1(Xo*0.7+start,0),控制点2(Xo*0.7+start,Yo),终点(Xo+start,Yo);组二:起点(Xo+start,Yo),控制点1(Xo*1.3+start,Yo),控制点2(Xo*1.3+start,0),终点(end+start,0);令p=end+start;
请参阅图3,其中,组一为子数组K递增区间的贝塞尔曲线,组二为子数组K递减区间的贝塞尔曲线,组一和组二结合形成完整的子数组K的贝塞尔曲线;
步骤11:分别对步骤10得到的组一及组二的点绘制子数组K的贝塞尔曲线;
步骤12:对步骤11绘制的曲线进行水平镜像处理,得到相对水平线对称的图像,即子数组K所对应的音频图像;
步骤13:设start=p,使下个子数组的图像可以接在已绘制的图像后面;
步骤14:分别设i=2,3,...,n,K=Mi,并继续执行步骤6至步骤13,这样即可得出子数组M2至Mn所对应的图像;
步骤15:FFT数据变化后,重新执行步骤1至步骤14,进行曲线绘制,即可让图像根据FFT的数据实时变化。
实施例2
本发明还公开一种音频可视化终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的音频可视化方法中的各个步骤。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
1.一种音频可视化方法,其特征在于,包括如下步骤:
S1:实时获取音频数据,并将音频数据按频率进行排序得到数据组D;
S2:将数据组D的前n*m项拆分成n个等长的子数组M1、M2、...、Mn,每个子数组Mi包括m个数据;所述n、m、i分别为正整数, 1≤i≤n;
S3:计算每个子数组Mi的各项加权平均值A以及每个子数组Mi中最大的数值处于该子数组的位置w;
S4:将每个子数组的A、w、m输入到数据处理模型中,获取每个子数组贝塞尔曲线的起点、控制点及终点并进行绘制,形成该子数组的贝塞尔曲线;
步骤S4中所述数据处理模型为:设end=(0.5 + 0.5 * w/m)* rateX,所述w为数值最大的子项在子数组K中的排列位置,m为数组K的长度;end为子数组K对应音频图像的横轴长度;rateX为数据点的横轴扩大倍数;
设Xo= 0.5 * end *(1 - innerRate/2 + innerRate * w/m),Yo=0.488 * A *rateY;innerRate=0.5,Xo为子数组K中的组一的贝塞尔曲线的横轴长度;Yo为子数组K的贝塞尔曲线的纵轴高度;rateY为数据点的纵轴扩大倍数;
得出子数组K的两组三阶贝塞尔曲线的节点,组一:起点(start,0),控制点1(Xo * 0.7+ start,0),控制点2(Xo * 0.7 + start,Yo),终点(Xo + start,Yo);组二:起点(Xo +start,Yo),控制点1(Xo * 1.3 + start,Yo),控制点2(Xo * 1.3 + start,0),终点(end +start,0);
其中,组一为子数组K递增区间的贝塞尔曲线,组二为子数组K递减区间的贝塞尔曲线,组一和组二结合形成完整的子数组K的贝塞尔曲线;
S5:连接所有子数组的贝塞尔曲线,形成音频可视化图像。
2.如权利要求1所述的一种音频可视化方法,其特征在于:步骤S1中所述音频数据为FFT数据,数据组D为浮点型数值数据组。
3.如权利要求1所述的一种音频可视化方法,其特征在于:步骤S2中前n*m项的长度小于或等于数据组D的长度。
4.如权利要求1所述的一种音频可视化方法,其特征在于,步骤S4中所述贝塞尔曲线的具体绘制方法为:
S40:将子数组K=M1,start=0代入数据处理模型,得出子数组M1的两组三阶贝塞尔曲线的节点组一和组二;
S41:根据组一及组二的点绘制贝塞尔曲线,得到子数组M1所对应的音频图像;
S42:将K=Mi,其中i=2,3,...,n及start=end+start分别依次代入数据处理模型,并执行步骤S41,分别得到子数组M2至Mn所对应的音频图像。
5.如权利要求4所述的一种音频可视化方法,其特征在于,步骤S5中所述贝塞尔曲线的具体连接方法为:将子数组M1至Mn所对应的音频图像依次拼接,得到整个音频数据的贝塞尔曲线。
6.如权利要求 4所述的一种音频可视化方法,其特征在于,步骤S41中根据组一及组二的点绘制贝塞尔曲线后,还对绘制的贝塞尔曲线进行水平镜像处理,并得到相对于水平线对称的子数组Mi所对应的音频图像。
7.如权利要求1所述的一种音频可视化方法,其特征在于:步骤S3中的加权平均值A为子数组Mi的所有子项的均方差。
8.如权利要求1-7之一所述的一种音频可视化方法,其特征在于:其还包括步骤S6:展示音频可视化图像。
9.一种音频可视化终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-8中任意一项所述的音频可视化方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011628255.4A CN112667828B (zh) | 2020-12-31 | 2020-12-31 | 一种音频可视化方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011628255.4A CN112667828B (zh) | 2020-12-31 | 2020-12-31 | 一种音频可视化方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667828A CN112667828A (zh) | 2021-04-16 |
CN112667828B true CN112667828B (zh) | 2022-07-05 |
Family
ID=75412739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011628255.4A Active CN112667828B (zh) | 2020-12-31 | 2020-12-31 | 一种音频可视化方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667828B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115035909A (zh) * | 2022-05-31 | 2022-09-09 | 中国第一汽车股份有限公司 | 音乐可视化展示方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108619725A (zh) * | 2018-05-09 | 2018-10-09 | 网易(杭州)网络有限公司 | 图像文件的制作方法和装置 |
CN109887523A (zh) * | 2019-01-21 | 2019-06-14 | 北京小唱科技有限公司 | 用于唱歌应用的音频数据处理方法及装置、电子设备及存储介质 |
CN110782920A (zh) * | 2019-11-05 | 2020-02-11 | 广州虎牙科技有限公司 | 音频识别方法、装置及数据处理设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5106768B2 (ja) * | 2005-09-29 | 2012-12-26 | 富士通株式会社 | アウトラインフォント圧縮方法 |
CN102903134B (zh) * | 2012-09-13 | 2016-05-04 | 烽火通信科技股份有限公司 | 快速绘制多次曲线的方法 |
CN109712220A (zh) * | 2018-11-15 | 2019-05-03 | 贵阳语玩科技有限公司 | 一种iOS端音频波形绘制方法和装置及计算机可读存储介质 |
CN111782866A (zh) * | 2019-04-04 | 2020-10-16 | 阿里巴巴集团控股有限公司 | 绘制方法、装置、终端设备及计算机存储介质 |
CN110322887B (zh) * | 2019-04-28 | 2021-10-15 | 武汉大晟极科技有限公司 | 一种多类型音频信号能量特征提取方法 |
-
2020
- 2020-12-31 CN CN202011628255.4A patent/CN112667828B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108619725A (zh) * | 2018-05-09 | 2018-10-09 | 网易(杭州)网络有限公司 | 图像文件的制作方法和装置 |
CN109887523A (zh) * | 2019-01-21 | 2019-06-14 | 北京小唱科技有限公司 | 用于唱歌应用的音频数据处理方法及装置、电子设备及存储介质 |
CN110782920A (zh) * | 2019-11-05 | 2020-02-11 | 广州虎牙科技有限公司 | 音频识别方法、装置及数据处理设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112667828A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7109585B2 (ja) | 画像処理方法及び装置、画像デバイス並びに記憶媒体 | |
CN112667828B (zh) | 一种音频可视化方法及终端 | |
KR19980041755A (ko) | 컴퓨터 그래픽스에서 텍스쳐 맵핑을 위한 상세 레벨의 결정 방법 및 회로 | |
JPH0927039A (ja) | オブジェクトにテクスチャを表示するためにテクセル値を計算する方法及び装置 | |
JPH11161819A (ja) | 画像処理装置、画像処理方法、及び画像処理プログラムを記録した記録媒体 | |
JPH04207516A (ja) | 補間方法 | |
CN109598672B (zh) | 一种地图道路渲染方法及装置 | |
WO2022110496A1 (zh) | 一种多显示终端图标数据显示方法、系统和计算机存储介质 | |
CN111402366A (zh) | 一种文字渲染方法、装置、电子设备及存储介质 | |
CN115327540A (zh) | 基于雷达图的山体滑坡检测方法、装置、设备及介质 | |
JPH06274653A (ja) | グラフィック表示装置 | |
CN109726359B (zh) | 一种基于三维模型的船体首部外飘砰击并行计算方法 | |
US8593461B2 (en) | Method for the graphical display of a plurality of series of numerical data | |
CN114820968A (zh) | 三维可视化方法和装置、机器人、电子设备和存储介质 | |
CN108154557A (zh) | 一种基于家居环境的静音区域的三角面片化方法 | |
CN115880416A (zh) | 三维模型的显示方法、装置、服务器及存储介质 | |
CN116912395B (zh) | 基于OpenGL的图形混合渲染方法、装置及存储介质 | |
CN112946662B (zh) | 一种声纳探测范围的可视化方法和装置 | |
WO2023142945A1 (zh) | 3d模型生成方法及相关装置 | |
CN113345050B (zh) | 一种修改二维几何边框方法及相关装置 | |
KR20080064528A (ko) | 3차원 그래픽 가속기 그리고 텍스쳐 데이터 패치 방법 | |
CN117218261A (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN114820974A (zh) | 基于h5的地图编辑器、编辑方法以及计算机可读介质 | |
CN117333596A (zh) | 基于gpu的多普勒天气雷达数据渲染和平滑处理方法 | |
JP2668867B2 (ja) | 断面図描画装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |