Pyaudio 录制内部声音 - 空白/空输出文件(外部声卡)

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

我正在尝试使用 Pyaudio 录制计算机的内部声音(YouTube 视频、应用程序等),但尽管在播放声音时录制,但输出文件始终为空。没有错误或警告。

我怀疑该问题与使用外部声卡(Focusrite Scarlett 2i2 第一代)有关。我在 Windows 11 上运行并尝试以管理员身份执行脚本。有趣的是,当我打开幻象电源时,会记录电噪声,因此它以某种方式监听设备,只是不拾取通过它播放的应用程序。

import pyaudio
import wave

chunk = 1024
sample_format = pyaudio.paInt16
channels = 2
rate = 48000
seconds = 5

p = pyaudio.PyAudio()  

stream = p.open(format=sample_format,
                channels=channels,
                rate=rate,
                input=True,
                frames_per_buffer=chunk)

frames = []


for i in range(0, int(rate / chunk * seconds)):
    data = stream.read(chunk)
    frames.append(data)


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


wf = wave.open("stream_test.wav", 'wb')
wf.setnchannels(channels)
wf.setsampwidth(p.get_sample_size(sample_format))
wf.setframerate(rate)
wf.writeframes(b''.join(frames))
wf.close()

audio-recording pyaudio windows-11 soundcard
1个回答
0
投票

我已经使用以下库而不是官方 PyAudio 解决了这个问题:

https://github.com/s0d3s/PyAudioWPatch/tree/master

PyAudioWPatch 允许您在环回模式下使用 WASAPI 记录输出。

有关更多讨论,请参阅此处这篇文章:

使用 PyAudio 录制扬声器输出

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