使用虚拟声卡播放音频文件作为麦克风声源

该文章已生成可运行项目,

一、安装虚拟声卡

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}")

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值