一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种音频特征提取方法、系统、设备及介质与流程

2021-06-04 13:45:00 来源:中国专利 TAG:提取 音频 介质 特征 方法


1.本发明涉及音频提取技术领域,特别是涉及一种音频特征提取方法、系统、设备及介质。


背景技术:

2.在语音识别和其他语音相关场景中,音频特征提取都是其中关键的步骤。特征提取会将时域上的音频信号转换为各式频域上的特征,例如fft(fast fourier transform),fbank,mfcc(mel frequency cepstral coefficents)等。许多语音算法的工具和科学计算的库中都会包含特征提取的功能。然而,目前已有的音频特征提取工具往往存在以下几个问题:(1)由于不同的语音算法工具往往使用不同的数据格式,不同格式的音频特征提取结果难以复用,而一种特征提取工具也难以在另一套算法框架下使用;(2)开源的语音算法框架(如kaldi)自带的特征提取工具在性能和资源占用上难以令人满意;(3)虽然c ,python等语言都有音频特征提取的开源工具,但这些工具只提供了基本功能的接口,很难满足丰富多变的数据需求。


技术实现要素:

3.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种音频特征提取方法、系统、设备及介质,用于解决现有技术存在的技术问题。
4.为实现上述目的及其他相关目的,本发明提供一种音频特征提取方法,包括以下步骤:
5.根据音频数据来源执行对应的读取命令,获取音频内容;
6.对所述音频内容进行一次或多次特征提取,并按照预设框架将每次提取的音频特征保存至预设文件中。
7.可选地,提取的音频特征包括以下至少之一:快速傅里叶变换特征、梅尔滤波器系数特征、梅尔倒谱系数特征、音调特征、身份向量特征。
8.可选地,对所述音频内容进行一次或多次特征提取,包括:
9.对所述音频内容进行离散傅里叶变换,提取快速傅里叶变换特征;
10.对所述快速傅里叶变换特征应用梅尔倒谱,提取梅尔滤波器系数特征;
11.对所述梅尔滤波器系数特征进行离散余弦变换,提取梅尔倒谱系数特征。
12.可选地,按照预设框架将每次提取的音频特征保存至预设文件中,包括:将每次提取的音频特征保存至csv文件、numpy的npy文件和/或kaldi的二进制ark文件中。
13.可选地,根据音频数据来源执行对应的读取命令,获取音频内容,包括:
14.若所述音频数据来源是wav文件,则直接读取wav文件,获取对应的音频内容;
15.若所述音频数据来源是shell命令,则在管道pipeline中执行所述shell命令,获取对应的音频内容。
16.可选地,还包括根据语音数据集构建语音数据信息表,并根据所述语音数据信息
表确定音频数据来源;
17.其中,所述语音数据集中的内容包括以下至少之一:音频编号、音频文件的存储位置、音频的长度、音频对应的文本内容标注。
18.本发明还提供一种音频特征提取系统,包括有:
19.采集模块,用于根据音频数据来源执行对应的读取命令,获取音频内容;
20.音频特征提取模块,用于对所述音频内容进行一次或多次特征提取;
21.存储模块,用于按照预设框架将每次提取的音频特征保存至预设文件中。
22.可选地,提取的音频特征包括以下至少之一:快速傅里叶变换特征、梅尔滤波器系数特征、梅尔倒谱系数特征、音调特征、身份向量特征。
23.可选地,对所述音频内容进行一次或多次特征提取,包括:
24.对所述音频内容进行离散傅里叶变换,提取快速傅里叶变换特征;
25.对所述快速傅里叶变换特征应用梅尔倒谱,提取梅尔滤波器系数特征;
26.对所述梅尔滤波器系数特征进行离散余弦变换,提取梅尔倒谱系数特征。
27.可选地,按照预设框架将每次提取的音频特征保存至预设文件中,包括:将每次提取的音频特征保存至csv文件、numpy的npy文件和/或kaldi的二进制ark文件中。
28.本发明还提供一种计算机设备,包括:
29.一个或多个处理器;和
30.存储有指令的一个或多个机器可读介质,当所述一个或多个处理器执行所述指令时,使得所述设备执行如上述中任意一项所述的方法。
31.本发明还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行所述指令时,使得设备执行如上述中任意一项所述的方法。
32.如上所述,本发明提供一种音频特征提取方法、系统、设备及介质,具有以下有益效果:根据音频数据来源执行对应的读取命令,获取音频内容;对音频内容进行一次或多次特征提取,并按照预设框架将每次提取的音频特征保存至预设文件中。本发明针对目前存在的问题,设计了一套多功能音频特征提取方式,包括音频数据解析、音频特征提取和特征结果保存三项基本功能,而且可以提供多种结果格式的支持,优化了处理效率。本发明实现了对音频数据集的一键式处理;提取的特征内容支持多种语音算法框架,解决了不同平台因各自的特征提取算法不同而难以对比实验的问题。而且本发明功能丰富,可以提取不同长度的fft特征(即快速傅里叶变换特征)、fbank特征(即梅尔滤波器系数特征)和mfcc特征(即梅尔倒谱系数特征);并且本发明应用范围广,提取结果可以应用于多种语音识别框架的模型训练和预测。同时,本发明提取效率高,资源占用小,降低了海量音频数据处理所需的成本。
附图说明
33.图1为一实施例提供的音频特征提取方法的流程示意图;
34.图2为另一实施例提供的音频特征提取方法的流程示意图;
35.图3为一实施例提供的音频特征提取系统的硬件结构示意图;
36.图4为一实施例提供的终端设备的硬件结构示意图;
37.图5为另一实施例提供的终端设备的硬件结构示意图。
38.元件标号说明
39.m10
ꢀꢀꢀꢀꢀ
采集模块
40.m20
ꢀꢀꢀꢀꢀ
音频特征提取模块
41.m30
ꢀꢀꢀꢀꢀ
存储模块
42.1100
ꢀꢀꢀꢀ
输入设备
43.1101
ꢀꢀꢀꢀ
第一处理器
44.1102
ꢀꢀꢀꢀ
输出设备
45.1103
ꢀꢀꢀꢀ
第一存储器
46.1104
ꢀꢀꢀꢀ
通信总线
47.1200
ꢀꢀꢀꢀ
处理组件
48.1201
ꢀꢀꢀꢀ
第二处理器
49.1202
ꢀꢀꢀꢀ
第二存储器
50.1203
ꢀꢀꢀꢀ
通信组件
51.1204
ꢀꢀꢀꢀ
电源组件
52.1205
ꢀꢀꢀꢀ
多媒体组件
53.1206
ꢀꢀꢀꢀ
音频组件
54.1207
ꢀꢀꢀꢀ
输入/输出接口
55.1208
ꢀꢀꢀꢀ
传感器组件
具体实施方式
56.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
57.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
58.请参阅图1,本发明提供一种音频特征提取方法,包括以下步骤:
59.s100,根据音频数据来源执行对应的读取命令,获取音频内容;
60.s200,对所述音频内容进行一次或多次特征提取,并按照预设框架将每次提取的音频特征保存至预设文件中。
61.本方法针对目前存在的问题,设计了一套多功能音频特征提取方式,包括音频数据解析、音频特征提取和特征结果保存三项基本功能,而且可以提供多种结果格式的支持,优化了处理效率。本方法实现了对音频数据集的一键式处理;提取的特征内容支持多种语音算法框架,解决了不同平台因各自的特征提取算法不同而难以对比实验的问题。而且本方法功能丰富,可以提取不同长度的fft特征(即快速傅里叶变换特征)、fbank特征(即梅尔滤波器系数特征)和mfcc特征(即梅尔倒谱系数特征);并且本方法应用范围广,提取结果可
以应用于多种语音识别框架的模型训练和预测。同时,本方法提取效率高,资源占用小,降低了海量音频数据处理所需的成本。
62.在一些示例性实施例中,提取的音频特征包括以下至少之一:快速傅里叶变换特征(即fft特征)、梅尔滤波器系数特征(即fbank特征)、梅尔倒谱系数特征(即mfcc特征)、音调特征(即pitch特征)、身份向量特征(包括ivector特征和xvcertor特征)。作为示例,对所述音频内容进行一次或多次特征提取,可以包括:对所述音频内容进行离散傅里叶变换,提取快速傅里叶变换特征;对所述快速傅里叶变换特征应用梅尔倒谱,提取梅尔滤波器系数特征;对所述梅尔滤波器系数特征进行离散余弦变换,提取梅尔倒谱系数特征。通过提取音频特征,可以提取到不同长度的fft特征、fbank特征和mfcc特征,且可以将提取结果应用于多种语音识别框架的模型训练和预测。作为示例,pitch特征在语音识别模型训练时可以通过多维fbank特征来等效替代;ivector和xvector特征包含说话人信息,需要根据特定的数据集进行监督训练。本方法仅使用fbank特征的情况下,在kaldi(一种语音识别算法框架)上训练语音识别模型的效果基本达到fbank pitch ivector三种特征联合训练的水平。
63.在一些示例性实施例中,按照预设框架将每次提取的音频特征保存至预设文件中,包括:将每次提取的音频特征保存至csv文件、numpy(python中一个数值计算扩展库)的npy(numpy中一种二进制矩阵文件的类型)文件和/或kaldi的二进制ark文件中。音频特征的维数如果较大,提取的特征数据也会很庞大。其中,numpy中的npy矩阵是python中广泛应用的矩阵格式。为了节约存储空间,加快读取速度,音频特征往往采用二进制文件的存储方式。作为示例,本申请实施例可以选择npy作为结果保存的格式之一,从而可以支持大部分基于python的语音算法框架;同样可以选择把结果保存成kaldi中的ark二进制文件。利用csv文件在整理音频数据时可以通过python等工具轻易将音频数据的各类信息组织成csv的形式,从而使本方法能够应用在大部分语音数据处理的场景。同时,通过保存为kaldi文件,使本方法支持kaldi的数据格式,能够满足语音识别领域的大部分需求。另外,音频文件的存储位置也可以是shell命令的形式,即对原始音频进行增强操作。由于许多语音算法在数据准备的阶段都要对音频数据进行增强操作,如增减音量,调整音频速度,增加混响和噪声等。如果将增强的音频保存到文件,会成倍增加数据所占用的磁盘空间,从文件中读取数据也会影响后续任务的效率。因此,本方法提供了对kaldi中数据增强方式的支持,即通过shell命令的形式记录音频的增强方式,但不立即执行,提取特征时再执行该命令,并通过管道的形式传递结果,从而做到数据不落地。本发明通过优化管道的使用方式,降低了内存占用,提高了多核设备上可以并行的任务数量。并且,为了节省存储空间,增加读取效率,本方法选择将特征提取结果保存为二进制文件的形式。然而,由于音频特征的组织形式缺乏统一标准,不同语音工具使用的二进制特征文件之间也难以兼容。所以,本方法提供了两种常用的二进制文件格式支持,一种是numpy中的npy矩阵,另一种是kaldi的二进制格式。同时,由于目前主流的机器学习和深度学习框架都是基于python,npy格式的支持意味着本方法可以与这些主流框架兼容;而kaldi二进制的支持也为kaldi与其他框架之间的对比实验提供了条件。同时,发明人对比了本方法与kaldi自带特征提取工具的资源占用与效率。在采用相同语音数据集的情况下,本方法可以并行的任务数量是kaldi的3倍左右,即单任务内存占用仅为kaldi的三分之一;单任务的情况下,本方法提取fft、fbank和mfcc这三种特征的时间与kaldi提取单一fbank特征所用时间相当,即相同内存占用下本发明的提取速度
是kaldi的三倍。
64.在一示例性实施例中,还包括根据语音数据集构建语音数据信息表,并根据所述语音数据信息表确定音频数据来源;其中,语音数据信息表是指将上述多个字段的信息合并成一张表,并支持以csv格式输出该表。所述语音数据集中的内容包括以下至少之一:音频编号、音频文件的存储位置、音频的长度、音频对应的文本内容标注。具体地,在海量音频处理的场景中,上下游数据格式是否匹配会直接影响整个任务的进度。在上游数据输入一侧,本方法支持两种数据组织形式:一种是将各种信息写在一个csv文件中;另一种是kaldi的数据格式,将不同的信息分别保存在不同的文件中。
65.在一些示例性实施例中,根据音频数据来源执行对应的读取命令,获取音频内容,包括:若所述音频数据来源是wav文件,则直接读取wav文件,获取对应的音频内容;若所述音频数据来源是shell命令,则在管道pipeline中执行所述shell命令,获取对应的音频内容。本申请实施例中,管道pipeline是将前一个命令的输出作为后一个命令的输入,利用c 实现时,可以通过管道pipeline把shell命令的输出作为文件对象读取出来。作为示例,例如可以将“20170001p00001u000a0018/qs_data/train_1000h/st

cmds

20170001_1

os/20170001p00001u000a0018.wav”确定为音频来源为wav文件,可以将“00000sox
‑‑
vol1.7082909716094652

t wav/qs_data/speech/audio/ldc/vast_cmn_transcription/wav/vvc038177.wav

t wav

|”确定为音频来源为shell命令,其中shell命令中开头的“00000”代表音频id。
66.作为示例,如图2所示,提供一具体的音频特征提取过程,包括:
67.步骤s1,读取语音数据集,构建语音数据信息表。其中,语音数据集通常包含以下内容:音频id、音频文件的存储位置、音频的长度和音频对应的文本内容标注。不同的语音算法框架具有不同格式的数据集。本申请实施例支持两种数据集的格式:一种是将上述信息写在一个csv文件中;另一种是kaldi中将不同的信息分别保存在不同的文件中。音频文件的存储位置也可以是shell命令的形式,即对原始音频进行增强操作。语音数据信息表是指将上述多个字段的信息合并成一张表,并支持以csv格式输出该表。
68.步骤s2,读取音频内容。根据步骤s1生成的表中的语音数据,根据表中的音频来源读取音频。如果音频来源是wav文件,则直接读取该文件;如果音频来源是shell命令,则在管道pipeline中执行该命令,从而获得音频内容。作为示例,例如可以将“20170001p00001u000a0018/qs_data/train_1000h/st

cmds

20170001_1

os/20170001p00001u000a0018.wav”确定为音频来源为wav文件,可以将“00000sox
‑‑
vol1.7082909716094652

t wav/qs_data/speech/audio/ldc/vast_cmn_transcription/wav/vvc038177.wav

t wav

|”确定为音频来源为shell命令,其中shell命令中开头的“00000”代表音频id。
69.步骤s3,提取fft特征。根据离散傅里叶变换算法,对步骤s2读取的音频提取fft特征,用户可以设置fft结果的维数。fft(fast fourier transform,即快速傅里叶变换,简称fft),即利用计算机计算离散傅里叶变换(dft)的高效、快速计算方法的统称,简称fft。
70.步骤s4,提取fbank特征。对步骤s3得到的的fft特征应用梅尔倒谱,得到fbank特征,用户可以设置fbank结果的维数。fbank(filterbank)人耳对声音频谱的响应是非线性的,fbank就是一种前端处理算法,以类似于人耳的方式对音频进行处理,可以提高语音识
别的性能。获得语音信号的fbank特征的一般步骤是:预加重、分帧、加窗、傅里叶变换(fft)、mel滤波、去均值等。
71.步骤s5,提取mfcc特征。对步骤s4得到的的fbank特征应用离散余弦变换,得到mfcc特征,用户可以设置mfcc结果的维数。
72.步骤s6,特征提取结果保存。提取的音频特征维数如果较大,提取的特征数据也会很庞大。为了节约存储空间,加快读取速度,音频特征往往采用二进制文件的存储方式。numpy中的npy矩阵是python中广泛应用的矩阵格式,本发明选择npy作为结果保存的格式之一,从而可以支持大部分基于python的语音算法框架;本发明同样可以把结果保存成kaldi中的ark二进制文件。
73.本方法为了节约存储空间,加快读取速度,音频特征往往采用二进制文件的存储方式。作为示例,本申请实施例可以选择npy作为结果保存的格式之一,从而可以支持大部分基于python的语音算法框架;同样可以选择把结果保存成kaldi中的ark二进制文件。利用csv文件在整理音频数据时可以通过python等工具轻易将音频数据的各类信息组织成csv的形式,从而使本方法能够应用在大部分语音数据处理的场景。同时,通过保存为kaldi文件,使本方法支持kaldi的数据格式,能够满足语音识别领域的大部分需求。另外,音频文件的存储位置也可以是shell命令的形式,即对原始音频进行增强操作。由于许多语音算法在数据准备的阶段都要对音频数据进行增强操作,如增减音量,调整音频速度,增加混响和噪声等。如果将增强的音频保存到文件,会成倍增加数据所占用的磁盘空间,从文件中读取数据也会影响后续任务的效率。因此,本方法提供了对kaldi中数据增强方式的支持,即通过shell命令的形式记录音频的增强方式,但不立即执行,提取特征时再执行该命令,并通过管道的形式传递结果,从而做到数据不落地。本发明通过优化管道的使用方式,降低了内存占用,提高了多核设备上可以并行的任务数量。并且,为了节省存储空间,增加读取效率,本方法选择将特征提取结果保存为二进制文件的形式。然而,由于音频特征的组织形式缺乏统一标准,不同语音工具使用的二进制特征文件之间也难以兼容。所以,本方法提供了两种常用的二进制文件格式支持,一种是numpy中的npy矩阵,另一种是kaldi的二进制格式。同时,由于目前主流的机器学习和深度学习框架都是基于python,npy格式的支持意味着本方法可以与这些主流框架兼容;而kaldi二进制的支持也为kaldi与其他框架之间的对比实验提供了条件。同时,发明人对比了本方法与kaldi自带特征提取工具的资源占用与效率。在采用相同语音数据集的情况下,本方法可以并行的任务数量是kaldi的3倍左右,即单任务内存占用仅为kaldi的三分之一;单任务的情况下,本方法提取fft、fbank和mfcc这三种特征的时间与kaldi提取单一fbank特征所用时间相当,即相同内存占用下本发明的提取速度是kaldi的三倍。
74.综上所述,本方法针对目前存在的问题,设计了一套多功能音频特征提取方式,包括音频数据解析、音频特征提取和特征结果保存三项基本功能,而且可以提供多种结果格式的支持,优化了处理效率。本方法实现了对音频数据集的一键式处理;提取的特征内容支持多种语音算法框架,解决了不同平台因各自的特征提取算法不同而难以对比实验的问题。而且本方法功能丰富,可以提取不同长度的fft特征(即快速傅里叶变换特征)、fbank特征(即梅尔滤波器系数特征)和mfcc特征(即梅尔倒谱系数特征);并且本方法应用范围广,提取结果可以应用于多种语音识别框架的模型训练和预测。同时,本方法提取效率高,资源
占用小,降低了海量音频数据处理所需的成本。
75.如图3所示,本发明还提供一种音频特征提取系统,包括有:
76.采集模块m10,用于根据音频数据来源执行对应的读取命令,获取音频内容;
77.音频特征提取模块m20,用于对所述音频内容进行一次或多次特征提取;
78.存储模块m30,用于按照预设框架将每次提取的音频特征保存至预设文件中。
79.本系统针对目前存在的问题,设计了一套多功能音频特征提取方式,包括音频数据解析、音频特征提取和特征结果保存三项基本功能,而且可以提供多种结果格式的支持,优化了处理效率。本系统实现了对音频数据集的一键式处理;提取的特征内容支持多种语音算法框架,解决了不同平台因各自的特征提取算法不同而难以对比实验的问题。而且本系统功能丰富,可以提取不同长度的fft特征(即快速傅里叶变换特征)、fbank特征(即梅尔滤波器系数特征)和mfcc特征(即梅尔倒谱系数特征);并且本系统应用范围广,提取结果可以应用于多种语音识别框架的模型训练和预测。同时,本系统提取效率高,资源占用小,降低了海量音频数据处理所需的成本。
80.在一些示例性实施例中,音频特征提取模块m20提取的音频特征包括以下至少之一:快速傅里叶变换特征(即fft特征)、梅尔滤波器系数特征(即fbank特征)、梅尔倒谱系数特征(即mfcc特征)、音调特征(即pitch特征)、身份向量特征(包括ivector特征和xvcertor特征)。作为示例,对所述音频内容进行一次或多次特征提取,可以包括:对所述音频内容进行离散傅里叶变换,提取快速傅里叶变换特征;对所述快速傅里叶变换特征应用梅尔倒谱,提取梅尔滤波器系数特征;对所述梅尔滤波器系数特征进行离散余弦变换,提取梅尔倒谱系数特征。通过提取音频特征,可以提取到不同长度的fft特征、fbank特征和mfcc特征,且可以将提取结果应用于多种语音识别框架的模型训练和预测。作为示例,pitch特征在语音识别模型训练时可以通过多维fbank特征来等效替代;ivector和xvector特征包含说话人信息,需要根据特定的数据集进行监督训练。本系统仅使用fbank特征的情况下,在kaldi(一种语音识别算法框架)上训练语音识别模型的效果基本达到fbank pitch ivector三种特征联合训练的水平。
81.在一些示例性实施例中,存储模块m30按照预设框架将每次提取的音频特征保存至预设文件中,包括:将每次提取的音频特征保存至csv文件、numpy(python中一个数值计算扩展库)的npy(numpy中一种二进制矩阵文件的类型)文件和/或kaldi的二进制ark文件中。音频特征的维数如果较大,提取的特征数据也会很庞大。其中,numpy中的npy矩阵是python中广泛应用的矩阵格式。为了节约存储空间,加快读取速度,音频特征往往采用二进制文件的存储方式。作为示例,本申请实施例可以选择npy作为结果保存的格式之一,从而可以支持大部分基于python的语音算法框架;同样可以选择把结果保存成kaldi中的ark二进制文件。利用csv文件在整理音频数据时可以通过python等工具轻易将音频数据的各类信息组织成csv的形式,从而使本系统能够应用在大部分语音数据处理的场景。同时,通过保存为kaldi文件,使本系统支持kaldi的数据格式,能够满足语音识别领域的大部分需求。另外,音频文件的存储位置也可以是shell命令的形式,即对原始音频进行增强操作。由于许多语音算法在数据准备的阶段都要对音频数据进行增强操作,如增减音量,调整音频速度,增加混响和噪声等。如果将增强的音频保存到文件,会成倍增加数据所占用的磁盘空间,从文件中读取数据也会影响后续任务的效率。因此,本系统提供了对kaldi中数据增强
方式的支持,即通过shell命令的形式记录音频的增强方式,但不立即执行,提取特征时再执行该命令,并通过管道的形式传递结果,从而做到数据不落地。本发明通过优化管道的使用方式,降低了内存占用,提高了多核设备上可以并行的任务数量。并且,为了节省存储空间,增加读取效率,本系统选择将特征提取结果保存为二进制文件的形式。然而,由于音频特征的组织形式缺乏统一标准,不同语音工具使用的二进制特征文件之间也难以兼容。所以,本系统提供了两种常用的二进制文件格式支持,一种是numpy中的npy矩阵,另一种是kaldi的二进制格式。同时,由于目前主流的机器学习和深度学习框架都是基于python,npy格式的支持意味着本系统可以与这些主流框架兼容;而kaldi二进制的支持也为kaldi与其他框架之间的对比实验提供了条件。同时,发明人对比了本系统与kaldi自带特征提取工具的资源占用与效率。在采用相同语音数据集的情况下,本系统可以并行的任务数量是kaldi的3倍左右,即单任务内存占用仅为kaldi的三分之一;单任务的情况下,本系统提取fft、fbank和mfcc这三种特征的时间与kaldi提取单一fbank特征所用时间相当,即相同内存占用下本发明的提取速度是kaldi的三倍。
82.在一示例性实施例中,还包括根据语音数据集构建语音数据信息表,并根据所述语音数据信息表确定音频数据来源;其中,语音数据信息表是指将上述多个字段的信息合并成一张表,并支持以csv格式输出该表。所述语音数据集中的内容包括以下至少之一:音频编号、音频文件的存储位置、音频的长度、音频对应的文本内容标注。具体地,在海量音频处理的场景中,上下游数据格式是否匹配会直接影响整个任务的进度。在上游数据输入一侧,本系统支持两种数据组织形式:一种是将各种信息写在一个csv文件中;另一种是kaldi的数据格式,将不同的信息分别保存在不同的文件中。
83.在一些示例性实施例中,根据音频数据来源执行对应的读取命令,获取音频内容,包括:若所述音频数据来源是wav文件,则直接读取wav文件,获取对应的音频内容;若所述音频数据来源是shell命令,则在管道pipeline中执行所述shell命令,获取对应的音频内容。本申请实施例中,管道pipeline是将前一个命令的输出作为后一个命令的输入,利用c 实现时,可以通过管道pipeline把shell命令的输出作为文件对象读取出来。作为示例,例如可以将“20170001p00001u000a0018/qs_data/train_1000h/st

cmds

20170001_1

os/20170001p00001u000a0018.wav”确定为音频来源为wav文件,可以将“00000sox
‑‑
vol1.7082909716094652

t wav/qs_data/speech/audio/ldc/vast_cmn_transcription/wav/vvc038177.wav

t wav

|”确定为音频来源为shell命令,其中shell命令中开头的“00000”代表音频id。
84.作为示例,如图2所示,提供一具体的音频特征提取过程,具体功能和技术效果参照上述实施例即可,本系统不再进行赘述,
85.本系统为了节约存储空间,加快读取速度,音频特征往往采用二进制文件的存储方式。作为示例,本申请实施例可以选择npy作为结果保存的格式之一,从而可以支持大部分基于python的语音算法框架;同样可以选择把结果保存成kaldi中的ark二进制文件。利用csv文件在整理音频数据时可以通过python等工具轻易将音频数据的各类信息组织成csv的形式,从而使本系统能够应用在大部分语音数据处理的场景。同时,通过保存为kaldi文件,使本系统支持kaldi的数据格式,能够满足语音识别领域的大部分需求。另外,音频文件的存储位置也可以是shell命令的形式,即对原始音频进行增强操作。由于许多语音算法
在数据准备的阶段都要对音频数据进行增强操作,如增减音量,调整音频速度,增加混响和噪声等。如果将增强的音频保存到文件,会成倍增加数据所占用的磁盘空间,从文件中读取数据也会影响后续任务的效率。因此,本系统提供了对kaldi中数据增强方式的支持,即通过shell命令的形式记录音频的增强方式,但不立即执行,提取特征时再执行该命令,并通过管道的形式传递结果,从而做到数据不落地。本发明通过优化管道的使用方式,降低了内存占用,提高了多核设备上可以并行的任务数量。并且,为了节省存储空间,增加读取效率,本系统选择将特征提取结果保存为二进制文件的形式。然而,由于音频特征的组织形式缺乏统一标准,不同语音工具使用的二进制特征文件之间也难以兼容。所以,本系统提供了两种常用的二进制文件格式支持,一种是numpy中的npy矩阵,另一种是kaldi的二进制格式。同时,由于目前主流的机器学习和深度学习框架都是基于python,npy格式的支持意味着本系统可以与这些主流框架兼容;而kaldi二进制的支持也为kaldi与其他框架之间的对比实验提供了条件。同时,发明人对比了本系统与kaldi自带特征提取工具的资源占用与效率。在采用相同语音数据集的情况下,本系统可以并行的任务数量是kaldi的3倍左右,即单任务内存占用仅为kaldi的三分之一;单任务的情况下,本系统提取fft、fbank和mfcc这三种特征的时间与kaldi提取单一fbank特征所用时间相当,即相同内存占用下本发明的提取速度是kaldi的三倍。
86.综上所述,本系统针对目前存在的问题,设计了一套多功能音频特征提取方式,包括音频数据解析、音频特征提取和特征结果保存三项基本功能,而且可以提供多种结果格式的支持,优化了处理效率。本系统实现了对音频数据集的一键式处理;提取的特征内容支持多种语音算法框架,解决了不同平台因各自的特征提取算法不同而难以对比实验的问题。而且本系统功能丰富,可以提取不同长度的fft特征(即快速傅里叶变换特征)、fbank特征(即梅尔滤波器系数特征)和mfcc特征(即梅尔倒谱系数特征);并且本系统应用范围广,提取结果可以应用于多种语音识别框架的模型训练和预测。同时,本系统提取效率高,资源占用小,降低了海量音频数据处理所需的成本。
87.本申请实施例还提供了一种音频特征提取设备,包括有:
88.获取一个或多个目标空间区域内对应的人体特征数据;
89.判断所述设备接入层在所述目标空间区域内采集的一个或多个人体特征数据是否符合预设的人体特征数据筛选规则,若符合,则根据所述数据层传输的人体特征数据,确定与所述人体特征数据对应的一维或多维分析结果。
90.在本实施例中,该音频特征提取设备执行上述系统或方法,具体功能和技术效果参照上述实施例即可,此处不再赘述。
91.本申请实施例还提供了一种设备,该设备可以包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行图1所述的方法。在实际应用中,该设备可以作为终端设备,也可以作为服务器,终端设备的例子可以包括:智能手机、平板电脑、电子书阅读器、mp3(动态影像专家压缩标准语音层面3,moving picture experts group audio layer iii)播放器、mp4(动态影像专家压缩标准语音层面4,moving picture experts group audio layer iv)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等,本申请实施例对于具体的设备不加以限制。
92.本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例的图1中数据处理方法所包含步骤的指令(instructions)。
93.图4为本申请一实施例提供的终端设备的硬件结构示意图。如图所示,该终端设备可以包括:输入设备1100、第一处理器1101、输出设备1102、第一存储器1103和至少一个通信总线1104。通信总线1104用于实现元件之间的通信连接。第一存储器1103可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,第一存储器1103中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
94.可选的,上述第一处理器1101例如可以为中央处理器(central processing unit,简称cpu)、应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,该处理器1101通过有线或无线连接耦合到上述输入设备1100和输出设备1102。
95.可选的,上述输入设备1100可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如usb接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;输出设备1102可以包括显示器、音响等输出设备。
96.在本实施例中,该终端设备的处理器包括用于执行各设备中语音识别装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
97.图5为本申请的另一个实施例提供的终端设备的硬件结构示意图。图5是对图4在实现过程中的一个具体的实施例。如图所示,本实施例的终端设备可以包括第二处理器1201以及第二存储器1202。
98.第二处理器1201执行第二存储器1202所存放的计算机程序代码,实现上述实施例中图1所述方法。
99.第二存储器1202被配置为存储各种类型的数据以支持在终端设备的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。第二存储器1202可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non
‑‑
volatile memory),例如至少一个磁盘存储器。
100.可选地,第二处理器1201设置在处理组件1200中。该终端设备还可以包括:通信组件1203,电源组件1204,多媒体组件1205,音频组件1206,输入/输出接口1207和/或传感器组件1208。终端设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
101.处理组件1200通常控制终端设备的整体操作。处理组件1200可以包括一个或多个第二处理器1201来执行指令,以完成上述图1所示方法的全部或部分步骤。此外,处理组件1200可以包括一个或多个模块,便于处理组件1200和其他组件之间的交互。例如,处理组件1200可以包括多媒体模块,以方便多媒体组件1205和处理组件1200之间的交互。
102.电源组件1204为终端设备的各种组件提供电力。电源组件1204可以包括电源管理系统,一个或多个电源,及其他与为终端设备生成、管理和分配电力相关联的组件。
103.多媒体组件1205包括在终端设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(lcd)和触摸面板(tp)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
104.音频组件1206被配置为输出和/或输入语音信号。例如,音频组件1206包括一个麦克风(mic),当终端设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部语音信号。所接收的语音信号可以被进一步存储在第二存储器1202或经由通信组件1203发送。在一些实施例中,音频组件1206还包括一个扬声器,用于输出语音信号。
105.输入/输出接口1207为处理组件1200和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
106.传感器组件1208包括一个或多个传感器,用于为终端设备提供各个方面的状态评估。例如,传感器组件1208可以检测到终端设备的打开/关闭状态,组件的相对定位,用户与终端设备接触的存在或不存在。传感器组件1208可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与终端设备间的距离。在一些实施例中,该传感器组件1208还可以包括摄像头等。
107.通信组件1203被配置为便于终端设备和其他设备之间有线或无线方式的通信。终端设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个实施例中,该终端设备中可以包括sim卡插槽,该sim卡插槽用于插入sim卡,使得终端设备可以登录gprs网络,通过互联网与服务器建立通信。
108.由上可知,在图5实施例中所涉及的通信组件1203、音频组件1206以及输入/输出接口1207、传感器组件1208均可以作为图4实施例中的输入设备的实现方式。
109.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜