gpt4 book ai didi

python-sounddevice - 从麦克风播放音频

转载 作者:行者123 更新时间:2023-12-02 22:25:37 29 4
gpt4 key购买 nike

我可以从我的麦克风中播放音频,但声音非常低沉,老实说,这听起来像是程序要崩溃了。

我尝试使用 InputStream,但播放时声音很糟糕,知道我做错了什么吗?

10 是我的麦克风,而 13 是我的输出设备(扬声器)

import sounddevice as sd

device_info = sd.query_devices(10, 'input')
samplerate = int(device_info['default_samplerate'])

sd.default.samplerate = samplerate
sd.default.channels = 2
devices = sd.query_devices()
print(devices)

def callback(indata, frames, time, status):
#print(indata)
sd.play(indata, device=13, blocking=True)

with sd.InputStream(device = 10, samplerate=44100, dtype='float32', callback=callback):
print('#' * 80)
print('press Return to quit')
print('#' * 80)
input()

我觉得我需要将它添加到队列中并从队列中播放它?

最佳答案

高级便利函数 sd.play()sd.rec()sd.playrec() 简单地播放和/或记录任意(但固定)长度的整个 NumPy 数组(只要它们适合内存)。它们应该简单方便,但它们的用例非常有限。

如果您需要更多控制(例如连续记录、实时处理……),您可以使用较低级别的“流”类(例如sd.Streamsd. InputStream, sd.RawInputStream) 使用“非阻塞”回调接口(interface)或使用“阻塞”read()write() 方法。

内部的高级函数已经使用“流”类,因此您不应该混合使用它们!如果您在流的回调函数中使用 sd.play(),它会在回调函数中创建另一个流。这注定要失败!

长话短说,您应该使用高级低级接口(interface),但不能同时使用。

如果你想立即回放麦克风输入,你应该使用带有回调函数的sd.Stream(包括输入和输出),如图所示in the documentation在示例应用程序中 wire.py .

关于python-sounddevice - 从麦克风播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48701142/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com