虚拟麦克风变声

本文介绍了如何通过虚拟声卡和C++来实现实时语音变声的效果,适用于微信、腾讯会议等应用。首先安装虚拟声卡,然后利用Windows接口实时录音并处理声音,将处理后的声音数据写入虚拟麦克风,使得其他应用程序可以从虚拟麦克风采集到变声后的音频。
摘要由CSDN通过智能技术生成

场景:

实现微信、腾讯会议等语音电话变声

方案描述

需要安装虚拟声卡,设置当前采集端为虚拟mic。然后通过输入端向虚拟mic里头写入数据,其他应用从虚拟mic里头采集的声音就为修改后的声音。

方案实施:

1.https://vb-audio.com/Cable/VirtualCables.htm 虚拟声卡,很便宜,网上也能下载免费的,安装之后系统会多一条音频输入输出虚拟线路;

在这里插入图片描述

在这里插入图片描述

2.使用windows接口 使用物理mic进行实时录音(此处我们可以对录音根据需要进行修改处理),将录音输出写入设备CABLE-A Input输入端,虚拟线路能将数据送往CABLE-A Output端(虚拟mic),其他应用就能从虚拟mic采集数据。

3.部分代码

// 录音回调函数   
void CALLBACK waveInProc(HWAVEIN hwi,
    UINT uMsg,
    DWORD_PTR dwInstance,
    DWORD_PTR dwParam1,
    DWORD_PTR dwParam2)
{
   
    LPWAVEHDR pwh = (LPWAVEHDR)dwParam1;

    if ((WIM_DATA == uMsg)/* && (buf_count<BUFFER_SIZE)*/)
    {
   
        std::shared_ptr<unsigned char> pBuffer(new unsigned char[pwh->dwBytesRecorded], std::default_delete<unsigned char[]>());
        memcpy(pBuffer.get(), pwh->lpData, pwh->dwBytesRecorded);
        que.Put(std
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值