MacBook M1环境下Python调用PyAudio报错AUHAL component not found求助
MacBook M1下PyAudio录音报错OSError: [Errno -9999]的解决建议
问题背景
在MacBook M1设备上使用Python调用PyAudio时触发错误:
PaMacCore (AUHAL)|| AUHAL component not found.** .... stream = audio.open(format=FORMAT, channels=CHANNELS, ... stream = PyAudio.Stream(self, *args, **kwargs) ... self._stream = pa.open(**arguments) ... **OSError: [Errno -9999] Unanticipated host error**
已尝试卸载重装Homebrew、PyAudio及PortAudio,开启麦克风权限,仍未解决问题。
解决办法
- 通过Rosetta 2运行终端重新安装
打开访达→应用程序→实用工具→终端,右键「显示简介」勾选「使用Rosetta打开」,重启终端后执行:brew install portaudio pip install pyaudio - 指定PortAudio路径编译安装PyAudio
手动指定Homebrew安装的PortAudio路径,强制编译适配M1架构:pip install --global-option='build_ext' --global-option='-I/opt/homebrew/include' --global-option='-L/opt/homebrew/lib' pyaudio - 替换为sounddevice库
若PyAudio兼容性问题无法解决,改用sounddevice(M1适配更好):
示例录音代码:pip install sounddevice soundfileimport sounddevice as sd import soundfile as sf duration = 5 # 录音时长(秒) sample_rate = 44100 recording = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=2) sd.wait() sf.write('recording.wav', recording, sample_rate) - 重置麦克风权限缓存
执行命令重置权限缓存后重启电脑,重新授权麦克风:tccutil reset Microphone
环境可行性说明
已有大量M1/M2 Mac用户通过上述方法成功实现Python录音,该环境下可以正常完成录音操作,问题根源多为PyAudio与ARM架构的编译适配或路径配置问题。
内容的提问来源于stack exchange,提问作者Maria José Pinto Bernal
相关产品推荐
相关产品推荐

