如何指定要与 python sounddevice 一起使用的录音设备

How to specify which recording device to use with python sounddevice

我想使用下面的函数两次

此函数将实时音频输入转换为 wav 文件。

第一次,我使用我的电脑内置麦克风,第二次 运行,我使用我在 运行 代码之前插入的耳机麦克风。

但是当我尝试我的功能时,它只使用了我耳机的麦克风:

import sounddevice as sd
from scipy.io.wavfile import write
from playsound import playsound
def audio_to_wav(dst, device):
    """
    converts live audio to wav file
    :param dst: destination wav file
    """
    # Sample rate:
    fs = 4410
    # Duration of recording:
    seconds = 5

    myrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=2, device=device)
    # Wait until recording is finished:
    sd.wait()
    # Save as WAV file:
    write(dst, fs, myrecording)

在我的 main 中,我调用了这个函数两次:

def main():
    # transfer mic1 audio to wav:
    audio_to_wav("file1.wav", 0)
    # transfer mic2 audio to wav:
    audio_to_wav("file2.wav", 1)
    # play the wav files audio:
    playsound("file1.wav")
    playsound("file2.wav")

但是当我运行此代码时,该功能仅使用耳机的麦克风。

如何同时使用电脑内置麦克风和耳机麦克风?

问题是在音频管理器(在我的例子中是 Realtek 音频管理器)中,录音设备高级设置被设置为 "Tie up same type of input jacks..."。

当我将其更改为 "Separate all input jacks as independent input devices" 时,它解决了问题。