一种音频降噪装置以及计算设备的制作方法
本发明涉及计算机领域,特别涉及一种音频降噪装置以及计算设备。
背景技术:
操作系统的多媒体功能是操作系统极其重要的功能,直接关系到用户的体验感受,而音视频作为多媒体的主体,在操作系统中的重要性不言而喻。在操作系统中,当在录音的同时进行播放时,录音的音频中会有噪音过大的问题。
为了解决所录制的音频中的噪音问题,很多第三方软件在使用录音过程中会进行音频降噪的优化操作,但这种方式仅适用于提供该项功能的第三方软件,没有进行音频降噪的软件录制的音频依然噪音过大。并且,每一项软件均需要实现音频降噪功能,便使得第三方软件的总体研发成本升高,浪费研发资源。
为此,需要一种新的音频降噪装置。
技术实现要素:
为此,本发明提供一种音频降噪装置,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种音频降噪装置,装置驻留在计算设备的操作系统中,并与声卡通信连接,声卡还连接有输入设备和输出设备,装置包括:输入模块,适于从声卡获取由输入设备采集的混音信号;控制模块,适于为输入设备建立输入代理模块,为输出设备建立输出代理模块,将输入代理模块和输出代理模块组成降噪通道;降噪通道,降噪通道中包括通信连接的输入代理模块和输出代理模块,适于从输入模块获取混音信号,并对混音信号进行降噪处理,并转换得到输出信号;以及输出模块,适于从降噪通道获取输出信号,并发送至声卡,以便由与声卡连接的输出设备进行播放。
可选地,在根据本发明的装置中,还包括与控制模块连接的监控模块,监控模块适于监听与声卡连接的输入设备或输出设备是否发生变更;控制模块进一步的适于当监控模块监听到输入设备发生变更,则删除输入代理模块,根据变更后的输入设备建立新的输入代理模块。
可选地,在根据本发明的装置中,控制模块还适于当监控模块监听到输出设备发生变更,则删除输出代理模块,根据变更后的输出设备建立新的输出代理模块。
可选地,在根据本发明的装置中,监控模块还适于监听声卡是否发生变更;控制模块还适于当监控模块监听到与装置连接的声卡发生变更,则删除降噪通道,根据变更后的声卡建立新的降噪通道。
可选地,在根据本发明的装置中,输出代理模块适于将上一帧的输出信号作为参考信号进行存储;输入代理模块适于从输入模块获取混音信号,从输出代理模块获取参考信号,根据参考信号和混音信号对混音信号进行降噪。
可选地,在根据本发明的装置中,混音信号包括输入信号和上一帧输出信号的回声,输入代理模块进一步适于:根据参考信号与混音信号确定降噪参数;根据降噪参数从混音信号中过滤上一帧输出信号的回声得到输入信号,将输入信号发送至输出代理模块。
可选地,在根据本发明的装置中,输出代理模块还适于将输入信号转化为输出信号,并作为下一帧的参考信号进行存储。
可选地,在根据本发明的装置中,装置驻留的计算设备中还运行有采集录音文件的应用,所述输出模块还适于将输出信号存储为录音文件,并发送至应用。
可选地,在根据本发明的装置中,控制模块还适于向用户提供控制接口,以便接收降噪信号控制控制模块是否建立降噪通道对混音信号进行降噪,降噪信号包括关闭降噪和开启降噪。
可选地,在根据本发明的装置中,还包括与输入模块通信连接的存储模块,存储模块适于存储音频文件,控制模块还适于当接收到关闭降噪的降噪信号,并且输入模块从存储模块获取音频文件进行播放,则直接将音频文件发送至输出模块,以便输出模块发送音频文件至声卡,由与声卡连接的输出设备进行播放。
可选地,在根据本发明的装置中,控制模块还适于:当接收到开启降噪的降噪信号,并且输入模块从声卡中获取混音信号进行播放,则建立降噪通道对混音信号进行降噪。
可选地,在根据本发明的装置中,控制接口接收的降噪信号由降噪开关发出,降噪开关的状态包括开启和关闭,降噪开关处于开启状态或关闭状态时,向控制接口相应的发送开启降噪和关闭降噪的降噪信号。
根据本发明的又一方面,提供了一种计算设备,包括:存储器;存储在存储器中的操作系统;以及驻留在操作系统中的一种音频降噪装置。
本发明的音频降噪装置中设置有与输入模块、输出模块和控制模块通信连接的降噪通道,在该降噪通道中,包括输入代理模块和输出代理模块,适于对由与装置通过声卡通信连接的输入设备所采集的混音信号进行降噪,并转化得到输出信号,便于由与声卡连接的输出设备进行播放。本发明的音频降噪装置可直接对混音信号进行降噪,不需要第三方软件辅助降噪,即可在得到具有良好质量的录音文件。
并进一步的,本发明的音频降噪装置中还设置有与控制模块通信连接的监控模块,适于监控声卡、与声卡连接的输入设备或输出设备是否发生变更。若与声卡连接的输入设备或输出设备发生变更,则删除降噪通道中的输入代理模块或输出代理模块,并根据更新后的输入/输出设备重新建立输入/输出代理模块。若与装置连接声卡发生变更,则重新建立整个降噪通道。以便实现在装置所连接的包括声卡、输入设备或输出设备在内的设备发生变更时,根据新连接的设备的参数,重建降噪通道或降噪通道中的输入/输出代理模块,重新调整降噪参数,达到在更换设备后依旧有良好的降噪效果,在用户无感知下提供切换设备后依旧能够录制良好质量的录音音频。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的音频降噪装置100;以及
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的音频降噪装置100的结构框图。如图1所示,音频降噪装置100与声卡160通信连接,声卡160与输出设备170和输入设备180通信连接。输出设备170可是实现为任意一种扬声器,包括功放机、音箱等。输入设备180可实现为任意一种可实现声音采集功能的设备,包括麦克风等。连接到音频降噪装置100的声卡160以及连接到声卡160的输出设备170和输入设备180均可能发生变更。声卡160对所链接的输出设备170和输入设备180进行管理,声卡160向输出设备170输出输出信号,以便输出设备170播放输出信号。输入设备180接收并采集声音信号,采集到的声音信号除了包括当前帧的输入信号之外,还包括由输出设备170输出的上一帧的输出信号,在此将二者混合的信号称为混音信号。
图1所示的音频降噪装置100驻留在计算设备200的操作系统中。图2示出了根据本发明一个示范性实施例的计算设备200的结构框图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(µp)、微控制器(µc)、数字信息处理器(dsp)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个程序222以及程序数据224。在操作系统220中驻留有音频降噪装置221,音频降噪装置221即为图1所示的音频降噪装置100。在一些实施方式中,程序222可以布置为在操作系统上由一个或者多个处理器204利用程序数据224执行根据本发明的方法300的指令223。
计算设备200还可以包括储存接口总线234。储存接口总线234实现了从储存设备232(例如,可移除储存器236和不可移除储存器238)经由总线/接口控制器230到基本配置202的通信。操作系统220、应用222以及数据224的至少一部分可以存储在可移除储存器236和/或不可移除储存器238上,并且在计算设备200上电或者要执行应用222时,经由储存接口总线234而加载到系统存储器206中,并由一个或者多个处理器204来执行。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个a/v端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个i/o端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备200可以实现为服务器,例如文件服务器240、数据库250、服务器、应用程序服务器等,这些电子设备可以是诸如个人数字助理(pda)、无线网络浏览设备、应用专用设备、或者可以包括上面任何功能的混合设备。可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。
回到图1中,对音频降噪装置100继续进行进一步的说明。音频降噪装置100从声卡160获取由输入设备180采集的混音信号,向声卡160输出输出信号,由声卡160将输出信号发送至输出设备170进行播放。音频降噪装置100中包括输入模块110、输出模块120、降噪通道130和控制模块140;其中,降噪通道130与输入模块110、输出模块120和控制模块140通信连接。输入模块110从声卡160中获取混音信号,混音信号包括当前帧的输入信号(图1中由声卡160指向输入模块110的实线)和由输出设备170输出的上一帧的输出信号(由声卡160指向输入模块110的虚线)。
控制模块140控制是否建立降噪通道130进行降噪。控制模块140向使用音频降噪装置100的用户提供控制接口。控制接口接收降噪信号,来控制降噪模块是否建立降噪通道对混音信号进行降噪。降噪信号由设置的降噪开关发出,用户通过降噪开关控制是否进行降噪。降噪开关包括开启和关闭,相应的降噪信号包括关闭降噪和开启降噪。
根据本发明的一个实施例,控制模块140在确定是否进行降噪时,根据用户配置变更处理函数,获取用户设置的降噪状态,即是否进行降噪,相应代码如下:
funchandleuserconfigchanged(){
echocancelenabled:=getuserconfig().echocancelenabled
如果输入模块110从物理设备即输入设备180获取混音信号,且降噪信号为开启降噪,则相应代码如下:
dev.echocancelenabled=true
setechocancelenabled(true)
}elseif!isphydev(dev)&&!echocancelenabled{
如果输入模块110从虚拟设备即存储模块150获取音频文件进行播放,且降噪信号为关闭降噪,则相应代码如下:
phydev(dev).echocancelenabled=false
setechocancelenabled(false)
}else
当用户希望播放本地音频时,可将降噪开关关闭。音频降噪装置100还包括存储模块150,其中存储有音频文件,存储模块150与输入模块110通信连接。当输入模块110从存储模块150中获取音频文件进行播放,且用户控制降噪开关关闭,控制接口接收到关闭降噪的降噪信号时,控制模块140不建立降噪通道130,直接将输入模块110从存储模块150中获取的音频文件发送至输出模块130,由与声卡160连接的输出设备170进行播放。
当用户希望使用其他应用程序要进行音频的录制,且同时对音频进行播放时,可对降噪开关进行开启。用户在切换应用程序时,可以有选择的根据所切换的应用程序对降噪开关进行开启或关闭。应用程序在实现录音及播放功能时采集录音文件。控制接口接收到开启降噪的降噪信号时,且输入模块110从声卡160获取混音信号进行播放和处理,则控制模块140建立降噪通道130对混音信号进行降噪。
根据本发明的一个实施例,控制模块140在建立降噪通道130时,根据设备变更处理函数,获取目前的输出设备或输入设备,相应代码如下:
funchandledevchanged()
dev:=getcurrentdev()
随后,确定是否是物理设备,如果是物理设备,便建立降噪通道,相应代码如下:
ifisphydev(dev){
setechocancelenabled(dev.echocancelenabled)
降噪通道130中包括输入代理模块132和输出代理模块131。输入代理模块132从输入模块110中获取混音信号。输出代理模块131中预存储有上一帧输出信号,将上一帧的输出信号作为参考信号。后续将详细介绍输出代理模块131存储参考信号的过程。
输入代理模块132从输入模块110中获取到混音信号后,从输出代理模块中131获取参考信号(即图1中由输出代理模块131指向输入代理模块132的虚线箭头),利用参考信号对混音信号进行降噪。利用参考信号对混音信号进行降噪利用参考信号对混音信号进行降噪时,包括步骤1:根据参考信号与混音信号确定降噪参数;混音信号中包括当前帧的输入信号和由输出设备170输出的上一帧的输出信号,其中,由输出设备170输出的上一帧的输出信号为混音信号中的噪声。噪声来自于由输出设备170输出的声音和在房间内传播并由房间的表面反射的声音。根据本发明的一个实施例,在对混音信号中的噪声进行消除时,将混音信号进行快速傅里叶变换,转换到频域上,再进行低通滤波,消除高频分量,再通过快速傅里叶反变换转换回声音数据的方式,从而将噪音滤除。步骤1中确定的降噪参数即为快速傅里叶变换及反变换的参数。
步骤2:根据降噪参数从混音信号中过滤上一帧输出信号的回声得到输入信号,将输入信号发送至输出代理模块131。由于在进行音频降噪时,输入的混音信号中上一帧的输出信号已经和当前帧的输出信号混在一起,无法轻易分离。于是需要预先存储并从中获取上一帧的输出信号以应用于当前帧的混音信号的降噪过程,利用快速傅里叶变换和快速傅里叶反变换转换从混音信号中提取清洁的输出信号。根据本发明的一个实施例,在步骤1中得到快速傅里叶变换及反变换的参数后,应用快速傅里叶变换及反变换消除上一帧输出信号的回声,得到清洁的输出信号。
在输入代理模块132中得到当前帧的输出信号后,输入代理模块132将当前帧的输出信号发送至输出代理模块131(即图1中由输入代理模块132指向输出代理模块131的实线箭头)。输出代理模块131在得到当前帧的输入信号后,将其转换为当前帧的输出信号。本发明对输出代理模块131将输入信号转化为输出信号的方式不作限制。随后,输出代理模块131将当前帧的输出信号发送至输出模块120,并在输出代理模块131中进行存储,以便对下一帧的混音信号进行降噪。输出代理模块131对上一帧的输出信号进行存储的过程也同当前帧的输出信号存储的方式相同。
输出模块120在得到由输出代理模块131发送的输出信号后,将输出信号转发至声卡160,以便由与声卡160所连接的输出设备170进行播放。与此同时,输出模块120同时将输出信号进行存储,作为较高质量的录音文件提供给采集录音文件的应用。
音频降噪装置100中还包括与控制模块140通信连接的监控模块190。监控模块监听与声卡160连接的输入设备180或输出设备170是否发生变更。在装置100中,与声卡160所链接的输入设备180或输出设备170均可发生变更。当输入设备180或输出设备170发生变更时,其相应的设备参数也将发生变更,需要相应调整在降噪通道中输入代理模块132或输出代理模块131的参数,否则将影响降噪效果。
因此当监控模块190监控到与声卡160通信连接得到输入设备180或输出模块170发生变化时,控制模块140相应的删除输入代理模块132或输出代理模块133,根据变更后的输入设备180或输出设备170建立新的输入代理模块132或输出代理模块131。在建立新的输入代理模块132或输出代理模块131时,首先获取输入设备180或输出设备170参数,如果没有则设定为默认参数,具体代码为:
[-z"$aecargs"]&&aecargs="analog_gain_control=0digital_gain_control=1";
newsourcename="echocancelsource";
其次,加载新的输入代理模块132或输出代理模块131,具体代码为:
echoreload\"module-echo-cancel\"with\"aec_args=$aecargs\";
pactlunload-modulemodule-echo-cancel2>/dev/null;
ifpactlload-modulemodule-echo-canceluse_master_format=1aec_method=*aec_args=\"$aecargs\"source_name=$newsourcename;then
最后,将建立新的输入代理模块132或输出代理模块131的降噪通道设为默认通道,具体代码为:
pacmdset-default-source$newsourcename
并且,在音频降噪装置100中,监控模块190还监听声卡160是否发生变更,若与装置100统信链接的声卡160发生变更,则需要删除整个降噪通道130,并根据变更后的声卡160建立新的降噪通道130,以便保持良好的降噪效果。重建新的降噪通道130,获取变更后的声卡160的数据,并加载包括输入代理模块132和输出代理模块131在内的新的降噪通道130。
本发明的音频降噪装置中设置有与输入模块、输出模块和控制模块通信连接的降噪通道,在该降噪通道中,包括输入代理模块和输出代理模块,适于对由与装置通过声卡通信连接的输入设备所采集的混音信号进行降噪,并转化得到输出信号,便于由与声卡连接的输出设备进行播放。本发明的音频降噪装置可直接对混音信号进行降噪,不需要第三方软件辅助降噪,即可在得到具有良好质量的录音文件。
并进一步的,本发明的音频降噪装置中还设置有与控制模块通信连接的监控模块,适于监控声卡、与声卡连接的输入设备或输出设备是否发生变更。若与声卡连接的输入设备或输出设备发生变更,则删除降噪通道中的输入代理模块或输出代理模块,并根据更新后的输入/输出设备重新建立输入/输出代理模块。若与装置连接声卡发生变更,则重新建立整个降噪通道。以便实现在装置所连接的包括声卡、输入设备或输出设备在内的设备发生变更时,根据新连接的设备的参数,重建降噪通道或降噪通道中的输入/输出代理模块,重新调整降噪参数,达到在更换设备后依旧有良好的降噪效果,在用户无感知下提供切换设备后依旧能够录制良好质量的录音音频。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、cd-rom、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的设备停机状态的判断方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除