Python音频操作工具PyAudio上手教程详解

  

 Python音频操作工具PyAudio上手教程详解”> & # 8203;</p>
  <h3> <强> 0。引子</强> </h3>
  <p>当需要使用Python处理音频数据时,使用Python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包。</p>
  <p> PyAudio是Python开源工具包,由名思义,是提供对语音操作的工具包。提供录音播放处理等功能,可以视作语音领域的OpenCv。</p>
  <h3> <强> 1。简介</强> </h3>
  <p> PyAudio为跨平台音频I/O库PortAudio提供Python绑定。使用PyAudio,您可以轻松地使用Python在各种平台上播放和录制音频,例如GNU/Linux、Microsoft Windows和苹果的Mac OS X/macOS。</p>
  <p> PyAudio的灵感来自:</p>
  <ul>
  <李> pyPortAudio/fastaudio: PortAudio <强> v18 </强>,API的Python绑定。</李>
  <李>,tkSnack: Tcl/Tk和Python的跨平台声音工具包。</李>
  </ul>
  <p> 2。安装</p>
  <p>目前的版本是<强> PyAudio v0.2.11 </>强。在大多数平台上使用脉冲安装PyAudio。对于v0.2.9之前的版本,PyAudio分发安装二进制文件,这些文件,存档在这里。</p>
  Windows </p> <p>微软
  <p>使用脉冲安装:</p>
  <p> <代码> python - m pip安装pyaudio </代码> </p>
  <p> </p>
  <ul>
  <李>如果pip尚未与您的Python安装捆绑在一起,请在此处获取,李</>。
  <李> pip将获取并安装PyAudio轮(预先打包的二进制文件)。目前,有车轮兼容Python 2.7, 3.4, 3.5和3.6,的,官方发行版。对于这些版本,可以使用32位和64位车轮。</李>
  <李>这些二进制文件包括使用MinGW构建的PortAudio第十九节v190600_20161030。它们仅支持Windows API的居里夫人,<强>不</强>包括对举,ASIO等的支持。如果需要支持未包含的API,则需要编译PortAudio和PyAudio。苹果Mac OS x </李>
  </ul>
  <p>使用自制程序安装必备的portaudio库,然后使用脉冲安装PyAudio: </p>
  
  <pre类=   酿造安装portaudio   pip安装pyaudio      

  
      <李>如果尚未安装,请下载,李自酿酒。   <李> pip将下载PyAudio源代码并为您的Python版本构建它。   <李>自酿酒和构建PyAudio还需要安装Xcode命令行工具(更多信息)。   
  

  

使用包管理器安装PyAudio:

  

<代码> sudo apt-get安装python-pyaudio python3-pyaudio

  

如果没有最新版本的PyAudio,请使用脉冲安装它:

  

<代码> pip安装pyaudio

  

  
      <李> pip将下载PyAudio源并为您的系统构建它。请务必事先安装portaudio库开发包(<代码> portaudio19-dev> python-all-dev>   <李>为了更好地隔离系统包,请考虑在virtualenv中安装PyAudio 。   
  

,

  

源代码可从Python包指数(PyPI)下载:pypi.python.org/pypi/PyAudio。

  

或克隆git存储库:

  

<代码> git克隆,https://people.csail.mit.edu/hubert/git/pyaudio.git

  

要从源代码构建PyAudio,您还需要构建PortAudio第十九节。有关为各种平台构建PyAudio的一些说明,请参阅编译提示。要使用Microsoft Visual Studio构建PyAudio,请查看塞巴斯蒂安·奥迪特的说明。

  

<强> 3。示例

  

<强> 1)。采集音频

  

下面以一段代码演示如何从计算机麦克风采集一段音频,采集音频时长4 s,保存文件output.wav

  

使用了tqdm模块,可以方便显示出来读取过程,如下:

        *记录   100% |██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 172/172 [00:03<00:00, 43.40/s)   *完成记录            进口pyaudio   进口波   从tqdm进口tqdm   def record_audio (wave_out_path record_second):   块=1024   格式=pyaudio.paInt16   渠道=2   率=44100   p=pyaudio.PyAudio ()==p.open(流格式的格式,   渠道=频道,   率=率,   输入=True,   frames_per_buffer=块)   wf=波。打开(wave_out_path,“世界银行”)   wf.setnchannels(渠道)   wf.setsampwidth (p.get_sample_size(格式)   wf.setframerate(率)   打印(“*记录”)   因为我在tqdm(范围(0,int(率/块* record_second))):   data=https://www.yisu.com/zixun/stream.read(块)   wf.writeframes(数据)   打印(“*做记录”)   stream.stop_stream ()   stream.close ()   p.terminate ()   wf.close ()   record_audio (output.wav record_second=4)

Python音频操作工具PyAudio上手教程详解