【问题标题】:Pyaudio "Invalid input device (no default output device)" on AWS EC2 instanceAWS EC2实例上的Pyaudio“无效输入设备(无默认输出设备)”
【发布时间】:2019-11-14 04:35:51
【问题描述】:

我正在尝试在运行“Amazon Linux 2 AMI 2.0.20190618 x86_64 HVM gp2”或 Ubuntu 的 EC2 AWS 实例上使用 Python 3 的 pyaudio(两者的结果相同)。

我从获取 Python 3 版本的 Anaconda 开始,并使用 conda 安装了 pyaudio。但是,当我实际尝试使用 pyaudio 时,没有可用的设备。如果我尝试使用 pip 安装也是一样(这需要先安装 gcc,然后从源代码构建和安装 PortAudio,然后只安装 pyaudio)。

import pyaudio
pa = pyaudio.PyAudio()
pa.get_device_count()
>> 0

我已经在一个 python shell 中运行了这个,我从我的机器 ssh 到实例后开始,还在 Jupyter 笔记本中运行,我在实例上运行并从我的浏览器访问。最终目标是在该笔记本中提供录音。尝试使用pa.open(...)时,报错:

...
~/anaconda3/lib/python3.7/site-packages/pyaudio.py in __init__(self, PA_manager, rate, channels, format, input, output, input_device_index, output_device_index, frames_per_buffer, start, input_host_api_specific_stream_info, output_host_api_specific_stream_info, stream_callback)
    439 
    440         # calling pa.open returns a stream object
--> 441         self._stream = pa.open(**arguments)
    442 
    443         self._input_latency = self._stream.inputLatency

OSError: [Errno -9996] Invalid input device (no default output device)

【问题讨论】:

    标签: audio amazon-ec2 pyaudio


    【解决方案1】:

    一种可能是机器没有声卡

    aplay --list-devices  #  list recognized audio hardware
    

    aplay 是一个 portaudio 实用程序...安装问题

    sudo apt-get install pulseaudio-utils
    

    显示正在使用的音频驱动程序

    sudo /sbin/lsmod | grep snd
    

    如果存在音频硬件,音频驱动程序安装是特定于操作系统的......您使用的是什么操作系统?

    安装pulseaudio包,然后在aplay上面运行,看看它是否列出了任何声卡

    您有两个未知数 - 服务器硬件是否有声卡...如果是,则安装您的音频驱动程序,如果没有,那么问题是是否可以在没有声卡的服务器上使用 pyaudio

    【讨论】:

    • 感谢您的回复!这是操作系统:aws.amazon.com/amazon-linux-2 这是亚马逊托管的虚拟机,所以它没有硬件,需要自己使用。
    • 至于你的建议,包管理器是yum,不是apt-get。 aplay 不可用。我可以安装pulseaudio-utils,但那是为了什么?正如预期的那样,没有列出任何音频硬件。
    • 我尝试了一个 Ubuntu 操作系统,以确保它不仅仅是因为那个奇怪的亚马逊操作系统,同样的事情。 aplay 命令返回“aplay: device_list:270: no soundcards found...”。所以答案是否定的,但不应该可以使用我的本地声音设备吗?尤其是在浏览器中运行代码时。我读了一些关于虚拟声卡的东西,但不知道该怎么做:/ 如果有其他库可以播放/录制波形文件,也可以使用 pyaudio 以外的其他东西......
    猜你喜欢
    • 2016-05-01
    • 2011-06-08
    • 2021-09-03
    • 2020-03-22
    • 2017-01-12
    • 1970-01-01
    • 2011-10-18
    • 2017-10-12
    • 2015-05-01
    相关资源
    最近更新 更多