问题标签 [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 回答
2184 浏览

python - 如何从回调中优雅地停止 python sounddevice

我正在使用Python sounddevicePySoundFile以“硬方式”播放音频,即使用非阻塞回调。(向https://stackoverflow.com/users/500098/matthias和工作人员致敬——这些软件包易于使用,可以满足我的所有需求。)注意:使用 sd.play() 更容易,但我'之所以选择这个 patk,是因为在我的最终版本中,我想在回调方法中进行额外的处理。

我可以检测到何时到达声音文件的末尾,但不清楚如何告诉声音设备在播放最后一个排队的缓冲区后停止。

这是一个不起作用的回调示例:它播放整个声音文件,但在处理完最后一个缓冲区后不会停止。在回调中,我 raise sd.CallbackStop(),但流状态永远不会变成stopped

0 投票
1 回答
2749 浏览

audio - 在不同的设备上播放音频?

我有一个连接到系统的 USB 耳机。所以现在我的系统有两种不同的音频输出设备(一个是内置扬声器,另一个是 USB 耳机)。虽然可以选择默认的输出设备。我感兴趣的是同时在每个设备上播放不同的音频。换句话说,我正在寻找一种程序解决方案,可以自由选择播放音频的设备。无论如何,这可能使用任何库吗?

0 投票
2 回答
929 浏览

python - Mac os El Capitan 用 python 录制声音

我正在尝试从麦克风录制声音。首先使用 PyAudio 然后 sounddevice 但都失败了。

这是 PyAudio 的代码:

它给了我一个警告: Python[21648:645093] 13:42:01.242 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h. 没有任何记录。

据我了解,这是 El Capitan 的问题,尚未解决。但也许我错了?

所以我决定将库切换到 sounddevice:

它说:

再一次没有记录。我做错了什么?

0 投票
1 回答
1682 浏览

python - 线程上的 Python Sounddevice.play()

我在线程上播放声音设备时遇到了一些问题。我在开始时将声音设备导入为 sd。然后在运行期间,我想使用 ASIO 声卡在线程上播放音调。我需要在线程上进行的所有配置都运行良好。但是,当我想播放音调时,出现以下错误:

sounddevice.PortAudioError: Error opening OutputStream: Unexpected host API 2 error 0: u'Failed to load ASIO driver'

如果我每次需要时都在线程上初始化导入,它就可以工作。但我当然不想那样做。有什么想法可以解决吗?

谢谢!

这里有一个简单的代码示例:

0 投票
1 回答
1160 浏览

python-2.7 - Python 中的多声道声音同步问题(Sounddevice)

我目前正在编写一个脚本,该脚本应该能够将 8 个音频通道(.wav 文件)输出到声卡上的 8 个不同通道。我的脚本有点工作,但我有同步问题。我能够听到播放期间通道之间的时间发生变化,这非常关键。

目前我正在使用线程来启动每个声道。

我的问题是,如果你们对我如何在通道/线程之间实现更好的同步有任何建议?我仍然想使用 sounddevice,因为它在映射(左声道或右声道)我的输出声道时效果很好。

谢谢大家。

0 投票
1 回答
703 浏览

python - 尝试在 python 中使用 sounddevice 操作声音数组时延迟太高

几天前,我在 Python 2.7.5 中安装了一个 sounddevice库。在我按下 MIDI 控制器上的一个键后,我正在尝试制作一个声音阵列并立即为其添加一些效果。但是我得到了 0.1 到 0.2 秒的巨大延迟,这使我的代码无用:

为了简单起见,我的声音阵列只是一个嘈杂的声音,我的效果由 440Hz 的哔声组成。我在这里使用了 raw_input()(在 Python 3.x 中键入“input()”)而不是使用 Pygame 库可以实现的 MIDI 输入。我的代码有效,但每次我们按 ENTER 时,我们都会在哔声信号之前听到短暂的延迟。有没有可能消除它?如果没有,任何其他允许实时播放没有延迟的声音流的库?

0 投票
0 回答
1625 浏览

python-sounddevice - Python Sounddevice 流问题

我一直在使用“Sounddevice 0.3.6”模块和 Python 进行一个项目,以提出一个主动降噪系统。对于这个特定的应用,我需要精确地输出与输入信号频率相同的信号。就在那时,我遇到了 Sounddevice 的 Stream 类的一些问题。这是问题所在:

让我们以 Sounddevice 文档中给出的简单“wire.py”示例为例。

http://python-sounddevice.readthedocs.io/en/0.3.6/examples.html

该例程基本上获取输入并传递到流的输出。

通过这样做,我确实生成了一个固定的正弦波作为要通过的输入。但是,我得到一个频率略有不同的正弦波作为输出。这是一个很小的频率差异(~1 Hz),我可以确保用示波器进行检查。

我想知道是什么导致了这个问题,因为它是一个简单的传递例程。

0 投票
1 回答
4771 浏览

python-3.x - sounddevice.PortAudioError:打开输出流时出错:通道数无效

我的代码是:

我收到错误sounddevice.PortAudioError: Error opening OutputStream: Invalid number of channels

0 投票
2 回答
634 浏览

python-2.7 - 添加到单声道信号以执行立体声

我正在尝试使用这两个相移音调播放立体声信号,但我无法做到

它返回给我以下错误:

我无法追踪问题所在

0 投票
1 回答
566 浏览

python - Python:将十六进制字节流转换为“int16”

所以我正在处理来自 Watson Text to Speech 的传入音频。当数据通过 nodeJS 的 websocket 到达 Python 时,我想立即播放声音。这是我使用 websocket 发送的数据示例:

因此数据以十六进制字节流的形式到达,我尝试将其转换为 Sounddevice 可以读取/播放的内容。(请参阅文档:'float32'、'int32'、'int16'、'int8' 和 'uint8' 类型可用于所有流和函数。)但是我该如何转换呢?我已经尝试过一些东西,但是当我运行我的代码时,我只听到一些噪音,没有任何可识别的声音。在这里你可以阅读我的部分代码:

在收到字节流并转换为十六进制后,我尝试将传入的字节流发送到 Sounddevice: