音频文件可视化方法、装置、存储介质及电子设备与流程

文档序号:26269394发布日期:2021-08-13 19:22阅读:238来源:国知局

本公开涉及计算机技术领域,具体地,涉及一种音频文件可视化方法、装置、存储介质及电子设备。



背景技术:

在语音标注过程中,为了便于标注,通常需要可视化相关的音频文件,即将该音频文件的波形图显示在前端网页上,目前生成音频文件的波形图的方法,通常是在浏览器中安装音频可视化插件(例如,wavesurfer.js),通过该音频可视化插件显示该音频文件的波形图。

然而,发明人发现,在利用该音频可视化插件显示该音频文件的波形时,若该音频文件所占内存较大,则在波形图的生成过程中容易导致浏览器内存爆满,从而出现浏览器崩溃,甚至闪退的现象。



技术实现要素:

本公开的目的是提供一种音频文件可视化方法、装置、存储介质及电子设备。

为了实现上述目的,本公开第一方面提供一种音频文件可视化方法,所述方法包括:

获取目标音频文件;

获取所述目标音频文件对应的播放总时长;

在确定所述播放总时长大于或者等于预设时长阈值的情况下,根据所述播放总时长将所述目标音频文件划分为多个音频片段;

生成每个所述音频片段对应的波形图,并显示所述波形图。

可选地,所述根据所述播放总时长将所述目标音频文件划分为多个音频片段,包括:

根据所述播放总时长,按照预设音频片段时长将所述目标音频文件划分为多个所述音频片段。

可选地,所述生成每个所述音频片段对应的波形图,并显示所述波形图,包括:

在确定所述目标音频文件处于播放状态的情况下,获取当前播放时间;

在确定所述当前播放时间属于目标音频片段的情况下,生成所述目标音频片段对应的波形图,并显示所述目标音频片段对应的波形图,其中,所述目标音频片段为多个所述音频片段中的任一个。

可选地,所述生成所述目标音频片段对应的波形图,包括:

获取所述目标音频片段对应的二进制数据流;

对所述二进制数据流进行解码,以得到所述二进制数据流对应的音频轨道数据;

根据所述音频轨道数据生成所述目标音频片段对应的波形图。

在本公开的第二方面提供一种音频文件可视化装置,所述装置包括:

第一获取模块,用于获取目标音频文件;

第二获取模块,用于获取所述目标音频文件对应的播放总时长;

划分模块,用于在确定所述播放总时长大于或者等于预设时长阈值的情况下,根据所述播放总时长将所述目标音频文件划分为多个音频片段;

生成模块,用于生成每个所述音频片段对应的波形图,并显示所述波形图。

可选地,所述划分模块,用于:

根据所述播放总时长,按照预设音频片段时长将所述目标音频文件划分为多个所述音频片段。

可选地,所述生成模块,用于:

在确定所述目标音频文件处于播放状态的情况下,获取当前播放时间;

在确定所述当前播放时间属于目标音频片段的情况下,生成所述目标音频片段对应的波形图,并显示所述目标音频片段对应的波形图,其中,所述目标音频片段为多个所述音频片段中的任一个。

可选地,所述生成模块,用于:

获取所述目标音频片段对应的二进制数据流;

对所述二进制数据流进行解码,以得到所述二进制数据流对应的音频轨道数据;

根据所述音频轨道数据生成所述目标音频片段对应的波形图。

在本公开的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上第一方面所述方法的步骤。

在本公开的第四方面提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现以上第一方面所述方法的步骤。

上述技术方案,通过获取目标音频文件;获取所述目标音频文件对应的播放总时长;在确定所述播放总时长大于或者等于预设时长阈值的情况下,根据所述播放总时长将所述目标音频文件划分为多个音频片段;生成每个所述音频片段对应的波形图,并显示所述波形图。这样,能够分片段的生成和显示该音频文件对应的波形图,能够有效避免在生成该音频文件过程中,因为音频文件过大而造成浏览器内存爆满,进而出现可视化程序崩溃,甚至闪退的现象,从而能够有效提升用户体验。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开一示例性实施例示出的一种音频文件可视化方法的流程图;

图2是本公开另一示例性实施例示出的一种音频文件可视化方法的流程图;

图3为根据图2所示实施例示出的一种音频文件可视化方法的流程图;

图4是本公开又一示例性实施例示出的一种音频文件可视化装置的框图;

图5是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

在详细介绍本公开的具体实施方式之前,首先对本公开的具体场景进行以下说明,本公开可以应用于语音标注,需要音频文件可视化的场景中,本公开涉及到的音频文件可视化是指生成并显示音频文件的波形图,目前生成音频文件的波形图的方法,通常是在浏览器中安装wavesurfer.js(音频可视化插件),通过wavesurfer.js显示该音频文件的波形图。

该wavesurfer.js显示音频文件的波形图的原理为:利用浏览器底层api(applicationprogramminginterface,应用程序接口)获取音频文件对应的二进制数据流,对获取到的音频文件进行解码,以得到浏览器能够识别和处理的数据形式,然后根据解码后的数据利用canvs生成并显示该音频文件完整的可视化波形图。然而,发明人发现,在利用该音频可视化插件显示该音频文件的波形时,若该音频文件所占内存较大,则在对音频文件进行解码和利用canvs绘制波形图的过程中均容易导致浏览器内存爆满,从而出现浏览器崩溃,甚至闪退的现象。

为了解决上述技术问题,本公开提供了一种音频文件可视化方法、装置、存储介质及电子设备,该音频文件可视化方法通过在确定所述播放总时长大于或者等于预设时长阈值的情况下,根据该播放总时长将该目标音频文件划分为多个音频片段;生成每个该音频片段对应的波形图,并显示该波形图,这样,能够分片段的生成和显示该音频文件对应的波形图,能够有效避免在生成该音频文件过程中,因为音频文件过大而造成浏览器内存爆满,进而出现可视化程序崩溃,甚至闪退的现象,从而能够有效提升用户体验。

下面结合具体实施例详细介绍本公开的技术方案。

图1是本公开一示例性实施例示出的一种音频文件可视化方法的流程图,参见图1,该音频文件可视化方法可以包括以下步骤:

步骤101,获取目标音频文件。

其中,该目标音频文件可以是音频文件,也可以是音视频文件中的音频部分。

本步骤中,该目标音频文件可以是arraybuffer接口中的二进制数据流,arraybuffer为通用的、固定长度的原始二进制数据缓冲区接口。

步骤102,获取该目标音频文件对应的播放总时长。

步骤103,在确定该播放总时长大于或者等于预设时长阈值的情况下,根据该播放总时长将该目标音频文件划分为多个音频片段。

本步骤中,在确定该播放总时长小于该预设时长阈值的情况下,可以不对该目标音频文件划分音频片段。在确定该播放总时长大于或者等于预设时长阈值的情况下,可以根据该播放总时长,按照预设音频片段时长将该目标音频文件划分为多个该音频片段。

在按照预设音频片段时长将该目标音频文件划分为多个该音频片段时,可以获取该播放总时长除以该预设音频片段时长得到的商值和余数根据该商值和该余数进行音频片段划分。

其中,一种可能的实施方式中,若确定该余数为零,则按照该播放顺序将该目标音频文件划分为该商值对应数量个该音频片段,每个该音频片段对应的播放时长为该预设音频片段时长;若确定该余数为非零,则确定该余数是否小于该预设音频片段时长的一半,在确定该余数小于该预设音频片段时长的一半,则将该目标音频文件划分为该商值个音频片段,其中,将该目标音频文件末尾的目标时长对应的音频数据确定为最后一个音频片段,该目标时长为预设音频片段时长与该余数的和值。

另外,在确定该余数大于或者等于该预设音频片段时长的一半的情况下,则将该目标音频文件划分为目标数量个音频片段,其中,该目标数量由该商值加一得到,将该目标音频文件末尾的目标时长对应的音频数据确定为一个音频片段,该目标时长为该余数对应的时长。

示例地,在该播放总时长为50分钟时,该预设时长阈值为20分钟,预设音频片段时长为6分钟,则将该目标音频文件中从播放起始时间开始,每6分钟的音频数据作为一个音频片段,由于50与6相除,商值为8,余数为2,因此将该目标音频文件中播放时长末尾的8分钟(即播放时间的第42分钟至第50分钟)的音频数据确定为第8个音频片段。

步骤104,生成每个该音频片段对应的波形图,并显示该波形图。

本步骤中,一种可能的实施方式为:在确定该目标音频文件处于播放状态的情况下,获取当前播放时间;在确定该当前播放时间属于目标音频片段的情况下,生成该目标音频片段对应的波形图,并显示该目标音频片段对应的波形图,其中,该目标音频片段为多个该音频片段中的任一个。

其中,该生成该目标音频片段对应的波形图,包括:获取该目标音频片段对应的二进制数据流;对该二进制数据流进行解码,以得到该二进制数据流对应的音频轨道数据;根据该音频轨道数据生成该目标音频片段对应的波形图。

以上技术方案,通过在确定该播放总时长大于或者等于预设时长阈值的情况下,根据该播放总时长将该目标音频文件划分为多个音频片段;生成每个该音频片段对应的波形图,并显示该波形图,能够分片段的生成和显示该音频文件对应的波形图,能够有效避免在生成该音频文件过程中,因为音频文件过大而造成浏览器内存爆满,进而出现可视化程序崩溃,甚至闪退的现象,从而能够有效提升用户体验。

图2是本公开另一示例性实施例示出的一种音频文件可视化方法的流程图;参见图2,该方法可以包括以下步骤:

步骤201,获取目标音频文件。

其中,该目标音频文件可以是音频文件,也可以是音视频文件中的音频部分。

本步骤中,该目标音频文件可以是arraybuffer接口中的二进制数据流,arraybuffer为通用的、固定长度的原始二进制数据缓冲区接口。

步骤202,获取该目标音频文件对应的播放总时长。

步骤203,在确定该播放总时长大于或者等于预设时长阈值的情况下,根据该播放总时长,按照预设音频片段时长将该目标音频文件划分为多个该音频片段。

其中,可以获取该播放总时长除以该预设音频片段时长得到的商值和余数根据该商值和该余数进行音频片段划分。

其中,一种可能的实施方式中,若确定该余数为零,则按照该播放顺序将该目标音频文件划分为该商值对应数量个该音频片段,每个该音频片段对应的播放时长为该预设音频片段时长;若确定该余数为非零,则确定该余数是否小于该预设音频片段时长的一半,在确定该余数小于该预设音频片段时长的一半,则将该目标音频文件划分为该商值个音频片段,其中,将该目标音频文件末尾的目标时长对应的音频数据确定为一个音频片段,该目标时长为预设音频片段时长与该余数的和值。

另外,在确定该余数大于或者等于该预设音频片段时长的一半的情况下,则将该目标音频文件划分为目标数量个音频片段,其中,该目标数量由该商值加一得到,将该目标音频文件末尾的目标时长对应的音频数据确定为最后一个音频片段,该目标时长为该余数对应的时长。

示例地,在该播放总时长为45分钟时,该预设时长阈值为30分钟,预设音频片段时长为10分钟,则将该目标音频文件中从播放起始时间开始,每10分钟的音频数据作为一个音频片段,由于45与10相除,商值为4,余数为5,该余数等于该预设音频片段时长的一半,因此将该目标音频文件中播放时长末尾的5分钟(即播放时间的第40分钟至第45分钟)的音频数据确定为第5个音频片段。

步骤204,在确定该目标音频文件处于播放状态的情况下,获取当前播放时间。

示例地,仍以步骤203所示示例为例进行说明,目标音频文件的播放总时长为45分钟,每10分钟为一个音频片段,将该目标音频文件划分为了5个音频片段,当前播放时间为第25分钟,即目标音频片段为第3个音频片段(即播放时间20至30分钟的音频数据)。

步骤205,在确定该当前播放时间属于目标音频片段的情况下,生成该目标音频片段对应的波形图,并显示该目标音频片段对应的波形图。

其中,该目标音频片段为多个该音频片段中的任一个。

本步骤中,该生成该目标音频片段对应的波形图的实施方式可以包括以下图3所示的步骤,其中,图3为根据图2所示实施例示出的一种音频文件可视化方法的流程图,如图3该,包括:

步骤2051,获取该目标音频片段对应的二进制数据流。

示例地,可以从arraybuffer中获取该目标音频片段对应的二进制数据流,在目标音频片段为第3个音频片段的情况下,从该arraybuffer中获取播放时间20至30分钟的二进制数据流。

步骤2052,对该二进制数据流进行解码,以得到该二进制数据流对应的音频轨道数据。

示例地,可以通过调用offlineaudiocontext对象的decodeaudiodata接口对该二进制数据流进行解码,以得到该二进制数据流对应的音频轨道数据,并将该音频轨道数据放入audiobuffer中,其中offlineaudiocontext对象的decodeaudiodata,audiobuffer均为api接口。

步骤2053,根据该音频轨道数据生成该目标音频片段对应的波形图。

本步骤中,可以将从该audiobuffer中读取该音频轨道数据通过canvs功能生成波形图,并可以将从该audiobuffer中读取该音频轨道数据通过createbuffersource创建音频源,从而对该音频轨道数据进行播放,其中,createbuffersource和canvs也为api接口。

示例地,仍以步骤204中所示的示例为例,在当前播放时间为25分钟时,该目标音频片段为第3个音频片段,即播放时间20至30分钟对应的音频数据,此时仅生成并显示该播放时间20至30分钟对应的波形图。

以上技术方案,能够分片段的生成和显示该音频文件对应的波形图,能够有效避免在生成该音频文件过程中,因为音频文件过大而造成浏览器内存爆满,进而出现可视化程序崩溃,甚至闪退的现象,从而能够有效提升用户体验。

图4是本公开又一示例性实施例示出的一种音频文件可视化装置的框图;参见图4,该装置可以包括:

第一获取模块401,用于获取目标音频文件;

第二获取模块402,用于获取该目标音频文件对应的播放总时长;

划分模块403,用于在确定该播放总时长大于或者等于预设时长阈值的情况下,根据该播放总时长将该目标音频文件划分为多个音频片段;

生成模块404,用于生成每个该音频片段对应的波形图,并显示该波形图。

以上技术方案,通过划分模块在确定该播放总时长大于或者等于预设时长阈值的情况下,根据该播放总时长将该目标音频文件划分为多个音频片段;通过生成模块生成每个该音频片段对应的波形图,并显示该波形图,能够分片段的生成和显示该音频文件对应的波形图,能够有效避免在生成该音频文件过程中,因为音频文件过大而造成浏览器内存爆满,进而出现可视化程序崩溃,甚至闪退的现象,从而能够有效提升用户体验。

可选地,该划分模块403,用于:

根据该播放总时长,按照预设音频片段时长将该目标音频文件划分为多个该音频片段。

可选地,该生成模块404,用于:

在确定该目标音频文件处于播放状态的情况下,获取当前播放时间;

在确定该当前播放时间属于目标音频片段的情况下,生成该目标音频片段对应的波形图,并显示该目标音频片段对应的波形图,其中,该目标音频片段为多个该音频片段中的任一个。

可选地,该生成模块404,用于:

获取该目标音频片段对应的二进制数据流;

对该二进制数据流进行解码,以得到该二进制数据流对应的音频轨道数据;

根据该音频轨道数据生成该目标音频片段对应的波形图。

以上技术方案,能够分片段的生成和显示该音频文件对应的波形图,能够有效避免在生成该音频文件过程中,因为音频文件过大而造成浏览器内存爆满,进而出现可视化程序崩溃,甚至闪退的现象,从而能够有效提升用户体验。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图5是根据一示例性实施例示出的一种电子设备的框图。如图5所示,该电子设备500可以包括:处理器501,存储器502。该电子设备500还可以包括多媒体组件503,输入/输出(i/o)接口504,以及通信组件505中的一者或多者。

其中,处理器501用于控制该电子设备500的整体操作,以完成上述的音频文件可视化方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于该电子设备500与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件505可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的音频文件可视化方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的音频文件可视化方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成上述的音频文件可视化方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!
1