PyAudio
Cross-platform audio I/O with PortAudio
Decision gist · record as of 2026-08-14
Yes, if you need straightforward cross-platform audio I/O in Python and are willing to handle platform-specific setup (Homebrew on macOS, system packages on Linux). The package is stable, permissively licensed, and has no known vulnerabilities. Install friction is moderate but manageable. Be aware that the project is dormant and unlikely to receive updates; if you need active maintenance or ASIO support on Windows, consider alternatives.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- On macOS, install portaudio via Homebrew first: brew install portaudio.
- On GNU/Linux, install portaudio19 development libraries and python3 headers via your package manager before pip install.
- Medium install friction: precompiled wheels exist for Windows across multiple Python versions, but macOS requires Homebrew to install portaudio first, and GNU/Linux requires system packages or building from source with development libraries.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute PyAudio with minimal restrictions, provided you include the license notice.
last release 2023-11-07 (1011 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,335,110 downloads/mo, #4,037 on PyPI
Alternatives
Verify before relying
pip install pyaudio
import pyaudio
p = pyaudio.PyAudio()
print(p.get_device_count())- Whether ASIO support is available on Windows via custom builds, given the standard distribution does not include it.
- Current maintenance trajectory and likelihood of future updates given dormant status.
What it is and what it does
PyAudio wraps PortAudio v19, a cross-platform audio I/O library, to let you record from and play to audio devices in Python. It abstracts away platform-specific audio APIs—Windows MME, DirectSound, WASAPI, and WDM-KS on Windows; Core Audio on macOS; and ALSA or OSS on GNU/Linux—so you can write audio code once and run it on multiple operating systems.
The package has no runtime dependencies beyond PortAudio itself, which must be installed separately on macOS and GNU/Linux. Installation is straightforward on Windows via pip, but requires prior system setup on Unix-like platforms. The project is in Beta status and has not been updated recently, so it is stable but not actively developed.
Use it for
- Record audio from a microphone or line input for speech recognition, music analysis, or audio logging applications.
- Play back audio files or generated sound in real-time applications such as games, synthesizers, or notification systems.
- Build cross-platform audio processing pipelines that capture, process, and output audio without rewriting for each OS.
- Prototype audio I/O functionality in Python before moving to lower-level APIs or compiled languages.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need straightforward cross-platform audio I/O in Python and are willing to handle platform-specific setup (Homebrew on macOS, system packages on Linux).
The package is stable, permissively licensed, and has no known vulnerabilities. Install friction is moderate but manageable. Be aware that the project is dormant and unlikely to receive updates; if you need active maintenance or ASIO support on Windows, consider alternatives.
Install
pyaudio on PyPI
Before you install
Medium install friction: precompiled wheels exist for Windows across multiple Python versions, but macOS requires Homebrew to install portaudio first, and GNU/Linux requires system packages or building from source with development libraries.
On macOS, install portaudio via Homebrew first: brew install portaudio. On GNU/Linux, install portaudio19 development libraries and python3 headers via your package manager before pip install.
License in practice
MIT license is permissive; you can use, modify, and distribute PyAudio with minimal restrictions, provided you include the license notice.
Quickstart
pip install pyaudio
import pyaudio
p = pyaudio.PyAudio()
print(p.get_device_count())
Verify before relying
- Whether ASIO support is available on Windows via custom builds, given the standard distribution does not include it.
- Current maintenance trajectory and likelihood of future updates given dormant status.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Dormant 1,011 days since the last release |
| First released | |
| Downloads | 1,335,110 / month, #4,037 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Topic :: Multimedia :: Sound/Audio |
Evidence: PyAudio-0.2.14-cp310-cp310-win32.whl; PyAudio-0.2.14-cp310-cp310-win_amd64.whl; PyAudio-0.2.14-cp311-cp311-win32.whl; PyAudio-0.2.14-cp311-cp311-win_amd64.whl; PyAudio-0.2.14-cp312-cp312-win32.whl; PyAudio-0.2.14-cp312-cp312-win_amd64.whl; PyAudio-0.2.14-cp313-cp313-win32.whl; PyAudio-0.2.14-cp313-cp313-win_amd64.whl; PyAudio-0.2.14-cp38-cp38-win32.whl; PyAudio-0.2.14-cp38-cp38-win_amd64.whl; PyAudio-0.2.14-cp39-cp39-win32.whl; PyAudio-0.2.14-cp39-cp39-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “record audio python”
- PyAudioPyAudio provides Python bindings for PortAudio v19, enabling you to…
- miniaudioMiniaudio provides Python bindings for cross-platform audio playback,…
- SoundCardSoundCard plays and records audio across Linux, macOS, and Windows…
Give your agent the search over MCP, or paste the wish link into any chat.
More Sound/Audio packages
Reads and writes audio files in formats like WAV, FLAC, OGG, and MAT through libsndfile, exposing audio data as NumPy arrays.
Pydub provides a high-level Python interface for loading, manipulating, and exporting audio files with simple operations like slicing, concatenation, and format conversion.
However, the abandoned status since 2021-03-10 means no future fixes or compatibility updates—use it only if you can tolerate potential issues with newer Python…
Mutagen reads and writes audio metadata (tags) across many audio formats including MP3, FLAC, OGG, MP4, WavPack, and others, supporting ID3v2 and APEv2 tag editing.
Install it if you need to read or edit audio tags programmatically.
Provides PyTorch-based audio processing, transforms, and dataloaders for machine learning tasks, with GPU acceleration and autograd support for trainable audio features.
MoviePy is a Python library for video editing that reads, processes, and writes video and audio files by converting them to numpy arrays for frame-level manipulation and effect application.
Reads metadata (artist, title, duration, bitrate, and more) from audio files in formats including MP3, MP4, FLAC, OGG, WAV, and others, without writing or modifying tags.
Install it if you need to extract metadata from audio files without the overhead of a heavier library.
See also pyfmodex · SoundCard · playsound · miniaudio · pycaw · types-pyaudio · pyobjc-framework-SoundAnalysis · fmod-toolkit