具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,音频文件可以包括但不限于:歌曲、歌曲片段、音乐、音乐片段等文件。音频文件可被划分为多种类别,例如:按语言划分,音频文件可被划分为华语类、英文类、日韩类、小语种类等各种类别;再如:按流派划分,音频文件可被划分为拉丁类、舞曲类、民谣类、流行类、乡村类等各种类别。本发明实施例中,对音频文件进行分类的过程指为音频文件确定类别的过程。
下面将结合附图1-附图2,对本发明实施例提供的音频文件的分类方法进行详细介绍。
请参见图1,为本发明实施例提供的一种音频文件的分类方法的流程图;该方法可包括以下步骤S101-步骤S103。
S101,构建待分类的音频文件的Pitch序列。
一个音频文件可以表示为以时间T为帧长,Ts为帧移的多个音频帧组成的一个帧序列;其中,帧长T和帧移Ts的取值可以根据实际需要进行确定,例如:针对一首歌曲,帧长T可以为20ms,帧移Ts可以为10ms;再如:针对一曲音乐,帧长T可以为10ms,帧移Ts可以为5ms;等等。不同的音频文件,帧长T的取值可能相同,也可能不同;帧移Ts的取值可能相同,也可能不同。音频文件所包含的每个音频帧均携带音高,各个音频帧的音高按照各个音频帧的时间先后顺序构成该音频文件的旋律信息。本步骤可根据待分类的音频文件所包含的每个音频帧的音高,构建该音频文件的Pitch序列。其中,音频文件的Pitch序列包含该音频文件的每个音频帧的音高,音频文件的Pitch序列中所包含的各个音高按序构成该音频文件的旋律信息。
S102,根据所述音频文件的Pitch序列,计算所述音频文件的特征向量。
其中,音频文件的特征向量包含该音频文件的特征参数,该特征参数包括但不限于以下参数中的至少一个:音高均值、音高标准差、音高变化宽度、音高上升比例、音高下降比例、零音高比例、音高上升的平均速率和音高下降的平均速率。音频文件的特征向量可用于抽象化表征该音频文件所包含的音频内容。音频文件的特征向量可通过多个特征参数,抽象化表征音频文件所包含的音频内容。
S103,根据所述音频文件的特征向量,对所述音频文件进行分类。
由于音频文件的特征向量可用于抽象化表征该音频文件所包含的音频内容,本步骤根据所述音频文件的特征向量,对所述音频文件进行分类;实则基于所述音频文件所包含的音频内容,对该音频文件进行分类,从而可提升音频文件的分类准确性。
本发明实施例通过构建待分类的音频文件的Pitch序列,基于该音频文件的Pitch序列计算特征向量,从而可采用特征向量抽象化音频文件所包含的音频内容;进一步,本发明实施例根据特征向量对该音频文件进行分类,由于基于音频文件所包含的音频内容进行自动分类,降低了分类成本,且提升了分类效率,提高了分类灵活性和智能性。
请参见图2,为本发明实施例提供的另一种音频文件的分类方法的流程图;该方法可包括以下步骤S201-步骤S205。
S201,提取待分类的音频文件所包含的每个音频帧的音高。
一个音频文件可以表示为以时间T为帧长,Ts为帧移的多个音频帧组成的一个帧序列;其中,帧长T和帧移Ts的取值可以根据实际需要进行确定,例如:针对一首歌曲,帧长T可以为20ms,帧移Ts可以为10ms;再如:针对一曲音乐,帧长T可以为10ms,帧移Ts可以为5ms;等等。不同的音频文件,帧长T的取值可能相同,也可能不同;帧移Ts的取值可能相同,也可能不同。音频文件所包含的每个音频帧均携带音高,各个音频帧的音高按照各个音频帧的时间先后顺序构成该音频文件的旋律信息。若设定待分类的音频文件共包含n(n为正整数)个音频帧,第一个音频帧的音高为S(1),第二个音频帧的音高为S(2),以此类推,第n-1个音频帧的音高为S(n-1),第n个音频帧的音高为S(n);本步骤则提取该待分类的音频文件所包含的每个音频帧的音高,即提取S(1)至S(n)。
S202,根据所述音频文件的每个音频帧的音高,构建所述音频文件的Pitch序列。
其中,音频文件的Pitch序列包含该音频文件的每个音频帧的音高,音频文件的Pitch序列中所包含的各个音高按序构成该音频文件的旋律信息。本步骤中,所述音频文件的Pitch序列可表示为S序列,该S序列包含S(1)、S(2)……S(n-1)、S(n)共n个音高,该n个音高按序构成所述音频文件的旋律信息。具体实现中,本步骤可存在以下两种可行的实施方式,在一种可行的实施方式中,本步骤可采用Pitch提取算法,构建所述音频文件的Pitch序列;该Pitch提取算法可包括但不限于:自相关函数法、峰值提取算法、平均幅度差函数法、倒谱法、谱图法等等。在另一种可行的实施方式中,本步骤可采用Pitch提取工具,构建所述音频文件的Pitch序列;该Pitch提取工具可包括但不限于:voicebox(一个matlab语音处理工具箱)中的fxpefac工具或fxrapt工具,等等。
本实施例的步骤S201-步骤S202可以为图1所示实施例的步骤S101的具体细化流程。
S203,根据所述音频文件的Pitch序列,计算所述音频文件的特征参数。
其中,所述音频文件的特征参数可包括但不限于以下参数中的至少一个:音高均值、音高标准差、音高变化宽度、音高上升比例、音高下降比例、零音高比例、音高上升的平均速率和音高下降的平均速率。为了能够更准确的体现所述音频文件包含的音频内容,本发明实施例中,优选地,所述音频文件的特征参数包括音高均值、音高标准差、音高变化宽度、音高上升比例、音高下降比例、零音高比例、音高上升的平均速率和音高下降的平均速率;各特征参数的定义及计算过程如下:
a)音高均值,代表所述音频文件的Pitch序列(即S序列)的平均音高,可采用E表示。本步骤可采用以下公式(1)计算所述音频文件的音高均值E:
其中,E表示所述音频文件的音高均值;n为正整数,n表示所述音频文件的Pitch序列(即S序列)包含的音高的数量;i为正整数且i≤n,i表示所述音频文件的Pitch序列(即S序列)包含的音高的序号;S(i)表示所述音频文件的Pitch序列(即S序列)包含的任一音高。
b)音高标准差,代表所述音频文件的Pitch序列(即S序列)的音高变化,可采用Std表示。本步骤可采用以下公式(2)计算所述音频文件的音高标准差Std:
其中,Std表示所述音频文件的音高标准差;n为正整数,n表示所述音频文件的Pitch序列(即S序列)包含的音高的数量;i为正整数且i≤n,i表示所述音频文件的Pitch序列(即S序列)包含的音高的序号;S(i)表示所述音频文件的Pitch序列(即S序列)包含的任一音高;E表示所述音频文件的音高均值;。
c)音高变化宽度,代表所述音频文件的Pitch序列(即S序列)的音高变化幅度范围,可采用R表示。本步骤可采用以下公式(3)计算所述音频文件的音高变化宽度R:
R=Emax-Emin (3)
其中,R表示所述音频文件的音高变化宽度;Emax的计算过程为:将所述音频文件的Pitch序列(即S序列)中的n个音高按照从大到小的顺序排列,组成S’序列;从S’序列中选取前m个音高,计算所选取的m个音高的平均值,其中,m为正整数且m≤n;例如:假设所述音频文件的Pitch序列(即S序列)中共包含S(1)=1Hz、S(2)=0.5Hz、S(3)=4Hz、S(4)=2Hz、S(5)=5Hz、S(6)=1.5Hz、S(7)=3Hz、S(8)=2.5Hz、S(9)=3.5Hz、S(10)=6Hz共10个音高;m值为2,则Emax的计算过程为:按照音高从大到小的顺序排列,组成S’序列,该S’序列中的10个音高排列顺序为:S(10)=6Hz、S(5)=5Hz、S(3)=4Hz、S(9)=3.5Hz、S(7)=3Hz、S(8)=2.5Hz、S(4)=2Hz、S(6)=1.5Hz、S(1)=1Hz、S(2)=0.5Hz;从该S’序列中选取前2个音高为S(10)=6Hz和S(5)=5Hz;计算S(10)和S(5)的音高平均值为 则Emax的值即为5.5Hz。
其中,Emin的计算过程为:将所述音频文件的Pitch序列(即S序列)中的n个音高按照从小到大的顺序,组成S’’序列;从S’’序列中选取前m个音高,计算所选取的m个音高的平均值,其中,m为正整数且m≤n;;例如:假设所述音频文件的Pitch序列(即S序列)中共包含S(1)=1Hz、S(2)=0.5Hz、S(3)=4Hz、S(4)=2Hz、S(5)=5Hz、S(6)=1.5Hz、S(7)=3Hz、S(8)=2.5Hz、S(9)=3.5Hz、S(10)=6Hz共10个音高;m值为2,则Emin的计算过程为:按照音高从小到大的顺序排列,组成S’’序列,该S’’序列中的10个音高排列顺序为:S(2)=0.5Hz、S(1)=1Hz、S(6)=1.5Hz、S(4)=2Hz、S(8)=2.5Hz、S(7)=3Hz、S(9)=3.5Hz、S(3)=4Hz、S(5)=5Hz、S(10)=6Hz;从该S’’序列中的选取前2个音高为S(2)=0.5Hz和S(1)=1Hz;计算S(2)和S(1)的音高平均值为则Emin的值即为0.75Hz。
上述例子中Emax的值即为5.5Hz,Emin的值即为0.75Hz;采用公式(3)即可计算得到所述音频文件的音高变化宽度R的值为4.75Hz。该可以理解的是,上述的m的取值可根据实际情况进行设定,例如:可设定该m的取值为所述音频文件的Pitch序列(即S序列)包含的音高的数量n的20%;或设定该m的取值为所述音频文件的Pitch序列(即S序列)包含的音高的数量n的10%,等等。
d)音高上升比例,代表所述音频文件的Pitch序列(即S序列)的音高上升次数所占的比例,可采用UP表示。在所述音频文件的Pitch序列(即S序列)中,每检测到一次S(i+1)-S(i)>0,则表示音高上升一次。本步骤可采用以下公式(4)计算所述音频文件的音高上升比例UP:
UP=Nup/(n-1) (4)
其中,Nup表示所述音频文件的Pitch序列(即S序列)的音高上升次数;n为正整数,n表示所述音频文件的Pitch序列(即S序列)包含的音高的数量。
e)音高下降比例,代表所述音频文件的Pitch序列(即S序列)的音高下降次数所占的比例,可采用DOWN表示。在所述音频文件的Pitch序列(即S序列)中,每检测到一次S(i+1)-S(i)<0,则表示音高下降一次。本步骤可采用以下公式(5)计算所述音频文件的音高下降比例DOWN:
DOWN=Ndown/(n-1) (5)
其中,Ndown表示所述音频文件的Pitch序列(即S序列)的音高下降次数;n为正整数,n表示所述音频文件的Pitch序列(即S序列)包含的音高的数量。
f)零音高比例,代表所述音频文件的Pitch序列(即S序列)的零音高所占的比例,可采用Zero表示。在所述音频文件的Pitch序列(即S序列)中,每检测到一次S(i)=0,则表示出现一次零音高。本步骤可采用以下公式(6)计算所述音频文件的零音高比例Zero:
Zero=Nzero/n (6)
其中,Nzero表示所述音频文件的Pitch序列(即S序列)出现零音高的数量;n为正整数,n表示所述音频文件的Pitch序列(即S序列)包含的音高的数量。
g)音高上升的平均速率,代表所述音频文件的Pitch序列(即S序列)的音高从小到大变化所用的平均时间,可采用Su表示。本步骤对所述音频文件的音高上升的平均速率Su的计算过程主要包含以下三个步骤:
g1.1):确定所述音频文件的Pitch序列(即S序列)中音高的上升段落,统计上升段落的数量pup,每个上升段落包含的音高的数量qup,每个上升段落中的最大音高值maxup和最小音高值minup。例如:假设所述音频文件的Pitch序列(即S序列)中共包含S(1)=1Hz、S(2)=0.5Hz、S(3)=4Hz、S(4)=2Hz、S(5)=5Hz、S(6)=1.5Hz、S(7)=3Hz、S(8)=2.5Hz、S(9)=3.5Hz、S(10)=6Hz共10个音高;则确定该S序列中音高的上升段落包括“S(2)—S(3)”、“S(4)—S(5)”、“S(6)—S(7)”和“S(8)—S(9)—S(10)”共4个段落,则pup=4。其中,第一个上升段落包含S(2)和S(3)共2个音高,即qup-1=2;且该上升段落的最大音高值maxup-1=4Hz;该上升段落的最小音高值minup-1=0.5Hz。第二个上升段落包含S(4)和S(5)共2个音高,即qup-2=2;且该上升段落的最大音高值maxup-2=5Hz;该上升段落的最小音高值minup-2=2Hz。第三个上升段落包含S(6)和S(7)共2个音高,即qup-3=2;且该上升段落的最大音高值maxup-3=3Hz;该上升段落的最小音高值minup-3=1.5Hz。第四个上升段落包含S(8)、S(9)和S(10)共3个音高,即qup-4=3;且该上升段落的最大音高值maxup-4=6Hz;该上升段落的最小音高值minup-4=2.5Hz。
g1.2):计算所述音频文件的Pitch序列(即S序列)中的每个上升段落的斜率。本步骤可采用以下公式(7)计算每个上升段落的斜率:
kup-j=(maxup-j-minup-j)/qup-j (7)
其中,j为正整数且j≤pup,up-j表示所述音频文件的Pitch序列(即S序列)中的上升段落的序号;kup-j表示所述音频文件的Pitch序列(即S序列)中的任一上升段落的斜率。
可以理解的是,按照上述步骤g1.1)中的例子,本步骤经过上述公式(7),可计算获得4个上升段落的斜率为分别为:kup-1、kup-2、kup-3、kup-4;该4个上升段落的斜率计算过程分别如下:
kup-1=(maxup-1-minup-1)/qup-1=(4-0.5)/2=1.75
kup-2=(maxup-2-minup-2)/qup-2=(5-2)/2=1.5
kup-3=(maxup-3-minup-3)/qup-3=(3-1.5)/2=0.75
kup-4=(maxup-4-minup-4)/qup-4=(6-2.5)/3≈1.17
g1.3):计算所述音频文件的音高上升的平均速率。本步骤可采用以下公式(8)计算所述音频文件的音高上升的平均速率Su:
可以理解的是,按照上述步骤g1.1)和步骤g1.2)中的例子,本步骤经过上述公式(8),可计算获得所述音频文件的音高上升的平均速率为:
h)音高下降的平均速率,代表所述音频文件的Pitch序列(即S序列)的音高从大到小变化所用的平均时间,可采用Sd表示。本步骤对所述音频文件的音高下降的平均速率Sd的计算过程主要包含以下三个步骤:
h1.1)确定所述音频文件的Pitch序列(即S序列)中音高的下降段落,统计下降段落的数量pdown,每个下降段落包含的音高的数量qdown,每个下降段落中的最大音高值maxdown和最小音高值mindown。例如:假设所述音频文件的Pitch序列(即S序列)中共包含S(1)=1Hz、S(2)=0.5Hz、S(3)=4Hz、S(4)=2Hz、S(5)=5Hz、S(6)=1.5Hz、S(7)=3Hz、S(8)=2.5Hz、S(9)=3.5Hz、S(10)=6Hz共10个音高;则确定该S序列中音高的下降段落包括“S(1)—S(2)”、“S(3)—S(4)”、“S(5)—S(6)”和“S(7)—S(8)”共4个段落,则pdown=4。其中,第一个下降段落包含S(1)和S(2)共2个音高,即qdown-1=2;且该下降段落的最大音高值maxdown-1=1Hz;该下降段落的最小音高值mindown-1=0.5Hz。第二个下降段落包含S(3)和S(4)共2个音高,即qdown-2=2;且该下降段落的最大音高值maxdown-2=4Hz;该下降段落的最小音高值mindown-2=2Hz。第三个下降段落包含S(5)和S(6)共2个音高,即qdown-3=2;且该下降段落的最大音高值maxdown-3=5Hz;该下降段落的最小音高值mindown-3=1.5Hz。第四个下降段落包含S(7)和S(8)共2个音高,即qdown-4=2;且该下降段落的最大音高值maxdown-4=3Hz;该下降段落的最小音高值mindown-4=2.5Hz。
h1.2):计算所述音频文件的Pitch序列(即S序列)中的每个下降段落的斜率。本步骤可采用以下公式(9)计算每个上升段落的斜率:
kdown-j=(maxdown-j-mindown-j)/qdown-j (9)
其中,j为正整数且j≤pdown,down-j表示所述音频文件的Pitch序列(即S序列)中的下降段落的序号;kdown-j表示所述音频文件的Pitch序列(即S序列)中的任一下降段落的斜率。
可以理解的是,按照上述步骤h1.1)中的例子,本步骤经过上述公式(9),可计算获得4个下降段落的斜率为分别为:kdown-1、kdown-2、kdown-3、kdown-4;该4个下降段落的斜率计算过程分别如下:
kdown-1=(maxdown-1-mindown-1)/qdown-1=(1-0.5)/2=0.25
kdown-2=(maxdown-2-mindown-2)/qdown-2=(4-2)/2=1
kdown-3=(maxdown-3-mindown-3)/qdown-3=(5-1.5)/2=1.75
kdown-4=(maxdown-4-mindown-4)/qdown-4=(3-2.5)/2=0.25
h1.3):计算所述音频文件的音高下降的平均速率。本步骤可采用以下公式(10)计算所述音频文件的音高上升的平均速率Sd:
可以理解的是,按照上述步骤h1.1)和步骤h1.2)中的例子,本步骤经过上述公式(10),可计算获得所述音频文件的音高下降的平均速率为:
需要说明的是,步骤S203通过上述a)至h),可计算获得所述音频文件的特征参数,包括:音高均值E、音高标准差Std、音高变化宽度R、音高上升比例UP、音高下降比例DOWN、零音高比例Zero、音高上升的平均速率Su和音高下降的平均速率Sd。
S204,将所述音频文件的特征参数采用数组进行存储,生成所述音频文件的特征向量。
本步骤中,将所述音频文件的特征参数采用数组进行存储,则所述音频文件的特征参数组成的数组即形成了所述音频文件的特征向量;该特征向量M可表示为{E,Std,R,UP,DOWN,Zero,Su,Sd}。
本实施例的步骤S203-步骤S204可以为图1所示实施例的步骤S102的具体细化流程。
S205,根据所述音频文件的特征向量,采用分类算法对所述音频文件进行分类。
其中,分类算法可以包括但不限于揀决策树算法、贝叶斯算法、svm(supportvector Machine,支持向量机)算法等等。通常,采用分类算法进行音频文件的分类的过程大致可以分为训练阶段和预测阶段;以svm算法为例,在训练阶段可先通过人工对音频文件进行分类,针对已分类的音频文件,按照上述步骤S201-步骤S204,获得已分类的音频文件的特征向量,将已分类的音频文件的特征向量及该已分类的音频文件的类别作为svm算法的训练输入值进行训练,可获得分类模型。在预测阶段,针对待分类的音频文件,通过步骤S201-步骤S204,获得待分类的音频文件的特征向量,将该待分类的音频文件的特征向量作为svm算法的预测输入值,依据svm提供的分类模型,可获得该待分类的音频文件的分类结果,即可确定该待分类的音频文件所属的类别。本步骤中,可将所述音频文件的特征向量作为分类算法的预测输入值,所述分类算法的输出值即为所述音频文件所属的类别。
本发明实施例通过构建待分类的音频文件的Pitch序列,基于该音频文件的Pitch序列计算特征向量,从而可采用特征向量抽象化音频文件所包含的音频内容;进一步,本发明实施例根据特征向量对该音频文件进行分类,由于基于音频文件所包含的音频内容进行自动分类,降低了分类成本,且提升了分类效率,提高了分类灵活性和智能性。
下面将结合附图3-附图5,对本发明实施例提供的音频文件的分类装置进行详细介绍。需要说明的是,附图3-附图5所示的音频文件的分类装置,用于执行本发明图1-图2所示实施例的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明图1-图2所示的实施例。
请参见图3,为本发明实施例提供的一种音频文件的分类装置的结构示意图;该装置可包括:构建模块101、向量计算模块102和分类模块103。
构建模块101,用于构建待分类的音频文件的音高Pitch序列。
一个音频文件可以表示为以时间T为帧长,Ts为帧移的多个音频帧组成的一个帧序列;其中,帧长T和帧移Ts的取值可以根据实际需要进行确定,例如:针对一首歌曲,帧长T可以为20ms,帧移Ts可以为10ms;再如:针对一曲音乐,帧长T可以为10ms,帧移Ts可以为5ms;等等。不同的音频文件,帧长T的取值可能相同,也可能不同;帧移Ts的取值可能相同,也可能不同。音频文件所包含的每个音频帧均携带音高,各个音频帧的音高按照各个音频帧的时间先后顺序构成该音频文件的旋律信息。所述构建模块101可根据待分类的音频文件所包含的每个音频帧的音高,构建该音频文件的Pitch序列。其中,音频文件的Pitch序列包含该音频文件的每个音频帧的音高,音频文件的Pitch序列中所包含的各个音高按序构成该音频文件的旋律信息。
向量计算模块102,用于根据所述音频文件的Pitch序列,计算所述音频文件的特征向量。
其中,音频文件的特征向量可包含该音频文件的多个特征参数,包括但不限于以下参数中的至少一个:音高均值、音高标准差、音高变化宽度、音高上升比例、音高下降比例、零音高比例、音高上升的平均速率和音高下降的平均速率。音频文件的特征向量可用于抽象化表征该音频文件所包含的音频内容。音频文件的特征向量可通过多个特征参数,抽象化表征音频文件所包含的音频内容。
分类模块103,用于根据所述音频文件的特征向量,对所述音频文件进行分类。
由于音频文件的特征向量可用于抽象化表征该音频文件所包含的音频内容,所述分类模块103根据所述音频文件的特征向量,对所述音频文件进行分类;实则基于所述音频文件所包含的音频内容,对该音频文件进行分类,从而可提升音频文件的分类准确性。
本发明实施例通过构建待分类的音频文件的Pitch序列,基于该音频文件的Pitch序列计算特征向量,从而可采用特征向量抽象化音频文件所包含的音频内容;进一步,本发明实施例根据特征向量对该音频文件进行分类,由于基于音频文件所包含的音频内容进行自动分类,降低了分类成本,且提升了分类效率,提高了分类灵活性和智能性。
下面将结合附图4-附图5,对图3所示的各模块的结构和功能进行详细介绍。
请参见图4,为本发明实施例提供的构建模块的结构示意图;该构建模块101可包括:提取单元1101和构建单元1102。
提取单元1101,用于提取待分类的音频文件所包含的每个音频帧的音高。
一个音频文件可以表示为以时间T为帧长,Ts为帧移的多个音频帧组成的一个帧序列;其中,帧长T和帧移Ts的取值可以根据实际需要进行确定,例如:针对一首歌曲,帧长T可以为20ms,帧移Ts可以为10ms;再如:针对一曲音乐,帧长T可以为10ms,帧移Ts可以为5ms;等等。不同的音频文件,帧长T的取值可能相同,也可能不同;帧移Ts的取值可能相同,也可能不同。音频文件所包含的每个音频帧均携带音高,各个音频帧的音高按照各个音频帧的时间先后顺序构成该音频文件的旋律信息。若设定待分类的音频文件共包含n(n为正整数)个音频帧,第一个音频帧的音高为S(1),第二个音频帧的音高为S(2),以此类推,第n-1个音频帧的音高为S(n-1),第n个音频帧的音高为S(n);所述提取单元1101则提取该待分类的音频文件所包含的每个音频帧的音高,即提取S(1)至S(n)。
构建单元1102,用于根据所述音频文件的每个音频帧的音高,构建所述音频文件的Pitch序列。
其中,音频文件的Pitch序列包含该音频文件的每个音频帧的音高,音频文件的Pitch序列中所包含的各个音高按序构成该音频文件的旋律信息。所述音频文件的Pitch序列可表示为S序列,该S序列包含S(1)、S(2)……S(n-1)、S(n)共n个音高,该n个音高按序构成所述音频文件的旋律信息。具体实现中,所述构建单元1102对Pitch序列的构建过程可存在以下两种可行的实施方式,在一种可行的实施方式中,所述构建单元1102可采用Pitch提取算法,构建所述音频文件的Pitch序列;该Pitch提取算法可包括但不限于:自相关函数法、峰值提取算法、平均幅度差函数法、倒谱法、谱图法等等。在另一种可行的实施方式中,所述构建单元1102可采用Pitch提取工具,构建所述音频文件的Pitch序列;该Pitch提取工具可包括但不限于:voicebox(一个matlab语音处理工具箱)中的fxpefac工具或fxrapt工具,等等。
请参见图5,为本发明实施例提供的向量计算模块的结构示意图;该向量计算模块102可包括:参数计算单元1201和向量形成单元1202。
参数计算单元1201,用于根据所述音频文件的Pitch序列,计算所述音频文件的特征参数。
其中,所述音频文件的特征参数可包括但不限于以下参数中的至少一个:音高均值、音高标准差、音高变化宽度、音高上升比例、音高下降比例、零音高比例、音高上升的平均速率和音高下降的平均速率;为了能够更准确的体现所述音频文件包含的音频内容,本发明实施例中,优选地,所述音频文件的特征参数包括音高均值、音高标准差、音高变化宽度、音高上升比例、音高下降比例、零音高比例、音高上升的平均速率和音高下降的平均速率。
a’)音高均值,代表所述音频文件的Pitch序列(即S序列)的平均音高,可采用E表示。所述参数计算单元1201可采用图2所示实施例中的公式(1)计算所述音频文件的音高均值E,具体计算过程可参见图2所示实施例,在此不赘述。
b’)音高标准差,代表所述音频文件的Pitch序列(即S序列)的音高变化,可采用Std表示。所述参数计算单元1201可采用图2所示实施例中的公式(2)计算所述音频文件的音高标准差Std,具体计算过程可参见图2所示实施例,在此不赘述。
c’)音高变化宽度,代表所述音频文件的Pitch序列(即S序列)的音高变化幅度范围,可采用R表示。所述参数计算单元1201可采用图2所示实施例中的公式(3)计算所述音频文件的音高变化宽度R,具体计算过程可参见图2所示实施例,在此不赘述。
d’)音高上升比例,代表所述音频文件的Pitch序列(即S序列)的音高上升次数所占的比例,可采用UP表示。在所述音频文件的Pitch序列(即S序列)中,每检测到一次S(i+1)-S(i)>0,则表示音高上升一次。所述参数计算单元1201可采用图2所示实施例中的公式(4)计算所述音频文件的音高上升比例UP,具体计算过程可参见图2所示实施例,在此不赘述。
e’)音高下降比例,代表所述音频文件的Pitch序列(即S序列)的音高下降次数所占的比例,可采用DOWN表示。在所述音频文件的Pitch序列(即S序列)中,每检测到一次S(i+1)-S(i)<0,则表示音高下降一次。所述参数计算单元1201可采用图2所示实施例中的公式(5)计算所述音频文件的音高下降比例DOWN,具体计算过程可参见图2所示实施例,在此不赘述。
f’)零音高比例,代表所述音频文件的Pitch序列(即S序列)的零音高所占的比例,可采用Zero表示。在所述音频文件的Pitch序列(即S序列)中,每检测到一次S(i)=0,则表示出现一次零音高。所述参数计算单元1201可采用图2所示实施例中的公式(6)计算所述音频文件的零音高比例Zero,具体计算过程可参见图2所示实施例,在此不赘述。
g’)音高上升的平均速率,代表所述音频文件的Pitch序列(即S序列)的音高从小到大变化所用的平均时间,可采用Su表示。所述参数计算单元1201对所述音频文件的音高上升的平均速率Su的计算过程可参见图2所示实施例,在此不赘述。
h’)音高下降的平均速率,代表所述音频文件的Pitch序列(即S序列)的音高从大到小变化所用的平均时间,可采用Sd表示。所述参数计算单元1201对所述音频文件的音高上升的平均速率Su的计算过程可参见图2所示实施例,在此不赘述。
需要说明的是,经过上述a’)至h’),所述参数计算单元1201可计算获得所述音频文件的特征参数,包括:音高均值E、音高标准差Std、音高变化宽度R、音高上升比例UP、音高下降比例DOWN、零音高比例Zero、音高上升的平均速率Su和音高下降的平均速率Sd。
向量生成单元1202,用于将所述音频文件的特征参数采用数组进行存储,生成所述音频文件的特征向量。
所述向量生成单元1202将所述音频文件的特征参数采用数组进行存储,则所述音频文件的特征参数组成的数组即形成了所述音频文件的特征向量;该特征向量M可表示为{E,Std,R,UP,DOWN,Zero,Su,Sd}。
进一步,所述分类模块103具体用于根据所述音频文件的特征向量,采用分类算法对所述音频文件进行分类。
其中,分类算法可以包括但不限于:决策树算法、贝叶斯算法、svm算法等等。通常,采用分类算法进行音频文件的分类的过程大致可以分为训练阶段和预测阶段;以svm算法为例,在训练阶段可先通过人工对音频文件进行分类,针对已分类的音频文件,按照图3-图4所示实施例的计算过程,可获得已分类的音频文件的特征向量,将已分类的音频文件的特征向量及该已分类的音频文件的类别作为svm算法的训练输入值进行训练,可获得分类模型。在预测阶段,针对待分类的音频文件,按照图3-图4所示实施例的计算过程,可获得待分类的音频文件的特征向量,将该待分类的音频文件的特征向量作为svm算法的预测输入值,依据svm提供的分类模型,可获得该待分类的音频文件的分类结果,即可确定该待分类的音频文件所属的类别。所述分类模块103可将所述音频文件的特征向量作为分类算法的预测输入值,所述分类算法的输出值即为所述音频文件所属的类别。
需要说明的是,附图3-附图5所示的音频文件的分类装置的结构和功能可通过本发明图1-图2所示实施例的方法具体实现,该具体实现过程可参见图1-图2所示实施例的相关描述,在此不赘述。
本发明实施例通过构建待分类的音频文件的Pitch序列,基于该音频文件的Pitch序列计算特征向量,从而可采用特征向量抽象化音频文件所包含的音频内容;进一步,本发明实施例根据特征向量对该音频文件进行分类,由于基于音频文件所包含的音频内容进行自动分类,降低了分类成本,且提升了分类效率,提高了分类灵活性和智能性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。