基于FPGA的卡拉OK打分系统完整设计
1:一段语音的时域波形
图[1]是一小段语音的时域波形图,可以看出,语音一般由三部分组成:无音段、清音段和浊音段。无音段不存在语音信号,在背景噪声较低的情况下,幅度近似为零。清音信号的幅度很小,没有规律,类似于随机噪声。浊音信号幅度较大,波形的上下起伏近似呈现周期性,称之为准周期性。语音信号有两个重要的时域参数:短时能量和基音周期。从图2.1可以看出信号的幅度随时间改变而变化显著,短时能量可以反映这一特性,其定义如下:
(2.2.1)
短时能量的主要意义在于给出了区分清浊音的基础,清音的短时能量明显小于浊音的短时能量,用短时能量可以大体分辨出清音、浊音以及清音变成浊音的时刻,对于质量很高(高信噪比)的语音,也可用来区分有音与无音。
从图[1]可以看出,浊音信号是一个准周期信号,其周期称为基音周期,基音周期的倒数称为基频 (Pitch)。基音周期实际上是声门波往复一次的时间长度。声门波是指声门气流的速率随时间变化的函数曲线。通常而言,当声带闭合时,声门处受阻聚积的气流会逐渐冲开声带,气流速率也随之开始缓慢地增大,达到最大值后由于声带突然闭合,气流速率陡降为零,如图[2]所示。
图2:周期性变化的声门气流速
不同说话人发出同一浊音时,基频差异明显,尤其是男女声。一般来说,正常成人男声的基频在0—200Hz左右,正常成人女声的基频为200—450Hz,小孩的基频比女声的基频还要高,老人的基频则比正常成年男声还要低。
语音信号还有一个很重要的特性即短时平稳性,语音信号是非平稳信号,但在某一个比较短的时间里,语音信号可以被看成是平稳的。这段时间一般可取为5—50ms。短时平稳性是语音信号处理的基础。
- 频域特性
对一段语音进行分帧加窗后再进行傅立叶变换就可以得到该帧语音的短时谱。清音的短时谱类似于随机信号的频谱。而浊音信号的短时谱有两个特点:第一,有明显的周期性起伏,这是因为浊音的激励源为周期脉冲气流;第二,频谱中具有几个明显的凸起点,它们对应的频率与声道的谐振频率一致。这些凸起点称为共振峰(Formant),其频率称为共振峰频率,简称共振峰。共振峰按频率由低到高排列依次为第一共振峰、第二共振峰、…,一般用字母F1、F2…来表不。一般浊音中前二个共振峰对说话人的个性特征影响较大,而前两个对于区别不同语音至关重要。
- 语音信号的特征参数
- 短时频谱
语音信号特征在较短的时间间隔中保持基本不变,即语音信号具有时变特性,因而可以将语音信号看作是一个短时平稳过程。语音信号具有一些重要的短时特征。短时频谱是语音信号的一个重要的短时特性。
B:短时自相关函数
S:自相关函数Rw(г)称为S(n)的短时自相关函数。
T:短时平均幅度
S(n)的短时平均幅度计算公式如下:
(3.1)
- 短时过零率
信号按段分割就称为短时,段可是帧大小。过零就是信号的幅度值从正值到负值、负值到正值要经过零点,统计信号在一秒钟内有几次过零就是过零率。以短时能量为主,短时过零率为辅,可对语音信号中的清音进行较精密的检测。
- 倒谱
倒谱是一段语音信号的一组重要参数。要计算信号SW(n)的倒谱,首先要计算SW(n)的离散傅立叶变换,然后对离散傅立叶变换的模取对数,最后再做傅立叶反变换,这样得到的c(n)被称做是“倒频谱”或“倒谱”。
还有其它的一些特征参数,由于在本文中或者在音频信号的研究中应用的较少,在这里就不一一介绍了。
- 实现原理与方案
下面来详细叙述一下本文提出的评分算法。在叙述中将会遇到两种音频信号,为方便起见,我们称卡拉OK机内自带的专业歌手原唱的音频信号为原唱,称卡拉OK机的使用者演唱的音频信号为翻唱。评价过程分为两个部分来完成。
首先进行时域分析,判断演唱者的协调性。由前几段对音频信号的特点可知,音频信号的时域波形并不是连续的,而是一段一段的,每一段大约持续10ms—30ms,称为一个音节。时域分析主要是针对各个音节进行分析,先用短时加窗法将信号进行分帧,然后计算出各帧信号的能量主要集中区域。比较根据两种信号得到的能量主要集中区域,如果比较吻合则说明演唱者的协调性很好,可给一个较高的分数;如果两种情况下的区域对得不是很齐,则说明协调性不好,得到应该给低一点。每次比较完一帧便将比较结果记录到存储器的特定区域。
在时域分析的同时进行频域分析,如软件流程图[3]所示,时隙分配是每取出一帧,先对它进行时域分析,记录完分析结果后,再将信号进行FFT变换,做频域分析。主要是比较原唱和翻唱频谱曲线的一致性,借助于频谱
matlab 语音信号处理 FPGA 时域比较 频域比较 相关文章:
- 基于DSP和MATLAB的语音数据采集和处理系统(05-13)
- 简化“算法到C代码”是软件业的一项挑战(07-04)
- DSP与MATLAB的语音数据采集和处理系统(02-12)
- 基于MATLAB-DSP在无传感器矢量控制中的应用(05-04)
- 基于Matlab和VC混合编程的DSP数据采集系统(05-06)
- 基于FPGA设计DSP的实践与改进设计(05-11)