pyaudio-OSError:[Errno -9999]意外的主机错误

时间:2017-01-07 07:16:01

标签: python record pyaudio

我只想运行一个简单的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记录,出现了同样的错误。我也尝试卸载pyaudio并使用pip install pyaudio再次安装它,但它没有帮助。我甚至卸载了anaconda3并重新安装它。没有任何改变。

问题是什么?

5 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我只是通过在设置>机密性>麦克风(在Windows 10上)中启用/禁用对麦克风的访问来解决此问题

答案 1 :(得分:0)

您需要收集其他信息才能了解问题。来自Portaudio docs

  

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

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

            rate=wf.getframerate()

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

答案 2 :(得分:0)

我遇到了同样的问题,所以我只允许麦克风设置和工作 只需进入设置->隐私->麦克风,然后将麦克风上的麦克风分配给

答案 3 :(得分:0)

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

答案 4 :(得分:0)

好吧,如果您使用 jupyter-notebook 并且面临这个挑战。使用自制软件安装 pyaudio(brew install pyaudio),然后重新启动内核。