用python改变音频输出设备

问题描述 投票:0回答:2

我想捕捉计算机输出,通过神经网络运行,然后实时回放音频。到目前为止我已经找到BlackHole:

import sounddevice as sd
sd.default.device = 'BlackHole 2ch'

这非常适合捕获输出。问题是我想用 BlackHole 捕获音频,然后将音频实时反馈到扬声器输出。设置

sd.default.device = "MacBook Pro Speakers
不会改变系统音频输出(它仍然是 BlackHole)。如何以编程方式更改设备音频输出?

python audio output audio-streaming
2个回答
3
投票

你可以做到

print(sd.query_devices())
打印出您可能使用的所有设备,例如

>  1 Mikrofon (3 — Urzadzenie zgodne, MME (2 in, 0 out)
   2 Mikrofon (3 — Urzadzenie zgodne, MME (2 in, 0 out)
   3 Mapowanie dzwieku Microsoft - Output, MME (0 in, 2 out)
<  4 Sluchawki (3 — Urzadzenie zgodn, MME (0 in, 2 out)
   5 Glosniki (3 — Urzadzenie zgodne, MME (0 in, 2 out)

现在你可以看到,有一个索引为 1 的输入设备和一个索引为 4 的输出设备。

您现在可以通过输入来设置一对输入/输出设备

sd.default.device = [index_of_input_device,index_of_output_device]


0
投票
default_speaker = sc.default_speaker()
print("start - ", default_speaker)
print(sd.query_devices())
sd.default.device = [1, 5]
print(sd.query_devices())

在终端中,我们看到声音输出已经切换,但实际上声音继续通过Speakers (GS3), M (0 inputs, 2 outputs)。 Windows 11.

开始- 0 Переназначение звуковых устр。 - 输入,MME(2 进 0 出)

1 麦克风 (GS3), MME (2 in, 0 out) 2 Переназначение звуковых устр。 - 输出,MME(0 进,2 出) < 3 Динамики (GS3), MME (0 in, 2 out) 4 Realtek Digital Output (Realtek, MME (0 in, 2 out) 5 LG HDR WFHD (NVIDIA High Defini, MME (0 in, 2 out)

0 Переназначение звуковых устр。 - 输入,MME(2 进 0 出)

1 麦克风 (GS3), MME (2 in, 0 out) 2 Переназначение звуковых устр。 - 输出,MME(0 进,2 出) 3 Динамики (GS3), MME (0 in, 2 out) 4 Realtek 数字输出 (Realtek, MME (0 in, 2 out) < 5 LG HDR WFHD (NVIDIA High Defini, MME (0 in, 2 out)

© www.soinside.com 2019 - 2024. All rights reserved.