pyaudio库的安装(portaudio.h文件无法找到问题解决)

本文详细介绍了pyaudio库的功能,包括特征提取、分类、回归、分割和可视化等方面,并讲解了库的安装步骤及常见问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pyaudio是语音处理的python库,提供了比较丰富的功能。

具体功能如下:

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

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

  • 短时间特征(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()可视化并且计算正确率

    image

无监督的语音分割

  • 静音检测

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

    image


在做python环境下的语音识别等相关任务时,一般都需要用到这个库。然而,对于第一次安装这个库的时候,发现都装不上,报的错就是:

找不到portaudio.h文件。

针对这个问题,本来以为是PIP安装的时候下载的包错了,后来对着文件名进行搜索了下,原来是pyaudio的运行需要依赖于portaudio这个库。

因此需要从http://portaudio.com/download.html这个网址上下载相应的软件包,然后进行正常的C++编译和安装。

再次运行pip install pyaudio,果然非常顺利就成功了。

pip install PyAudio DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality. Defaulting to user installation because normal site-packages is not writeable Collecting PyAudio Downloading PyAudio-0.2.14.tar.gz (47 kB) |████████████████████████████████| 47 kB 28 kB/s Installing build dependencies ... done Getting requirements to build wheel ... done Preparing wheel metadata ... done Building wheels for collected packages: PyAudio Building wheel for PyAudio (PEP 517) ... error ERROR: Command errored out with exit status 1: command: /usr/bin/python /home/abot/.local/lib/python2.7/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpXvTLKr cwd: /tmp/pip-install-__KrI2/pyaudio Complete output (18 lines): running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/pyaudio copying src/pyaudio/__init__.py -> build/lib.linux-x86_64-2.7/pyaudio running build_ext building 'pyaudio._portaudio' extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/src creating build/temp.linux-x86_64-2.7/src/pyaudio x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-D7NSzq/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -c src/pyaudio/main.c -o build/temp.linux-x86_64-2.7/src/pyaudio/main.o src/pyaudio/main.c:31:10: fatal error: portaudio.h: 没有那个文件或目录 #include "portaudio.h" ^~~~~~~~~~~~~ compilation terminated.
最新发布
07-09
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值