Introdaction
- Python3.7以上でリアルタイム音声認識プログラムを構築する際に、pyaudioが必要になった。
-
pip3 install pyaudio
ではインストールに失敗した。- fatal error: 'portaudio.h' file not found
- brewでportaudioをインストールしていても、見つけられないとエラーが吐かれる状況
- python3.7以上の環境でpyaudioをインストールする方法をまとめる
- 多くの情報が既に公開されているが、自分用のまとめとして本記事を作成する
環境
- Apple silicon Mac
- macOS Monterey
- Windows 10
- Python3.7以上
Install for Mac
以下のコマンドで外部のヘッダファイル、ライブラリのディレクトリを指定してインストールすればよい[ref. 1]。
apple siliconの場合はhomebrewのインストール先が変更されていることに留意されたし。Apple siliconの場合とIntel cpuの環境の場合とで、適宜pathを変更する。
pip3 install --global-option='build_ext' --global-option='-I/opt/homebrew/Cellar/portaudio/19.7.0/include' --global-option='-L/opt/homebrew/Cellar/portaudio/19.7.0/lib' pyaudio
pip3 install --global-option='build_ext' --global-option='-I/usr/local/Cellar/portaudio/19.7.0/include' --global-option='-L/usr/local/Cellar/portaudio/19.7.0/lib' pyaudio
pip3 list
でPyAudio
がインストールされていることが確認できればok。
Install for Windows
Windows環境の場合は、非公式ではあるがビルド済みのパッケージを公開されているので[ref. 2]、そちらを使ってインストールするのが一番楽である。細かい方法はこちらのページ「Pythonで音声録音・再生ができるPyAudioのインストール」[ref. 3]を参照されたし。
- 自分のPythonとOSアーキテクチャ環境にあったパッケージを自分の開発環境にダウンロードする
- 開発環境下でパッケージをインストールする
例えばpython3.9、64bit版OSの場合は、PyAudio‑0.2.11‑cp39‑cp39‑win_amd64.whl
をダウンロードし、以下のコマンドを実行すればよい。
pip install PyAudio‑0.2.11‑cp39‑cp39‑win_amd64.whl
Python3.6環境で良い場合
もともとpyaudioの公式サポートがpython3.6までであることが原因にあるとのこと。インストール方法の詳細は省くが、macでもwindowsでもpython3.6環境を用意すれば苦労せずにpyaudioはインストールできる。python3.6環境で良い人はこれで良い。matlabから呼び出したいなどの場合は、matlabがpython3.6に対応していないためにpython3.7以上で用意する必要がある。