【问题标题】:Python: Portaudio Errno -9986 Internal PortAudio errorPython:Portaudio Errno -9986 内部 PortAudio 错误
【发布时间】:2020-10-26 06:16:18
【问题描述】:

我正在尝试运行一个简单的 python 语音识别程序。代码如下:

import speech_recognition as sr
import pyttsx3 


r = sr.Recognizer()  

engine = pyttsx3.init("nsss",True)

engine.say("hello")
engine.runAndWait()


while True:
    try:
        print("starting process")
        with sr.Microphone() as source2:    
            r.adjust_for_ambient_noise(source2, duration=0.2)  
            print("completed adjustment")
            audio2 = r.listen(source2) 
            MyText = r.recognize_google(audio2) 
            MyText = MyText.lower() 
            print("Did you say "+MyText) 
            SpeakText(MyText) 
    
    except sr.RequestError as e:
        print("Could not request results; {0}".format(e))
    except sr.UnknownValueError:
        print("an unknown error occured")

运行时,语音测试成功说“你好”,但随后抛出

||PaMacCore (AUHAL)|| Failed to open AUHAL component.||PaMacCore (AUHAL)|| Error on line 1263: err='-50', msg=Unknown Error
Traceback (most recent call last):
  File "test1.py", line 16, in <module>
    with sr.Microphone() as source2:    
  File "/Users/markus/Library/Python/3.6/lib/python/site-packages/speech_recognition/__init__.py", line 141, in __enter__
    input=True,  # stream is an input stream
  File "/Users/markus/Library/Python/3.6/lib/python/site-packages/pyaudio.py", line 750, in open
    stream = Stream(self, *args, **kwargs)
  File "/Users/markus/Library/Python/3.6/lib/python/site-packages/pyaudio.py", line 441, in __init__
    self._stream = pa.open(**arguments)
OSError: [Errno -9986] Internal PortAudio error

我已尝试使用 brew 卸载并重新安装 portaudio。

-- 编辑--

我在 musescore 中遇到了与 portaudio 类似的问题,使用 sudo 运行程序解决了这个问题。

【问题讨论】:

    标签: python python-3.x macos portaudio pyttsx


    【解决方案1】:

    `brew卸载portaudio

    brew install portaudio --HEAD`

    在 Mac Big sur 上消除此错误

    【讨论】:

    • 很好......首先我做了 brew unlink portaudio 然后重建,它要求麦克风权限。链接到 portaudio #514 github.com/PortAudio/portaudio/issues/514
    • @northman23 谢谢这解决了我的问题。你能解释一下为什么会这样吗?
    • @FarimanKashani。好的,很高兴它也适合你!我不知道 --HEAD 到底做了什么,但我读到了:在 git 中使用 --HEAD 将从源代码库中获取所有最新提交。问题是有时最新版本会处于不一致或无法构建的状态,因此使用风险自负。
    【解决方案2】:

    您能否确认您的麦克风在安装Mojave 后没有受到音频问题的影响,参考here

    您的代码看起来不错。看起来该错误是由您的 microphone 系统中的一些故障引起的。确保您已正确遵循包索引页面中的instructions。 值得注意的是,

    PyAudio(适用于麦克风用户) 当且仅当您想使用麦克风输入(麦克风)时才需要 PyAudio。需要 PyAudio 0.2.11+ 版本,因为早期版本在某些情况下从麦克风录制时已知内存管理错误。

    您还应该在此处查看此线程上发布的一些解决方案 - Re: Error code -9986 Internal PortAudio error

    【讨论】:

    • 我使用的是 Pyaudio 0.2.11 版,默认系统麦克风。我已经能够使用外部程序(Garageband、Audacity)录制音频,所以我相信我的麦克风应该可以工作?我也正确地遵循了设置说明。
    • 您可以尝试重新安装speechRecognition 模块,看看是否有帮助
    • 重装了,还是没区别。
    • 嗯。我想这个错误主要与您的系统有关。
    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多