问题标签 [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 - 如何将扬声器输出写入文件 sounddevice
有没有办法可以使用 python 库 sounddevice 通过我的扬声器将输出写入文件?例如,如果我要通过我的计算机播放任何声音,它们将被写入 mp4/wav 文件。
python - 使用 python 录制设备音频
我正在尝试使用 Python 录制设备音频。似乎 pyaudio 仅适用于外部设备。似乎 sounddevice as sd 是答案,因为它让我们选择默认设备。代码是
获取可用设备列表和
从他们中选择。
我正在尝试来自https://python-sounddevice.readthedocs.io的代码。它们都适用于 spyder 中的外部设备。当我写
它给出了错误。当我尝试 sd.default.device = 5 这是扬声器(Realtek HD 音频输出),Windows WDM-KS(0 输入,2 输出)时,它会给出它不是输入设备的错误。我理解这个错误,但我不知道即使我给像 0 Microsoft Sound Mapper 这样的输入设备 - 输入,MME(2 输入,0 输出)它也无法录制设备音频。
python - 如果网络音频设备在播放音频时变得不可用,程序会冻结
我有一个循环的 python 程序,在使用 dante 虚拟声卡连接的输出设备上使用 python-sounddevice 播放音频文件。
播放音频时,如果网络连接突然断开,程序将完全无响应并死机(计算机不再有可用的输出设备)。
我曾尝试使用 try/except 来处理/捕获可能的异常,但似乎如果在音频播放期间发生这种情况,它不会引发任何异常。
编辑:另外,如果重新连接到网络,计算机会再次检测到输出设备,但这对问题没有帮助。
代码:
python - 如何通过控制扬声器通道的音量使用 python 创建环绕效果?
我买了一个声卡:Focusrite Scarlett 4i4 3rd Gen,有 4 个输出通道。我也有 4 个扬声器,我会将每个扬声器与声卡连接起来。我希望能够单独设置每个扬声器的音量,可能有一个 tkinter 界面(最终,但这不是重点)。
我已经看到我们可以有很多不同的库(我在这个项目中使用的是 windows 10):似乎很有趣的是 sounddevice 和 soundcard。
我想选择声卡作为我的输出设备,并指定哪些通道必须立即播放声音。一个好的用法是在单声道中使用 .wav 文件以在 1、2、3 或 4 个扬声器中实现;或立体声中的 .wav 文件以相同的方式实现,但在 2 个扬声器中使用立体声的第一个通道,在其他 2 个扬声器中使用立体声的第二个通道。完美的用法是创建一个环绕 4.0 效果,制作一个正方形的扬声器并能够随着声音“转身”:你可以想象我放了一个火车的声音,这个声音好像在转身火车绕着你转。
sounddevice.AsioSettings()似乎允许我们控制使用哪个输出来播放某些东西,对吧?(https://python-sounddevice.readthedocs.io/en/0.3.15/api/platform-specific-settings.html)但是当我详细查看文档时,我还注意到sounddevice.play()允许我们指定映射参数,我不太明白。(https://python-sounddevice.readthedocs.io/en/0.3.15/api/convenience-functions.html#sounddevice.play)我想在所有情况下我都必须安装 Asio,这不是问题(我希望!)。
由于我的目的是控制每个扬声器,我可以指定什么以及如何使用 souddevice 库或另一个库来实现这一点?另外,是否可以使用这些库或其他库(例如:pycaw)来控制每个扬声器的音量?
非常感谢你!
艾柳恩
PS:如果python没有解决方案,如果您有想法以另一种方式实现这一目标(例如能够做到这一点的软件),那将是一种乐趣。
python - 以 root 身份登录时,Python-Sounddevice PortAudio 不显示任何设备
我正在运行 Python 代码来记录在 Google Compute Engine VM(Ubuntu 18.04)中的浏览器上播放的音频。
这是我正在运行的基本代码:
当我以用户身份 ssh 进入它时,sounddevice 可以正常工作,但是当我更改为 root 时,PortAudio 返回此错误:
两者都发生在同一个虚拟机上。我什至在运行代码之前以 root 身份启动了 Pulseaudio。
如果我做错了什么以及是否有解决方法,请告诉我。
谢谢
python-3.x - Python Sounddevice 回调返回一个带零的数组
我正在尝试 Python Sounddevice lib 从麦克风流式传输音频
python - 在 AWS Transcribe 中实时获取 BadRequestException
我从 amazon streaming api 得到这个响应。任何人都可以帮我解决我在这里做错了什么。
b'\x00\x00\x00\xa3\x00\x00\x00ah\x10k\xe1\x0f:exception-type\x07\x00\x13BadRequestException\r:content-type\x07\x00\x10application/json\r:message -type\x07\x00\textception{"Message":"收到意外的 WebSocket 帧。"}\xbd\xceK\x8a'
:message-type exception{"Message":"收到意外的 WebSocket 帧。"}½ÎK
我正在使用下面的代码
导入所有库
使用 Sounddevice 流式传输音频的代码
根据亚马逊转录的要求创建用于连接的 URl
进行 PCM 编码的代码
与 AWS 建立连接以进行转录
python - 声音设备库错误
所以我一直在尝试一个涉及音频的项目,到目前为止,我尝试过的每一个库都以某种方式损坏,我认为最后的手段可能是声音设备,因为它似乎有一些我想要的其他有趣的属性试用。我基本上复制粘贴了他们在他们的网站上提供的示例代码,并提出了一个错误清单。我的代码非常简单,我添加的只是一个输入命令,以确保它会在这种情况下发出声音。如果任何其他库可能工作,或者只是一个愚蠢的错误,任何帮助都会很棒,谢谢!
python - 在库命令内部使用库命令时出现 EFO 错误
所以我有一个我一直在做的项目,它混合了音频库 Sounddevice 和输入库 Keyboard。靠自己我已经能够让事情发挥作用,但是当我混合它们时,我开始遇到麻烦。具体来说,如果我使用键盘热键命令尝试触发它引起的声音效果和 EOF。无论如何,用于执行其他键盘命令的热键都可以工作,但似乎在混合时遇到了麻烦。我一直在阅读两者的文档,但我找不到一个清晰的系统来重叠库。我尝试过的任何循环似乎也不起作用,尽管其中许多循环写得不好,因为我只是不知道如何从看似不相关的部分中提取类似的东西。这就是我所拥有的。
python - 检测输入何时未用于 Linux 上的 Python SoundDevice/PortAudio
我正在使用 Python 的 sounddevice 库(在下面运行 PortAudio)在 Linux(RPi 4 上的 Raspbian Buster 桌面)上录制音频,但似乎我的脚本的多个实例会导致错误PaErrorcode -9985
,我认为这是由于 PortAudio(或操作系统?)不允许多个程序同时访问音频输入。
我是一个菜鸟,但阅读了 Try 块并将我的代码中使用 sounddevice 的部分封装在 Try 块中,它会不断重试,直到不再给出错误代码。但是,即使在输入变为空闲后,sounddevice 似乎也无法识别输入是否空闲。例如,sounddevice.default.device
即使在第一个实例关闭后,在第二个实例上运行也会产生 [-1,3] 而不是第一个实例的 [0,0]。奇怪的是,通常只有两种设备:
第一个实例 sounddevice.query_devices() 结果:
二审结果:
除了像这样的 Try 块之外,我还尝试重新导入 sounddevice 并重新检查,但这也没有用。通过搜索错误代码、阅读 sounddevice 或 portaudio 的文档,我无法找到任何解决方案。我还查看了一个 pidfile,但如果我无法让 sounddevice 重新识别正确的输入,那将无济于事。
总的来说,我试图弄清楚如何让声音设备识别输入是免费的并使用它。
更新:根据评论中的要求,下面是一个简单的示例脚本,两个实例不能同时运行。