pyAudio介绍
概要
pyaudio有这么几个功能:
- 提取特征
- 训练并且使用分类器
- 语音分割功能
- 内容关系可视化
python实现,好处有这么几个
- 适合做计算分析类型操作(编码少,效率不低)
- 免费
- 不需要很复杂的搭环境
- 大量的第三方库可以使用
具体功能
- 特征提取(feature extraction):关于时域信号和频域信号都有所涉及
- 分类(classification):监督学习,需要用已有的训练集来进行训练。交叉验证也实现了,进行参数优化使用。分类器可以保存在文件中以后使用。
- 回归(regression):将语音信号映射到一个回归值。
- 分割(segmenttation):有四个功能被实现了
- [x] 固定大小的分割
- [x] 静音检测(silence removal)
- [x] 语音聚类(speaker diarization)
- [x] 语音缩略图(audio thumbnailing)
- 可视化:给定语音,将内容可视化
特征提取
所有的短时间特征可以见下图
- 短时间特征(short-term features)
- 时域特征(特征1-3)是直接提取的
- 频域特征(特征4-34,MFCC除外)是由傅里叶转换而来
- MFCC特征提取过程已经讨论过
过程:语音信号分帧,一帧有34个特征。一般20~100ms
中等长度特征(mid-term features)和特别长的特征(long-term features)
- 中等长度的调用短时间的特征,并进行统计运算
- 1-10分钟左右长度
- long-term调用Mid-term然后做统计运算
速度有关的特征
语音分割
pyaudio提供了两类的语音分割
- 有监督的语音分割:需要有提供一些材料,例如,已经训练好的分类器。为此,此库提供了两种算法:分类的方法和隐马尔科夫的算法
- 无监督的语音分割:无监督的或者半监督的,不需要提供知识准备,主要的例子是静音检测,语音聚类,语音缩略图
有监督的
- 固定长度的分割算法(fix-sized segmentation)
- audioSegmentation.py的函数mtFileClassfication()是主要的
- 切分一个语音段为一个连续的中等长度的段(mid-term)并且提取min-term features,使用mtFeatureExtraction()
- 使用已经训练好的模型来进行分类
- 只要两个段相连并且都是同一个类别,就将两个段进行合并
- 将数据进行可视化
- 注意事项,一个.segment的文件必须要有
- plotSegmentationResults()用来画图可视化数据
- audioSegmentation.py的函数mtFileClassfication()是主要的
隐马尔科夫模型分割算法(HMM-based segmentation)
- 用户需要提供已经标注过的数据,包括:段开始点,段结束点,段类别
- 一个语音文件配一个标注的配置文件,两者构成训练集
- TrainHMM_fromFile()和TrainHMM_fromDir()是两个训练的函数
- hmmSegmentation()函数用来使用HMM算法
- plotSegmentationResult()可视化并且计算正确率
无监督的语音分割
静音检测
- 短时间特征提取
- 训练SVM,在高能帧和低能帧中,特别的,10%的高能帧和10%的低能帧用在训练SVM模型
- 将SVM分类器用在全部的语音中,得到一串概率值,对应此帧是个时间帧(audio event)的概率
- 一个动态的阈值被用来探测段是不是活跃的
- 顶
- 0
- 踩
pyAudio介绍的更多相关文章
- 介绍几个python的音频处理库
一.eyeD3 直接在google上搜索python mp3 process ,推荐比较多的就是这个第三方库了.先来看看官方介绍吧. About eyeD3 is a Python tool for ...
- 『开发技巧』Python音频操作工具PyAudio上手教程
『开发技巧』Python音频操作工具PyAudio上手教程 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. ...
- 痞子衡嵌入式:语音处理工具pzh-speech诞生记(4)- 音频录播实现(PyAudio)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之音频录播实现. 音频录播是pzh-py-speech的主要功能,pzh-py-speech借 ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- HTML DOM 介绍
本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...
随机推荐
- Java虚拟机(一):JVM内存结构
所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问 ...
- Apache 配置文件详解
0x01 禁止目录列表访问 () 备份httpd.conf配置文件,修改内容: <Directory "/web"> Options FollowSymLinks Al ...
- 数组名和数组名取地址&
在C中, 在几乎所有使用数组的表达式中,数组名的值是个指针常量,也就是数组第一个元素的地址. 它的类型取决于数组元素的类型: 如果它们是int类型,那么数组名的类型就是“指向int的常量指针“ ...
- iOS开发-Autolayout小结
昨天重点学习了下Autolayout,把以前没有吃透的概念重新理解了下,现在感觉整个人都是棒棒哒. 上一个项目是使用计算坐标代码的方式来布局UI界面,这种方式的缺点在于当苹果发布新尺寸设备时需要重写代 ...
- Splash 对象方法
go() wait() jsfunc() evaljs() runjs() autoload() call_later() http_get() http_post() set_content() h ...
- VS2008 SP1 安装卡在 VS90sp1-KB945140-X86-CHS的解决方法
VS2008 SP1 安装卡在 VS90sp1-KB945140-X86-CHS的解决方法 VS2008 SP1 安装卡在 VS90sp1-KB945140-X86-CHS的解决方法 方法一:(不推荐 ...
- [转载]WebConfig配置文件详解
<?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以使用 Visual S ...
- 【Python学习】记一次开源博客系统Blog_mini源码学习历程-Flask
今天准备看看Flask框架,找到一套博客系统源码,拿来学习学习 https://github.com/xpleaf/Blog_mini 演示地址 http://140.143.205.19 技术框架 ...
- Win8交互UX——笔交互
针对触摸输入优化 Window 应用商店应用设计,并在默认情况下获得基本的笔支持. 本主题介绍笔交互的设计注意事项.有关实现笔交互的信息,请参阅响应笔和触笔交互. 笔交互 通过使用笔创建手写便笺.绘图 ...
- 【WEB前端开发最佳实践系列】高可读的HTML
一.HTML语义化 HTML5中增加了很多标签都是基于此类原则设计的(article nav header footer).页面标签语义化的优点是使得搜索引擎以及第三方抓包工具等更容易读懂页面 ...