介绍一种音频信号分类方法
来源:互联网 发布:微软软件开发工具 编辑:程序博客网 时间:2024/05/20 13:10
能用来区分语音和音乐信号的音频特征有很多种,如感觉特性、能量、功率谱和Mel频标倒谱(MFCC)系数,能量、平均过零率、基频和功率谱峰值等。以下介绍一种基于子带音调个数比与频谱倾斜度相结合的区分方法。
一、基本原理
不同类型的音频,其音调分量在各个子带的分布有所不同。语音的音调分量绝大部分分布在低频处,而音乐的音调分量在各个子带的分布则相对较均匀。利用该特性可区分音乐与语音信号。
由于某些敲打式的突变音乐信号,其音调分布特性较接近于语音的音调分布特性。因此仅用子带音调分量区分准确度不高。为解决这一问题,引入频谱倾斜度特征。一般来说,语音与音乐的平均频谱倾斜度主要分布在[0.650,0.995]的范围内,但对于一些敲打式的突变音乐信号,其频谱倾斜度的值很小,小于0.650。另外,有些音乐频谱倾斜度的值可达到很高,大于0.995。该特性能较好的区分子带音调分量不能区分的突变音乐信号。
二、方法实现
2.1子带音调个数比
对信号进行分帧处理,帧长为N。用汉明窗对每帧输入时域信号进行加窗,然后对加窗信号进行FFT变换,并计算其功率密度谱X(k),x(k)也称为频谱系数。由于FFT是关于N12对称的N/2,因此只需计算前N/2个频谱。
将频域划分为4个子带SBi,分别为 [0,N/16],[N/16,N/8],[N/8,N/4]和[N/4,N/2]。当频谱系数X(k)符合X(k-1)<X(k)<X(k+1)且X(k)-X(k+j)≥7 dB时,则认为此频谱系数x(k)是音调的(tonal)。其中j根据不同的子带取不同的值。
计算每个子带的音调个数NTi(i=0,1,…,3)与帧的总音调个数NTsum的比值,即子带音调个数比RTi。取当前帧子带音调个数比与前面L帧(L=20,取1s较合理)的子带音调个数比的平均值作为当前帧的子带音调个数比(平滑处理)。语音与音乐在SB0和SB2的音调分布区别较大,因此可采用RT0与RT2对语音和音乐进行区分。
2.2 频谱倾斜度及判断方法
频谱倾斜度(ST)是估计语音信号第一个自相关系数的归一化值ST=r(1)/r(0),其中,r(j)为自相关系数。与子带音调个数比类似,以20帧为例,计算当前帧与前19帧的ST均值作为当前帧的ST值。
结合子带音调个数比和频谱倾斜度对输入音频信号进行分类。当同时符合RT0>0.62,RT<0.08,ST >0.65.而且ST<0.995这4个条件时,把当前帧判别为语音;否则,判别 为音乐。
分类结果有时会出现单帧误判的情况,即所谓的“毛刺”现象。平滑技术可有效去除这种“毛刺”。平滑的简单实现方法是:若前一个数据块的信号类型与后一个数据块的信号类型相同。而与当前帧的信号类型不同时,使当前帧的信号类型判决为与前一个数据块的信号类型相同。实验证明,在分类算法中采用平滑技术可有效去除一些“毛刺”现象,使分类更平滑。
- 介绍一种音频信号分类方法
- 音频信号
- 音频信号
- 音频信号
- 文本自动分类方法介绍
- 一种用示波器抓异常信号的方法
- Verilog一种检测信号上升沿的方法
- Qt creator信号与槽的一种方法实现
- [转载]介绍一种效率极高的分类算法
- 国家发改委张书科给你介绍一种“互联网+分类回收”全新模式
- 音频信号分帧
- 可视化音频信号波形
- 介绍一种遥感数据的下载方法
- mysql中分类统计的一种好方法
- 信号介绍
- IP地址的分类及其分类方法介绍
- 音频放大器分类
- wince音频驱动分类
- Javaweb开发(前端和后端学习资料)
- numpy库
- 关于指针传递和指针的引用传递
- 数据结构:手动编写Java栈
- Solr之高亮显示-yellowcong
- 介绍一种音频信号分类方法
- python时间格式输出 以及递增 日期加一天
- Spring 事务
- Oracle 存储过程样例
- FMDB保存数组和字典
- Cassandra_架构
- Mac 打开、编辑 .bash_profile 文件
- Shell date嵌套赋值
- megan的javaScript学习笔记一