Pyaudio-OSError: [Errno -9999] 预料之外的主机错误

9

我想运行一段简单的 Python 音频代码:

import pyaudio
import wave
import sys

CHUNK = 1024
wf = wave.open("4.wav", 'rb')
# instantiate PyAudio (1)
p = pyaudio.PyAudio()
# open stream (2)
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels=wf.getnchannels(),
                rate=wf.getframerate(),
                output=True)

但是我遇到了以下错误:

Traceback (most recent call last):
  File "rec2.py", line 17, in <module>
    output=True)
  File "C:\Users\Surena\Anaconda3\lib\site-packages\pyaudio.py", line 750,  in open
    stream = Stream(self, *args, **kwargs)
  File "C:\Users\Surena\Anaconda3\lib\site-packages\pyaudio.py", line 441, in __init__
    self._stream = pa.open(**arguments)
OSError: [Errno -9999] Unanticipated host error

我尝试了另一个pyaudio录音,但出现了同样的错误。我还尝试使用pip install pyaudio卸载并重新安装pyaudio,但没有帮助。我甚至卸载了anaconda3并重新安装它,但仍然没有任何改变。问题出在哪里呢?

该方法在我的情况下有效: https://stackoverflow.com/questions/43841316/pyaudio-oserror-errno-9999-unanticipated-host-error/57086198#57086198 - Chuan Ng
我遇到了同样的问题,这个方法在我的情况下有效: https://stackoverflow.com/questions/43841316/pyaudio-oserror-errno-9999-unanticipated-host-error/57086198#57086198 - Chuan Ng
在那个帖子中提出的关闭防病毒软件对我没有起作用。 - rfii
5个回答

3

我遇到同样的问题,通过在Windows 10的“设置”>“隐私”>“麦克风”中启用/禁用对麦克风的访问来解决它。


1
在我的Windows系统中,它是“设置 > 隐私 > 麦克风”。 - jackieyang

1
您需要收集更多信息以了解问题。来自Portaudio文档

PortAudio通常会尝试将错误条件转换为可移植的PaError错误代码。但是,如果遇到意外错误,则可能返回paUnanticipatedHostError代码。在这种情况下,提供了进一步的机制来查询特定于主机API的错误信息。如果PortAudio返回paUnanticipatedHostError,则可以调用Pa_GetLastHostErrorInfo()以检索指向提供更多信息的PaHostErrorInfo结构的指针,包括遇到错误的主机API、本地API错误代码和错误文本。

如果您在Linux上遇到此错误,则很可能是由于您正在尝试从驱动程序请求不兼容的采样率造成的。该值

            rate=wf.getframerate()

可以将其更改为16000、44100和48000,以测试实际支持的速率。


1
我在Win10上遇到了这个问题,并尝试了其他人提出的隐私和杀毒软件解决方案。通过列举音频设备验证我正在使用正确的输入。我想尝试您的方法,但您能否帮忙更详细地解释一下如何调用Pa_GetLastHostErrorInfo()函数呢?我尝试查找文档,但没有找到如何使用它。 - rfii

0
我曾经遇到同样的问题,所以我只是在设置中允许了麦克风权限,然后它就可以工作了。只需进入设置-->隐私-->麦克风,然后允许麦克风权限即可。

0

好的,如果你正在使用jupyter-notebook并且遇到了这个问题。请使用homebrew安装pyaudio(brew install pyaudio),然后重新启动你的内核。


0

如果您使用的是 Windows 10,请搜索麦克风隐私设置


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接