发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开实施例提供了一种音频处理方法,包括:
确定第一音频信号对应的调幅系数,根据所述调幅系数对所述第一音频信号进行更新,得到第二音频信号;
对所述第二音频信号进行频域变换,得到第一频域信号;
确定所述第一频域信号的谐波分量和冲击分量;
对所述谐波分量进行减弱处理,对所述冲击分量进行加强处理,得到第二频域信号;
对所述第二频域信号进行时域变换,得到第三音频信号。
上述方案中,所述确定第一音频信号对应的调幅系数,根据所述调幅系数对所述第一音频信号进行更新,包括:
遍历所述第一音频信号的多个帧,并将遍历到的帧确定为当前帧;
确定所述当前帧的帧能量,根据所述当前帧的帧能量及增益控制历史状态,确定所述当前帧的调幅系数,其中,所述增益控制历史状态包括所述当前帧之前的多个帧的帧能量;
根据所述调幅系数,对所述当前帧进行更新;
根据所述当前帧的帧能量,对所述增益控制历史状态进行更新。
上述方案中,所述确定所述第一频域信号的谐波分量和冲击分量,包括:
将各帧所述第二音频信号对应的第一频域信号拆分为多个频段,并确定各频段的谐波掩码值和冲击掩码值;
根据各频段的谐波掩码值构建谐波掩码矩阵,并根据所述第一频域信号和所述谐波掩码矩阵,确定所述第一频域信号的谐波分量;
根据各频段的冲击掩码值构建冲击掩码矩阵,并根据所述第一频域信号和所述冲击掩码矩阵,确定所述第一频域信号的冲击分量。
上述方案中,所述确定各频段的谐波掩码值和冲击掩码值,包括:
遍历各帧第一音频信号对应的第一频域信号中的各频段,将遍历到的帧确定为当前帧,将遍历到的频段确定为当前频段;
在所述当前帧的延伸帧中确定符合所述当前频段的频段,并对确定出的频段及所述当前频段进行中位数处理,得到第一处理结果;
确定所述当前帧的所述当前频段的延伸频段,并对所述延伸频段和所述当前频段进行中位数处理,得到第二处理结果;
根据所述第一处理结果和所述第二处理结果的比较结果,确定所述当前帧的所述当前频段的谐波掩码值和冲击掩码值;
其中,所述延伸帧包括所述当前帧的前L/2个帧和后L/2个帧,所述延伸频段包括所述当前频段的前M/2个频段和后M/2个频段,所述L和所述M均为大于0的整数。
上述方案中,所述根据所述第一处理结果和所述第二处理结果的比较结果,确定所述当前帧的所述当前频段的谐波掩码值和冲击掩码值,包括:
当所述第一处理结果超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为第一设定值,将所述当前帧的所述当前频段的冲击掩码值设置为第二设定值;
当所述第一处理结果未超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为所述第二设定值,将所述当前帧的所述当前频段的冲击掩码值设置为所述第一设定值。
上述方案中,所述对确定出的频段及所述当前频段进行中位数处理,得到第一处理结果,包括:
对确定出的频段的能量及所述当前频段的能量进行中位数处理,得到第一处理结果;或者,
对确定出的频段的幅度值及所述当前频段的幅度值进行中位数处理,得到第一处理结果。
上述方案中,所述对所述谐波分量进行减弱处理,对所述冲击分量进行加强处理,得到第二频域信号,包括:
根据第一权重值对所述谐波分量进行更新,根据第二权重值对所述冲击分量进行更新,其中,所述第一权重值小于所述第二权重值;
将更新后的所述谐波分量和所述冲击分量,合并为第二频域信号。
上述方案中,所述音频处理方法还包括:
将所述第二频域信号拆分为多个频段,并确定各频段的第一频谱参数;
遍历各频段,并将遍历到的频段确定为当前频段;
根据所述当前频段的第一频谱参数以及所述当前频段前的多个频段的第一频谱参数,确定所述当前频段的第二频谱参数;
根据各频段的第二频谱参数,确定所述第三音频信号的音频起始点。
第二方面,本公开实施例提供了一种音频处理装置,包括:
调幅模块,用于确定第一音频信号对应的调幅系数,根据所述调幅系数对所述第一音频信号进行更新,得到第二音频信号;
第一变换模块,用于对所述第二音频信号进行频域变换,得到第一频域信号;
分量确定模块,用于确定所述第一频域信号的谐波分量和冲击分量;
调整模块,用于对所述谐波分量进行减弱处理,对所述冲击分量进行加强处理,得到第二频域信号;
第二变换模块,用于对所述第二频域信号进行时域变换,得到第三音频信号。
上述方案中,所述调幅模块,还用于:
遍历所述第一音频信号的多个帧,并将遍历到的帧确定为当前帧;
确定所述当前帧的帧能量,根据所述当前帧的帧能量及增益控制历史状态,确定所述当前帧的调幅系数,其中,所述增益控制历史状态包括所述当前帧之前的多个帧的帧能量;
根据所述调幅系数,对所述当前帧进行更新;
根据所述当前帧的帧能量,对所述增益控制历史状态进行更新。
上述方案中,所述分量确定模块,还用于:
将各帧所述第二音频信号对应的第一频域信号拆分为多个频段,并确定各频段的谐波掩码值和冲击掩码值;
根据各频段的谐波掩码值构建谐波掩码矩阵,并根据所述第一频域信号和所述谐波掩码矩阵,确定所述第一频域信号的谐波分量;
根据各频段的冲击掩码值构建冲击掩码矩阵,并根据所述第一频域信号和所述冲击掩码矩阵,确定所述第一频域信号的冲击分量。
上述方案中,所述分量确定模块,还用于:
遍历各帧第一音频信号对应的第一频域信号中的各频段,将遍历到的帧确定为当前帧,将遍历到的频段确定为当前频段;
在所述当前帧的延伸帧中确定符合所述当前频段的频段,并对确定出的频段及所述当前频段进行中位数处理,得到第一处理结果;
确定所述当前帧的所述当前频段的延伸频段,并对所述延伸频段和所述当前频段进行中位数处理,得到第二处理结果;
根据所述第一处理结果和所述第二处理结果的比较结果,确定所述当前帧的所述当前频段的谐波掩码值和冲击掩码值;
其中,所述延伸帧包括所述当前帧的前L/2个帧和后L/2个帧,所述延伸频段包括所述当前频段的前M/2个频段和后M/2个频段,所述L和所述M均为大于0的整数。
上述方案中,所述分量确定模块,还用于:
当所述第一处理结果超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为第一设定值,将所述当前帧的所述当前频段的冲击掩码值设置为第二设定值;
当所述第一处理结果未超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为所述第二设定值,将所述当前帧的所述当前频段的冲击掩码值设置为所述第一设定值。
上述方案中,所述分量确定模块,还用于:
对确定出的频段的能量及所述当前频段的能量进行中位数处理,得到第一处理结果;或者,
对确定出的频段的幅度值及所述当前频段的幅度值进行中位数处理,得到第一处理结果。
上述方案中,所述调整模块,还用于:
根据第一权重值对所述谐波分量进行更新,根据第二权重值对所述冲击分量进行更新,其中,所述第一权重值小于所述第二权重值;
将更新后的所述谐波分量和所述冲击分量,合并为第二频域信号。
上述方案中,所述音频处理装置,还包括:
拆分模块,用于将所述第二频域信号拆分为多个频段,并确定各频段的第一频谱参数;
频段遍历模块,用于遍历各频段,并将遍历到的频段确定为当前频段;
频谱参数更新模块,用于根据所述当前频段的第一频谱参数以及所述当前频段前的多个频段的第一频谱参数,确定所述当前频段的第二频谱参数;
起始点确定模块,用于根据各频段的第二频谱参数,确定所述第三音频信号的音频起始点。
第三方面,本公开实施例提供了一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述可执行指令时,实现本公开实施例提供的音频处理方法。
第四方面,本公开实施例提供了一种存储介质,存储有可执行指令,所述可执行指令被执行时,用于实现本公开实施例提供的音频处理方法。
本公开实施例具有如下有益效果:
本公开实施例通过确定第一音频信号对应的调幅系数,根据调幅系数对第一音频信号进行更新得到第二音频信号,并对第二音频信息进行频域变换,在频域上对信号中的谐波分量进行减弱处理,对冲击分量进行加强处理,并对频域的信号进行时域变换得到第三音频信号,使得第三音频信号中的起始点信息加强,提升进行起始点检测的精度和准确性。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
音符/音节起始点检测是音频处理的一个方向,目标是准确检测音符和音节的起始点位置,为了便于理解,后文将音符和音节的起始点统一称为音频起始点。发明人在实施本公开的过程中发现,在相关技术提供的方案中,通常是聚焦于检测算法,通过检测算法对音频信号进行处理,从而确定音频信号中的起始点。作为示例,参见图1A,图1A是本公开实施例提供的音频信号的一个可选的示意图,所示出的音频信号中的起始点信息较强,通过检测算法对该音频信号进行处理后,得到如图1B所示的检测出的音频起始点位置。
但是,在实际应用场景中,由于采集到的音频信号可能受到噪声、多样的乐器演奏声以及人声干扰,导致音频信号中的起始点信息被淹没在整体的音频中。作为示例,参见图2,图2是本公开实施例提供的音频信号的另一个可选的示意图,该音频信号节选自一首流行歌曲的第5至8秒,可见,图2所示出的音频信号复杂多变,包括的起始点信息较弱,若通过检测算法对该音频信号进行处理,则很难得到准确的音频起始点,检测的精度和准确性差。
本公开实施例提供一种音频处理方法、装置、电子设备及存储介质,能够加强音频信号中的起始点信息,提升进行检测的精度和准确性,下面说明本公开实施例提供的电子设备的示例性应用。
参见图3,图3是实现本公开实施例的电子设备100的结构示意图。电子设备可以是各种终端,包括移动电话、笔记本电脑、数字广播接收器、个人数字助理(PDA,PersonalDigital Assistant)、平板电脑(PAD)、便携式多媒体播放器(PMP,Portable MediaPlayer)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字电视(TV)、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图3所示,电子设备100可以包括处理装置(例如中央处理器、图形处理器等)110,其可以根据存储在只读存储器(ROM,Read-Only Memory)120中的程序或者从存储装置180加载到随机访问存储器(RAM,Random Access Memory)130中的程序而执行各种适当的动作和处理。在RAM 130中,还存储有电子设备100操作所需的各种程序和数据。处理装置110、ROM 120以及RAM 130通过总线140彼此相连。输入/输出(I/O,Input/Output)接口150也连接至总线140。
通常,以下装置可以连接至I/O接口150:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置160;包括例如液晶显示器(LCD,LiquidCrystal Display)、扬声器、振动器等的输出装置170;包括例如磁带、硬盘等的存储装置180;以及通信装置190。通信装置190可以允许电子设备100与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的电子设备100,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开实施例,所提供的流程图描述的过程可以被实现为计算机软件程序。例如,本公开实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,计算机程序可以通过通信装置190从网络上被下载和安装,或者从存储装置180被安装,或者从ROM 120被安装。在计算机程序被处理装置110执行时,执行本公开实施例的方法中的功能。
需要说明的是,本公开实施例上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、ROM、可擦式可编程只读存储器(EPROM,ErasableProgrammable Read Only Memory)、闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括电线、光缆、射频(RF,Radio Frequency)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备100中所包含的;也可以是单独存在,而未装配入电子设备100中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备100执行时,使得电子设备执行本公开实施例提供的音频处理方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开实施例中操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN,Local Area Network))和广域网(WAN,Wide Area Network),以连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本公开实施例提供的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,调幅模块还可以被描述为“确定第一音频信号对应的调幅系数,根据调幅系数对第一音频信号进行更新,得到第二音频信号的模块”。
本公开实施例中描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA,Field-Programmable Gate Array)、专用集成电路(ASIC,Application SpecificIntegrated Circuit)、专用标准产品(ASSP,Application Specific Standard Parts))、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开实施例的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
下面结合本公开实施例提供的音频处理装置中的模块。可以理解地,音频处理装置中的模块可以采用软件(例如上述的计算机软件程序中存储的计算机程序)的方式在如图3所示的电子设备中实现,也可以采用上述的硬件逻辑部件(例如FPGA、ASIC、ASSP、SOC和CPLD)的方式在如图3所示的电子设备中实现。
参见图4,图4是实现本公开实施例的音频处理装置200的一个可选的结构示意图,示出了以下模块:
调幅模块210,用于确定第一音频信号对应的调幅系数,根据所述调幅系数对所述第一音频信号进行更新,得到第二音频信号;
第一变换模块220,用于对所述第二音频信号进行频域变换,得到第一频域信号;
分量确定模块230,用于确定所述第一频域信号的谐波分量和冲击分量;
调整模块240,用于对所述谐波分量进行减弱处理,对所述冲击分量进行加强处理,得到第二频域信号;
第二变换模块250,用于对所述第二频域信号进行时域变换,得到第三音频信号。
需要指出,上述模块的分类并不构成对电子设备本身的限定,例如一些模块可以拆分为两个或以上的子模块,或者,一些模块可以合并为一个新的模块。
还需要指出,上述模块的名称在某种情况下并不构成对模块本身的限定,例如,上述调幅模块210也可以被描述为“确定第一音频信号对应的调幅系数,根据调幅系数对第一音频信号进行更新,得到第二音频信号”的模块。
基于同样的理由,电子设备中未详尽描述的模块不代表相应模块的缺省,凡是电子设备所执行的操作都可以通过电子设备中的相应的模块实现。
继续参见图5A,图5A是实现本公开实施例的音频处理方法的一个可选的流程示意图,例如,处理装置110将只读存储器(ROM)102中的程序或者将存储装置180中的程序加载到随机访问存储器(RAM)时,执行程序时可以实现图5A示出的音频处理方法,下面说明图5A示出的步骤。
在步骤101中,确定第一音频信号对应的调幅系数,根据所述调幅系数对所述第一音频信号进行更新,得到第二音频信号。
为了便于区分,将获取到的待处理的音频信号命名为第一音频信号。首先,确定第一音频信号对应的调幅系数,根据调幅系数更新第一音频信号,得到第二音频信号,其中,调幅系数是对第一音频信号的能量进行处理得到的,具体在后文进行阐述。通过更新第一音频信号,从而进行自适应的能量规整,使得得到的第二音频信号中的幅度变化更为平缓,避免因能量的剧烈波动而导致起始点信息识别不准。
在步骤102中,对所述第二音频信号进行频域变换,得到第一频域信号。
例如,通过短时傅里叶变换(STFT,Short Time Fourier Transform)将第二音频信号变换为频域上的第一频域信号。
在步骤103中,确定所述第一频域信号的谐波分量和冲击分量。
在本公开实施例中,将第一频域信号分解为谐波分量和冲击分量,通常来说,噪声信息大量存在于谐波分量中,而冲击分量包括了较多的音符及音素信息。
在步骤104中,对所述谐波分量进行减弱处理,对所述冲击分量进行加强处理,得到第二频域信号。
对包括较多噪声信息的谐波分量进行减弱处理,同时,对冲击分量进行对应的加强处理,得到第二频域信号。
在一些实施例中,可以通过这样的方式实现上述的对所述谐波分量进行减弱处理,对所述冲击分量进行加强处理,得到第二频域信号:根据第一权重值对所述谐波分量进行更新,根据第二权重值对所述冲击分量进行更新,其中,所述第一权重值小于所述第二权重值;将更新后的所述谐波分量和所述冲击分量,合并为第二频域信号。
为了便于说明,以F代表第一频域信号,以FH代表第一频域信号中的谐波分量,以FP代表第一频域信号中的冲击分量,则第一频域信号与分解后的两个分量之间存在如下关系:
F=FH+FP
为了提升冲击分量在第一频域信号中所占的比重,根据第一权重值对谐波分量进行更新,根据第二权重值对冲击分量进行更新,并将更新后的谐波分量和冲击分量合并为第二频域信号,其中,第一权重值小于第二权重值,第一权重值和第二权重值均为大于0的实数,且第一权重值和第二权重值之和为2。第一权重值和第二权重值可根据实际应用场景进行确定,此处以第一权重值取0.7,第二权重值取1.3进行说明,则第二频域信号Fnew为:
Fnew=0.7×FH+1.3×FP
值得说明的是,设置第一权重值大于0的意义在于,在真实音频中,冲击分量往往带有较多的尖峰噪声,故不能仅将第一频域信号中的冲击分量作为第二频域信号。通过设置第一权重值和大于第一权重值的第二权重值,从而对谐波分量中的平稳噪声和冲击分量中的尖峰噪声进行平衡,提升对两个分量的处理效果,降低了得到的第二频域信号中的噪声。
在步骤105中,对所述第二频域信号进行时域变换,得到第三音频信号。
例如,对第二频域信号进行短时傅里叶逆变换(ISTFT,Inverse Short-timeFourier Transfor),得到时域上的第三音频信号,则该第三音频信号中的起始点信息较第一音频信号更为突出。
通过公开实施例对于图5A的上述示例性实施可知,本公开实施例通过调幅系数对第一音频信号进行能量规整,提升了能量的平稳性,并且在频域上将信号分解为谐波分量和冲击分量,对谐波分量进行减弱,对冲击分量进行加强,从而突出信号中的起始点信息,提升了起始点检测的精度和准确性。
在一些实施例中,参见图5B,图5B是本公开实施例提供的音频处理方法的另一个可选的流程示意图,图5A示出的步骤101可以通过步骤201至步骤204实现,将结合各步骤进行说明。
在步骤201中,遍历所述第一音频信号的多个帧,并将遍历到的帧确定为当前帧。
音频信号可理解为一串一维的离散时间序列,表示为:
X={x1,x2,…,xN}
其中,N表示音频信号中离散样本点的总数。
在本公开实施例中,根据设定帧长,将第一音频信号划分为多个帧,帧即为连续音频序列,其中,设定帧长可根据实际应用场景进行设置,如在10~100毫秒的范围内进行设置。第一音频信号中的帧可表示为:
Fα n={x(n-1)*N+1,x(n-1)*N+2,…,x(n-1)*N+N}
其中,Fα表示第一音频信号,n表示第一音频信号中的第n帧,N表示第一音频信号中的一帧包括的离散样本点的总数。遍历划分出的多个帧,为了便于区分,将遍历到的帧命名为当前帧。
在步骤202中,确定所述当前帧的帧能量,根据所述当前帧的帧能量及增益控制历史状态,确定所述当前帧的调幅系数,其中,所述增益控制历史状态包括所述当前帧之前的多个帧的帧能量。
对于当前帧来说,首先确定当前帧的帧能量,计算公式如下:
其中,En即为第n帧的帧能量。
根据当前帧的帧能量及增益控制历史状态,确定当前帧的调幅系数,该调幅系数用于对当前帧的帧能量进行能量规整,其中,增益控制历史状态包括当前帧之前的c个帧的帧能量,c为大于0的整数,可根据实际应用场景进行设置。
在步骤203中,根据所述调幅系数,对所述当前帧进行更新。
例如,将当前帧中的每个离散样本点与调幅系数进行乘积运算,从而完成更新。值得说明的是,对于一些特殊的当前帧,如第一音频信号中的第一个帧来说,由于其不存在对应的增益控制历史状态,故可将该当前帧的调幅系数设置为1,即更新后的当前帧与原当前帧一致。
在步骤204中,根据所述当前帧的帧能量,对所述增益控制历史状态进行更新,直到遍历完成所述第一音频信号的多个帧,得到第二音频信号。
在对当前帧进行更新的同时,根据当前帧的帧能量对增益控制历史状态进行更新。例如,去除增益控制历史状态中帧数最前的帧的帧能量,并将当前帧的帧能量添加至增益控制历史状态中。重复上述步骤,直到遍历完成第一音频信号中的多个帧,得到第二音频信号为止。
通过公开实施例对于图5B的上述示例性实施可知,本公开实施例通过当前帧的帧能量和增益控制历史状态对当前帧进行更新,提升了当前帧的能量规整性。
在一些实施例中,参见图5C,图5C是本公开实施例提供的确定第一频域信号的谐波分量和冲击分量的一个可选的流程示意图,图5A示出的步骤103可以通过步骤301至步骤303实现,将结合各步骤进行说明。
在步骤301中,将各帧所述第二音频信号对应的第一频域信号拆分为多个频段,并确定各频段的谐波掩码值和冲击掩码值。
同样地,可将第二音频信号划分为多个帧,并且,将各帧对应的第一频域信号划分为k个频段,k为大于0的整数,可表示为:
F=f(n,k)
其中,F表示第一频域信号,n表示第n帧,k表示第k个频段,f(n,k)表示第一频域信号的第n帧的第k个频段,本公开实施例对频段的划分方式不做限定。对于第一频域信号的各帧中的各频段,确定对应的谐波掩码值和冲击掩码值。
图5C示出的步骤301可以通过步骤401至步骤404实现,将结合各步骤进行说明。
在步骤401中,遍历各帧第一音频信号对应的第一频域信号中的各频段,将遍历到的帧确定为当前帧,将遍历到的频段确定为当前频段。
例如,遍历到的帧为第i帧,第i帧中遍历到的频段为第j个频段。
在步骤402中,在所述当前帧的延伸帧中确定符合所述当前频段的频段,并对确定出的频段及所述当前频段进行中位数处理,得到第一处理结果。
对于f(i,j)来说,保持j不变,以i为中心在i的前后各取L/2个帧,作为延伸帧,并确定延伸帧中的第j个频段,其中,L为大于0的偶数,可根据实际应用场景进行设置。对延伸帧中确定出的频段及当前频段进行中位数处理,得到第一处理结果,以公式表示为:
其中,median()代表中位数运算函数,median_t(i,j)代表第一处理结果。
在一些实施例中,可以通过这样的方式实现上述的对确定出的频段及所述当前频段进行中位数处理,得到第一处理结果:对确定出的频段的能量及所述当前频段的能量进行中位数处理,得到第一处理结果;或者,对确定出的频段的幅度值及所述当前频段的幅度值进行中位数处理,得到第一处理结果。
在本公开实施例中可应用两种处理方式,第一种是对延伸帧中确定出的频段的能量及当前频段的能量进行中位数处理,得到第一处理结果;第二种是对延伸帧中确定出的频段的幅度值及当前频段的幅度值进行中位数处理,得到第一处理结果。当然,除此之外,还可对能量和幅度值进行融合处理,并对融合处理的结果进行中位数处理,得到第一处理结果,本公开实施例对此不做限定。通过上述方式,提升了处理的灵活性。
在步骤403中,确定所述当前帧的所述当前频段的延伸频段,并对所述延伸频段和所述当前频段进行中位数处理,得到第二处理结果。
同时,保持f(i,j)中的i不变,以j为中心在j的前后各取M/2个频段,作为延伸频段,其中,M为大于0的偶数,可根据实际应用场景进行设置。对当前帧中的当前频段和延伸频段进行中位数处理,得到第二处理结果,以公式表示为:
其中,median()代表中位数运算函数,median_f(i,j)代表第二处理结果。值得说明的是,第二处理结果同样可采用上述的任一处理方式得到,但第二处理结果的处理方式须与第一处理结果相同,例如,当第一处理结果是对L+1个频段的能量进行处理后得到的时,对M+1个频段的能量进行处理,得到第二处理结果。
在步骤404中,根据所述第一处理结果和所述第二处理结果的比较结果,确定所述当前帧的所述当前频段的谐波掩码值和冲击掩码值;其中,所述延伸帧包括所述当前帧的前L/2个帧和后L/2个帧,所述延伸频段包括所述当前频段的前M/2个频段和后M/2个频段,所述L和所述M均为大于0的整数。
在一些实施例中,可以通过这样的方式实现上述的根据所述第一处理结果和所述第二处理结果的比较结果,确定所述当前帧的所述当前频段的谐波掩码值和冲击掩码值:当所述第一处理结果超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为第一设定值,将所述当前帧的所述当前频段的冲击掩码值设置为第二设定值;当所述第一处理结果未超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为所述第二设定值,将所述当前帧的所述当前频段的冲击掩码值设置为所述第一设定值。
例如,第一设定值为0,第二设定值为1,以mh(n,k)表示第一频域信号的第n帧的第k个频段的谐波掩码值,以mp(n,k)表示第一频域信号的第n帧的第k个频段的冲击掩码值,则当第一处理结果超过第二处理结果,即median_t(i,j)>median_f(i,j)时,设置mh(i,j)=0,mp(i,j)=1;当第一处理结果未超过第二处理结果,即median_t(i,j)≤median_f(i,j)时,设置mh(i,j)=1,mp(i,j)=0。重复上述步骤,直到遍历完成第一频域信号的各帧中的各频段,得到各频段对应的谐波掩码值和冲击掩码值为止。通过上述的将第一处理结果和第二处理结果进行比较,从而设置谐波掩码值和冲击掩码值的方式,提升了分解第一频域信号的准确性。
在步骤302中,根据各频段的谐波掩码值构建谐波掩码矩阵,并根据所述第一频域信号和所述谐波掩码矩阵,确定所述第一频域信号的谐波分量。
根据各帧中各频段的谐波掩码值构建谐波掩码矩阵,以MH表示谐波掩码矩阵,则可表示为MH=mh(n,k)。该谐波掩码矩阵是指谐波分量的掩码矩阵,尺寸与第一频域信号F一致,根据第一频域信号和谐波掩码矩阵,确定第一频域信号的谐波分量,以FH表示谐波分量,则可表示为:
FH=F·MH
其中,“·”表示矩阵的点乘运算。
在步骤303中,根据各频段的冲击掩码值构建冲击掩码矩阵,并根据所述第一频域信号和所述冲击掩码矩阵,确定所述第一频域信号的冲击分量。
同理,以MP表示冲击掩码矩阵,则可表示为MP=mp(n,k)。该冲击掩码矩阵是指冲击分量的掩码矩阵,尺寸与第一频域信号F一致,根据第一频域信号和冲击掩码矩阵,确定第一频域信号的冲击分量,以FP表示冲击分量,则可表示为:
FP=F·MP
从而,将第一频域信号分解为谐波分量和冲击分量,便于在后续步骤中对两个分量进行调整,从而突出起始点信息。
通过公开实施例对于图5C的上述示例性实施可知,本公开实施例通过确定各帧中各频段的谐波掩码值和冲击掩码值,从而将第一频域信号分解为谐波分量和冲击分量,提升了分解第一频域信号的全面性和准确性。
在一些实施例中,参见图5D,图5D是本公开实施例提供的音频处理方法的另一个可选的流程示意图,在步骤105之后,还可以在步骤501中,将所述第二频域信号拆分为多个频段,并确定各频段的第一频谱参数。
在得到第二频域信号后,可将第二频域信号拆分为多个频段,并确定每个频段的频谱参数,为了便于区分,将此处的频谱参数命名为第一频谱参数。第一频谱参数可通过对频段的幅度值及相位进行加权处理得到,本公开实施例对此不做限定。
在步骤502中,遍历各频段,并将遍历到的频段确定为当前频段。
在步骤503中,根据所述当前频段的第一频谱参数以及所述当前频段前的多个频段的第一频谱参数,确定所述当前频段的第二频谱参数。
这里,当前频段前的多个频段可以指当前频段前的所有频段,也可以指当前频段前的设定个数的频段,该设定个数可根据实际应用场景进行设置。根据当前频段的第一频谱参数以及当前频段前的多个频段的第一频谱参数,确定当前频段的第二频谱参数,直到得到各频段的第二频谱参数为止。例如,对当前频段的第一频谱参数以及当前频段前的多个频段的第一频谱参数进行均值处理,得到当前频段的第二频谱参数。
在步骤504中,根据各频段的第二频谱参数,确定所述第三音频信号的音频起始点。
由于在音频起始点的位置,频谱会出现较为突出的阶跃变化,故可根据各频段的第二频谱参数绘制频谱参数曲线,根据频谱参数曲线确定局部最高点,并根据局部最高点确定时域的第三音频信号的音频起始点。对于确定出的音频起始点,可应用于音频的自动切分和自动标注、信息抽取、分段压缩及互动娱乐等方向。
通过公开实施例对于图5D的上述示例性实施可知,本公开实施例通过当前频段的第一频谱参数以及当前频段前的多个频段的第一频谱参数,确定当前频段的第二频谱参数,并根据第二频谱参数确定第三音频信号的音频起始点,提升了起始点检测的精度和准确性。
下面,将说明本公开实施例在一些实际的应用场景中的示例性应用。
参见图6,图6是实现本公开实施例的增益控制的一个可选的流程示意图,在图6中,输入的信号为第一音频信号61。首先,确定第一音频信号61的各个帧的帧能量。对于每一帧来说,根据该帧的帧能量及对应的增益控制历史状态,确定该帧对应的调幅系数,其中,增益控制历史状态包括该帧之前的多个帧的帧能量。然后,根据调幅系数,对该帧进行更新,同时,根据该帧的帧能量,对增益控制历史状态进行更新,以便确定下一个帧对应的调幅系数。对第一音频信号61中的各个帧更新完成后,输出第二音频信号62。
为了便于理解,本公开实施例提供了图7A所示的第一音频信号61的一个可选的示意图,以及图7B所示的第二音频信号62的一个可选的示意图。在图7A中,第一音频信号61的尖峰的幅度较高,并且后半段的能量弱于前半段。经过增益控制,即根据调幅系数对第一音频信号61进行更新后,在图7B所示的第二音频信号62中,尖峰的幅度得到了有效的抑制,同时后半段的能量和前半段基本保持了一致。通过上述的增益控制,能够对原始音频信号进行自适应的能量规整,使得音频信号的幅度变化更加平缓,提升音频信号的能量一致性,降低由于能量剧烈波动带来的检测误差。
参见图8,图8是实现本公开实施例的音频处理方法的另一个可选的流程示意图。在图8中,输入的信号为第一音频信号81,首先,对第一音频信号81进行自动增益控制(AGC,Automatic Gain Control),具体地,确定第一音频信号81对应的调幅系数,根据调幅系数对第一音频信号81进行更新,得到第二音频信号。然后,对第二音频信号进行短时傅里叶变换,得到第一频域信号,并对第一频域信号进行谐波-冲击源分离(HPSS,Harmonic-Percussive Source Separation),将第一频域信号分解为谐波分量和冲击分量。然后,对谐波分量和冲击分量进行加权求和,从而减弱谐波分量,加强冲击分量,得到第二频域信号,该第二频域信号中的音符和音素信息,即起始点信息被增强。然后,对第二频域信号进行短时傅里叶逆变换,得到第三音频信号82。
为了便于理解,本公开实施例提供了图9A所示的第一音频信号81的一个可选的幅度示意图,以及图9B所示的第三音频信号82的一个可选的幅度示意图,其中,第一音频信号81是图2示出的音频信号。将图9A和图9B进行对比,可确定图9B中冲击分量的成分较之图9A更大,仅凭视觉便可从图9B中挑选出较为准确的音频起始点,例如图9B所示出的框选位置。在起始点检测算法不变的前提下,通过对音频信号进行前处理,大大地增强了音频信号中的起始点信息,提升了后续检测的精度和准确性。
根据本公开的一个或多个实施例,提供了一种音频处理方法,包括:确定第一音频信号对应的调幅系数,根据所述调幅系数对所述第一音频信号进行更新,得到第二音频信号;对所述第二音频信号进行频域变换,得到第一频域信号;确定所述第一频域信号的谐波分量和冲击分量;对所述谐波分量进行减弱处理,对所述冲击分量进行加强处理,得到第二频域信号;对所述第二频域信号进行时域变换,得到第三音频信号。
在一些实施例中,所述确定第一音频信号对应的调幅系数,根据所述调幅系数对所述第一音频信号进行更新,包括:遍历所述第一音频信号的多个帧,并将遍历到的帧确定为当前帧;确定所述当前帧的帧能量,根据所述当前帧的帧能量及增益控制历史状态,确定所述当前帧的调幅系数,其中,所述增益控制历史状态包括所述当前帧之前的多个帧的帧能量;根据所述调幅系数,对所述当前帧进行更新;根据所述当前帧的帧能量,对所述增益控制历史状态进行更新。
在一些实施例中,所述确定所述第一频域信号的谐波分量和冲击分量,包括:将各帧所述第二音频信号对应的第一频域信号拆分为多个频段,并确定各频段的谐波掩码值和冲击掩码值;根据各频段的谐波掩码值构建谐波掩码矩阵,并根据所述第一频域信号和所述谐波掩码矩阵,确定所述第一频域信号的谐波分量;根据各频段的冲击掩码值构建冲击掩码矩阵,并根据所述第一频域信号和所述冲击掩码矩阵,确定所述第一频域信号的冲击分量。
在一些实施例中,所述确定各频段的谐波掩码值和冲击掩码值,包括:遍历各帧第一音频信号对应的第一频域信号中的各频段,将遍历到的帧确定为当前帧,将遍历到的频段确定为当前频段;在所述当前帧的延伸帧中确定符合所述当前频段的频段,并对确定出的频段及所述当前频段进行中位数处理,得到第一处理结果;确定所述当前帧的所述当前频段的延伸频段,并对所述延伸频段和所述当前频段进行中位数处理,得到第二处理结果;根据所述第一处理结果和所述第二处理结果的比较结果,确定所述当前帧的所述当前频段的谐波掩码值和冲击掩码值;其中,所述延伸帧包括所述当前帧的前L/2个帧和后L/2个帧,所述延伸频段包括所述当前频段的前F/2个频段和后F/2个频段,所述L和所述F均为大于0的整数。
在一些实施例中,所述根据所述第一处理结果和所述第二处理结果的比较结果,确定所述当前帧的所述当前频段的谐波掩码值和冲击掩码值,包括:当所述第一处理结果超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为第一设定值,将所述当前帧的所述当前频段的冲击掩码值设置为第二设定值;当所述第一处理结果未超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为所述第二设定值,将所述当前帧的所述当前频段的冲击掩码值设置为所述第一设定值。
在一些实施例中,所述对确定出的频段及所述当前频段进行中位数处理,得到第一处理结果,包括:对确定出的频段的能量及所述当前频段的能量进行中位数处理,得到第一处理结果;或者,对确定出的频段的幅度值及所述当前频段的幅度值进行中位数处理,得到第一处理结果。
在一些实施例中,所述对所述谐波分量进行减弱处理,对所述冲击分量进行加强处理,得到第二频域信号,包括:根据第一权重值对所述谐波分量进行更新,根据第二权重值对所述冲击分量进行更新,其中,所述第一权重值小于所述第二权重值;将更新后的所述谐波分量和所述冲击分量,合并为第二频域信号。
在一些实施例中,所述音频处理方法还包括:将所述第二频域信号拆分为多个频段,并确定各频段的第一频谱参数;遍历各频段,并将遍历到的频段确定为当前频段;根据所述当前频段的第一频谱参数以及所述当前频段前的多个频段的第一频谱参数,确定所述当前频段的第二频谱参数;根据各频段的第二频谱参数,确定所述第三音频信号的音频起始点。
根据本公开的一个或多个实施例,提供了一种音频处理装置,包括:调幅模块,用于确定第一音频信号对应的调幅系数,根据所述调幅系数对所述第一音频信号进行更新,得到第二音频信号;第一变换模块,用于对所述第二音频信号进行频域变换,得到第一频域信号;分量确定模块,用于确定所述第一频域信号的谐波分量和冲击分量;调整模块,用于对所述谐波分量进行减弱处理,对所述冲击分量进行加强处理,得到第二频域信号;第二变换模块,用于对所述第二频域信号进行时域变换,得到第三音频信号。
在一些实施例中,所述调幅模块,还用于:遍历所述第一音频信号的多个帧,并将遍历到的帧确定为当前帧;确定所述当前帧的帧能量,根据所述当前帧的帧能量及增益控制历史状态,确定所述当前帧的调幅系数,其中,所述增益控制历史状态包括所述当前帧之前的多个帧的帧能量;根据所述调幅系数,对所述当前帧进行更新;根据所述当前帧的帧能量,对所述增益控制历史状态进行更新。
在一些实施例中,所述分量确定模块,还用于:将各帧所述第二音频信号对应的第一频域信号拆分为多个频段,并确定各频段的谐波掩码值和冲击掩码值;根据各频段的谐波掩码值构建谐波掩码矩阵,并根据所述第一频域信号和所述谐波掩码矩阵,确定所述第一频域信号的谐波分量;根据各频段的冲击掩码值构建冲击掩码矩阵,并根据所述第一频域信号和所述冲击掩码矩阵,确定所述第一频域信号的冲击分量。
在一些实施例中,所述分量确定模块,还用于:遍历各帧第一音频信号对应的第一频域信号中的各频段,将遍历到的帧确定为当前帧,将遍历到的频段确定为当前频段;在所述当前帧的延伸帧中确定符合所述当前频段的频段,并对确定出的频段及所述当前频段进行中位数处理,得到第一处理结果;确定所述当前帧的所述当前频段的延伸频段,并对所述延伸频段和所述当前频段进行中位数处理,得到第二处理结果;根据所述第一处理结果和所述第二处理结果的比较结果,确定所述当前帧的所述当前频段的谐波掩码值和冲击掩码值;其中,所述延伸帧包括所述当前帧的前L/2个帧和后L/2个帧,所述延伸频段包括所述当前频段的前F/2个频段和后F/2个频段,所述L和所述F均为大于0的整数。
在一些实施例中,所述分量确定模块,还用于:当所述第一处理结果超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为第一设定值,将所述当前帧的所述当前频段的冲击掩码值设置为第二设定值;当所述第一处理结果未超过所述第二处理结果时,将所述当前帧的所述当前频段的谐波掩码值设置为所述第二设定值,将所述当前帧的所述当前频段的冲击掩码值设置为所述第一设定值。
在一些实施例中,所述分量确定模块,还用于:对确定出的频段的能量及所述当前频段的能量进行中位数处理,得到第一处理结果;或者,对确定出的频段的幅度值及所述当前频段的幅度值进行中位数处理,得到第一处理结果。
在一些实施例中,所述调整模块,还用于:根据第一权重值对所述谐波分量进行更新,根据第二权重值对所述冲击分量进行更新,其中,所述第一权重值小于所述第二权重值;将更新后的所述谐波分量和所述冲击分量,合并为第二频域信号。
在一些实施例中,所述音频处理装置,还包括:拆分模块,用于将所述第二频域信号拆分为多个频段,并确定各频段的第一频谱参数;频段遍历模块,用于遍历各频段,并将遍历到的频段确定为当前频段;频谱参数更新模块,用于根据所述当前频段的第一频谱参数以及所述当前频段前的多个频段的第一频谱参数,确定所述当前频段的第二频谱参数;起始点确定模块,用于根据各频段的第二频谱参数,确定所述第三音频信号的音频起始点。
根据本公开的一个或多个实施例,提供了一种电子设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述可执行指令时,实现本公开实施例提供的音频处理方法。
根据本公开的一个或多个实施例,提供了一种存储介质,存储有可执行指令,所述可执行指令被执行时,用于实现本公开实施例提供的音频处理方法。
以上描述仅为本公开的实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。