melbank 求语音每帧的MFCC的时候,需要一个melbank调用,这个应该不是matlab 调用m文件自带的吧,我查了也没有。

改进的MFCC算法 - 下载频道
- CSDN.NET
&&&&改进的MFCC算法
改进的MFCC算法
#include&vector&
#include&krfft.h&
#ifndef _KMFCC_KDF_2006_FEB_08_
#define _KMFCC_KDF_2006_FEB_08_
class KMFCC
KRFFT // 快速福立叶变换
int * // 滤波器开始点
int * // 滤波器结束点
std::vector& std::vector&float& & // 滤波器组
int m_nFFT;
int m_nSamR
void MelBank2Mfcc( float * MelBank, float * mfcc );
void Wav2MelBank( short * wav, float * MelBank );
void Delta( float * x , float * dx, int nSubDim, int nFrame, int nTotalDim );
void Wav2Mfcc( short * wav , float * mfcc );
void CreateMFCC(int nSamRate, int nCep=13, int nWin=1024, int nHop=512, int nChan=35, int nLift=35);
virtual ~KMFCC();
protected:
void DCT( float * in, float * out, int nChan, int nCep);
float Frq2Mel( float frq );
float Mel2Frq( float mel );
void CreatBank(int nFFT, int nChan,int nSamRate);
#endif //_KMFCC_KDF_2006_FEB_08_
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行用matlab语音特征提取
暑假期间,跟着老师做了一点点事情。其中,为了测试一下能力,老师挑了一篇跨媒体的论文,让我们根据这篇了论文和相关专利做出类似的一个跨媒体搜索软件来。其中我负责的就是语音特征提取这一块。
看完论文之后,了解了需要提取哪些特征。按照论文上说的,提取的特征分别是时域特征、频域特征、以及压缩与特征。其中时域特征为过零率、短时平均能量、线性预测系数,频域特征则包括LPC倒谱系数和mel系数、熵和子带组合特征。压缩域特征包括均方根、质心和衰减截止频率。接下来一个个来说。
过零率好理解,就是相邻数据异号,短时平均能量也好说,一小段时间数据的平方和,线性预测系数为p阶数据的线性组合算的Sn的预测值,他们的系数就是线性预测系数。
频域的lpc算是频域里面用matlab比较好求的,matlab直接就有lpc函数,mel系数(MFCC)是基于人耳的mel倒谱系数,对语音识别很有用处,但是本人的信号知识有限,实现到后来一个melbank的时候出问题了。。嗨,要是有信号大牛指点的话就好了。熵这个就悲剧了,看论文的时候没注意,没有想过提取这个特征,所以不甚了解。
压缩域这一块儿自己做了均方根和质心这连个特征,其实也是网上找的公式,不知道对不对。其中均方根是将信号傅里叶变换之后求取一帧的平方和然后除以帧长再开根号(自己也不知道对不对,就根据网上一个均方根公式这么做的),质心能就是信号谱的质心。信号做DFT变换之后,再根据质心公式就能求出来了,倒不是很难。
由于暑假才接触matlab,所以做起来还蛮棘手的。先写到这里,以后将代码传上来。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。97基于语音识别远程控制机器人系统设计与实现
上亿文档资料,等你来发现
97基于语音识别远程控制机器人系统设计与实现
ommunicationElectroacous;文章编号:(;通信电声;基于语音识别远程控制机器人;系统设计与实现;李书贞,施玉霞;(南京航空航天大学自动化学院,江苏南京21001;【摘;系统设计??;要】通过对语音识别、网络通信与智能机器人运动控制;机器人系统;【文献标识码】A;DesignandRealization
ommunicationElectroacoustics文章编号:(8-04通信电声基于语音识别远程控制机器人系统设计与实现李书贞,施玉霞(南京航空航天大学自动化学院,江苏南京210016)【摘系统设计??要】通过对语音识别、网络通信与智能机器人运动控制的综合应用,成功地设计和实现了语音远程控制智能机器人系统。操作者将语音指令输入到客户端,识别后通过Socket机制将指令传送给智能机器人,使之按指令完成运动。实验验证了语音远程控制智能机器人运动的准确性和实时性。【关键词】语音识别;网络通信;智能机器人;Socket【中图分类号】TN912;TP24【文献标识码】ADesignandRealizationofRemoteDistanceControlRobotBasedonVoiceRecognitionLIShu-zhen,SHIYu-xia(CollegeofAutomationEngineering,NanjingUniversityofAeronauticsandAstronautics,Nanjing210016,China)【Abstract】Asystemofvoice-remotedintelligentrobotisdesignedandrealizedbyusingofvoicerecognition,netcommunicationandmotioncontrolofintelligentrobot.Usercaninputthevoicecommandtoclient,thentherecognizedcommandistransferredtointelligentrobotbysocketmechanismtoachieveitsmotion.illustratetheaccuracyandreal-timeofintelligentrobotmotioncontrolledbyvoice-remoted.【Keywords】voicerecognition;netcommunication;intelligentrobot;SocketExperimentations1引言与机器进行语音交流,让没有意识的机器明白所为平台开发的,同时,Windows应用广泛,操作方便,因此,在一个完整的应用系统中,同时使用Windows和说的,这是人们长期以来梦寐以求的事情。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本活命令的高级技术。具有远距离控制功能的基于网络的远程机器人在海洋探测、军事及人类自身不能到达的各种危险和特殊场所具有独到的作用。结合语音识别与网络通信技术,笔者在四自由度的Linux,合理地配置资源,各取所长,是实现系统高性能的有效途径之一[1]。语音远程控制机器人系统可以分为本地语音识别发送端和远程机器人控制端,即客户机和服务器。本地语音识别发送端对用户的语音信号进行识别,并把识别结果通过网络传输给远程机器人控制端,控制端根据收到的指令运行相应的动作。其中,语音识别和指令发送客户端是基于Linux操作系统,指令接受服务器及机器人运动系统是基于Windows系统。语音远程控制机器人系统的整体结构框图如图1所示。网络服务接受指令AS-MRobotE机器人平台上,利用其提供的软件编程接口设计了可对其进行语音远程实时控制的系统,并给客户端和服务器提供了新的控制界面。2系统组成计算机已广泛应用到控制领域,控制系统要求具Linux客户端有高的稳定性、可靠性与实时性。作为控制系统的核心,计算机自身的稳定性和可靠性是整个系统的关键。Windows服务器判断指令Linux稳定性高,能较容易地构造出满足实时性要求的操作系统,把Linux运用到控制领域,将大大提高控制系统的性能;工程中的应用软件大多数是以Windows语音识别模块用户语音指令机器人控制模块机器人运行指令图1语音远程控制机器人系统的整体结构框图电声技术z2008年第32卷第10期通信电声CommunicationElectroacoustic3语音识别原理参考模板时间轴i语音识别分为训练阶段和识别阶段:第一步是系统“训练”阶段,任务是建立识别基本单元的声学模型;第二步是“识别”阶段。按照一定的准则和测度与系统模型进行比较,通过判决得出识别结果。本系统是基于小识别词汇量的语音识别系统,采用的是如图2所示的模板匹配法[2]。识别结果模式匹配识别参考模块IO待测语音时间轴jJ图4动态时间归整算法动态时间归整算法即是要寻找一条通过各个交叉点从起始点到终止点的最佳路径,使得该路径上所有交叉点的帧失真度总和达到最小。语音指令预处理特征提取训练模板库4客户-服务器工作模式原理Windows和Linux均支持TCP协议,提供了标准的图2基于模板匹配的语音识别原理框图Socket调用[4]。Socket编程均采用客户机/服务器模式,客户机/服务器模式在操作过程中采取的是主动请求方式。其中以采用Linux系统的计算机作为客户机来发送指令,采用Windows系统的计算机作为服务器来接受指令。其TCP传输的客户机/服务器通信模型如图5所示。服务器打开Socket端口绑定并侦听端口等待客户连接接受连接请求接受服务请求处理服务请求数据发送服务响应数据接收关闭端口服务请求发送服务请求客户机打开Socket端口建立连接3.1语音信号的预处理系统采用传声器将语音信号输入给计算机,声卡以一定频率进行数据采样,然后进行A/D转换,将转换后的语音原始数据储存起来,然后进行端点检测,判断出有效语音信号的起始点和终止点。3.2特征提取特征提取是从短时语音帧中提取对语音识别有用的信息。在孤立词语音识别中,用Mel频率的倒谱系数(MelFrequencyCeqstrumCoefficient,MFCC)作为语音特征取得了很好的效果。MFCC完整的计算过程示意图如图3所示。预处理后语音输入汉明窗帧选发送请求连接MFCC傅里叶变换滤波器组能量输出离散余弦变换输出图3MFCC计算过程示意图3.3动态时间归整算法对语音进行训练并建立特征模板库之后,在识别关闭端口过程中,模板的匹配实际上就是对模板库进行提取和比较的过程[3]。在模板匹配过程中,即使是同一个人在不同的时间,发出相同语音的时间长度也不可能相同,这就存在不同个数的特征矢量之间进行比较的问题。因此,在匹配过程中一般采用如图4所示的动态时间归整法(dynamictimewarping)对参考语音模式和待测语音模式的时间轴进行非线性归一化变换,以使2种模式在时间轴上“对齐”。图5TCP传输的客户机/服务器通信模型5机器人控制系统语音远程控制机器人系统的机器人平台是AS-MRobotE智能风暴移动机器人。AS-MRobotE函数开发库中已提供了完善的运动系统程序代码。其控制系统是在Windows平台下用C/C++语言为AS-MRobotE开发应用程序的一般方法。编程过程中只需添加m6e_api电声技术2008年第32卷第10期ommunicationElectroacoustics库为AS-MRobotE开发应用程序库。具体的编程过程和说明可见其操作手册。通信电声66.1系统的实现客户端的实现语音远程控制机器人系统的语音识别和网络传输客户端都是在Linux系统下实现的,利用QT对其进行编程实现[5]。本系统界面中Qt的版本为Qt3.3.4,其源码下载地址为:http://www./ftp/mirror/ftp.</qt/source/qt-x11-free-3.3.4.ta.gz。客户端的实现主要流程及其主要代码说明如下:(1)在Linux下对语音进行采样[6],设置其采样参数,其中存储秒数为3s,采样频率8000Hz,量化位数为8bit,声道数目为1bit。主要程序代码为:open(&/dev/dsp&,O_RDWR);/*打开声音设备*/ioctl(fd,SOUND_PCM_WRITE_BITS,&arg);/*设置采样时的量化位数*/ioctl(fd,SOUND_PCM_WRITE_CHANNELS,&arg);/*设置采样时的声道数目*/ioctl(fd,SOUND_PCM_WRITE_RATE,&arg);/*设置采样时的采样频率*/read(fd,buf,sizeof(buf));/*录音*/图6基于QT的语音远程控制机器人客户端的界面6.2服务器的实现语音远程控制机器人系统的服务器及机器人运动控制系统都是在Windows系统下实现的,并在VC++6.0环境下对其进行编程实现。服务器的实现主要流程及其主要代码说明如下:(1)设置服务器端的Socket服务。socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);/*创建Socket,使用TCP协议*/bind(slixten,(structsockaddr*)&saServer,sizeof(saServ-er));/*绑定*/listen(sListen,5)/*侦听连接请求*/accept(sListen,(structsockaddr*)&saClient,&length)/*发送连接请求*/recv(sServer,ptr,nLeft,0);/*接受数据*/closesocket(sListen);/*关闭套接字*/(2)端点检测是用过零率和短时能量双门限来确定语音信号的起始点和终点。设置MFCC系数的滤波器为24个。wave_vad()/*端点检测*/double**melBank=Melbankm(24,FRAME_LEN,FS);/*生成滤波器组*/Mfcc(double*buff,intframes)/*提取MFCC系数*/(2)机器人根据服务器接受到的指令,调用相应的动作子函数然后完成相应的动作。图7所示为基于VC++的Windows系统服务器的界面。该系统实现了显示本地IP、机器人初始化、本地控制、远程控制状态显示、服务器端口设置以及指令显示等智能控制功能。(3)语音信号训练时,提取了每次语音信号的MFCC特征后就对其进行存储,作为模板库。识别时,把当前提取到的语音特征矢量与模板库逐一用DTW方法进行比较,得分最少的即为识别出的指令。(4)与服务器建立连接,然后是发送指令。利用QT中的类QSocket来进行编程。socket-&connectToHost(ipAddress,port);/*连接服务器*/socket-&writeBlock(str,str.length());/*发送指令给服务器*/socket-&close();/*断开连接*/本机IP本地控制命令左转192.168.0.84机器人初始化右转上升下降加紧放松远程控制设置接受:左转控制运行状态:侦听客户端收到数据机器人运行指令中图6所示的是基于QT的Linux系统客户端的界面。该系统实现了语音识别的训练及识别、输入语音信号的波形显示、服务器的IP及端口设置、运行状态的显示以及发送识别指令等智能控制功能。图7设置端口TCP类型6666开始关闭退出基于VC++的Windows系统服务器的界面电声技术z2008年第32卷第10期通信电声CommunicationElectroacoustic7结束语语音远程控制机器人系统采用了使用广泛的参考文献[1]常春国,徐运涛,戴振华,等.Linux与Windows间以太网通信的研究[J].电子质量,2008(1):55-57.Windows系统平台和开放稳定的Linux系统平台,并且引入了语音识别与网络通信技术,使其控制方式更加智能化。首先是采用基于模板匹配技术的语音识别方法对有限的指令进行识别,不但能够得到比较高的识别率,而且易于实现;然后是通过Socket机制实现了[2]王雪松,田西兰,王炜强,等.语音识别技术在机器人控制中的应用[J].仪器仪表学报,):768-770.[3]LUOZhi-zeng,ZHAOJing-bing.Speechrecognitionanditsapplicationinvoice-basedrobotcontrolsystem[C]//Proceedingsofthe2004InternationalConferenceonIntelligentMechatronicsandAutomation.Chengdu:[s.n.],3.[4]薛广涛,陈一民,张涛.基于Linux的远程机器人控制系统研究[J].机器人,):261-265.Linux和Windows的远程通信,并最终根据指令实现了对机器人的语音远程控制。在具体软件实现上,在Linux系统下采用QT设计出人机语音交互界面,对有限的6个语音指令(左转、右转、上升、下降、加紧、放松)进行识别,识别率一般能达到97%以上,并且实现了发送指令的客户端功能;在Windows系统下采用[5]BLANCHETTEG.C++GUIQt3编程[M].齐亮,译.北京:北京航空航天大学出版,2006.VC++6.0设计出服务器的交互界面,来接受客户端发送来的指令,然后机器人将根据指令来执行相应的动作。实验验证了语音远程控制智能机器人运动的准确性和实时性。本系统具有极其优异的性能价格比、通用性、开放性和扩展性;基于Windows和Linux语音远程机器人控制系统在价格、性能和发展潜力上都具有竞争力,代表了未来的发展方向,有很好的应用前景。[6]宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008.作者简介李书贞,硕士研究生,主要研究方向为计算机测控系统;施玉霞,副教授,主要研究方向为多媒体技术和虚拟现实技术。[责任编辑]闫雯雯[收稿日期]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(上接第67页)[15]李木森,毛剑琴.盲信号分离的现状和展望[J].信息与电子工程,2003(1):69-79.[10]ZHANGXP,DESAIM.Nonlinearadaptivenoisesu-ppressionbasedonwavelettransform[C]//ProceedingsoftheIEEEInternationalConferenceonAcoustics,Speech,andSignalProcessing.[S.l.]:IEEEPress,89-1592.[11]LIEWBF,HUSSAINA,SAMADSA.Speechenhan-cementbynoisecancellationusingneuralnetwork[C]//ProceedingsofTENCON,1:39-42.[12]MURAKAMIT,NAMBAM,HOYAT,etal.SpeechenhancementbasedonacombinedhigherfrequencyregenerationtechniqueandRBFnetworks[C]//ProceedingsofTENCON2002.Kawasaki:[s.n.],7-460.[13]钟佑明.希尔伯特-黄变换局瞬信号分析理论的研究[D].重庆:重庆大学,2002.[16]LEETW,GIROLAMIM,SEJNOWSKITJ.IndependentcomponentanalysisusinganextendedinfomaxalgorithmformixedSubgaussianandSupergaussiansources[J].NeuralComputation,):417-441.[17]佘斌.电话语音识别应用中的鲁棒性研究[D].北京:清华大学,2002.KualaLumpur:[s.n.],[18]FURUIS.Cepstralanalysistechniqueforautomaticspeaker-verification[J].IEEETrans.onAcoustic,SpeechandSignalProcessing,4-272.[19]HERMANSKYH,MORGANN.RASTAprocessingofspeech[J].IEEETrans.onSpeechandAudioProcessing,):578-589.作者简介朱建斌,硕士研究生,主要研究方向为声目标分类识别;曾向阳,博士,教授,主要研究方向为室内声学和声目标识别;朱维杰,博士,副教授,主要研究方向为自适应信号处理。[14]ZHONGYM,QINSR,TANGBP.Researchontheoreticevidenceandrealizationofdirectly-meanEMDmethod[J].ChineseJournalofMechanicalEngineering,):399-404.[责任编辑]侯莉[收稿日期]电声技术2008年第32卷第10期包含各类专业文献、生活休闲娱乐、应用写作文书、幼儿教育、小学教育、高等教育、各类资格考试、专业论文、文学作品欣赏、97基于语音识别远程控制机器人系统设计与实现等内容。
  【】 
您可在本站搜索以下内容:
  机器人语音控制系统的设计... 3页 免费 智能机器人语音控制方法的... 2页... 基于语音识别远程控制机器... 4页 1财富值 机器人语音控制及其实现 s页 s...
 用单片机实现语音控制机器人制作人: 制作人:潘磊 pb0202303s 卢恒 pb 题目:用凌阳单片机实现语音识别功能并传递给 PIC 单片机信号,由 PIC 单片机 题目:用...
s 利用语音识别技术来实现数码相机的拍摄指令控制不像...因此, 这种语音识别系统设计有其独特的优势和应用...《基于 DSP 的机器人语音识别及控制系统设计》 硕士...
 的混合动力双臂机器人的控制系统设计摘要――本系统基于现有的混合动力的双臂机器人控制系统, 语音识别系统通过 Atmega16L 单片机和 M-LD3320 语音是识别模块来实现。...
q 计算机和摄像机组用于观察微机器人的方位,控制系统控制微机器人的移动。 本文在系统控制电路中嵌入式实现语音识别算法,通过语音控制微机器人。 微机器人控制系统的...
  基于云的机器人问答系统设计与实现_信息与通信_...将机器人技术、语音识别技 术 和网络查询技术结合在...动作识别技 术, 应用于虚拟现实、遥控机器人及远程...
q □自动化 □测控技术与仪器 设计(论文)题目:机器人语音识别算法的研究 指导教师...在实践上,实现了基于线性预测倒谱和 DTW 技术 的特定人孤立词语音识别系统[s]...
 机器人的语音识别技术摘要 18q7 年,M? 马可尼所...通过单片机可以很方便的实现语音控制技术, 本次设计...-3- 中央处理系统 机器人控制 显示器 语音处理系统...
赞助商链接
别人正在看什么?
赞助商链接您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
毕业论文-数字信号处理作业之语音识别.doc15页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:100 &&
你可能关注的文档:
··········
··········
语音信号的分析与处理
摘要:本文针对语音信号时域、频域参数进行了系统详尽的分析,并在MATLAB环境下实现了基于DTW算法的特定人孤立词语音信号的识别。
关键词:语音信号;短时傅里叶;MFCC;动态时间规整
  语音信号参数分析是语音信号处理的前提和基础。语音信号处理包括语音通信、语音增强、语音合成、语音识别和说话人识别等方面。只有通过语音信号的分析才能获得语音本质特性的参数,才能利用这些参数进行高效的语音通信,才能建立语音合成的语音库,也才可能建立用于语音识别的模板和知识库。此外,语音合成音质的好坏、语音识别率的高低,都取决于语音信号参数分析的准确性和精度。因此,语音信号参数分析是语音信号处理研究中一项非常有意义的工作[1]。
  近年来,语音识别已经成为一个非常活跃的研究领域。在不远的将来,语音识别技术有可能作为一种重要的人机交互手段,辅助甚至取代传统的键盘、鼠标等输入设备,在个人计算机上进行文字录入和操作控制。而在手持式PDA、智能家电、工业现场控制等应用场合,语音识别技术则有更为广阔的发展前景[2]。
  在特定人孤立词语音识别中,最为简单有效的方法是采用DTWDynamic Time Warping,动态时间规整算法,该算法基于动态规划DP的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现最早、较为经典的一种算法[3]。
  MATLAB是一种功能强大、效率高、交互性好的数值计算和可视化计算机高级语言,它将数值分析、信号处理和图形显示有机地融合为一体,形成了一个极其方便、用户界面友好的操作环境。本文就是在MATLAB基础上来进行语音信号参数的分析与语音信号的识别的。
语音信号的分
正在加载中,请稍后...友情链接:
Copyright & 2014
Corporation, All Rights Reserved
Processed in 3.3954 second(s), 5 db_queries,
1 rpc_queries

我要回帖

更多关于 matlab 调用m文件 的文章

 

随机推荐