音频数据处理方法、装置、终端和计算机可读存储介质与流程

文档序号:30056602发布日期:2022-05-17 18:38阅读:93来源:国知局
音频数据处理方法、装置、终端和计算机可读存储介质与流程

1.本发明涉及音频数据处理技术领域,特别涉及一种音频数据处理方法、装置、终端和计算机可读存储介质。


背景技术:

2.多声道的音频数据,例如杜比5.1声道等,需要配备相应的多个喇叭或音箱才能实现环绕立体的声音效果,而人们目前普遍用来看视频或听音乐的设备如电视机、手机等大多是都是配备两个喇叭,即只支持左右两个声道,即使播放源为多音频数据,也无法实现环绕立体的声音效果。
3.因此,现有技术还有待改进和提高。


技术实现要素:

4.本发明实施例提供了一种音频数据处理方法、装置、终端及存储介质,旨在解决现有技术中只支持两个声道的设备无法实现环绕立体的声音效果的问题。
5.第一方面,本发明实施例提供了一种音频数据处理方法,包括:
6.获取第一音频中的待处理帧,根据预设的声道与位置角的对应关系获取待处理帧中各个声道对应的位置角;
7.根据待处理帧中各个声道对应的位置角获取待处理帧中各个声道对应的头相关传输函数;其中,每个声道对应的头相关传输函数包括左耳头相关传输函数和右耳头相关传输函数;
8.将待处理帧中各个声道对应的音频数据与对应的左耳头相关传输函数进行卷积,获取左声道数据,将待处理帧中各个声道对应的音频数据与对应的右耳头相关传输函数进行卷积,获取右声道数据;
9.对左声道数据和右声道数据进行叠加,得到目标音频的目标帧。
10.第二方面,本发明实施例提供了一种音频数据处理装置,包括:
11.第一获取模块,用于获取第一音频中的待处理帧,并根据预设的声道与位置角的对应关系获取待处理帧中各个声道对应的位置角;
12.第二获取模块,用于根据待处理帧中各个声道对应的位置角获取待处理帧中各个声道对应的头相关传输函数;其中,每个声道对应的头相关传输函数包括左耳头相关传输函数和右耳头相关传输函数;
13.卷积模块,用于将待处理帧中各个声道对应的音频数据与对应的左耳头相关传输函数进行卷积,获取左声道数据,将待处理帧中各个声道对应的音频数据与对应的右耳头相关传输函数进行卷积,获取右声道数据;
14.叠加模块,用于对左声道数据和右声道数据进行叠加,得到目标音频的目标帧。
15.第三方面,本发明实施例提供了一种终端,终端包括存储器、处理器和存储在存储器上并可在处理器运行的音频数据处理程序,处理器执行音频数据处理程序时,实现上述
的方法的步骤。
16.第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有音频数据处理程序,音频数据处理程序被处理器执行时,实现上述的方法的步骤。
17.有益效果:与现有技术相比,本发明提供了一种音频数据处理方法、终端及存储介质,本发明提供的音频数据处理方法中,预先设置各个声道与位置角的对应关系,确定第一音频的待处理帧中的各个声道对应的位置角,根据位置角获取待处理帧中的各个声道的左右耳头相关传输函数,头相关传输函数是一种声音定位算法,将各个声道的左右耳头相关传输函数分别与声道的音频数据进行卷积,得到左声道数据和右声道数据,并组合的到目标音频的目标帧,这样,就实现将多声道的第一音频处理为左右声道的目标音频,且用户通过双声道播放设备收听输出的该目标音频时,能够体验到环绕立体声的效果。
附图说明
18.图1为本发明提供的音频数据处理方法的实施例的流程图;
19.图2为本发明提供的音频数据处理方法的实施例中步骤s100的子步骤的流程图;
20.图3为本发明提供的音频数据处理方法的实施例中步骤s02的子步骤的流程图;
21.图4为本发明提供的音频数据处理装置的功能模块示意图;
22.图5为本发明提供的终端的实施例的原理图。
具体实施方式
23.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
24.本发明提供的一种音频数据处理方法,是可以应用在终端中。终端能够执行本发明提供的音频数据处理方法将自身播放产生的音频数据处理至目标音效。
25.实施例一
26.请参照图1,图1为本发明提供的音频数据处理方法的一个实施例的流程图。本实施例提供的音频数据处理方法包括步骤:
27.s100、获取第一音频中的待处理帧,根据预设的声道和位置角的对应关系获取待处理帧中各个声道对应的位置角。
28.第一音频为待处理的音频,在本实施例中,对第一音频进行处理,得到双声道的目标音频,具体地,终端在播放第一音频时,是将第一音频传输至喇叭或者通过外接端口、蓝牙等传输至耳机、外设音箱等播放设备进行播放,本技术中,在第一音频传输至播放设备之前,对第一音频进行处理得到目标音频后再传输至播放设备。
29.第一音频由多个帧组成,在本实施例中,以帧为单位对第一音频进行处理,对于第一音频中的待处理帧,首先将待处理帧中包括的各个声道的音频数据提取出来分别存储,如表1所示,以杜比5.1声道为例,包括6 个声道,分别为前置左声道、前置右声道、中央声道、重低音声道、后置做环绕声道、后置有环绕声道,将各个声道的音频数据提取处理后按表1 中的名称进行存储,当然,可以理解,表1中的名称仅仅只是示例。
30.名称含义
in_buffer_channel_left前置左声道in_buffer_channel_right前置右声道in_buffer_channel_center中央声道in_buffer_channel_subwoofer重低音声道in_buffer_channel_leftsurrond后置左环绕声道in_buffer_channel_rightsurrond后置右环绕声道
31.表1
32.识别出待处理帧中的各个声道后,再根据预设的声道和位置角的对应关系获取待处理帧中各个声道对应的位置角,如图2所示,具体包括:
33.s110、根据预设的第一声道与位置角之间的对应关系获取待处理帧的各个第一声道对应的位置角;
34.s120、根据预设的帧序号、第二声道与位置角之间的对应关系获取待处理帧的各个第二声道对应的位置角。
35.在本实施例中,位置角包括方位角和仰角,每个位置角对应过头部中心的水平面上的一个方位,方位角和仰角的具体划分方式为声音处理领域的现有技术,在此不再赘述。在一种可能的实现方式中,为各个声道分别设置对应的固定位置角,即,对于每个声道,都设置一个声道对应一个位置角,如表2所示。
[0036][0037]
表2
[0038]
而在本实施例中,为了提升声音的立体感,选取部分声道进行特别处理,使其在不同的帧中对应不同的位置角,从而使得处理后的音频在一帧一帧连续播放时,能让听者产生这些声道的声音在不同的时刻从不同的方位传来的效果,即声源在移动的效果。
[0039]
第二声道可以为待处理帧中的任意一个或任意多个声道,第一声道为待处理帧中除第二声道以外的声道,以杜比5.1声道为例,可以选取前置左声道作为第二声道,其他声道为第一声道,或者选取后置左环绕声道和后置右环绕声道作为第二声道,其他声道为第一声道等。
[0040]
每个第一声道对应一个位置角,具体的对应关系可以预先设置,如表2 所示,可以设置前置左声道对应的位置角为方位角-45
°
,仰角0
°
,中央声道对应的位置角为方位角0
°

仰角0
°
等。对于第二声道,不同的帧中对应的位置角不同,在本实施例中,预先建立帧序号、第二声道与位置角之间的对应关系,具体地,根据预设的帧序号、第二声道与位置角之间的对应关系获取待处理帧的各个第二声道对应的位置角之前,包括步骤:
[0041]
s0、根据预设参数值建立帧序号、第二声道与位置角之间的对应关系。
[0042]
预设参数值为一个时长值,具体地,设置帧序号、第二声道与位置角之间的对应关系能够使得第二声道对应的声音让听者产生声源在移动的效果,预设参数值决定听者听起来时声源移动的周期,具体地,根据预设参数值建立帧序号、第二声道与位置角之间的对应关系,包括:
[0043]
s01、根据预设参数值确定第一音频中每个帧组中包括的帧的数量;
[0044]
s02、对于目标第二声道,根据预设规则将预设的位置角集合中的各个位置角分别与单个帧组中的帧进行对应,建立帧序号、第二声道和位置角之间的对应关系。
[0045]
在本实施例中,将第一音频中划分为多个帧组,每个帧组中包括连续的n个帧,n为大于1的整数,每个帧组中包括的帧的数量可以是预先设置,具体地,根据预设参数值确定每个帧组中包括的帧的数量,具体包括:
[0046]
s011、获取第一音频的帧率;
[0047]
s012、根据帧率确定预设参数值对应的时长内包括的帧的数量;
[0048]
s013、设置第一音频中每个帧组中包括的帧的数量等于预设参数值对应的时长内包括的帧的数量。
[0049]
在每个帧组中,第二声道对应的声音让听者产生声源在移动的效果,每个帧组中包括的帧的数量可以决定声源移动的周期,例如,每个帧组中包括3个帧,每个帧的目标第二声道对应的位置角分别为左前、中间、右前三个方位,那么在处理后的音频播放时,目标第二声道的声音会让听者感觉声源在周期性移动,周期长为每个帧组对应的时长,每个周期内声源按左前、中间、右前的顺序移动。不难看出,预设参数值能够决定声音效果中声源移动的周期时长,预设参数值可以根据不同的声音效果要求进行设定,例如10s、5s等。
[0050]
预先设置位置角集合,位置角集合中包括多个位置角,例如,位置角集合中的多个位置角可以如表3所示,表3中每栏中前一个数值为方位角,后一个数值为仰角。
[0051]-80,0-65,0-55,0-45,0-40,0-35,0-30,0-25,0-20,0-15,0-10,0-5,00,05,010,015,020,025,030,035,040,045,055,065,080,080,18065,18055,18045,18040,18035,18030,18025,18020,18015,18010,1805,1800,180-5,180-10,180-15,180-20,180-25,180-30,180-35,180-40,180-45,180-55,180-65,180-80,180
[0052]
表3
[0053]
将预设的位置角与单个帧组中的各个帧进行对应,每个位置角至少对应单个帧组中的一个帧,例如,一个帧组中包括40个帧,预设的位置角有 20个,那么,可以每两个帧对
应一个位置角,不同的第二声道在每个帧中对应的位置角可以不同,以左环绕声道和右环绕声道为例,可以是一个帧组中的前两个帧中,左环绕声道对应方位角-5,仰角0这个位置角,右环绕声道对应方位角5,仰角0这个位置角等。而根据帧的帧序号可以确定该帧是属于单个帧组中的第几个帧,因此,将每个第二声道作为目标第二声道进行位置角与单个帧组中帧的对应,就可以建立帧序号、第二声道与位置角之间的对应关系。
[0054]
在一种可能的实现方式中,为了使得第二声道对应的声音能产生在每个周期内绕听者头一圈的效果,如图3所示,根据预设规则将预设的位置角集合中各个位置角分别与单个帧组中的帧进行对应,包括步骤:
[0055]
s021、确定目标第二声道对应的初始位置角和环绕方向,其中,初始位置为位置角集合中的一个位置角;
[0056]
s022、将初始位置角与单个帧组中的前m个帧进行对应;
[0057]
s023、将初始位置角在环绕方向上的下一个位置角与单个帧组中未设置对应位置角的帧中的前m个帧进行对应,直至对应完成。
[0058]
为了使得第二声道对应的声音能产生在每个周期内绕听者头一圈的效果,即在每个周期中,听者感觉第二声道对应的声音的声源按顺时针或逆时针方向绕头运动,对于不同的第二声道,可以设置不同的声源绕头方向,具体地,对于目标第二声道,首先设置一个初始位置角,即在每个帧组的第一帧中,听者感觉目标第二声道对应的声源是在初始位置角的方位,再设置一个环绕方向,可以为顺时针方向或逆时针方向,将初始位置角与单个帧组中的前m个帧进行对应,再将初始位置角在环绕方向上的下一个位置角与剩下的帧中的前m个帧进行对应,如此往复,直至对应完成。m为大于1的整数,可以理解,每次对应时的m的值可以相同,也可以不同,例如,第一个位置角对应3个帧,第二个位置角对应5个帧等。
[0059]
请再次参阅图1,本实施例中提供的音频数据处理方法,还包括步骤:
[0060]
s200、根据待处理帧中各个声道对应的位置角获取待处理帧中各个声道对应的头相关传输函数。
[0061]
每个声道对应的头相关传输函数包括左耳头相关传输函数和右耳头相关传输函数。具体地,头相关传输函数(hrtf,head related transferfunctions)是一种音效定位算法,能够产生立体音效,使声音传递至人耳内的耳廓,耳道和骨膜时,聆听者会有立体音效的感觉,选用不同位置角的头相关传输函数对音频数据进行处理,可以使得处理后的音频能够使听者产生声音在对应的位置角的方位传来的效果。
[0062]
在本实施例中,具体地,是根据预先设置的头相关传输函数库来获取各个声道对应的头相关传输函数,头相关传输函数库中存储有各个位置角对应的头相关传输函数。
[0063]
具体地,根据待处理帧中各个声道对应的位置角获取待处理帧中各个声道对应的头相关传输函数,包括:
[0064]
s210、确定目标音频的目标人种;
[0065]
s220、根据目标人种确定对应的头相关传输函数库;
[0066]
s230、根据待处理帧中各个声道对应的位置角从头相关传输函数库中获取待处理帧中各个声道对应的头相关传输函数。
[0067]
不同人种的人的头部形状存在差异,在本实施例中,预先建立不同的人种的头相关传输函数库。在应用时,首先确定目标音频的目标人种,即,收听对第一音频进行处理后
得到的目标音频的人是什么人种,具体可以通过接收用户输入的信息来确定,或者根据终端所在地址位置等方式进行确定。确定了头相关传输函数库之后,从头相关传输函数库中获取待处理帧中的各个声道对应的位置角的头相关传输函数。例如,各个声道对应的头相关传输函数可以如表4所示(表4中的hrir为hrtf的时域表示)。
[0068]
名称方位角仰角hrir(left)hrir(right)in_buffer_channel_left-450fir_l_lfir_l_rin_buffer_channel_right450fir_r_lfir_r_rin_buffer_channel_center00fir_c_lfir_c_rin_buffer_channel_subwoofer0-45fir_s_lfir_s_rin_buffer_channel_leftsurrond-800fir_ls_lfir_ls_rin_buffer_channel_rightsurrond800fir_rs_lfir_rs_r
[0069]
表4
[0070]
具体地,预先设置的头相关传输函数库中的数据可以是从现有的数据库中得到,例如,可以从cipic数据库中获取本实施例中的头相关传输函数库中的数据,cipic中的hrtf数据库时一个具有高空间分辨率的开放数据库,库中有45个真人的测量数据,以及kemar人工头具有小型耳廓以及大型耳廓的两组测量数据,对声源位置使用双耳极坐标系进行表示,并且测量时的声源位置均在距离被试头部中心的1m处。库中对于每个被试具有2500个测量所得的hrir数据,该数据是双耳极坐标系下的25个不同水平方向以及50个不同的垂直方向共1250个空间位置的双耳hrir的集合,以及使用垂直极坐标系的针对kemar水平面及正平面上的测量数据。在本实施例中,选取使用垂直极坐标系的针对kemar水平面上的位置角的测量数据。
[0071]
请参阅图1,在获取到各个声道对应的头相关传输函数之后,本实施例提供的音频数据处理方法还包括步骤:
[0072]
s300、将待处理帧中各个声道对应的音频数据与对应的左耳头相关传输函数进行卷积,获取左声道数据,将待处理帧中各个声道对应的音频数据与对应的右耳头相关传输函数进行卷积,获取右声道数据。
[0073]
头相关传输函数为一个滤波器,将对应的声道的音频数据分别进行加入空间方位感的滤波处理,即将对应的声道的音频数据分别与对应左右耳头相关传输函数进行卷积,每个声道的音频数据与对应的左耳相关传输函数进行卷积得到的数据为左耳声道数据,每个声道的音频数据与对应的右耳相关传输函数进行卷积得到的数据为右耳声道数据,计算具体过程可以用如下公式表示:
[0074]
out_buffer_channel_left=in_buffer_channel_left*fir_l_l
[0075]
+in_buffer_channel_right*fir_r_l
[0076]
+in_buffer_channel_center*fir_c_l
[0077]
+in_buffer_channel_subwoofer*fir_s_l
[0078]
+in_buffer_channel_leftsurrond*fir_ls_l
[0079]
+in_buffer_channel_rightsurrond*fir_rs_l
[0080]
上式中,out_buffer_channel_left表示左耳声道数据,*表示卷积。右耳声道数据同理可得。
[0081]
s400、对左声道数据和右声道数据进行叠加,得到目标音频的目标帧。
[0082]
通过上述步骤,可以得到待处理帧对应的左声道数据和右声道数据,将左声道数据和右声道数据叠加起来作为目标音频的目标帧,对于第一音频的每个帧都作为待处理帧进行处理,就实现了将第一音频处理为目标音频。
[0083]
对第一音频中的待处理帧可以是实时处理得到目标帧后,实时传输到播放设备,即形成数据流,也可以是对第一音频中的所有帧处理完成后得到完整的目标音频。
[0084]
综上所述,本发明提供一种音频数据处理方法,预先设置各个声道与位置角的对应关系,确定第一音频的待处理帧中的各个声道对应的位置角,根据位置角获取待处理帧中的各个声道的左右耳头相关传输函数,头相关传输函数是一种声音定位算法,将各个声道的左右耳头相关传输函数分别与声道的音频数据进行卷积,得到左声道数据和右声道数据,并组合的到目标音频的目标帧,这样,就实现将多声道的第一音频处理为左右声道的目标音频,且用户通过双声道播放设备收听输出的该目标音频时,能够体验到环绕立体声的效果。
[0085]
应该理解的是,虽然本发明说明书附图中给出的的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0086]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/ 或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom (prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram (dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram (esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus) 直接ram(rdram)、直接存储器总线动态ram(drdram)、和存储器总线动态ram(rdram)等。
[0087]
实施例二
[0088]
基于上述实施例,本发明还提供了一种音频数据处理装置,其功能模块示意图如图4所示,该音频数据处理装置包括:
[0089]
第一获取模块,用于获取第一音频中的待处理帧,并根据预设的声道与位置角的对应关系获取待处理帧中各个声道对应的位置角;
[0090]
第二获取模块,用于根据待处理帧中各个声道对应的位置角获取待处理帧中各个声道对应的头相关传输函数;其中,每个声道对应的头相关传输函数包括左耳头相关传输函数和右耳头相关传输函数;
[0091]
卷积模块,用于将待处理帧中各个声道对应的音频数据与对应的左耳头相关传输
函数进行卷积,获取左声道数据,将待处理帧中各个声道对应的音频数据与对应的右耳头相关传输函数进行卷积,获取右声道数据;
[0092]
叠加模块,用于对左声道数据和右声道数据进行叠加,得到目标音频的目标帧。
[0093]
实施例三
[0094]
基于上述实施例,本发明还提供了一种终端,其原理框图可以如图5 所示。该终端包括存储器10和处理器20,存储器10中存储有可在处理器 20运行的音频数据处理程序,该处理器10执行该音频数据处理程序时至少可以实现以下步骤:
[0095]
获取第一音频中的待处理帧,根据预设的声道和位置角的对应关系获取待处理帧中各个声道对应的位置角;
[0096]
根据待处理帧中各个声道对应的位置角获取待处理帧中各个声道对应的头相关传输函数;其中,每个声道对应的头相关传输函数包括左耳头相关传输函数和右耳头相关传输函数;
[0097]
将待处理帧中各个声道对应的音频数据与对应的左耳头相关传输函数进行卷积,获取左声道数据,将待处理帧中各个声道对应的音频数据与对应的右耳头相关传输函数进行卷积,获取右声道数据;
[0098]
对左声道数据和右声道数据进行叠加,得到目标音频的目标帧。
[0099]
其中,根据预设的声道和位置角的对应关系获取待处理帧中各个声道对应的位置角,包括:
[0100]
根据预设的第一声道与位置角之间的对应关系获取待处理帧的各个第一声道对应的位置角;
[0101]
根据预设的帧序号、第二声道与位置角之间的对应关系获取待处理帧的各个第二声道对应的位置角。
[0102]
其中,第一音频中包括多个帧组,每个帧组中包括连续的n个帧,n为大于1的整数,根据预设的帧序号、第二声道与位置角之间的对应关系获取待处理帧的第二声道对应的位置角之前,还包括:
[0103]
根据预设参数值建立帧序号、第二声道与位置角之间的对应关系。
[0104]
其中,根据预设参数值建立帧序号、第二声道和位置角之间的对应关系,包括:
[0105]
根据预设参数值确定第一音频中每个帧组中包括的帧的数量;
[0106]
对于目标第二声道,根据预设规则将预设的位置角集合中各个位置角分别与单个帧组中的帧进行对应,建立帧序号、第二声道和位置角之间的对应关系;
[0107]
其中,每个位置角至少对应单个帧组中的一个帧。
[0108]
其中,根据预设参数值确定第一音频中每个帧组中包括的帧的数量,包括:
[0109]
获取第一音频的帧率;
[0110]
根据帧率确定预设参数值对应的时长内包括的帧的数量;
[0111]
设置第一音频中每个帧组中包括的帧的数量等于预设参数值对应的时长内包括的帧的数量。
[0112]
其中,根据预设规则将预设的位置角集合中各个位置角分别与单个帧组中的帧进行对应,包括:
[0113]
确定目标第二声道对应的初始位置角和环绕方向,其中,初始位置为位置角集合
中的一个位置角;
[0114]
将初始位置角与单个帧组中的前m个帧进行对应;
[0115]
将初始位置角在环绕方向上的下一个位置角与单个帧组中未设置对应位置角的帧中的前m个帧进行对应,直至对应完成;
[0116]
其中,m为大于1的整数。
[0117]
其中,根据待处理帧中各个声道对应的位置角获取待处理帧中各个声道对应的头相关传输函数,包括:
[0118]
确定目标音频的目标人种;
[0119]
根据目标人种确定对应的头相关传输函数库;
[0120]
根据待处理帧中各个声道对应的位置角从头相关传输函数库中获取待处理帧中各个声道对应的头相关传输函数。
[0121]
实施例四
[0122]
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质存储有音频数据处理程序,该音频数据处理程序被处理器执行时,实现上述实施例一所述的方法的步骤。
[0123]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1