一、安装虚拟声卡

VB-CABLE虚拟声卡是一种将电脑播放的声音当作虚拟麦克风输入的工具,可用于语音聊天、直播或录制系统声音等场景。

1、下载安装 VB-Audio Cable

下载地址:

VB-Audio Virtual Apps

  • 下载VBCABLE_Driver_Pack45.zip,解压后,双击打开VBCABLE_Setup_x64.exe,点击 “Install Driver” 进行安装。

  • 安装完成后,重启系统以使驱动生效。

2、配置系统音频输入输出

  • 打开“设置”->“系统”->“声音”,在 “输出” 栏,选择 “CABLE Input” ,在 “录制” 栏,选择 “CABLE Output” 。

  • 打开“设置”->“隐私和安全性”->“麦克风”,开启“麦克风访问权限”,开启游戏的麦克风权限。

二、播放音频到虚拟声卡

1、安装依赖

pip install pyaudio sounddevice numpy==1.26.4
pip install pydub

2、列出所有可用的音频输出设备

def list_audio_output_devices():
    p = pyaudio.PyAudio()
    for i in range(p.get_device_count()):
        device_info = p.get_device_info_by_index(i)
        if device_info["maxOutputChannels"] > 0:  # 只列出支持输出的设备
            device_name = device_info['name']
            print(f"设备索引: {i}, 设备名称: {device_name}, 采样率: {device_info['defaultSampleRate']}")

3、在指定的音频输出设备上播放音频

def play_audio_on_device(file_path, device_index):
    audio_data = None
    # 加载音频文件
    with wave.open(file_path, 'rb') as wf:
        # 获取音频参数
        channels = wf.getnchannels()
        sample_width = wf.getsampwidth()
        frame_rate = wf.getframerate()
        frames = wf.readframes(-1)

        # 将字节数据转换为 NumPy 数组
        dtype = None
        if sample_width == 2:
            dtype = np.int16
        elif sample_width == 4:
            dtype = np.int32
        else:
            raise ValueError(f"不支持的采样宽度: {sample_width}")

        audio_data = np.frombuffer(frames, dtype=dtype)
        audio_data = audio_data.reshape(-1, channels)

    # 播放音频
    try:
        sd.play(audio_data, samplerate=frame_rate,device=device_index, blocking=False)
        sd.wait()
        print("音频播放完成!")
    except Exception as e:
        print(f"播放音频时出错: {e}")

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐