有谁知道是否可以使用Python在同一声卡中将某个声卡输入播放到同一声卡中的输出? (或任何其他语言)

如果是这样,是否可以编写一个脚本来读取声卡的输入并将其弹回同一张卡上的输出,并且如果该输入保持沉默十分钟以上,则将其重新路由到输出?

提前致谢

编辑:欢迎使用任何操作系统的答案。首选Windows或Linux发行版,也可以使用OSX。

最佳答案

pyaudio有一种称为非阻塞回调的方法,其中输入(例如麦克风)直接按原样路由到输出(扬声器/耳机),这意味着无法对传入流进行任何操作。
不知道这就是您要找的东西。
如果您需要在写(或发送到putput)之前操纵流,则可以使用@rewolf的答案。

来自site的源代码。

"""
PyAudio Example: Make a wire between input and output (i.e., record a
few samples and play them back immediately).

This is the callback (non-blocking) version.
"""

import pyaudio
import time

WIDTH = 2
CHANNELS = 2
RATE = 44100

p = pyaudio.PyAudio()

def callback(in_data, frame_count, time_info, status):
    return (in_data, pyaudio.paContinue)

stream = p.open(format=p.get_format_from_width(WIDTH),
                channels=CHANNELS,
                rate=RATE,
                input=True,
                output=True,
                stream_callback=callback)

stream.start_stream()

while stream.is_active():
    time.sleep(0.1)

stream.stop_stream()
stream.close()

p.terminate()

关于python - 在Python中将声卡输入播放到声卡输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45905490/

10-13 04:07