當須要使用Python處理音頻數據時,使用python讀取與播放聲音必不可少,下面介紹一個好用的處理音頻PyAudio工具包。python
PyAudio是Python開源工具包,由名思義,是提供對語音操做的工具包。提供錄音播放處理等功能,能夠視做語音領域的OpenCv。git
PyAudio爲跨平臺音頻I / O庫PortAudio提供Python 綁定。使用PyAudio,您能夠輕鬆地使用Python在各類平臺上播放和錄製音頻,例如GNU / Linux,Microsoft Windows和Apple Mac OS X / macOS。github
PyAudio的靈感來自:app
目前的版本是PyAudio v0.2.11。在大多數平臺上使用pip安裝PyAudio。對於v0.2.9以前的版本,PyAudio分發安裝二進制文件,這些文件 存檔在這裏。工具
微軟Windows spa
使用pip安裝:命令行
python -m pip install pyaudio
筆記:code
Apple Mac OS X.orm
使用Homebrew安裝必備的portaudio庫,而後使用pip安裝PyAudio:blog
brew install portaudio
pip install pyaudio
筆記:
Debian / Ubuntu
使用包管理器安裝PyAudio:
sudo apt-get install python-pyaudio python3-pyaudio
若是沒有最新版本的PyAudio,請使用pip安裝它:
pip install pyaudio
筆記:
portaudio19-dev
)和python開發包(python-all-dev
)。
PyAudio來源
源代碼可從Python Package Index(PyPI)下載:pypi.python.org/pypi/PyAudio。
或克隆git存儲庫:
git clone https://people.csail.mit.edu/hubert/git/pyaudio.git
要從源代碼構建PyAudio,您還須要構建 PortAudio v19。有關爲各類平臺構建PyAudio的一些說明,請參閱編譯提示。要使用Microsoft Visual Studio構建PyAudio,請查看Sebastian Audet的說明。
1).採集音頻
下面以一段代碼演示如何從計算機麥克風採集一段音頻,採集音頻時長 4s,保存文件 output.wav
使用了tqdm模塊,能夠方便顯示出來讀取過程,以下:
要使用PyAudio,首先使用pyaudio.PyAudio()
(1)實例化PyAudio ,它設置portaudio系統。
要錄製或播放音頻,請使用pyaudio.PyAudio.open()
(2)在所需設備上打開所需音頻參數的流。這設置了pyaudio.Stream
播放或錄製音頻。
經過使用流式傳輸pyaudio.Stream.write()
音頻數據或使用流式傳輸音頻數據來播放音頻 pyaudio.Stream.read()
。(3)
請注意,在「阻止模式」中,每一個pyaudio.Stream.write()
或 pyaudio.Stream.read()
阻止直到全部給定/請求的幀都被播放/記錄。或者,要動態生成音頻數據或當即處理錄製的音頻數據,請使用下面概述的「回調模式」。
使用pyaudio.Stream.stop_stream()
暫停播放/錄製,並pyaudio.Stream.close()
終止流。(4)
最後,使用pyaudio.PyAudio.terminate()
(5)終止portaudio會話
2).播放音頻
下面使用播放的功能來播放1)中保存的音頻 output.wav
經過tqdm,顯示播放進度條,以下:
2).以回調方式播放音頻
當須要在執行其餘程序時同時播放音頻,能夠使用回調的方式播放,示例代碼以下: