概要

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()用来画图可视化数据
  • 隐马尔科夫模型分割算法(HMM-based segmentation)

    • 用户需要提供已经标注过的数据,包括:段开始点,段结束点,段类别
    • 一个语音文件配一个标注的配置文件,两者构成训练集
    • TrainHMM_fromFile()和TrainHMM_fromDir()是两个训练的函数
    • hmmSegmentation()函数用来使用HMM算法
    • plotSegmentationResult()可视化并且计算正确率

无监督的语音分割

  • 静音检测

    • 短时间特征提取
    • 训练SVM,在高能帧和低能帧中,特别的,10%的高能帧和10%的低能帧用在训练SVM模型
    • 将SVM分类器用在全部的语音中,得到一串概率值,对应此帧是个时间帧(audio event)的概率
    • 一个动态的阈值被用来探测段是不是活跃的

 
顶
0
踩

pyAudio介绍的更多相关文章

  1. 介绍几个python的音频处理库

    一.eyeD3 直接在google上搜索python mp3 process ,推荐比较多的就是这个第三方库了.先来看看官方介绍吧. About eyeD3 is a Python tool for ...

  2. 『开发技巧』Python音频操作工具PyAudio上手教程

    『开发技巧』Python音频操作工具PyAudio上手教程 ​ 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. ...

  3. 痞子衡嵌入式:语音处理工具pzh-speech诞生记(4)- 音频录播实现(PyAudio)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之音频录播实现. 音频录播是pzh-py-speech的主要功能,pzh-py-speech借 ...

  4. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  7. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  8. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  9. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

随机推荐

  1. it码农之心灵鸡汤(一)

    到底该怎么面对工作,到底怎么面临人生.到底怎么面临青春,对于打工的人来说这些一直都是心中一直无法解惑的谜团. 对于人们怎样看待工作,以前华为创始人任正非说过:非常多人问我,来公司工作有没有双休?需不须 ...

  2. iOS 图片加载速度极限优化—FastImageCache解析

    FastImageCache是Path团队开发的一个开源库,用于提升图片的加载和渲染速度,让基于图片的列表滑动起来更顺畅,来看看它是怎么做的.优化点iOS从磁盘加载一张图片,使用UIImageVIew ...

  3. scala函数demo

    /** * Created by root * Description : 柯里化函数,偏应用函数,匿名函数,高阶函数 */ object FunctionTest { def main(args: ...

  4. [Command] sync - 同步内存与硬盘数据

    sync - 同步内存与硬盘之间的数据. sync [--help] [--version] sync 命令将内存中缓存的数据写入磁盘.这包括但不限于修改过的 superblock, inode 和延 ...

  5. java 递归

    package com.j1.soa.resource.cms.service.oracle; import com.j1.base.dto.ServiceMessage; import com.j1 ...

  6. CoreData 多表 关联

    本文转载至 http://www.jianshu.com/p/e9f3b5e0cd19 1.概念简介 coreData中存在复杂的数据关系时,一张表难以满足需求,此时就需要了解使用coreData多表 ...

  7. MyBatis中Like语句使用总结

    原生写法 eg: select * from user where username like '%${value}%' 注意:     ${value}里面必须要写value,不然会报错 oracl ...

  8. php基础设计模式 注册树模式、工厂模式、单列模式

    废话不多说了,先给大家介绍注册树模式然后介绍工厂模式最后给大家介绍单列模式,本文写的很详细,一起来学习吧. php注册树模式 什么是注册树模式? 注册树模式当然也叫注册模式,注册器模式.之所以我在这里 ...

  9. 【WEB前端开发最佳实践系列】JavaScript篇

    一.养成良好的编码习惯,提高可维护性 1.避免定义全局变量和函数,解决全局变量而导致的代码“污染”最简单的额方法就是把变量和方法封装在一个变量对象上,使其变成对象的属性: var myCurrentA ...

  10. shell脚本技巧记录

    2014/4/9 shell脚本变量处理: ${varible##*string} //从左向右截取最后一个string后的字符串 ${varible#*string} //从左向右截取第一个stri ...