音频数据处理方法、设备及存储介质技术

技术编号:37577643 阅读:11 留言:0更新日期:2023-05-15 07:53
本申请涉及一种音频数据处理方法、设备及存储介质,属于音频处理技术领域,该方法包括:对待处理的音频文件进行分块,得到当前的文件块;将当前的文件块中的音频帧逐帧依次加载至预先申请的第一内存空间;对第一内存空间中的当前一帧音频帧进行预处理;申请第二内存空间;对预处理后的音频数据进行特征提取,将特征数据存储至第二内存空间;基于第二内存空间中的特征数据,显示当前一帧音频帧的特征信息;在当前的文件块中的音频帧未加载完成的情况下,清空第一内存空间和第二内存空间,对下一帧音频帧进行处理直至音频文件中的各帧音频帧均处理完成时停止;可以减少数据处理过程中的内存消耗,降低对设备的内存要求。降低对设备的内存要求。降低对设备的内存要求。

【技术实现步骤摘要】
音频数据处理方法、设备及存储介质


[0001]本申请涉及一种音频数据处理方法、设备及存储介质,属于音频处理


技术介绍

[0002]声纹鉴定又称语声鉴定,是指对有声言语进行个人识别的专门技术。通过声纹鉴定技术可以将目标人物的语音数据转换成条带状或曲线形语谱图(即声纹),之后相关鉴定专家可以根据语谱图所反映的音频、音强与时间等声纹特征信息,就目标人物的身份做出鉴别与判断。
[0003]在声纹鉴定场景中,需要从音频数据中提取出特征数据以供相关鉴定专家进行分析。传统的特征数据提取过程包括以下两种实现方式:
[0004](1)采用C++语言对语音数据的处理,通过winform研发桌面端应用。
[0005](2)采用C++语言对语音数据的处理,将处理数据转换到web前端。
[0006]无论哪种方式,采用C++语言对音频的处理需要将音频文件加载至内存,在内存中进行信号处理计算,从而提升计算的性能。但是,若音频文件很大,且桌面端应用同时打开的窗口较多,而每个窗口还要额外占据内存存储计算得到的特征数据,则会导致消耗大量的内存资源的问题。比如:桌面端应用同时打开4个窗口,每个窗口对应的音频文件大小为1G大小的音频文件,此时将四个文件都加载到内存需要4G以上的内存,而计算得到的特征数据还需要额外占用内存空间,大概总共8G大小的内存空间,此时,消耗的内存资源较多,同时打开多个文件,可能会引起系统的崩溃。

技术实现思路

[0007]本申请提供了一种音频数据处理方法、设备及存储介质,可以解决将音频文件全部加载至内存进行计算导致内存消耗较大,容易导致系统崩溃的问题。本申请提供如下技术方案:
[0008]第一方面,提供一种音频数据处理方法,所述方法包括:
[0009]对待处理的音频文件进行分块,得到当前的文件块;
[0010]根据预设的分帧策略,将所述当前的文件块中的音频帧逐帧依次加载至预先申请的第一内存空间;
[0011]对所述第一内存空间中的当前一帧音频帧进行预处理,得到预处理后的音频数据;
[0012]申请所述预处理后的音频数据对应的特征数据的第二内存空间;
[0013]对所述预处理后的音频数据进行特征提取,得到所述当前的音频帧对应的特征数据;
[0014]将所述特征数据存储至所述第二内存空间;
[0015]基于所述第二内存空间中的特征数据,显示所述当前一帧音频帧的特征信息;
[0016]在所述当前的文件块中的音频帧未加载完成的情况下,清空所述第一内存空间和
所述第二内存空间,对下一帧音频帧触发执行所述根据预设的分帧策略,将所述当前的文件块中的音频帧逐帧依次加载至预先申请的第一内存空间的步骤,直至所述音频文件中的各帧音频帧均处理完成时停止。
[0017]可选地,所述对待处理的音频文件进行分块,得到当前的文件块,包括:
[0018]通过文件系统模块以文件流的方式从所述音频文件中读取预设大小的音频数据;
[0019]将所述预设大小的音频数据加载至内存,得到所述当前的文件块。
[0020]可选地,在所述当前的文件块中的音频帧加载完成的情况下,所述方法还包括:
[0021]确定所述音频文件是否读取完成;
[0022]在未读取完成的情况下,对于所述音频文件中未读取的数据,再次触发执行所述通过文件系统模块以文件流的方式从所述音频文件中读取预设大小的音频数据;将所述预设大小的音频数据加载至内存,得到所述当前的文件块的步骤,以对再次得到的当前的文件块进行处理。
[0023]可选地,所述特征数据包括FFT变换后得到的值,相应地,所述申请所述预处理后的音频数据对应的特征数据的第二内存空间,包括:
[0024]确定所述当前一帧音频帧进行FFT变换后的数据空间;
[0025]基于所述数据空间的二倍申请所述第二内存空间。
[0026]可选地,所述基于所述第二内存空间中的特征数据,显示所述当前一帧音频帧的特征信息,包括:
[0027]通过主进程以事件方式将所述第二内存空间中FFT变换后得到的值发送至所述渲染进程;
[0028]通过所述渲染进程显示所述FFT变换后得到的值对应的语谱图。
[0029]可选地,所述基于所述第二内存空间中的特征数据,显示所述当前一帧音频帧的特征信息,包括:
[0030]基于所述FFT变换后得到的值计算Fbank特征和/或梅尔频率倒谱特征;
[0031]通过主进程以事件方式将所述Fbank特征和/或梅尔频率倒谱特征发送至所述渲染进程;
[0032]通过所述渲染进程显示所述Fbank特征和/或梅尔频率倒谱特征对应的语谱图。
[0033]可选地,所述基于所述第二内存空间中的特征数据,显示所述当前一帧音频帧的特征信息,包括:
[0034]应用webGL可视化技术通过所述渲染进程显示所述FFT变换后得到的值对应的语谱图、或者所述Fbank特征和/或梅尔频率倒谱特征对应的语谱图。
[0035]可选地,预处理使用的预处理算法和特征提取使用的特征提取算法使用JS编程语言实现;
[0036]或者,
[0037]预处理使用的预处理算法和特征提取使用的特征提取算法使用c++编程语言和动态链接库node

addon实现。
[0038]第二方面,提供一种电子设备,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面提供的音频数据处理方法。
[0039]第三方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序
被处理器执行时用于实现第一方面提供的音频数据处理方法。
[0040]本申请的有益效果至少包括:通过对待处理的音频文件进行分块,得到当前的文件块;根据预设的分帧策略,将当前的文件块中的音频帧逐帧依次加载至预先申请的第一内存空间;对第一内存空间中的当前一帧音频帧进行预处理,得到预处理后的音频数据;申请预处理后的音频数据对应的特征数据的第二内存空间;对预处理后的音频数据进行特征提取,得到当前的音频帧对应的特征数据;将特征数据存储至第二内存空间;基于第二内存空间中的特征数据,显示当前一帧音频帧的特征信息;在当前的文件块中的音频帧未加载完成的情况下,清空第一内存空间和第二内存空间,对下一帧音频帧触发执行根据预设的分帧策略,将当前的文件块中的音频帧逐帧依次加载至预先申请的第一内存空间的步骤,直至音频文件中的各帧音频帧均处理完成时停止;可以解决将音频文件全部加载至内存进行计算导致内存消耗较大,容易导致系统崩溃的问题;由于音频文件不需要全部加载至内存,仅需要将文件块逐个加载至内存,且在处理时对文件块逐帧加载处理,可以减少数据处理过程中的内存消耗,降低对设备的内存要求。
[0041]另外,通过JS编写语音信号处理算法,可以为后续的语音处理实现方案提供更多的选择。
[0042]另外,通过应用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种音频数据处理方法,其特征在于,所述方法包括:对待处理的音频文件进行分块,得到当前的文件块;根据预设的分帧策略,将所述当前的文件块中的音频帧逐帧依次加载至预先申请的第一内存空间;对所述第一内存空间中的当前一帧音频帧进行预处理,得到预处理后的音频数据;申请所述预处理后的音频数据对应的特征数据的第二内存空间;对所述预处理后的音频数据进行特征提取,得到所述当前的音频帧对应的特征数据;将所述特征数据存储至所述第二内存空间;基于所述第二内存空间中的特征数据,显示所述当前一帧音频帧的特征信息;在所述当前的文件块中的音频帧未加载完成的情况下,清空所述第一内存空间和所述第二内存空间,对下一帧音频帧触发执行所述根据预设的分帧策略,将所述当前的文件块中的音频帧逐帧依次加载至预先申请的第一内存空间的步骤,直至所述音频文件中的各帧音频帧均处理完成时停止。2.根据权利要求1所述的方法,其特征在于,所述对待处理的音频文件进行分块,得到当前的文件块,包括:通过文件系统模块以文件流的方式从所述音频文件中读取预设大小的音频数据;将所述预设大小的音频数据加载至内存,得到所述当前的文件块。3.根据权利要求2所述的方法,其特征在于,在所述当前的文件块中的音频帧加载完成的情况下,所述方法还包括:确定所述音频文件是否读取完成;在未读取完成的情况下,对于所述音频文件中未读取的数据,再次触发执行所述通过文件系统模块以文件流的方式从所述音频文件中读取预设大小的音频数据;将所述预设大小的音频数据加载至内存,得到所述当前的文件块的步骤,以对再次得到的当前的文件块进行处理。4.根据权利要求1所述的方法,其特征在于,所述特征数据包括FFT变换后得到的值,相应地,所述申请所述预处理后的音频数据对应的特征数据的第二内存空间,包括:确定所述当前一帧音频帧进行...

【专利技术属性】
技术研发人员:姚智慧
申请(专利权)人:思必驰科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1