Ubuntu18.04 install Pyaudio

100人浏览   2024-12-22 08:49:12

PyAudio 提供了 PortAudio 的 Python 语言版本,这是一个跨平台的音频 I/O 库,使用 PyAudio 你可以在 Python 程序中播放和录制音频。使用PyAudio,您可以轻松地使用Python在各种平台上播放和录制音频,例如GNU / Linux,Microsoft Windows和Apple Mac OS X / macOS。

pyAudio介绍

1、概要

pyaudio有这么几个功能:
- 提取特征
- 训练并且使用分类器
- 语音分割功能
- 内容关系可视化

python实现,好处有这么几个
- 适合做计算分析类型操作(编码少,效率不低)
- 免费
- 不需要很复杂的搭建环境
- 大量的第三方库存都可以使用

2、具体功能

  • 特征提取(feature extraction):关于时域信号和频域信号都有所涉及
  • 分类(classification):监督学习,需要用已有的训练集来进行训练。交叉验证也实现了,进行参数优化使用。分类器可以保存在文件中以后使用。
  • 回归(regression):将语音信号映射到一个回归值。
  • 分割(segmenttation):
  • 有四个功能被实现了
    (1) 固定大小的分割;(2)静音检测(silence removal);(3)语音聚类(speaker diarization);(4)语音缩略图(audio thumbnailing)。
  • 可视化:给定语音,将内容可视化

3、特征提取

所有的短时间特征都可以见下图

  • 时间特征(short-term features)
    时域特征(特征1-3)是直接提取的频域特征(特征4-34,MFCC除外)是由傅里叶转换而来MFCC特征提取过程已经讨论过

过程:语音信号分帧,一帧有34个特征。一般20~100ms

  • 中等长度特征(mid-term features)和特别长的特征(long-term features)中等长度的调用短时间的特征,并进行统计运算1-10分钟左右长度long-term调用Mid-term然后做统计运算
  • 和速度有关的特征

4、语音分割

pyaudio提供了两类的语音分割
- 有监督的语音分割:需要提供一些材料,例如,已经训练好的分类器。为此,此库提供了两种算法:分类的方法和隐马尔科夫的算法
- 无监督的语音分割:无监督的或者半监督的,不需要提供知识准备,主要的例子是静音检测,语音聚类,语音缩略图

5、有监督的

  • 固定长度的分割算法(fix-sized segmentation)
    audioSegmentation.py的函数mtFileClassfication()是主要的
    切分一个语音段为一个连续的中等长度的段(mid-term)并且提取min-term features,使用mtFeatureExtraction()使用已经训练好的模型来进行分类只要两个段相连并且都是同一个类别,就将两个段进行合并将数据进行可视化注意事项,一个.segment的文件必须要有plotSegmentationResults()用来画图可视化数据
  • 隐马尔科夫模型分割算法(HMM-based segmentation)用户需要提供已经标注过的数据,包括:段开始点,段结束点,段类别一个语音文件配一个标注的配置文件,两者构成训练集TrainHMM_fromFile()和TrainHMM_fromDir()是两个训练的函数hmmSegmentation()函数用来使用HMM算法plotSegmentationResult()可视化并且计算正确率

6、无监督的语音分割

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


安装

1、首先安装依赖库

sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0

2、然后,就可以直接安装了

sudo pip3 install pyaudio

3、安装成功


相关推荐