Windows计算机实时与会共享音频的采集方法

文档序号:1568607 发布日期:2020-01-24 浏览:23次 >En<

阅读说明:本技术 Windows计算机实时与会共享音频的采集方法 (Method for acquiring real-time conference sharing audio of Windows computer ) 是由 王耀臣 冯文澜 于 2019-10-23 设计创作,主要内容包括:本发明公开了一种Windows计算机实时与会共享音频的采集方法,使用Windows会议客户端软件,Windows会议客户端软件的声音播放模块包括三个缓冲区Buffer1、Buffer2和Buffer3,Windows计算机实时与会共享音频的采集方法包括:Windows会议客户端软件通过渲染端点设备的LookBack接口采集到扬声器播放的音频PCM数据;根据Buffer1、Buffer2和Buffer3,按照固定帧长度存储音频PCM数据;Windows会议客户端软件加入会议时,将测量LookBack接口的音频帧采集延时;当Lookback采集延时测量完毕,针对每一帧Lookback采集的音频PCM数据使用去混音算法消除会议语音,从而使Windows会议客户端软件能够采集无失真的共享音频数据。借此,本发明的Windows计算机实时与会共享音频的采集方法,可以获得无失真的共享音频数据。(The invention discloses a method for acquiring shared audio of real-time conferencing of a Windows computer, which uses Windows conference client software, wherein a sound playing module of the Windows conference client software comprises three Buffer areas, namely Buffer1, Buffer2 and Buffer3, and the method for acquiring the shared audio of real-time conferencing of the Windows computer comprises the following steps: the Windows conference client software acquires audio PCM data played by a loudspeaker through a LookBack interface of rendering endpoint equipment; storing audio PCM data according to a fixed frame length according to Buffer1, Buffer2 and Buffer 3; when the Windows conference client software joins a conference, the audio frame acquisition delay of the measurement LookBack interface is delayed; and when the acquisition delay measurement of the Lookback is finished, eliminating the conference voice by using a de-mixing algorithm according to the audio PCM data acquired by each frame of the Lookback, so that the Windows conference client software can acquire undistorted shared audio data. Therefore, the method for acquiring the shared audio of the Windows computer participating in the meeting in real time can acquire undistorted shared audio data.)

Windows计算机实时与会共享音频的采集方法

技术领域

本发明是关于网络多媒体技术领域,特别是关于一种Windows计算机实时与会共享音频的采集方法。

背景技术

近年来,随着互联网和多媒体技术的迅速发展,具有较好实时性和交互性的网络视频会议系统得到了广泛应用。在使用网络视频会议开会时,与会者使用windows操作系统的多媒体计算机来共享其计算机桌面、共享数据文件等已经成为常见的操作,而实时共享与会者计算机终端正在播放的音乐或多媒体短片也越来越被更多人所熟悉和使用。

在视频会议中,通过互联网实时共享与会计算机终端正在播放的音频数据(音乐或语音)需要在较低延时模式下进行,其主要处理流程包括:音频数据采集、编码、网络传输、解码、播放等,这与单纯的计算机屏幕录制功能是完全不同的:计算机屏幕录制除抓取计算机屏幕的视频截图外,要同时抓取计算机声卡播放的所有声音数据,然后对其进行合并、编码、传输等后续处理;而会议中共享计算机播放的声音或音乐,则一般不包括该计算机收到并播放的远端会议语音,在视频会议中,与会的windows计算机想要共享其播放的音频或音乐,首先要采集到声卡播放的音频数据,然后经过编码、传输等实现共享功能,目前有两种常见的声卡音频数据采集方法:第一种是自主研发音(视)频播放器,通过播放器的软件接口把共享的音频数据采集出来;第二种是利用windows声卡驱动程序API接口(例如Windows Core API),使用LookBack接口从声卡驱动中获取扬声器播放的音频数据,然后再使用AEC算法消除采集到的PCM数据中的会议语音数据,从而得到期望共享的音频数据(音乐或语音)。

因而对于自主研发音(视)频播放器并从播放器中采集共享音频的方案或装置,由于音频文件格式的多样性、播放器的兼容性等原因需要耗费较高的研发成本和维护成本;某些情况下windows计算机共享的音频无法用自研播放器采集,例如网页在线播放的音乐或视频短片等以及对于利用windows计算机的声卡驱动LookBack接口采集扬声器音频,并利用AEC算法消除会议语音(或音乐)的算法,其处理后的音频(特别是高质量音乐)一般会存在不同程度的失真。当会议语音和共享音频同时播放的时候,采集的共享音频质量失真更为严重。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

发明内容

本发明的目的在于提供一种Windows计算机实时与会共享音频的采集方法,其可以获得无失真的共享音频数据。

为实现上述目的,本发明提供了一种Windows计算机实时与会共享音频的采集方法,包括:首选Windows会议客户端软件通过渲染端点设备(Rendering Endpoint Device)的LookBack接口采集到扬声器播放的音频PCM数据;根据Windows会议客户端软件的声音播放模块中三个缓冲区Buffer1、Buffer2和Buffer3,按照固定帧长度存储音频PCM数据;Windows会议客户端软件加入会议时,将测量LookBack接口的音频帧采集延时;当Lookback采集延时测量完毕,针对每一帧Lookback采集的音频PCM数据使用去混音算法消除会议语音,从而使Windows会议客户端软件能够采集无失真的共享音频数据。

在本发明的一实施方式中,Buffer1、所述Buffer2和所述Buffer3每个缓冲区的大小为存储的最大音频帧数;其中,所述Buffer1为存储会议中将要播放的会议语音,大小为N帧,且1<N<100;其中,所述Buffer2为存储所述LookBack接口采集到的扬声器音频数据,大小为N帧,且1<N<100;以及其中,所述Buffer3为存储采集得到的共享音频数据,大小为N帧,且1<N<100。

在本发明的一实施方式中,每次会议软件加入会议时,将测量LookBack接口的音频帧采集延时,该延时为将要播放的会议语音帧从离开Buffer1到进入所述Buffer2的时间进行延时,以10ms帧为单位。

在本发明的一实施方式中,Windows会议客户端软件加入会议时,将测量所述LookBack接口的音频帧采集延时,具体算法如下:向所述Buffer1写入M帧语音测量帧,可使用会议提示音或者欢迎语等代替,每一帧的短时能量值为Ei,并且Ei大于Et,Et指最小有效检测能量值,每一语音帧的短时能量计算公式为:Ei=x(m)2,即短时能量值等于一帧中所有语音信号的平方和;每次当所述渲染端点设备的Buffer Empty事件到来的时候,从所述Buffer1读取一帧测量帧,写入所述渲染端点设备播放出去,更新发送计数器K,且0﹤K﹤M,并且在此事件处理程序中,同时读取所述Lookback接口,对采集到的音频帧计算其能量值Ej;当所述Lookback接口采集到的音频帧的能量Ej大于Et并且与所述Buffer1中的第一个测量帧的能量值Ei匹配度在80%以上时,则判定所述Lookback接口的采集延时测量完成,所述Lookback接口采集延时为当前所述Buffer1的发送计数器。

在本发明的一实施方式中,Lookback采集延时测量完毕,此后在会议中的任何时刻,所述Windows会议客户端软件能够采集无失真的共享音频数据,采集算法如下:写入扬声器播放的会议语音帧循环存放在所述Buffer1中,通过所述Lookback接口采集到的音频帧循环存放到所述Buffer2中,且所述Buffer1和所述Buffer2都是环形读写机制;对于所述Lookback接口采集到的每一音频帧Fi,通过采集延时K在所述Buffer1中找到对应的一帧Hi+k,然后使用如下公式得到采集的共享音频帧Di,Di=Hi+k-Fi

在本发明的一实施方式中,匹配度为80%的计算方法为:(Ei*80%)﹤Ej﹤(Ei*120%)。

在本发明的一实施方式中,Buffer为缓冲区,Buffer Empty为缓冲区空。

在本发明的一实施方式中,Windows会议客户端软件的音频采集模块采用微软公开的Windows Core Audio API驱动程序模型。

与现有技术相比,根据本发明的Windows计算机实时与会共享音频的采集方法,具有如下有益效果:

1、通过设计采用微软公开的Windows Core Audio API接口在声卡驱动层面采集无失真的共享音频数据,具有较强的兼容性,与自主研发音视频播放器相比,减少了音频文件的格式兼容性开发工作,降低了开发成本,减少了升级次数和维护成本;

2、通过设计算法与AEC算法消除会议语音的算法相比,避免了采集得到的共享音频数据的失真,保证了音质,且同时减少了算法运算量,降低了CPU运算负荷。

附图说明

图1是根据本发明一实施方式的Windows计算机实时与会共享音频的采集方法的流程示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

如图1所示,图1是根据本发明一实施方式的Windows计算机实时与会共享音频的采集方法的流程示意图。

根据本发明优选实施方式的一种Windows计算机实时与会共享音频的采集方法,包括步骤S1至S4,步骤S1为Windows会议客户端软件通过渲染端点设备(RenderingEndpoint Device)的LookBack接口采集到扬声器播放的音频PCM数据;步骤S2为根据Windows会议客户端软件的声音播放模块中3个缓冲区Buffer1、Buffer2和Buffer3,按照固定帧长度存储音频PCM数据;步骤S3为会议软件加入会议时,将测量LookBack接口的音频帧采集延时;步骤S4为当上面的Lookback采集延时测量完毕,针对每一帧Lookback采集的音频PCM数据使用去混音算法消除会议语音,从而使此后在会议中的任何时刻,Windows客户端软件可以采集无失真的共享音频数据。

实施例1:本发明基于微软公开的Windows Core Audio API(WASAPI)驱动程序模型,通过渲染端点设备的LookBack接口采集到扬声器播放的音频PCM数据,然后使用去混音算法消除会议语音,从而获得无失真的共享音频数据,其中,使用去混音算法代替了音频AEC算法,共享音频采集算法详细描述如下:

首先,Windows会议客户端软件(简称会议软件)的声音播放模块有3个缓冲区Buffer1、Buffer2和Buffer3,按照固定帧长度(例如10ms)存储音频PCM数据,每个缓冲区的大小是指能够存储的最大音频帧数。Buffer1为存储会议中将要播放的会议语音,大小为100帧;Buffer2为存储LookBack接口采集到的扬声器音频数据,大小为100帧;Buffer3为存储采集得到的共享音频数据,大小为100帧。

其次,会议软件加入会议时,将测量LookBack接口的音频帧采集延时(该延时指的是将要播放的会议语音帧从离开Buffer1到进入Buffer2的时间,以10ms帧为单位),具体算法如下:

(1)向Buffer1写入M(例如取值范围1到100)帧语音测量帧,可以使用会议提示音或者欢迎语等代替。每一帧的短时能量值为Ei,并且Ei大于Et(Et指最小有效检测能量值)。每一语音帧的短时能量计算公式为:Ei=x(m)2,既短时能量值等于一帧中所有语音信号的平方和。

(2)每次当渲染端点设备的Buffer Empty事件到来的时候,从Buffer1读取一帧测量帧,写入渲染端点设备播放出去,更新发送计数器K即0﹤K﹤M;并且在此事件处理程序中,同时读取Lookback接口,对采集到的音频帧计算其能量值Ej

(3)当Lookback接口采集到的音频帧的能量Ej大于Et并且与Buffer1中的第一个测量帧的能量值Ei匹配度在80%以上时,则判定Lookback接口的采集延时测量完成,Lookback接口采集延时为(既当前Buffer1的发送计数器)。

匹配度为80%的计算方法为:(Ei*80%)﹤Ej﹤(Ei*120%)。

最后,当上面的Lookback采集延时测量完毕,此后在会议中的任何时刻,会议软件可以采集无失真的共享音频数据,采集算法如下:

(1)写入扬声器播放的会议语音帧循环存放在Buffer1中,通过Lookback接口采集到的音频帧循环存放到Buffer2中,两个Buffer都是环形读写机制;

(2)对于Lookback接口采集到的每一音频帧Fi,通过采集延时K可以在Buffer1中找到对应的一帧Hi+k,然后使用如下公式得到采集的共享音频帧Di,Di=Hi+k-Fi

上述公式为混音算法的逆过程,既去混音算法:在时域对两个音频帧的所有采样点做减法,计算结果做溢出保护后即为采集到的共享音频帧;

(3)把采集得到的共享音频帧Di存放到Buffer3中,更新相关计数器。

本发明中处理算法的重点是如何保证会议语音帧与Lookback采集帧之间的精确同步(精确到每个PCM采样点)。

总之,本发明的Windows计算机实时与会共享音频的采集方法,具有如下有益效果:

1、通过设计采用微软公开的Windows Core Audio API接口在声卡驱动层面采集无失真的共享音频数据,具有较强的兼容性,与自主研发音视频播放器相比,减少了音频文件的格式兼容性开发工作,降低了开发成本,减少了升级次数和维护成本;

2、通过设计算法与AEC算法消除会议语音的算法相比,避免了采集得到的共享音频数据的失真,保证了音质,且同时减少了算法运算量,降低了CPU运算负。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于自助终端设备的语音降噪摄像头的实现方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类