人工智能我见及特征提取mfcc算法理解
一、人工智能
从LeNex手写数字识别,AlexNet图像识别,到无人驾驶汽车,再到Alpha Go、Alpha Go Zero的横空出世,人工智能无疑已经成为了当下科技的大热。那么什么是人工智能呢?直白点,人工智能就是让机器拥有人的智能。科学家们为了让机器拥有智能,从人是如何识别、思考、解决问题的角度出发,为机器量身订做了一套方案。
神经网络就是一个最好的例子:早期,科学家们从鸟儿的翅膀发明了飞机,现在,科学家们从人是如何思考的,大脑是如何运作的出发,进而发明了神经网络。下面我们要引出本篇博客的重点mfcc特征提取算法,这也是基于人类的行为而发明出来的。
二、mfcc算法
mfcc是为了完成声音识别而开发出来的一套算法,基于人是如何识别声音的。首先明确四点:
1.语音信号的大部分信息包含在低频分量中;
2.语音信号的大部分信息包含在低幅部分中;
3.人耳听到的声音高低与声音频率不成线性关系,但是与该声音频率的对数近似成线性正比关系;
4.人并不能区分所有频率分量,只有两个频率分量相差一定带宽时(1000hz以下,带宽恒定100hz;1000hz以上,带宽与中心频率成指数关系),人类才能区分,否则人就会把两个音调听成一个,这称为屏蔽效应,带宽称为临界带宽;(中心频率:声音高低主要与频率有关,由于可听声的声频太宽(从20Hz到20000Hz),为便于进行频率分析,将其分为若干段,称为频程。每频程的上限与下限频率的几何平均值称为该频程的中心频率)
MFCC在一定程度上模拟了人耳对语音的处理特点,应用了人耳听觉感知方面的研究成果,采用这种技术语音识别系统的性能有一定提高。
mfcc是一种特征,这个特征在自动语音和说话人识别中广泛的使用。
如果现在给我们一段语音,我们首先得到它的频谱包络(连接所有共振峰值点的平滑曲线,共振峰值携带了声音的辨识属性,如同人的身份证),但是对于人类来说,人类听觉的感知至聚焦在某些特定的区域而不是整个频谱包络,而MEL频率分析就是基于人类听觉感知实验的。实验观测发现人耳就像一个滤波器组一样,它只关注某些特定的频率分量。它在低频区域有很多的滤波器,在高频区域则较少。
人耳听觉的特性与Mel频率的增长一致,Mel滤波器能向人一样的去提取特征。(而gfcc是基于GT滤波器的)
人工智能我见及特征提取mfcc算法理解的更多相关文章
- 关于KMP算法理解(快速字符串匹配)
参考:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 2016-08- ...
- FFT算法理解与c语言的实现
完整内容迁移至 http://www.face2ai.com/DIP-2-3-FFT算法理解与c语言的实现/ http://www.tony4ai.com/DIP-2-3-FFT算法理解与c语言的实现 ...
- EM算法理解的九层境界
EM算法理解的九层境界 EM 就是 E + M EM 是一种局部下限构造 K-Means是一种Hard EM算法 从EM 到 广义EM 广义EM的一个特例是VBEM 广义EM的另一个特例是WS算法 广 ...
- HMM-前向后向算法理解与实现(python)
目录 基本要素 HMM三大问题 概率计算问题 前向算法 后向算法 前向-后向算法 基本要素 状态 \(N\)个 状态序列 \(S = s_1,s_2,...\) 观测序列 \(O=O_1,O_2,.. ...
- HMM-维特比算法理解与实现(python)
HMM-前向后向算法理解与实现(python) HMM-维特比算法理解与实现(python) 解码问题 给定观测序列 \(O=O_1O_2...O_T\),模型 \(\lambda (A,B,\pi) ...
- 最小生成树——Kruskal算法理解
背景:本文是在小甲鱼数据结构教学视频中的代码的基础上,添加详细注释而完成的.该段代码并不完整,仅摘录了核心算法部分,结合自己的思考,谈谈理解. Prim算法理解: 如图(摘录自小甲鱼教学视频中的图片) ...
- 最小生成树——Prim算法理解
背景:本文是在小甲鱼数据结构教学视频中的代码的基础上,添加详细注释而完成的.该段代码并不完整,仅摘录了核心算法部分,结合自己的思考,谈谈理解. Prim算法理解: 如图(摘录自小甲鱼教学视频中的图片) ...
- 编译系统中的 NFA/DFA算法理解
1.问题概述 NFA 和 DFA浅析---要深入了解正则表达式,必须首先理解有穷自动机. 有穷自动机(Finite Automate)是用来模拟实物系统的数学模型,它包括如下五个部分: 有穷状态集St ...
- KNN算法理解
一.算法概述 1.kNN算法又称为k近邻分类(k-nearest neighbor classification)算法. 最简单平庸的分类器或许是那种死记硬背式的分类器,记住全部的训练数据,对于新的数 ...
随机推荐
- 优先队列:POJ No 3614 Sunscreen 贪心
Sunscreen Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6410 Accepted: 2239 Descrip ...
- 使用jQuery仿淘宝商城多格焦点图滚动切换效果
1.效果及功能说明 图片滚动切换特效,高仿2012淘宝商城首页多格子焦点图切换,鼠标滑过焦点图片各个格子区域聚光灯效果展示 2.实现原理 在显示div的下面有一个按钮条在鼠标触及到按钮的时候会改变那妞 ...
- HDFS的java接口——简化HDFS文件系统操作
今天闲来无事,于是把HDFS的基本操作用java写出简化程序出来给大家一些小小帮助! package com.quanttech; import org.apache.hadoop.conf.Conf ...
- ARC官方文档翻译! - iPhone App开发外包专区 - 威锋论坛 - 威锋网
CHENYILONG Blog ARC官方文档翻译! - iPhone App开发外包专区 - 威锋论坛 - 威锋网 http://bbs.weiphone.com/read-htm-tid-344 ...
- js工作常见问题收集
1. viewport <meta name="viewport" content="width=device-width,initial-scale=1.0,mi ...
- Servlet笔记1--概述
JavaEE概述及系统架构分析: (1) JavaEE概述: (2) 系统架构分析:
- qt 零星笔记
1.qt中堆栈对象的销毁 名字不对,我不知道该取个什么名字,暂且这样吧 在linux c编程中谈到过进程的内存映像,一个进程在内存中的映像如下
- Redhat制作本地yum源
1.将iso文件上传到服务器上,然后执行: mount -o loop rhel-server-6.3-dvd.iso /media/cdrom 2.设置yum源,在/etc/yum.repos.d目 ...
- OpenJDK,Oracle's OpenJDK,Oracle JDK的区别与选择
OpenJDK 单纯的OpenJDK指的是JDK的源码,以GPL协议开源,由企业和社区开发者共同维护和开发. Oracle's OpenJDK Oracle started providing ope ...
- Python全局变量和局部变量
全局变量和局部变量 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域. 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问.调用函数时,所有在函数内声明的变量 ...