问题标签 [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.
python - 如何从回调中优雅地停止 python sounddevice
我正在使用Python sounddevice和PySoundFile以“硬方式”播放音频,即使用非阻塞回调。(向https://stackoverflow.com/users/500098/matthias和工作人员致敬——这些软件包易于使用,可以满足我的所有需求。)注意:使用 sd.play() 更容易,但我'之所以选择这个 patk,是因为在我的最终版本中,我想在回调方法中进行额外的处理。
我可以检测到何时到达声音文件的末尾,但不清楚如何告诉声音设备在播放最后一个排队的缓冲区后停止。
这是一个不起作用的回调示例:它播放整个声音文件,但在处理完最后一个缓冲区后不会停止。在回调中,我 raise sd.CallbackStop()
,但流状态永远不会变成stopped
:
audio - 在不同的设备上播放音频?
我有一个连接到系统的 USB 耳机。所以现在我的系统有两种不同的音频输出设备(一个是内置扬声器,另一个是 USB 耳机)。虽然可以选择默认的输出设备。我感兴趣的是同时在每个设备上播放不同的音频。换句话说,我正在寻找一种程序解决方案,可以自由选择播放音频的设备。无论如何,这可能使用任何库吗?
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:
它说:
再一次没有记录。我做错了什么?
python - 线程上的 Python Sounddevice.play()
我在线程上播放声音设备时遇到了一些问题。我在开始时将声音设备导入为 sd。然后在运行期间,我想使用 ASIO 声卡在线程上播放音调。我需要在线程上进行的所有配置都运行良好。但是,当我想播放音调时,出现以下错误:
sounddevice.PortAudioError: Error opening OutputStream: Unexpected host API 2 error 0: u'Failed to load ASIO driver'
如果我每次需要时都在线程上初始化导入,它就可以工作。但我当然不想那样做。有什么想法可以解决吗?
谢谢!
这里有一个简单的代码示例:
python-2.7 - Python 中的多声道声音同步问题(Sounddevice)
我目前正在编写一个脚本,该脚本应该能够将 8 个音频通道(.wav 文件)输出到声卡上的 8 个不同通道。我的脚本有点工作,但我有同步问题。我能够听到播放期间通道之间的时间发生变化,这非常关键。
目前我正在使用线程来启动每个声道。
我的问题是,如果你们对我如何在通道/线程之间实现更好的同步有任何建议?我仍然想使用 sounddevice,因为它在映射(左声道或右声道)我的输出声道时效果很好。
谢谢大家。
python - 尝试在 python 中使用 sounddevice 操作声音数组时延迟太高
几天前,我在 Python 2.7.5 中安装了一个 sounddevice库。在我按下 MIDI 控制器上的一个键后,我正在尝试制作一个声音阵列并立即为其添加一些效果。但是我得到了 0.1 到 0.2 秒的巨大延迟,这使我的代码无用:
为了简单起见,我的声音阵列只是一个嘈杂的声音,我的效果由 440Hz 的哔声组成。我在这里使用了 raw_input()(在 Python 3.x 中键入“input()”)而不是使用 Pygame 库可以实现的 MIDI 输入。我的代码有效,但每次我们按 ENTER 时,我们都会在哔声信号之前听到短暂的延迟。有没有可能消除它?如果没有,任何其他允许实时播放没有延迟的声音流的库?
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),我可以确保用示波器进行检查。
我想知道是什么导致了这个问题,因为它是一个简单的传递例程。
python-3.x - sounddevice.PortAudioError:打开输出流时出错:通道数无效
我的代码是:
我收到错误sounddevice.PortAudioError: Error opening OutputStream: Invalid number of channels
python-2.7 - 添加到单声道信号以执行立体声
我正在尝试使用这两个相移音调播放立体声信号,但我无法做到
它返回给我以下错误:
我无法追踪问题所在
python - Python:将十六进制字节流转换为“int16”
所以我正在处理来自 Watson Text to Speech 的传入音频。当数据通过 nodeJS 的 websocket 到达 Python 时,我想立即播放声音。这是我使用 websocket 发送的数据示例:
因此数据以十六进制字节流的形式到达,我尝试将其转换为 Sounddevice 可以读取/播放的内容。(请参阅文档:'float32'、'int32'、'int16'、'int8' 和 'uint8' 类型可用于所有流和函数。)但是我该如何转换呢?我已经尝试过一些东西,但是当我运行我的代码时,我只听到一些噪音,没有任何可识别的声音。在这里你可以阅读我的部分代码:
在收到字节流并转换为十六进制后,我尝试将传入的字节流发送到 Sounddevice: