一种采集音频数据节奏的方法与装置与流程



1.本发明涉及信号处理领域,具体涉及一种采集音频数据节奏的方法与装置。


背景技术:



2.随着人们生活品质的提高以及智能时代的到来,普通的照明灯具已经难以满足人们对多元化的生活要求,所以智能化的音乐律动灯具产品应用也就越来越多。音乐律动灯具,是通过音频数据的采集分析音乐的变化,生成动态的led灯幻彩效果。不仅可以满足人们对普通照明的要求,还能跟随音乐变化一起律动,烘托音乐灯光氛围,更容易在音乐上跟人产生情感共鸣。
3.由于智能音乐律动灯具本身受环境影响比较大,因此比较容易受到环境干扰,导致设备没有准确的采集到环境音乐的节奏,可以跟着音乐一起律动。比如在空旷的环境下播放音乐,由于遮挡物比较少,回声也比较少,设备在采集音频数据时整体音量值会偏低,有音频数据时变化比较明显;而在正常的家庭环境中,由于空间相对固定,设备在采集音频数据时整体音量值会偏中,有音频数据变化时会相对明显;而如果我们在汽车环境中,由于空间相对密闭,回声很大,设备在采集音频数据时整体音量值会偏高,导致有音频数据变化时反而不明显。而这跟我们在这些环境下的音乐感受刚好相反,会造成我们产品消费者的困扰。
4.因此,为了解决上述问题,需要一种采集音频数据节奏的方法与装置。


技术实现要素:



5.本发明公开一种采集音频数据节奏的方法与装置,其包括下列步骤:
6.持续采集环境中的音频模拟信号,将采样数据由音频模拟信号转换成音频数字信号;
7.通过预处理算法获得预处理数据;
8.通过音乐数据节奏点判断算法获得音乐节奏点。
9.其中,采样数据为包含256个采样点数据元素的数组,预处理数据包括滑动最大值和滑动平均值。
10.进一步地,所述预处理算法包括以下步骤:
11.定义存放数量变量count和空数组array;
12.定义变量avg_max,将采样数组的元素值累加求和并取平均值avg,将第一次求和取平均值获得的avg存入变量avg_max中;
13.将第二次以后对采样数组元素累加求和获得的每个avg的数值存入array[count]数组变量中,随后count变量做count++自加一运算;
[0014]
计算滑动最大值array_max=array_max》array[count]$array_max:array[count];
[0015]
当array数组的元素个数达到100时,数组采用舍弃首元素增加尾元素的方式添加
新的数据,使所述array数组的长度保持在100;
[0016]
定义变量array_avg,计算滑动平均值array_avg=(array[0]+array[1]+array[2]+

+array[100])/100。
[0017]
完成了对音频原始数据的预处理后,下一步需要对处理后的数据进行筛查,确定音乐节奏点的位置,因此需要引入音乐节奏点判断算法,该算法包括以下步骤:
[0018]
定义采集次数变量time、动态阈值变量th、音乐节奏点变量beat;
[0019]
通过动态阈值计算公式获得动态阈值;
[0020]
通过节奏点计算公式获得音乐节奏点。
[0021]
其中,动态阈值计算公式采用式1表示为:
[0022]
th=(array_max-array_avg)/time
ꢀꢀ
(1)
[0023]
其中,th表示动态阈值的数值,time表示采集次数,array_max表示滑动最大值;array_avg表示滑动平均值。
[0024]
进一步地,节奏点计算公式采用式2表示为:
[0025]
beat=avg》th$avg:0
ꢀꢀ
(2)
[0026]
其中,beat表示音乐节奏点数值,th表示动态阈值的数值,avg表示数组array的元素平均值,$为逻辑运算符。
[0027]
进一步地,可以获取三个历史检测时刻的历史检测音频,即第一历史检测时刻、第二历史检测时刻以及第三历史检测时刻。将实时能量总值与第一历史检测时刻的历史能量总值进行比较,得到第一差值。将实时能量总值与第二历史检测时刻的历史能量总值进行比较,得到第二差值。以及将实时能量总值与第三历史检测时刻的历史能量总值进行比较。如果第一差值、第二差值以及第三差值均大于预设能量阈值,则确定当前检测时刻的实时检测音频存在节奏点。
[0028]
通过获取当前检测时刻之前一个历史检测时刻的历史检测音频分别在至少两个预设频率区域的历史能量总值,之后分别根据每个预设频率区域的实时能量总值与历史能量总值得到每个预设频率区域的增量差值。若预设频率区域对应的增量差值大于对应的预设能量阈值,从而根据预设频率区域前后检测时刻的能量变化情况确定该预设区域存在节奏点。
[0029]
另一面,本发明采用的另一个技术方案是:提供一种采集音频数据节奏的装置,该装置包括:
[0030]
音频信号采集模块:用于持续采集环境中的音频模拟信号,将采样数据发送给音频信号转换模块;
[0031]
音频信号转化模块:接收音频模拟信号,将音频模拟信号转换成音频数字信号,并将音频数字信号发送至音频信号处理模块;
[0032]
音频信号处理模块:通过预处理算法获得预处理数据;通过音乐数据节奏点判断算法获得音乐节奏点。
[0033]
进一步地,本发明还包括一种客户端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤;
[0034]
更进一步地,本发明还包括一种计算机可读存储介质,所述计算机可读存储介质
存储有计算机程序且应用于客户端,所述计算机程序被处理器执行时实现上述方法的步骤。
[0035]
由上述技术方案可知,本发明与现有技术相比至少具备以下优点和积极效果:
[0036]
1.本发明因为使用动态阈值的调节办法,通过采集的音频数据变化做浮动变化的处理,可以降低环境对设备音乐灯光效果的影响。
[0037]
2.本发明可以根据节奏点切换不同的音乐灯光氛围效果,拥有多重动态灯光氛围,可以准确直接的体现灯光跟音乐之间的情感联系,更加的烘托音乐氛围,与用户产生音乐情感上的共鸣。
[0038]
3.本发明的装置使得闪烁灯随着设备播放的音乐而闪烁,丰富了用户在场所内进行活动的娱乐性,满足了用户多样化的享受需求。
附图说明
[0039]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:
[0040]
图1是本发明一实施例提供的一种采集音频数据节奏的方法的流程示意图;
[0041]
图2是本发明另一实施例提供的预处理算法的流程示意图;
[0042]
图3是本发明另一实施例提供的音乐节奏点判断算法的流程示意图;
[0043]
图4是本发明另一实施例提供的一种采集音频数据节奏的装置的结构示意图;
[0044]
图5是本发明另一实施例提供的一种采集音频数据节奏的音频平均值的分布点位图。
具体实施方式
[0045]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
实施例一
[0047]
图1为本发明一实施例提供的一种采集音频数据节奏的方法的流程示意图。该方法包括下述步骤:
[0048]
s1:持续采集环境中的音频模拟信号,将采样数据由音频模拟信号转换成音频数字信号;
[0049]
s2:通过预处理算法获得预处理数据;
[0050]
s3:通过音乐数据节奏点判断算法获得音乐节奏点。
[0051]
灯具产品可以随着音乐的变化而进行灯光的亮灭变化,通过计算机设备可视化显示采集出来的一段时间内音频平均值的分布点位直方图,取蓝的点代表当前音频数据的平均值,红虚线代表滑动平均值,即是当前环境音的基本值,红的实线代表设备的当前亮度,即为了体现设备是否有根据变化做出亮度的反应。若蓝的点到红虚线的垂直距
离超过我们计算出来的阈值th,则认为是有音乐节奏点产生。所以我们可以在设备获取到的音乐节奏点不为0的时候,把灯具的亮度调到最高,而当设备获取的音乐节奏点为0的时候,我们可以让灯具的亮度按一定的速度下降,这个速度可以根据用户的需求进行调节。从而我们就可以通过我们的肉眼和耳朵感受到当前的灯具设备可以随着音乐的变化进行明显的亮度变化。具体地,该灯具产品,亦即智能音乐节奏闪烁灯包括:
[0052]
发光二极管或者电致发光片;冷光线的发光圈;用于控制发光圈随着音乐节奏闪烁的控制电路;壳体。控制电路设置于壳体内且与发光圈电连接,开环或者闭环的发光圈安装在移动设备的显示装置的显示面上。
[0053]
控制电路包括:用于接收移动设备发出的音乐声波信号并将接收到的音乐声波信号转换为相应的第一电信号的声波接收电路、与移动设备的音频数据输出端电连接且用于接收移动设备输出的音频信号并将接收到的音频信号转换为相应的第二电信号的音频信号处理电路、分别与声波接收电路和音频信号处理电路电连接且用于将接收到的电信号转换为脉冲信号的脉冲形成电路、分别与脉冲形成电路和发光圈电连接且用于将接收到的脉冲信号传输至发光圈,以使发光圈随音乐声波信号或者音频信号闪烁的脉冲分配电路。
[0054]
发光圈还与移动设备的控制信号输出电路电连接,以使用户通过移动设备中相应的应用程序(application,简称“app”)来调节发光的发光颜,该移动设备可以为手机、平板电脑、手提电脑、台式电脑、电视中任一种。
[0055]
可选地,智能灯带可以通过无线传输从移动终端或者服务器获取音频数据。具体地,智能灯带可以与移动终端等或服务器通过网络建立连接。网络通常为因特网、但也可以是任何网络,包括但不限于局域网、城域网、广域网、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。
[0056]
同时,智能音乐节奏闪烁灯可以随着移动设备播放的音乐节奏来控制发光圈的闪烁,智能音乐节奏闪烁灯接收音乐信号主要包括两种方式:一是通过声波接收电路接收移动设备的外放装置(例如:喇叭、扬声器等)播放的音乐声波信号,二是通过音频信号处理电路直接从移动设备中获取正在播放的音频数据,这样该智能音乐节奏闪烁灯可以适用于装配在多种不同的移动设备上。智能音乐节奏闪烁灯的发光圈还与移动设备的控制信号输出电路电连接,以使用户通过移动设备中相应的app来调节发光圈的发光颜,这样可以为用户提供多样化的模式选择,丰富了智能音乐节奏闪烁灯的闪烁彩,增强了智能音乐节奏闪烁灯的娱乐性。开环或者闭环的发光圈可以安装在移动设备(例如:智能手机、平板电脑、笔记本电脑、台式电脑显示器、电视机等)的显示装置的显示面上,发光圈在安装时可以闭环,也可以开环,即发光圈安装在显示面上时,可以安装在显示面的四周,也可以安装在显示面的三边、两边、或者一边,发光圈安装在显示面上可以配合移动设备播放的音乐视频闪烁,显示出一种三维的表现效果,增强了移动设备音乐视频播放的娱乐性。
[0057]
具体地,开环或者闭环的发光圈设置于移动设备(例如:智能手机、平板电脑、笔记本电脑、台式电脑显示器、电视机等)的显示装置的显示屏周围。
[0058]
在实际应用中,有些移动设备的显示装置是单独设置的(例如:台式电脑等),此时,开环或者闭环的发光圈可以设置于显示装置的显示面上,尤其是显示装置的显示屏周围;有些移动设备的显示装置是与移动设备整合在一起的(例如:智能手机、平板电脑、笔记本电脑、电视机等),此时,开环或者闭环的发光圈可以设置于移动设备的显示面上,尤其是
移动设备的显示屏周围。这样智能音乐节奏闪烁灯在随着移动设备播放的音乐节奏闪烁时,配合显示屏中播放的音乐视频画面,可以呈现出一种三维效果,增强了移动设备播放音乐视频的娱乐性。
[0059]
智能音乐节奏闪烁灯的控制电路可以内置在移动设备(例如:智能手机等)内部,也可以将智能音乐节奏闪烁灯制备成一种独立的外置配件。当将智能音乐节奏闪烁灯制备成一种独立的外置配件时,可用采用2.4g高频无线遥控控制或wifi、蓝牙、红外线遥控控制,或wifi、蓝牙、红外线智能手机app控制。可以控制发光圈的颜明暗度调整,颜动态变化速度调整,颜的动态变化和速度跟着音乐节奏自动变化调整,灯光随音乐节奏闪烁跳动等多种发光模式。
[0060]
实施例二
[0061]
图2为本发明另一实施例提供的一种预处理算法的流程示意图,该方法包括下列步骤:
[0062]
s20:定义存放数量变量count和空数组array;
[0063]
s21:定义变量avg_max,将采样数组的元素值累加求和并取平均值avg,将第一次求和取平均值获得的avg存入变量avg_max中;
[0064]
s22:将第二次以后对采样数组元素累加求和获得的每个avg的数值存入array[count]数组变量中,随后count变量做count++自加一运算;
[0065]
s23:计算滑动最大值array_max=array_max》array[count]$array_max:array[count];
[0066]
s24:当array数组的元素个数达到100时,数组采用舍弃首元素增加尾元素的方式添加新的数据,使所述array数组的长度保持在100;
[0067]
s25:定义变量array_avg,计算滑动平均值array_avg=(array[0]+array[1]+array[2]+

+array[100])/100。
[0068]
c语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。c语言能以简易的方式编译、处理低级存储器。c语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管c语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的c语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
[0069]
计算机变量是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言中,变量可能是不可变的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象;但另外一些语言可能使用其它概念(如c的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。
[0070]
数据结构是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构。
[0071]
数据的逻辑结构和物理结构是数据结构的两个密切相关的方面,同一逻辑结构可
以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。
[0072]
数据结构的研究内容是构造复杂软件系统的基础,它的核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。类似地,通过分解将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合可以将问题变换为数据结构。这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进一步得到存储结构和实现运算,从而完成设计任务。这是一个从抽象(即数据结构)到具体(即具体实现)的过程。
[0073]
数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。数组可以说是最基本的数据结构,在各种编程语言中都有对应。一个数组可以分解为多个数组元素,按照数据元素的类型,数组可以分为整型数组、字符型数组、浮点型数组、指针数组和结构数组等。数组还可以有一维、二维以及多维等表现形式。
[0074]
动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的下标;当要用它时,可随时用redim语句重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。
[0075]
动态数组就可以在任何时候改变大小。在c语言中,动态数组最灵活、最方便,有助于有效管理内存。例如,可短时间使用一个大数组,然后,在不使用这个数组时,将内存空间释放给系统。
[0076]
如果不用动态数组,就要声明一个数组,它的大小尽可能达到最大,然后再抹去那些不必要的元素。但是,如果过度使用这种方法,会导致内存的操作环境变慢。
[0077]
空数组即下标为0的数组,如a[0]。在函数中声明空数组是没有任何意义的,当然也编译不过。而在类或结构体中,是可以这样声明的。使用空数组有这样的优势:不需要初始化,数组名直接就是所在的偏移;不占任何空间,指针需要占用int长度空间,空数组不占任何空间。
[0078]
实施例三
[0079]
图3为本发明另一个实施例提供的音乐节奏点判断算法的流程示意图,该算法包括下列步骤:
[0080]
s30:定义采集次数变量time、动态阈值变量th、音乐节奏点变量beat;
[0081]
s31:通过动态阈值计算公式获得动态阈值;
[0082]
s32:通过节奏点计算公式获得音乐节奏点。
[0083]
实施例四
[0084]
图4为本发明另一实施例提供的一种采集音频数据节奏的装置的结构示意图。该装置包括音频信号采集模块100、音频信号转化模块200、音频信号处理模块300。其中,音频信号采集模块100用于持续采集环境中的音频模拟信号,将采样数据发送给音频信号转换模块;音频信号转化模块200用于接收音频模拟信号,将音频模拟信号转换成音频数字信号,并将音频数字信号发送至音频信号处理模块;音频信号处理模块300用于通过预处理算法获得预处理数据;通过音乐数据节奏点判断算法获得音乐节奏点。
[0085]
实施例五
[0086]
图5为本发明另一实施例提供的一种采集音频数据节奏的音频平均值的分布点位
图。
[0087]
假设希望灯具产品可以随着音乐的变化而进行灯光的亮灭变化,这是设备采集出来的一段时间内音频平均值的分布点位,图中间线段的点代表的是当前音频数据的平均值,图中边缘线段的点代表滑动平均值,即是当前环境音的基本值,图中间线段代表设备的当前亮度,即为了体现设备是否有根据变化做出亮度的反应。若图中间线段的点到图中边缘线段的点的垂直距离超过计算出来的阈值th,则认为是有音乐节奏点产生。所以可以在设备获取到的音乐节奏点不为0的时候,把灯具的亮度调到最高,而当设备获取的音乐节奏点为0的时候,可以让灯具的亮度按一定的速度下降,这个速度可以根据用户的需求进行调节。从而我们就可以通过我们的肉眼和耳朵感受到当前的灯具设备可以随着音乐的变化进行明显的亮度变化。
[0088]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:


1.一种采集音频数据节奏的方法,其特征在于,包括以下步骤:持续采集环境中的音频模拟信号,将采样数据由音频模拟信号转换成音频数字信号;通过预处理算法获得预处理数据;通过音乐数据节奏点判断算法获得音乐节奏点。2.根据权利要求1所述的方法,其特征在于,所述采样数据为包含256个采样点数据元素的数组。3.根据权利要求1所述的方法,其特征在于,所述预处理数据包括滑动最大值和滑动平均值。4.根据权利要求1所述的方法,其特征在于,所述的预处理算法,包括以下步骤:定义存放数量变量count和空数组array;定义变量avg_max,将采样数组的元素值累加求和并取平均值avg,将第一次求和取平均值获得的avg存入变量avg_max中;将第二次以后对采样数组元素累加求和获得的每个avg的数值存入array[count]数组变量中,随后count变量做count++自加一运算;计算滑动最大值array_max=array_max>array[count]$array_max:array[count];当array数组的元素个数达到100时,数组采用舍弃首元素增加尾元素的方式添加新的数据,使所述array数组的长度保持在100;定义变量array_avg,计算滑动平均值array_avg=(array[0]+array[1]+array[2]+

+array[100])/100。5.根据权利要求1所述的方法,其特征在于,所述音乐节奏点判断算法,包括以下步骤:定义采集次数变量time、动态阈值变量th、音乐节奏点变量beat;通过动态阈值计算公式获得动态阈值;通过节奏点计算公式获得音乐节奏点。6.根据权利要求5所述的方法,其特征在于,所述动态阈值计算公式采用式1表示为:th=(array_max-array_avg)/time (1)其中,th表示动态阈值的数值,time表示采集次数,array_max表示滑动最大值;array_avg表示滑动平均值。7.根据权利要求5所述的方法,其特征在于,所述节奏点计算公式采用式2表示为:beat=avg>th$avg:0 (2)其中,beat表示音乐节奏点数值,th表示动态阈值的数值,avg表示数组array的元素平均值,$为逻辑运算符。8.一种获取音频数据节奏的装置,其特征在于,包括:音频信号采集模块:用于持续采集环境中的音频模拟信号,将采样数据发送给音频信号转换模块;音频信号转化模块:接收音频模拟信号,将音频模拟信号转换成音频数字信号,并将音频数字信号发送至音频信号处理模块;音频信号处理模块:通过预处理算法获得预处理数据;通过音乐数据节奏点判断算法获得音乐节奏点。9.一种客户端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运
行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序且应用于客户端,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。

技术总结


本发明公开一种采集音频数据节奏的方法与装置,该方法包括:持续采集环境中的音频模拟信号,将采样数据由音频模拟信号转换成音频数字信号;通过预处理算法获得预处理数据;通过音乐数据节奏点判断算法获得音乐节奏点。本发明使用动态阈值的调节办法,降低了环境对设备音乐灯光效果的影响,同时可根据节奏点切换不同的音乐灯光氛围效果,准确直接地体现了灯光跟音乐之间的情感联系,更加地烘托了音乐氛围。围。围。


技术研发人员:

张强

受保护的技术使用者:

江西嘉捷鑫源科技有限公司

技术研发日:

2022.04.22

技术公布日:

2022/7/8

本文发布于:2024-09-20 17:19:30,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/10486.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:音频   数组   节奏   音乐
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议