确定单声道的音频的方法和装置与流程

文档序号:16188505发布日期:2018-12-08 05:27阅读:483来源:国知局
确定单声道的音频的方法和装置与流程

本发明涉及计算机技术领域,特别涉及一种确定单声道的音频的方法和装置。

背景技术

随着计算机技术的发展,音频应用程序越来越多,每个音频应用程序都对应有音频数据库,音频数据库一般设置在服务器中,在音频数据库中包括多个音频的音频数据,每个音频的音频数据有可能有多个。一般情况,在接收到音频数据的下载请求时,服务器会优先推荐双声道音频。但由于音频制作的多样性,部分音频虽然是双声道的音频,但是两个声道的音频数据几乎是完全相同的,属于“伪双声道”,即“单声道”。因此,很有必要将这部分“伪双声道”的音频识别出来。

相关技术中,判断音频是否属于双声道的音频的方案,一般是将同一时刻,左声道音频数据的波形的幅值与右声道音频数据的波形的幅值相减,如果相减之后的差值均小于预设数值,则确定该音频数据为单声道的音频数据,反之则为双声道的音频数据。

这样,由于部分音频数据的左声道音频数据和右声道音频数据有可能有时延或相位差异,仅使用波形的幅值的差值作为评价标准,有可能会导致某些伪双声道的音频数据没有被确定出来。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种确定单声道的音频的方法和装置。所述技术方案如下:

第一方面,提供了一种确定单声道的音频的方法,所述方法包括:

获取目标音频的左声道音频数据和右声道音频数据;

确定所述左声道音频数据的hartleytransform变换谱、以及右声道音频数据的hartleytransform变换谱;

根据所述左声道音频数据的hartleytransform变换谱和所述右声道音频数据的hartleytransform变换谱,确定所述左声道音频数据和所述右声道音频数据的误差总分量;

如果所述误差总分量小于预设数值,则所述目标音频为单声道的音频,如果所述误差总分量大于或等于所述预设数值,则所述目标音频为双声道的音频。

可选的,所述确定所述左声道音频数据的hartleytransform变换谱、以及右声道音频数据的hartleytransform变换谱,包括:

确定所述左声道音频数据中每个音频帧的音频数据在各频点的hartleytransform变换谱,将确定出的各频点的hartleytransform变换谱进行组合,得到所述左声道音频数据的hartleytransform变换谱;

确定所述右声道音频数据中每个音频帧的音频数据在各频点的hartleytransform变换谱,将确定出的各频点的hartleytransform变换谱进行组合,得到所述右声道音频数据的hartleytransform变换谱。

可选的,所述根据所述左声道音频数据的hartleytransform变换谱和所述右声道音频数据的hartleytransform变换谱,确定所述左声道音频数据和所述右声道音频数据的误差总分量,包括:

确定同一时间段中的同一频点,所述左声道音频数据中的音频帧的hartleytransform变换谱与所述右声道音频数据中的音频帧的hartleytransform变换谱的误差分量;

将所述目标音频中不同时间段的每个频点对应的误差分量相加,得到左声道音频数据和右声道音频数据的误差总分量。

可选的,所述确定所述左声道音频数据的hartleytransform变换谱、以及右声道音频数据的hartleytransform变换谱,包括:

基于预设的窗,对所述左声道音频数据和所述右声道音频数据进行加窗处理;

确定加窗处理后的左声道音频数据的hartleytransform变换谱、以及加窗处理后的右声道音频数据的hartleytransform变换谱。

可选的,所述方法还包括:

确定所述左声道音频数据和右声道音频数据的时延;

根据所述时延,通过移位或者补零的方式,对所述左声道音频数据和右声道音频数据进行对齐处理。

第二方面,提供了一种确定单声道的音频的装置,所述装置包括:

获取模块,用于获取目标音频的左声道音频数据和右声道音频数据;

第一确定模块,用于确定所述左声道音频数据的hartleytransform变换谱、以及右声道音频数据的hartleytransform变换谱;

第二确定模块,用于根据所述左声道音频数据的hartleytransform变换谱和所述右声道音频数据的hartleytransform变换谱,确定所述左声道音频数据和所述右声道音频数据的误差总分量;

第二确定模块,用于如果所述误差总分量小于预设数值,则所述目标音频为单声道的音频,如果所述误差总分量大于或等于所述预设数值,则所述目标音频为双声道的音频。

可选的,所述第一确定模块,用于:

确定所述左声道音频数据中每个音频帧的音频数据在各频点的hartleytransform变换谱,将确定出的各频点的hartleytransform变换谱进行组合,得到所述左声道音频数据的hartleytransform变换谱;

确定所述右声道音频数据中每个音频帧的音频数据在各频点的hartleytransform变换谱,将确定出的各频点的hartleytransform变换谱进行组合,得到所述右声道音频数据的hartleytransform变换谱。

可选的,所述第二确定模块,用于:

确定同一时间段中的同一频点,所述左声道音频数据中的音频帧的hartleytransform变换谱与所述右声道音频数据中的音频帧的hartleytransform变换谱的误差分量;

将所述目标音频中不同时间段的每个频点对应的误差分量相加,得到左声道音频数据和右声道音频数据的误差总分量。

可选的,所述第一确定模块,用于:

基于预设的窗,对所述左声道音频数据和所述右声道音频数据进行加窗处理;

确定加窗处理后的左声道音频数据的hartleytransform变换谱、以及加窗处理后的右声道音频数据的hartleytransform变换谱。

可选的,所述第一确定模块,还用于:

确定所述左声道音频数据和右声道音频数据的时延;

根据所述时延,通过移位或者补零的方式,对所述左声道音频数据和右声道音频数据进行对齐处理。

本发明实施例提供的技术方案带来的有益效果至少包括:

本发明实施例中,使用了hartleytransform变换谱分解方法,来确定左声道音频数据和右声道音频数据的总误差分量,然后使用该总误差分量,确定是否为伪双声道的音频,相对比左右声道相减法准确,所以可以尽可能的确定出伪双声道的音频,可以提高确定单声道的音频的准确率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种确定单声道的音频的方法流程示意图;

图2是本发明实施例提供的一种确定单声道的音频的装置的结构示意图;

图3是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种确定单声道的音频的方法,该方法的执行主体可以为服务器,服务器中存储有音频数据库,服务器中可以设置有处理器、存储器和收发器等,处理器可以用于确定单声道的音频的过程的处理,存储器可以用于存储确定单声道的音频的过程中需要的数据以及产生的数据,收发器可以用于接收以及发送数据。

在进行实施前,首先介绍一下本发明实施例的应用场景:

服务器中的音频数据库中,存储某个音频的音频数据时,一般是存储多份不同的音频数据,不同的音频数据的音质不相同,例如,对于歌曲《冰雨》,存储有三份双声道的音频数据,但是实际上有一份双声道的音频数据为“伪双声道的音频数据”(伪双声道的音频数据指音频数据虽然有两个声道的音频数据,但是两个声道的音频数据几乎完全相同)。在终端请求某个音频的音频数据时,为了使用户听到的音频数据效果比较好,一般是为终端推送双声道的音频数据,所以就需要提供一种排除伪双声道的音频数据的方法,也即需要提供一种确定单声道的音频的方法。

上述双声道的音频数据指音频的音频数据中包括左声道音频数据和右声道音频数据,这样,在终端播放这类型的音频时,左声道播放左声道音频数据,右声道播放右声道音频数据,立体感比较强。

上述单声道的音频数据指音频数据中仅包括一个声道的音频数据,终端的左声道和右声道播放相同的音频数据,立体感比较差。

如图1所示,本发明实施例提供了一种确定单声道的音频数据的方法,该方法的处理流程可以如下:

步骤101,获取目标音频的左声道音频数据和右声道音频数据。

其中,目标音频为服务器中的任一音频,对于同一音频,一般左声道音频数据和右声道音频数据会存储在同一个音频文件中。

在实施中,服务器在可以从音频数据库中,获取目标音频的音频文件,从音频文件中获取的左声道音频数据和右声道音频数据。

可选的,在本发明实施例中,为了使确定单声道的音频更准确,还提供了补偿左右声道时延的方式,相应的处理可以如下:

确定左声道音频数据和右声道音频数据的时延;根据时延,通过移位或者补零的方式,对左声道音频数据和右声道音频数据进行对齐处理。

在实施中,假设左声道音频数据的波形的时间序列为x(n),右声道音频数据的波形的时间序列为y(n),两者存在时延为τ,两者的相关函数为c(τ),如下式(1)所示:

在式(1)中,n为时间序列的采样点数,相关函数c(τ)在t=τ处有一个明显的峰值,检测左声道音频数据和右声道音频数据的峰值的位置,即可得到时延的位置。如果时延值τ不为零,则通过移位或者补零,对左声道音频数据和右声道音频数据进行对齐处理(即补齐处理),保证两者相位不存在偏差。

这样,可以避免时延引起的相位偏差,使左声道音频数据和右声道音频数据对齐。

步骤102,确定左声道音频数据的hartleytransform变换谱、以及右声道音频数据的hartleytransform变换谱。

在实施中,服务器在获取到目标音频的左声道音频数据和右声道音频数据后,可以确定左声道音频数据的hartleytransform变换谱,并且确定右声道音频数据的hartleytransform变换谱。

可选的,可以使用以下方式来确定hartleytransform变换谱:

确定左声道音频数据中每个音频帧的音频数据在各频点的hartleytransform变换谱,将各频点的hartleytransform变换谱进行组合,得到左声道音频数据的hartleytransform变换谱;确定右声道音频数据中每个音频帧的音频数据在各频点的hartleytransform变换谱,将各频点的hartleytransform变换谱进行组合,得到右声道音频数据的hartleytransform变换谱。

在实施中,服务器中存储有预设采样率,如44.0khz等,对于左声道音频数据,如果采样率不是预设采样率,则首先将左声道音频数据的采样率变换到预设采样率,如果采样率是预设采样率,则不需要进行调整。然后将左声道音频数据,进行分音频帧处理,得到多个音频帧,假设每个音频帧包括n个频点,连续两个音频帧有m个重叠的频点,m小于n。

对于左声道音频数据中第i个音频帧,可以表示为xi=[x0,x1,x2,...,xn-1],其中,x0表示第0个时间点的音频波形数据,n表示频点的数目,然后将当前音频帧xi采用如下公式(1)进行处理,得到hartleytransform变换谱。

在式(2)中hk表示是当前音频帧xi的hartleytransform变换谱的第k个频点。

这样,将左声道音频数据中每个音频帧的hartleytransform变换谱组合起来,得到左声道音频数据的hartleytransform变换谱为hl=[hl1hl2...hln],n表示左声道包括的音频帧的数目。

同理,对于右声道音频数据,如果采样率不是预设采样率,则首先将右声道音频数据的采样率变换到预设采样率,如果采样率是预设采样率,则不需要进行调整,然后将右声道音频数据,进行分音频帧处理,得到多个音频帧,假设每个音频帧包括n个频点,连续两个音频帧有m个重叠的频点,m小于n。

对于右声道音频数据中第i个音频帧,可以表示为xi=[x0,x1,x2,...,xn-1],其中,x0表示第0个时间点的音频波形数据,然后将当前音频xi采用上述公式(2)进行处理,得到hartleytransform变换谱。

这样,将右声道音频数据中每个音频帧的hartleytransform变换谱组合起来,得到右声道音频数据的hartleytransform变换谱为hr=[hr1hr2...hrn],n表示右声道包括的音频帧的数目。

需要说明的是,考虑到频谱分辨率的影响,需要将每个音频帧的频点数目n设置在一个较为合理的范围内。

还需要说明的是,在一个音频帧中包括多个时间点,经过转换后包括的就是多个频点。

可选的,为了降低音频帧之间频谱泄露现象的出现,可以对每个音频帧进行加窗处理,相应的处理可以如下:

基于预设的窗,对左声道音频数据和右声道音频数据进行加窗处理;确定加窗处理后的左声道音频数据的hartleytransform变换谱、以及加窗处理后的右声道音频数据的hartleytransform变换谱。

其中,预设的窗为汉明窗或海宁窗,窗的长度等于每个音频帧的频点的数目。

在实施中,服务器可以获取预设的窗,然后使用预设的窗,对左声道音频数据进行加窗处理,得到加窗处理后的左声道音频数据,然后确定加窗处理后的左声道音频数据的hartleytransform变换谱。并且对右声道音频数据进行加窗处理,得到加窗处理后的右声道音频数据,然后确定加窗处理后的右声道音频数据的hartleytransform变换谱。

步骤103,根据左声道音频数据的hartleytransform变换谱和右声道音频数据的hartleytransform变换谱,确定左声道音频数据和右声道音频数据的误差总分量。

在实施中,服务器可以使用左声道音频数据的hartleytransform变换谱和右声道音频数据的hartleytransform变换谱,确定出左声道音频数据和右声道音频数据的总误差分量。

可选的,确定总误差分量的方法可以如下:

确定同一时间段中的同一频点,左声道音频数据中的音频帧的hartleytransform变换谱与右声道音频数据中的音频帧的hartleytransform变换谱的误差分量;将目标音频中不同时间段的每个频点对应的误差分量相加,得到左声道音频数据和右声道音频数据的误差总分量。

其中,不管是左声道音频数据,还是左声道音频数据,其中的每个音频帧的时长都是固定的,也就是对应一个时间段,如30ms等。

在实施中,服务器可以获取同一时间段中的同一频点,左声道音频数据中的音频帧的hartleytransform变换谱与右声道音频数据中的音频帧的hartleytransform变换谱,使用这两个音频帧的hartleytransform,确定出左声道音频数据中的音频帧的hartleytransform变换谱与右声道音频数据中的音频帧的hartleytransform变换谱的误差分量。

将目标音频中不同时间段的每个频点对应的误差分量相加,就可以得到左声道音频数据和右声道音频数据的误差总分量。

可选的,可以使用如下方式计算误差总分量:

sumr=hlk,m+hrk,m

sumi=hlk,m+1+hrk,m+1

diffr=hlk,m-hrk,m

diffi=hlk,m+1-hrk,m+1

sumri=sumr*sumr+sumi*sumi

diffri=diffr*diffr+diffi*diffi

在上述几个公式中,hlk,m表示左声道音频数据中第k个音频帧的第m个频点的hartleytransform变换谱,hrk,m表示右声道音频数据中第k个音频帧的第m个频点的hartleytransform变换谱,hlk,m+1表示左声道音频数据中第k个音频帧的第m+1个频点的hartleytransform变换谱,hrk,m+1表示右声道音频数据中第k个音频帧的第m+1个频点的hartleytransform变换谱。

然后计算系数ch=0.5-0.5*sqrt(diffri/sumri),其中sqrt为开平方根运算。

接着计算第k个音频帧的第m个频点上,左声道音频数据和右声道音频数据的误差分量errork,m=(hlk,m-sumr*ch)*(hrk,m-sumi*ch)。

然后计算左声道音频数据和右声道音频数据的误差总分量为

需要说明的是,对于每个音频帧都是有一定时长的,也就是对应上述提到的时间段的概念。

步骤104,如果误差总分量小于预设数值,则目标音频为单声道的音频,如果误差总分量大于或等于预设数值,则目标音频为双声道的音频。

其中,预设数值可以预设,并且存储至服务器中。

在实施中,服务器在确定出左声道音频数据和右声道音频数据的误差总分量之后,然后判断误差总分量与预设数值的大小,如果误差总分量小于预设数值,则可以确定目标音频为单声道的音频,如果误差总分量大于或等于预设数值,可以确定目标音频为双声道的音频。

本发明实施例中,使用了hartleytransform变换谱分解方法,来确定左声道音频数据和右声道音频数据的总误差分量,然后使用该总误差分量,确定是否为伪双声道的音频,相对比左右声道相减法准确,所以可以尽可能的确定出伪双声道的音频,可以提高确定单声道的音频的准确率。

基于相同的技术构思,本发明实施例还提供了一种确定单声道的音频的装置,如图2所示,该装置包括:

获取模块210,用于获取目标音频的左声道音频数据和右声道音频数据;

第一确定模块220,用于确定所述左声道音频数据的hartleytransform变换谱、以及右声道音频数据的hartleytransform变换谱;

第二确定模块230,用于根据所述左声道音频数据的hartleytransform变换谱和所述右声道音频数据的hartleytransform变换谱,确定所述左声道音频数据和所述右声道音频数据的误差总分量;

第二确定模块240,用于如果所述误差总分量小于预设数值,则所述目标音频为单声道的音频,如果所述误差总分量大于或等于所述预设数值,则所述目标音频为双声道的音频。

可选的,所述第一确定模块220,用于:

确定所述左声道音频数据中每个音频帧的音频数据在各频点的hartleytransform变换谱,将确定出的各频点的hartleytransform变换谱进行组合,得到所述左声道音频数据的hartleytransform变换谱;

确定所述右声道音频数据中每个音频帧的音频数据在各频点的hartleytransform变换谱,将确定出的各频点的hartleytransform变换谱进行组合,得到所述右声道音频数据的hartleytransform变换谱。

可选的,所述第二确定模块230,用于:

确定同一时间段中的同一频点,所述左声道音频数据中的音频帧的hartleytransform变换谱与所述右声道音频数据中的音频帧的hartleytransform变换谱的误差分量;

将所述目标音频中不同时间段的每个频点对应的误差分量相加,得到左声道音频数据和右声道音频数据的误差总分量。

可选的,所述第一确定模块220,用于:

基于预设的窗,对所述左声道音频数据和所述右声道音频数据进行加窗处理;

确定加窗处理后的左声道音频数据的hartleytransform变换谱、以及加窗处理后的右声道音频数据的hartleytransform变换谱。

可选的,所述第一确定模块220,还用于:

确定所述左声道音频数据和右声道音频数据的时延;

根据所述时延,通过移位或者补零的方式,对所述左声道音频数据和右声道音频数据进行对齐处理。

本发明实施例中,使用了hartleytransform变换谱分解方法,来确定左声道音频数据和右声道音频数据的总误差分量,然后使用该总误差分量,确定是否为伪双声道的音频,相对比左右声道相减法准确,所以可以尽可能的确定出伪双声道的音频,可以提高确定单声道的音频的准确率。

需要说明的是:上述实施例提供的确定单声道的音频的装置在确定单声道的音频时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的确定单声道的音频的装置与确定单声道的音频的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图3是本发明实施例提供的一种服务器的结构示意图,该计服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)301和一个或一个以上的存储器302,其中,所述存储器302中存储有至少一条指令,所述至少一条指令由所述处理器301加载并执行以实现上述确定单声道的音频的处理。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1