使用PyAudio在Python中进行环回(';您听到的内容';)录制

使用PyAudio在Python中进行环回(';您听到的内容';)录制,python,audio,pyaudio,Python,Audio,Pyaudio,你好 我正在尝试使用PyAudio用Python录制扬声器输出。 目前,我可以录制麦克风输入并将其发送给“听众”。 我现在要做的是创建一个环回,这样它会记录扬声器的输出。 我可以通过windows的“立体声混音”来实现这一点,但因为这需要跨平台,所以应该有另一种方法来实现 有人对我如何做到这一点有什么建议吗 这是我当前记录输入流的代码 import socket import pyaudio import wave #record CHUNK = 1024 FORMAT = pyaudio.p

你好

我正在尝试使用PyAudio用Python录制扬声器输出。 目前,我可以录制麦克风输入并将其发送给“听众”。 我现在要做的是创建一个环回,这样它会记录扬声器的输出。 我可以通过windows的“立体声混音”来实现这一点,但因为这需要跨平台,所以应该有另一种方法来实现

有人对我如何做到这一点有什么建议吗

这是我当前记录输入流的代码

import socket
import pyaudio
import wave

#record
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 40

HOST = '192.168.0.122'    # The remote host
PORT = 50007              # The same port as used by the server

recording = True

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))

p = pyaudio.PyAudio()

for i in range(0, p.get_device_count()):
    print(i, p.get_device_info_by_index(i)['name'])

device_index = int(input('Device index: '))

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK,
                input_device_index=device_index)

print("*recording")

frames = []

while recording:
    data  = stream.read(CHUNK)
    frames.append(data)
    s.sendall(data)

print("*done recording")

stream.stop_stream()
stream.close()
p.terminate()
s.close()

print("*closed")

任何帮助都将不胜感激

编辑:我没有看到跨平台的事情。将其作为Windows环回设备的参考

安装类似[1]的虚拟环回设备,并选择适配器作为输入设备。这对我很有效

您可以使用pyAudio进行检查,如下所示:

>>> print p.get_device_count()
8

>>> print p.get_device_info_by_index(1)["name"]
Line 1 (Virtual Audio Cable)
因此,我使用1作为我的设备索引

[1]