问题标签 [python-sounddevice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1466 浏览

python - 使用 Python sounddevice 在两个设备上进行多通道采集

我正在尝试从我的 RME Fireface UCX 声卡输出多达 4 个音频通道,并在我的 miniDSP 16 通道麦克风阵列上获取 16 个通道的音频数据。目前,如果我使用 query_devices 命令中列出的设备的组合,我可以让 16 进/2 出系统正常工作,但我似乎无法增加输出通道的数量。

从设备列表中:

因此,如果我有 x(这是一个 44100*5 行乘三列的 numpy 数组,表示以 44.1 kHz (=fs) 采样的 5 秒 3 通道数据),我可以这样做:

这会同时向我的扬声器播放 3 个输出通道,并在我的 RME 声卡输入上获取 8 个通道。同样,如果我这样做:

我可以让我的 miniDSP 录制 16 通道的音频 5 秒。另外,如果我这样做:

我可以让 miniDSP h/w 获取 16 个音频通道,而 RME 仅输出 2 个通道(是的,尽管 numpy 数组有 3 列并且设备列表显示设备可以输出 8 个通道,但只有 2 个通道?)。这没关系,但正如我所说,我可能想要 3 或 4 个音频输出通道。

我考虑过结合 ASIO 设备,即

但这(并不奇怪)会导致 PortAudioError -9993 I/O 设备的非法组合。

所以我考虑过使用 InputStreams 和 OutputStreams,但我并没有完全遵循 sounddevice 文档中的一些示例代码。但也许这是解决这个问题的出路?

0 投票
1 回答
2425 浏览

python - 使用 Sounddevice 连续播放音频

我正在编写一个程序来通过网络传输音频,所以我有一个线程来记录数据和一个发送它。测试时音频有明显的差距。我相信这是由于sounddevice.play()功能,下面的例子有同样的问题。

间隙与播放长度一致,因此似乎是由播放功能延迟引起的。在连续音频中,这变得非常明显和烦人。同样的事情也发生在此处的文档音频直通示例中。

有没有使播放连续的方法?

0 投票
0 回答
534 浏览

python-3.x - 有没有办法在 python 中创建一个简单的用户交互音乐合成器

我目前正在尝试使用pygame.mixersounddevice输出我在numpy array. 例如,在创建正弦波之前必须说明波形的持续时间:sin(frequency * 2 * Pi * duration)因此,您如何在用户按键的持续时间内播放此声音。

当我阅读似乎很容易理解的python时,关于python的文章并不多,因此我们将不胜感激。

此外,如果有人可以解释或举例说明sounddevice.Streamsounddevice.RawStream使用 python 缓冲区对象的工作原理,以及它是否对我的情况有所帮助,那将不胜感激。

我已经尝试过使用sounddevice.play(),但这对于我想要实现的目标来说似乎非常基本。我也尝试过创建一小段正弦波并将其循环以供用户输入,但是当我要调制该声音时,这将不起作用。

我不喜欢使用的另一个原因sounddevice.play()是因为您需要延迟程序,就像我使用sounddevice.wait()的那样,好像程序运行到最后而不播放任何东西一样。

观看此视频时 ... https://www.youtube.com/watch?v=tgamhuQnOkM ... 用于c++对合成器进行编程,他使用了一个单独的模块,我认为该模块运行后台线程,但他的模块分别获取每个样本而不是作为一个数组。

我也尝试过使用pygame.sndarray.make_sound(). 这是当/如果合成器工作时我想做的事情的一个例子:

有没有办法将其创建为 pygame 键事件,仅在按下键时播放正弦波,然后在释放键时停止。

0 投票
0 回答
75 浏览

python - 与使用 Anaconda Prompt 运行相比,从 Visual Studio 启动 Python 文件的工作方式不同

我对python很陌生,我一直在研究一个简单的程序,它可以录制声音,稍微修改一下,然后播放它。我在 Visual Studio 中编写了它,但是这个软件对我不起作用,sounddevice并且说No module named '_sounddevice_data'但是当我python "path to this file"在 Anaconda Prompt 中运行它时,它可以正常工作。这个包在我使用的 Visual 的 python 环境中 - Anaconda 5.2.0。另一方面,由于在 Visual 中跳过了一些错误,从 Anaconda Prompt 运行将无法使用 tensorflow Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2。更重要的是,当我使用简单的 .bat 文件运行此代码时,一切都很好:D

我会很感激任何帮助,因为我无法理解发生了什么。这是代码:

0 投票
0 回答
59 浏览

python-3.x - Python 3 neopixel 无功能

我希望代码使 LED 灯条发出的声音越亮越亮。它目前没有做任何事情。我究竟做错了什么?

0 投票
1 回答
200 浏览

python - sounddevice 录制“out”参数

我想使用“out”参数将记录的信号写入给定的 numpy 数组,但我没有将任何音频附加到我传递的数组中。如果我希望它使用默认采样率,是否应该定义采样率?文档中没有具体的示例用法,所以如果有任何关于正确使用的建议,请参见下面的示例:

我也试过

但结果是一样的。

0 投票
2 回答
2368 浏览

python-3.x - 如何在 python 中播放实时音频,同时不断录制?

我想创建一个语音干扰器。它本质上是向你重复你刚才所说的话,但它是连续的。我试图使用 sounddevice 库并在播放的同时记录我所说的内容。然后我将其更改为最初录制我所说的内容,然后在录制新内容的同时播放它。但是,它没有按我的意愿运行。对其他图书馆有什么建议吗?或者,如果有人看到我已经拥有的代码的建议。

它不是不断地向我播放,而是开始和停止。它以指定的持续时间间隔执行此操作。所以它会录制 500 毫秒,然后播放 500 毫秒,然后重新开始录制。想要的行为是 - 录制 500 毫秒,同时播放它以一些毫秒延迟录制的音频。

0 投票
1 回答
597 浏览

python - 如何将 winsound.Beep() 保存到 python 中的音频 .wav 文件?

我一直在尝试做一些我认为相当简单的事情,并将 winsound.Beep(8000,1000) 保存到名为 LongBeep.wav 的 .wav 文件中。有人可以回复一个解决方案。我已经搜索并搜索了答案,但一无所获。这是我拥有的代码:

0 投票
1 回答
93 浏览

python - 如何将音频流式传输到 num py 数组

我正在尝试在烧瓶上创建一个流媒体应用程序,但我可以弄清楚如何向 num py 数组发出声音。我尝试过:

并使用其他一些与音频相关的库,但我 cinda 不了解与他们的代码相关的任何内容,所以告诉我一些关于我知道我应该使用 sounddevice.Stream.read() 的代码的信息会很酷,但我不知道如何

(抱歉语法不好)

0 投票
1 回答
456 浏览

python - 对音频流使用多处理

我想连续录音和录音。这很容易使用 python 的 sounddevice 模块完成。但是,当音频超过 20 帧时,我还想开始将块发送到在后台工作的线程。当我这样做时,声音设备的输入溢出,你能帮我解决这个问题,还是找到其他解决方案?