首页 > 运动玩具 专利正文
音频场景的识别、马达驱动方法和系统、电子设备与流程

时间:2022-02-10 阅读: 作者:专利查询

音频场景的识别、马达驱动方法和系统、电子设备与流程

1.本技术涉及数据处理技术领域,具体涉及一种音频场景的识别、马达驱动方法和系统、电子设备。


背景技术:

2.各类赛车类游戏以操作简单,欢快刺激等特点在游戏产品中占据重要位置,该类游戏产品被广泛应用在手机等人们日常使用的智能终端,也被广泛应用于游戏机等专业的电子设备,备受游戏玩家们的喜爱。
3.在赛车类游戏中,游戏用户通过游戏界面在赛车加速、吃道具、碰撞等各个游戏场景中操控赛车这些操控目标的方式参与游戏。在游戏过程中,游戏产品为各个游戏场景设有对应的比赛画面和场景音效,能够为游戏用户提供视觉和听觉体验,但这种游戏体验往往局限在视觉和听觉层面,仍未针对加速、碰撞、加速带和/或漂移等特定游戏场景进行识别,因而难以针对这些特定的游戏场景提供其他用户感知信号,使相应的游戏产品无法全面反映真实赛车时的刺激感等其他感知特点,因而这类游戏产品提供的用户感知信号存在局限性。


技术实现要素:

4.鉴于此,本技术提供一种音频场景的识别、马达驱动方法和系统、电子设备,以解决现有的赛车类游戏产品提供用户感知信号存在局限性的问题。
5.本技术第一方面提供一种音频场景的识别方法,包括:
6.获取待处理音频数据;
7.将所述待处理音频数据分割为时序上连续的多帧音频单元;
8.对各帧音频单元根据音频场景对应的波段特征进行滤波处理,获取目标音频;
9.获取目标音频中各帧音频单元的帧数计数和能量均值;所述帧数计数用于表征特定场景具有的特征;
10.将所述帧数计数或能量均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景。
11.在其中一个实施例中,所述目标音频包括第一目标音频和第二目标音频;所述第一目标音频中各帧音频单元的帧数计数为第一帧数计数,能量均值为第一平均值;所述第二目标音频中各帧音频单元的帧数计数为第二帧数计数;所述特征阈值包括第一触发阈值和最小帧数计数值;
12.所述将所述帧数计数和平均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景包括:
13.根据所述第一目标音频中各帧的第一帧数计数的取值特征设定各帧的第一触发阈值;判定第一平均值大于第一触发阈值的音频单元产生于第一音频场景;所述第一音频场景为所述操控目标在第一方向速度发生变化的场景;
14.判定所述第二帧数计数大于或者等于最小帧数计数值的音频单元产生于第二音频场景;所述第二音频场景为所述操控目标在第二方向速度发生变化的场景。
15.在其中一个实施例中,所述第一触发阈值包括递增的初级触发阈值、中级触发阈值和高级触发阈值;
16.所述根据所述第一目标音频中各帧的第一帧数计数的取值特征设定各帧的第一触发阈值包括:
17.若gain_cnt(n)《a*gain_cnt_step,则将所述第一触发阈值设为初级触发阈值;其中,gain_cnt(n)表示当前帧的第一帧数计数,gain_cnt_step表示间隔阈值,a为正数,符号*表示相乘;所述间隔阈值用于描述第一触发阈值中各级阈值之间的间隔;
18.若a*gain_cnt_step≤gain_cnt(n)《2a*gain_cnt_step,则将所述第一触发阈值设为中级触发阈值;
19.若2a*gain_cnt_step≤gain_cnt(n)《3a*gain_cnt_step,则将所述第一触发阈值设为高级触发阈值。
20.在其中一个实施例中,在将所述帧数计数或能量均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景之前,还包括:
21.根据前一帧的第一帧数计数、当前帧的第一平均值和间隔阈值确定当前帧的第一帧数计数;其中,前一帧为当前帧之前一帧;
22.和/或,
23.根据前一帧的第二帧数计数、当前帧的第二平均值和第二触发阈值确定当前帧的第二帧数计数;其中,所述第二平均值为所述第二目标音频中相应音频单元的能量均值。
24.具体地,所述根据前一帧的第一帧数计数、当前帧的第一平均值和间隔阈值确定当前帧的第一帧数计数包括:
25.若gain_cnt(n-1)《a*gain_cnt_step,在ave_l(n)>b2时,采用第一更新式更新gain_cnt(n),在ave_l(n)《b1,且gain_cnt(n-1)>0时,采用第二更新式更新gain_cnt(n);其中,gain_cnt(n-1)表示前一帧的第一帧数计数,gain_cnt(n)表示当前帧的第一帧数计数,gain_cnt_step表示间隔阈值,a为正数,符号*表示相乘,ave_l(n)表示当前帧的第一平均值,b1表示第一均值评估参数,b2表示第二均值评估参数,b3表示第三均值评估参数,b4表示第四均值评估参数;所述第一更新式用于增加所述第一帧数计数;所述第二更新式用于减少所述第一帧数计数;
26.若a*gain_cnt_step≤gain_cnt(n-1)《2a*gain_cnt_step,在ave_l(n)>b3时,采用第一更新式更新gain_cnt(n),在ave_l(n)《b2时,采用第二更新式更新gain_cnt(n);
27.若2a*gain_cnt_step≤gain_cnt(n-1)《3a*gain_cnt_step,在ave_l(n)>b4时,采用第一更新式更新gain_cnt(n),在ave_l(n)《b3时,采用第二更新式更新gain_cnt(n),若gain_cnt(n)等于3a*gain_cnt_step,则对将gain_cnt(n)设为gain_cnt(n)-c1;其中,c1表示第一步进值。
28.具体地,所述第一更新式为:gain_cnt(n)=gain_cnt(n-1)+c2;所述第二更新式为:gain_cnt(n)=gain_cnt(n-1)-c3;其中,c2表示第二步进值,c3表示第三步进值。
29.具体地,所述根据前一帧的第二帧数计数、当前帧的第二平均值和第二触发阈值确定当前帧的第二帧数计数包括:
30.若ave_r(n)>bp_att,采用第三更新式更新bp_cnt(n),并在bp_cnt(n)大于最大帧数计数值时,将bp_cnt(n)设为最大帧数计数值;其中,ave_r(n)表示当前帧的第二平均值,bp_att表示第二触发阈值,bp_cnt(n)表示当前帧的第二帧数计数;所述第三更新式用于增加所述第二帧数计数;
31.若ave_r(n)≤bp_att,在bp_cnt(n-1)为正数时,采用第四更新式更新bp_cnt(n);其中,bp_cnt(n-1)表示前一帧的第二帧数计数;所述第四更新式用于减小所述第二帧数计数。
32.具体地,所述第三更新式为:bp_cnt(n)=bp_cnt(n-1)+c4;所述第四更新式为:bp_cnt(n)=bp_cnt(n-1)-c5,其中,c4表示第四步进值,c5表示第五步进值。
33.在其中一个实施例中,所述对各帧音频单元根据音频场景对应的波段特征进行滤波处理,获取目标音频包括:
34.获取所述各帧音频单元的第一声道数据和第二声道数据;
35.对所述第一声道数据进行低通滤波,得到第一目标音频;对所述第二声道数据进行带通滤波,得到第二目标音频。
36.本技术第二方面提供一种马达驱动方法,包括:
37.根据上述任一种音频场景的识别方法,识别当前播放的音频单元对应的音频场景;
38.根据所述音频场景,获取对应的振动规则;
39.以所述振动规则驱动马达振动,实现与当前所播放音频单元对应的振动效果。
40.在其中一个实施例中,所述振动规则包括第一振动规则和第二振动规则;
41.所述根据所述音频场景,获取对应的振动规则包括:若当前帧的音频单元产生于第一音频场景,则根据当前帧的第一平均值和第一触发阈值确定第一振动规则;若当前帧音频单元产生于第二音频场景,则根据当前帧的第二帧数计数确定第二振动规则。
42.具体地,所述根据当前帧的第一平均值和第一触发阈值确定第一振动规则包括:若ave_l(n)>max_thr,则将当前帧的振幅设为第二振幅值,并将最大振感标志位设为第一标志;若moving_thr《ave_l(n)≤max_thr,在最大振感标志位为第二标志且gain(n-1)《gain_max时,按照振感爬坡规则控制当前帧的振幅,在最大振感标志位为第一标志且gain(n-1)>gain_max时,将当前帧的振幅设为马达最大振幅;其中,ave_l(n)表示当前帧的第一平均值,max_thr表示最大触发阈值;所述最大振感标志位用于标记振感程度,moving_thr表示第一触发阈值,gain(n-1)表示前一帧的振幅,gain_max表示马达最大振幅;所述振感爬坡规则为依次按照爬坡控制矩阵记录的幅值设置各次振动幅值的规则;所述爬坡控制矩阵记录多个振幅值;
43.和/或,
44.所述根据当前帧的第二帧数计数确定第二振动规则包括:若bp_cnt(n)≥m,则将当前帧的振幅设为第一振幅值;其中,bp_cnt(n)表示当前帧的第二帧数计数,m表示第二音频场景的计数阈值。
45.具体地,所述第一振动规则还包括:
46.若ave_l(n)>moving_thr,最大振感标志位为第一标志,且gain(n-1)大于第三振幅值,则将当前帧的振幅设为第一振幅值。
47.具体地,所述按照振感爬坡规则控制当前帧的振幅包括:
48.获取爬坡帧数计数,在爬坡控制矩阵中查找排序为爬坡帧数计数的振幅值,根据查找得到的振幅值与gain(n-1)之和确定当前帧的振幅。
49.具体地,在按照振感爬坡规则控制当前帧的振幅递增之后,还包括:
50.在gain(n)>gain_max时,将当前帧的振幅设为马达最大振幅,并将最大振感标志位设为第一标志,对爬坡帧数计数执行加一操作;其中,gain(n)表示当前帧的振幅。
51.具体地,上述马达驱动方法还包括:
52.若爬坡帧数计数大于爬坡次数阈值,则将所述爬坡帧数计数设为爬坡次数阈值。
53.本技术第三方面提供一种音频场景的识别系统,包括:
54.第一获取模块,用于获取待处理音频数据;
55.分割模块,用于将所述待处理音频数据分割为时序上连续的多帧音频单元;
56.滤波模块,用于对各帧音频单元根据音频场景对应的波段特征进行滤波处理,获取目标音频;
57.第二获取模块,用于获取目标音频中各帧音频单元的帧数计数和能量均值;所述帧数计数用于表征特定场景具有的特征;
58.判断模块,用于将所述帧数计数或能量均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景。
59.本技术第四方面提供一种马达驱动系统,包括:
60.识别模块,用于根据上述任一种音频场景的识别系统,识别当前播放的音频单元对应的音频场景;
61.第三获取模块,用于根据所述音频场景,获取对应的振动规则;
62.驱动模块,用于以所述振动规则驱动马达振动,实现与当前所播放音频单元对应的振动效果。
63.本技术第五方面提供一种电子设备,包括处理器和存储介质;所述存储介质上存储有程序代码;所述处理器用于调用所述存储介质存储的程序代码,以执行上述任一种音频场景的识别方法。
64.在其中一个实施例中,上述电子设备,还包括马达;所述处理器还用于执行上述任一种马达驱动方法。
65.本技术提供的音频场景的识别、马达驱动方法和系统、电子设备中,通过获取待处理音频数据,将待处理音频数据分割为时序上连续的多帧音频单元,以在音频场景的识别过程中以帧为单位进行,能够精确识别各帧音频单元对应的场景;对各帧音频单元根据音频场景对应的波段特征进行滤波处理,获取目标音频,使目标音频包括有效表征操控目标状态特征的数据,能够提高依据目标音频进行音频场景识别的准确性;获取目标音频中各帧音频单元的帧数计数和能量均值,将帧数计数或能量均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景,以便针对特定的音频场景设置对应的振动信号等其他用户感知信号,使相应的游戏产品能够提供更为全面的用户感知信号,可以提升用户在游戏过程的中参与感,从而达到提升用户体验的目的。
附图说明
66.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
67.图1是本技术一实施例中音频场景的识别方法流程示意图;
68.图2是本技术一实施例中马达驱动方法流程示意图;
69.图3是本技术一实施例中音频场景的识别系统结构示意图;
70.图4是本技术一实施例中马达驱动系统结构示意图;
71.图5是本技术一实施例的电子设备结构示意图;
72.图6是本技术一实施例中电子设备的工作过程示意图。
具体实施方式
73.下面结合附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而非全部实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。在不冲突的情况下,下述各个实施例及其技术特征可以相互组合。
74.本技术第一方面提供一种音频场景的识别方法,参考图1所示,上述音频场景的识别方法包括:
75.s100,获取待处理音频数据。
76.上述待处理音频数据可以来源于运行在手机等智能终端的赛车类游戏客户端的音频信号,也可以来源于赛车类游戏机等游戏终端提供的赛车类游戏的音频信号。该音频信号可以是各种格式的音频文件经过解码后输出的音频数据流。
77.s200,将所述待处理音频数据分割为时序上连续的多帧音频单元。
78.具体地,上述步骤可以采用设定采样频率和设定采样位数对赛车类游戏的音频信号进行采样,得到所需待处理音频数据,再以n个音频采样点为步长对音频数据流进行分帧,并对不足n个音频采样点的音频单元进行补0处理,得到时序上连续的多帧音频单元,这样待处理音频数据便包括多帧音频单元,每帧音频单元均包括n个音频采样点。
79.可选地,上述设定采样频率和设定采样位数分别可以依据后续游戏场景的识别精度进行设置,比如将设定采样频率设为48khz,将设定采样位数设为16bit等值,此时,若针对手机上运行的qq飞车这一游戏客户端,可以从相应手机系统端获取qq飞车的音频信号,以48khz采样率,16bit采样深度对该原始音频信号进行采样,得到待处理音频数据。其中n的取值可以为1024等2的整数次幂。
80.s300,对各帧音频单元根据音频场景对应的波段特征进行滤波处理,获取目标音频。
81.上述步骤可以依据需要识别的音频场景中音频的波段特征对滤波方式和滤波参数进行设置,以降低目标音频中的噪声数据,使得到的目标音频尽可能包括有效表征操控目标在相应场景中的状态变化特征,以提升后续音频场景的识别精度。比如若某音频场景对应的音频频率通常在某一频率值以下,则可以对各帧音频单元进行低通滤波,使获得的
目标音频能够完整的包括该音频场景对应的音频特征;若某音频场景的某类噪声特征主要在某频率值以下,而该频段内几乎不包括该音频场景的有效音频特征,则可以对各帧音频单元进行高通滤波,使获得的目标音频尽可能少地包括该类噪声数据。
82.s400,获取目标音频中各帧音频单元的帧数计数和能量均值;所述帧数计数用于表征特定场景具有的特征。
83.上述特定场景可以为需要提供除听觉和/或视觉这些已有感知信号之外的其他感知信号的场景,比如需要提供碰撞感的碰撞场景,需要提供加速感的加速场景等等。特定场景具有的特征可以包括特定场景的背景音乐特征和操作目标在该特定场景中的状态变化特征。上述背景音乐特征可以包括音乐类型和/或音乐强度等特征;上述状态变化特征可以包括操控目标在相应游戏场景中所具有的状态的变化特征,如速度变化特征和/或位置变化特征等等。在赛车类游戏中,操控目标在大部分场景中的状态变化往往表现为速度变化,因而在这些场景中,状态变化特征可以为速度变化特征;上述速度变化特征可以包括速度变化方向和速度变化大小等表征特定场景中操控目标速度变化的特征。上述目标音频包括连续的多帧音频单元,各帧音频单元均包括n个音频采样点,各个采样点均具有相应的能量值,该能量值可以依据相应采样点的幅值确定。具体可以对各个采样点的能量值的绝对值求和,将求和的值除以音频采样点的数量n,得到平均能量值,该平均能量值便为该帧音频单元的能量均值。
84.上述帧数计数为表征目标音频中背景音乐特征和操控目标状态变化特征的参数。针对不同的游戏场景,可以设置不同的帧数计数确定规则;在大部分游戏场景中,某帧音频单元的帧数计数可以依据操控目标在该帧音频单元和/或在前面若干帧音频单元的各个状态参数确定。具体地,在一些游戏场景中,可以预先设置帧数计数的初始值,作为第一帧音频单元的前一个帧数计数,再识别各帧音频单元的能量均值等状态参数,结合前一帧或者前几帧音频单元的特征确定各帧音频单元的帧数计数。如在一个示例中,对于某些场景产生的各帧音频单元,可以依据各帧音频单元的能量均值,增加、减少或者保持前一帧音频单元的帧数计数,以确定当前帧的帧数计数。比如在某帧的能量均值大于第一能量阈值时,将该帧的帧数计数在前一帧帧数计数的基础上增加一个或多个计数单位;在该帧的能量均值小于第二能量阈值时,将该帧的帧数计数在前一帧帧数计数的基础上减少一个或多个计数单位;在该帧的能量均值大于或等于第二能量阈值,且小于或者等于第一能量阈值时,将该帧的帧数计数设为前一帧的帧数计数;其中上述第一能量阈值大于第二能量阈值。又如在另一个示例中,对于另一些场景产生的各帧音频单元,可以首先识别前一帧或前几帧音频单元的帧数计数,在前一帧或前几帧音频单元的帧数计数满足一定条件后,再根据能量均值以增加、减少或者保持前一帧帧数计数的方式确定当前帧的帧数计数。可选地,若采用在前一帧帧数计数的基础上减少计数单位的方式确定当前帧的帧数计数,还可以设置相应游戏场景中帧数计数的最小取值(如0等值),在前一帧帧数计数取到该最小取值,或者减少相应计数单位后小于该最小取值时,则采用保持前一帧帧数计数的方式确定当前帧的帧数计数。
85.s500,将所述帧数计数或能量均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景。
86.上述特征阈值可以依据相应音频场景中的音频变化特征设置,在一些场景中,其
可以表现为一个或多个固定值,在另外一些场景中,其也可以依据相关音频单元的帧数计数和/或能量均值这些状态参数实时调整,以对相应音频单元所处的音频场景或者游戏场景进行准确判断。
87.上述音频场景的识别方法,通过获取待处理音频数据,将待处理音频数据分割为时序上连续的多帧音频单元,以在音频场景的识别过程中以帧为单位进行,能够精确识别各帧音频单元对应的场景;对各帧音频单元根据音频场景对应的波段特征进行滤波处理,获取目标音频,使目标音频包括有效表征操控目标状态特征的数据,能够提高依据目标音频进行音频场景识别的准确性;获取目标音频中各帧音频单元的帧数计数和能量均值,将帧数计数或能量均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景,以便针对特定的音频场景设置对应的振动信号和/或晃动信号等其他用户感知信号,使相应的游戏产品能够提供更为全面的用户感知信号,可以提升用户在游戏过程的中参与感,从而达到提升用户体验的目的。
88.在一个实施例中,上述目标音频包括第一目标音频和第二目标音频;所述第一目标音频中各帧音频单元的帧数计数为第一帧数计数,能量均值为第一平均值;所述第二目标音频中各帧音频单元的帧数计数为第二帧数计数;所述特征阈值包括第一触发阈值和最小帧数计数值;
89.所述将所述帧数计数和平均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景包括:
90.根据所述第一目标音频中各帧的第一帧数计数的取值特征设定各帧的第一触发阈值;判定第一平均值大于第一触发阈值的音频单元产生于第一音频场景;所述第一音频场景为所述操控目标在第一方向速度发生变化的场景;
91.判定所述第二帧数计数大于或者等于最小帧数计数值的音频单元产生于第二音频场景;所述第二音频场景为所述操控目标在第二方向速度发生变化的场景。
92.在赛车类游戏中,需要提供除视觉和听觉之外的其他感知信号的特定场景往往为赛车这些操控目标速度发生变化的场景,如小氮气加速、大氮气加速、碰撞、经过加速带和漂移等场景。这些特定场景的速度变化主要表现在两个方向,一个为平行于操控目标行驶方向的方向,例如小氮气加速、大氮气加速、碰撞或者经过加速带等场景中的速度变化方向,本技术将该方向设为第一方向,将该类场景称为第一音频场景,将第一音频场景对应的目标音频称为第一目标音频;另一个为与操控目标行驶方向成一定角度的方向(如垂直于操控目标行驶方向的方向),例如漂移或者剐蹭等场景中的速度变化方向,本技术将该方向设为第二方向,将该类场景称为第二音频场景,将第二音频场景对应的目标音频称为第二目标音频。上述第一目标音频和第二目标音频可以分别依据相应音频场景的波段特征针对待处理音频数据进行滤波处理所获得;与待处理音频数据一致,第一目标音频和第二目标音频均包括时序上连续的多帧音频单元,每帧音频单元均包括n个音频采样点。在第一目标音频的某帧音频单元中,对各个采样点的能量值的绝对值求和,将求和的值除以音频采样点的数量n,得到平均能量值,该平均能量值便为该帧音频单元的能量均值,即第一平均值;对于其中各帧音频单元的第一平均值,前一帧或者前几帧的第一帧数计数进行识别,依据识别结果,通过增加、减少或者保持前一帧帧数计数方式便可以确定各帧音频单元的第一帧数计数。在第二目标音频的某帧音频单元中,对各个采样点的能量值的绝对值求和,将求
和的值除以音频采样点的数量n,得到平均能量值,该平均能量值便为该帧音频单元的能量均值,即第二平均值;对于其中各帧音频单元的第二均值,前一帧或者前几帧的第二帧数计数进行识别,依据识别结果,通过增加、减少或者保持前一帧帧数计数方式便可以确定各帧音频单元的第二帧数计数。
93.若某帧音频单元产生于第一音频场景,表明相应的游戏场景包括小氮气加速、大氮气加速、碰撞、经过加速带等在第一方向速度出现变化的第一游戏场景,此时可以依据该帧音频单元中第一帧数计数、第一平均值、相邻帧音频单元的第一帧数计数等参数以及相应终端设备的特征设置特定的用户感知信号;比如针对智能移动设备,可以依据某帧音频单元中第一帧数计数、第一平均值、相邻帧音频单元的第一帧数计数等参数设置相应的振动信号,使智能移动设备在播放该帧音频单元时发生相应振动,又比如针对具有赛车模型的游戏机,可以依据某帧音频单元中第一帧数计数、第一平均值、相邻帧音频单元的第一帧数计数等参数设置表征赛车模型的加速行驶和/或碰撞等动作的模型晃动信号,使游戏机在播放该帧音频单元时赛车模型产生相应晃动;这样可以为用户提供更为全面的游戏感知,使用户在游戏过程中能够从多方面感受到操控目标在第一方向上的状态变化。若某帧音频单元产生于第二音频场景,表明相应的游戏场景包括漂移等第二方向速度出现变化的第二游戏场景,此时可以依据该帧音频单元中第二帧数计数以及相应终端设备的特征设置其他用户感知信号;比如针对智能移动设备,可以依据某帧音频单元中第二帧数计数等参数设置相应的振动信号,使智能移动设备在播放游戏的该帧音频单元数据时发生相应振动,又比如针对具有赛车模型的游戏机,可以依据某帧音频单元中第二帧数计数设置表征赛车模型的漂移等动作的模型晃动信号,使游戏机在播放该帧音频单元时赛车模型产生相应晃动;这样可以进一步为用户提供更为全面的游戏感知,使用户在游戏过程中能够从更多方面感受到操控目标在第二方向上的状态变化。
94.本实施例依据第一帧数计数与其取值特征设定各帧的第一触发阈值,使第一触发阈值的取值能够根据相应音频单元表征的背景音乐特征和操控目标速度变化特征确定,可以提高据此识别第一音频场景的准确性。第二音频场景中,最小帧数计数值可以依据赛车类游戏中操控目标的具体动作在第二方向的速度变化特点进行设置;比如针对漂移这一动作在第二方向上速度变化特点,最小帧数计数值可以设置为6。若某帧音频单元的第二帧数计数大于或者等于最小帧数计数值,表明该帧音频单元产生于第二音频场景。
95.具体地,所述第一触发阈值包括递增的初级触发阈值、中级触发阈值和高级触发阈值;
96.所述根据所述第一目标音频中各帧的第一帧数计数的取值特征设定各帧的第一触发阈值包括:
97.若gain_cnt(n)《a*gain_cnt_step,则将所述第一触发阈值设为初级触发阈值;其中,gain_cnt(n)表示当前帧的第一帧数计数,gain_cnt_step表示间隔阈值,a为正数,符号*表示相乘;所述间隔阈值用于描述第一触发阈值中各级阈值之间的间隔;
98.若a*gain_cnt_step≤gain_cnt(n)《2a*gain_cnt_step,则将所述第一触发阈值设为中级触发阈值;
99.若2a*gain_cnt_step≤gain_cnt(n)《3a*gain_cnt_step,则将所述第一触发阈值设为高级触发阈值。
100.上述初级触发阈值、中级触发阈值和高级触发阈值分别可以依据具体游戏场景采用的背景音乐特征和操控目标在第一方向上发生速度变化的各个动作特征设置。具体地,初级触发阈值、中级触发阈值和高级触发阈值呈递增趋势,并且高级触发阈值小于最大触发阈值,例如初级触发阈值取3500,中级触发阈值取4000,高级触发阈值取4500,最大触发阈值取7000。上述间隔阈值gain_cnt_step为第一触发阈值中每级阈值(如初级触发阈值、中级触发阈值和高级触发阈值)设定帧数计数的间隔,可以依据第一帧数计数的更新规则确定,比如可以设为20等正数值。a的取值可以依据间隔阈值gain_cnt_step的取值特征确定,比如在某个示例中,间隔阈值gain_cnt_step取20时,a可以取1;此时若初级触发阈值取3500,中级触发阈值取4000,高级触发阈值取4500,最大触发阈值取7000,则有:
101.若gain_cnt(n)《20,则moving_thr=3500;其中moving_thr表示第一触发阈值;
102.若20≤gain_cnt(n)《40,则moving_thr=4000;
103.若40≤gain_cnt(n)《60,则moving_thr=4500。
104.在一个实施例中,在将所述帧数计数或能量均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景之前,还包括:
105.根据前一帧的第一帧数计数、当前帧的第一平均值和间隔阈值确定当前帧的第一帧数计数;其中,前一帧为当前帧之前一帧;
106.和/或,
107.根据前一帧的第二帧数计数、当前帧的第二平均值和第二触发阈值确定当前帧的第二帧数计数;其中,所述第二平均值为所述第二目标音频中相应音频单元的能量均值。
108.本实施例根据前一帧的第一帧数计数、当前帧的第一平均值和间隔阈值确定当前帧的第一帧数计数,能够使所确定的第一帧数计数更为准确地表征相应音频单元中的背景音乐特征和操控目标在第一方向上的速度变化特征;根据前一帧的第二帧数计数、当前帧的第二平均值和第二触发阈值确定当前帧的第二帧数计数,使所确定的第二帧数计数更为准确地表征相应音频单元中操控目标在第二方向上的速度变化特征。
109.在一个示例中,所述根据前一帧的第一帧数计数、当前帧的第一平均值和间隔阈值确定当前帧的第一帧数计数包括:
110.若gain_cnt(n-1)《a*gain_cnt_step,在ave_l(n)>b2时,采用第一更新式更新gain_cnt(n),在ave_l(n)《b1,且gain_cnt(n-1)>0时,采用第二更新式更新gain_cnt(n);其中,gain_cnt(n-1)表示前一帧的第一帧数计数,gain_cnt(n)表示当前帧的第一帧数计数,gain_cnt_step表示间隔阈值,a为正数,符号*表示相乘,ave_l(n)表示当前帧的第一平均值,b1表示第一均值评估参数,b2表示第二均值评估参数,b3表示第三均值评估参数,b4表示第四均值评估参数;所述第一更新式用于增加所述第一帧数计数;所述第二更新式用于减少所述第一帧数计数;
111.若a*gain_cnt_step≤gain_cnt(n-1)《2a*gain_cnt_step,在ave_l(n)>b3时,采用第一更新式更新gain_cnt(n),在ave_l(n)《b2时,采用第二更新式更新gain_cnt(n);
112.若2a*gain_cnt_step≤gain_cnt(n-1)《3a*gain_cnt_step,在ave_l(n)>b4时,采用第一更新式更新gain_cnt(n),在ave_l(n)《b3时,采用第二更新式更新gain_cnt(n),若gain_cnt(n)等于3a*gain_cnt_step,则对将gain_cnt(n)设为gain_cnt(n)-c1;其中,c1表示第一步进值。
113.具体地,第一更新式为:gain_cnt(n)=gain_cnt(n-1)+c2;所述第二更新式为:gain_cnt(n)=gain_cnt(n-1)-c3;其中,c2表示第二步进值,c3表示第三步进值。
114.第一步进值c1、第二步进值c2和第三步进值c3可以分别取常规的计数单位值(如1),或者取计数单位值的整数倍(如2等)。上述第一均值评估参数b1,第二均值评估参数b2,第三均值评估参数b3和第四均值评估参数b4分别可以依据相应游戏采用的背景音乐类型和操控目标在第一方向速度变化时各类动作对应的音频能量特征设置。具体地,第一均值评估参数b1,第二均值评估参数b2,第三均值评估参数b3和第四均值评估参数b4递增,比如第一均值评估参数b1取2800,第二均值评估参数b2取3200,第三均值评估参数b3取4000,第四均值评估参数b4取5000,此时,若c1=c2=c3=1,a=1,则有:
115.若gain_cnt(n-1)《gain_cnt_step,在ave_l(n)>3200时,gain_cnt(n)=gain_cnt(n-1)+1,在ave_l(n)《2800,且gain_cnt(n-1)》0时,gain_cnt(n)=gain_cnt(n-1)-1;
116.若gain_cnt_step≤gain_cnt(n-1)《2*gain_cnt_step,在ave_l(n)>4000时,gain_cnt(n)=gain_cnt(n-1)+1,在ave_l(n)《3200时,gain_cnt(n)=gain_cnt(n-1)-1;
117.若2*gain_cnt_step≤gain_cnt(n-1)《3*gain_cnt_step,在ave_l(n)>5000时,gain_cnt(n)=gain_cnt(n-1)+1,在ave_l(n)《4000时,gain_cnt(n)=gain_cnt(n-1)-1;
118.若gain_cnt(n)==3*gain_cnt_step,则对将gain_cnt(n)设为gain_cnt(n)-1,即gain_cnt(n)-gain_cnt(n)-1。
119.在一个示例中,所述根据前一帧的第二帧数计数、当前帧的第二平均值和第二触发阈值确定当前帧的第二帧数计数包括:
120.若ave_r(n)>bp_att,采用第三更新式更新bp_cnt(n),并在bp_cnt(n)大于最大帧数计数值时,将bp_cnt(n)设为最大帧数计数值;其中,ave_r(n)表示当前帧的第二平均值,bp_att表示第二触发阈值,bp_cnt(n)表示当前帧的第二帧数计数;所述第三更新式用于增加所述第二帧数计数;
121.若ave_r(n)≤bp_att,在bp_cnt(n-1)为正数时,采用第四更新式更新bp_cnt(n);其中,bp_cnt(n-1)表示前一帧的第二帧数计数;所述第四更新式用于减小所述第二帧数计数。
122.具体地,所述第三更新式为:bp_cnt(n)=bp_cnt(n-1)+c4;所述第四更新式为:bp_cnt(n)=bp_cnt(n-1)-c5,其中,c4表示第四步进值,c5表示第五步进值。
123.上述第四步进值c4和第五步进值c5可以分别取常规的计数单位值(如1),或者取计数单位值的整数倍(如2等)。第二触发阈值bp_att可以依据赛车类游戏中操控目标在第二方向速度变化时的动作特征设置;比如针对漂移这一动作,第二触发阈值可以设置为1400。上述最大帧数计数值为第二音频场景中帧数计数的最大值,可以依据第二游戏场景中具体动作的相关特征设置,比如针对漂移这一动作,最大帧数计数值设置为10。
124.在一个实施例中,所述对各帧音频单元根据音频场景对应的波段特征进行滤波处理,获取目标音频包括:
125.获取所述各帧音频单元的第一声道数据和第二声道数据;
126.对所述第一声道数据进行低通滤波,得到第一目标音频;对所述第二声道数据进行带通滤波,得到第二目标音频。
127.上述第一声道数据和第二声道数据通常可以为相应终端设备(如智能终端或者游
戏机)的音频播放模块中的两个声道对应的音频数据,比如第一声道数据为左声道数据,第二声道数据为右声道数据。在一些示例中,第一声道数据可以具有待处理音频数据的第一部分特征,例如左声道可以为压缩低音频区信号后的特征;第二声道数据可以具有待处理音频数据的第二部分特征,如右声道可以为压缩中、高音频区信号后的特征;上述第一部分特征与第二部分特征不完全一致。在另外一个示例中,第一声道数据和第二声道数据可以均为待处理音频数据,比如在待处理音频数据为单声道数据时,第一声道数据和第二声道数据均为对待处理音频数据进行拷贝所得。
128.具体地,上述第一音频场景的音频频点主要在100hz-2000hz等频率范围,对第一声道数据进行低通滤波,能够滤除游戏中的人声等干扰音频,降低第一目标音频中的噪声数据,使其能够有效表征特定场景的背景音乐和/或操控目标速度等特征。游戏过程中操控目标发生漂移等第二方向上的动作时,产生的音频主要集中在1100hz-1300hz等频段范围,对第二声道数据进行带通滤波,能够提取第二声道数据中表征操控目标在第二方向上产生动作的音频,使第二目标音频能够表征操控目标在第二方向的速度等状态变化特征。
129.具体地,本实施例中,低通滤波的截止频率可以依据第一音频场景中有效音频和干扰音频分别所在的频段设置,通常设为一个可以通过有效音频,并尽可能滤除干扰音频的参数;比如若第一音频场景的人声这一干扰音频主要处于100hz-2000hz这一范围的高频率部分,此时低通滤波的截止频率可以设为225hz,以尽可能滤除第一音频场景的人声。带通滤波的通过频段可以依据具体游戏产品中表征操控目标第二方向上动作特征的音频所在频段设置,往往可以设置为表征操控目标第二方向上动作特征的音频所在的频段,如设为1100hz-1300hz这一频段。
130.本技术第二方面提供一种马达驱动方法,参考图2所示,该马达驱动方法包括:
131.s700,根据上述任一实施例提供的音频场景的识别方法,识别当前播放的音频单元对应的音频场景。
132.s800,根据所述音频场景,获取对应的振动规则。
133.上述振动规则记录驱动马达振动的振动特征。上述振动特征可以包括振动幅值(振幅)和/或振动的变化趋势等特征。上述步骤在设置各帧音频单元对应的振动规则时,还可以设置最大振感标志位trig_flag,以对相应振动信号的振感程度进行标记,最大振感标志位trig_flag可以具有第一标志和第二标志两个标志符号,最大振感标志位trig_flag为第一标志表征相应的振感程度高,最大振感标志位trig_flag为第二标志可以表征相应的振感程度低,最大振感标志位trig_flag的初始值可以设为表征振感程度低的第二标志。在一个示例中,第一标志可以记为1,第二标志可以记为0。
134.s900,以所述振动规则驱动马达振动,实现与当前所播放音频单元对应的振动效果。
135.上述马达驱动方法,通过识别当前播放的音频单元对应的音频场景,获取对应的振动规则,以该振动规则驱动马达振动,实现与当前所播放音频单元对应的振动效果,有效丰富了赛车类游戏产品的感知信号,这样用户在游戏过程中便可以更为全面地感知操控目标在这些场景中的各种状态变化,具有更高的参与感。
136.在一个实施例中,所述振动规则包括第一振动规则和第二振动规则;所述根据所述音频场景,获取对应的振动规则包括:若当前帧的音频单元产生于第一音频场景,则根据
当前帧的第一平均值和第一触发阈值确定第一振动规则;若当前帧音频单元产生于第二音频场景,则根据当前帧的第二帧数计数确定第二振动规则。
137.本实施例可以分别确定第一音频场景的第一振动规则和第二音频场景的第二振动规则,在各帧音频单元播放时,按照对应的振动规则驱动马达振动,使相应赛车类游戏产品针对第一音频场景和/或第二音频场景这些特定游戏场景能够提供振动信号,有利于进一步提升相应游戏产品的振动效果。
138.具体地,上述根据当前帧的第一平均值和第一触发阈值确定第一振动规则包括:若ave_l(n)>max_thr,则将当前帧的振幅设为第二振幅值,并将最大振感标志位设为第一标志;若moving_thr《ave_l(n)≤max_thr,在最大振感标志位为第二标志且gain(n-1)《gain_max时,按照振感爬坡规则控制当前帧的振幅,在最大振感标志位为第一标志且gain(n-1)>gain_max时,将当前帧的振幅设为马达最大振幅;其中,ave_l(n)表示当前帧的第一平均值,max_thr表示最大触发阈值;所述最大振感标志位用于标记振感程度,moving_thr表示第一触发阈值,gain(n-1)表示前一帧的振幅,gain_max表示马达最大振幅;所述振感爬坡规则为依次按照爬坡控制矩阵记录的幅值设置各次振动幅值的规则;所述爬坡控制矩阵记录多个振幅值,具体可以记录多个非递减的振幅值,以使振动得到保持或者递增。
139.和/或,
140.所述根据当前帧的第二帧数计数确定第二振动规则包括:若bp_cnt(n)≥m,则将当前帧的振幅设为第一振幅值;其中,bp_cnt(n)表示当前帧的第二帧数计数,m表示第二音频场景的计数阈值,其可以依据第二游戏场景中相应的操控目标动作特征设定,比如针对漂移这一动作可以设为6。
141.上述爬坡控制矩阵记录的振幅值个数可以依据相应振动效果进行设置。在一个示例中,爬坡控制矩阵记录8个振幅值,此时其可以记为gain_step[8],其具体取值特征可以依次为:依次为:
[0142][0143]
具体地,上述第一振动规则还包括:
[0144]
若ave_l(n)>moving_thr,最大振感标志位为第一标志,且gain(n-1)大于第三振幅值,则将当前帧的振幅设为第一振幅值。
[0145]
上述第一振幅值、第二振幅值和第三振幅值可以分别依据相应动作特征需要配置的振感设置,比如可以将第一振幅值设为将第二振幅值设为将第三振幅值设为以提升振动效果。
[0146]
进一步地,所述按照振感爬坡规则控制当前帧的振幅包括:
[0147]
获取爬坡帧数计数,在爬坡控制矩阵中查找排序为爬坡帧数计数的振幅值,根据查找得到的振幅值与gain(n-1)之和确定当前帧的振幅。
[0148]
本实施例设置爬坡帧数计数,这样可以在爬坡控制矩阵中查找排序为爬坡帧数计数的振幅值,以依据查找得到的振幅值确定当前帧的振幅,保证振感爬坡规则的有序性。
[0149]
可选地,在按照振感爬坡规则控制当前帧的振幅递增之后,还包括:
[0150]
在gain(n)>gain_max时,将当前帧的振幅设为马达最大振幅,并将最大振感标志位设为第一标志,对爬坡帧数计数执行加一操作;其中,gain(n)表示当前帧的振幅。
[0151]
可选地,上述马达驱动方法还包括:
[0152]
若爬坡帧数计数大于爬坡次数阈值,则将所述爬坡帧数计数设为爬坡次数阈值。
[0153]
上述爬坡次数阈值可以依据爬坡控制矩阵的振幅值个数设置,通常设置为略小于振幅值个数的值,比如在爬坡控制矩阵包括8个振幅值时,爬坡次数阈值可以设为5,以使振动爬坡帧数计数的每一次取值,均可以在相应爬坡控制矩阵中查找到相应的振幅值进行振动控制。
[0154]
本技术在第三方面提供一种音频场景的识别系统,如图3所示,该音频场景的识别系统包括:
[0155]
第一获取模块100,用于获取待处理音频数据;
[0156]
分割模块200,用于将所述待处理音频数据分割为时序上连续的多帧音频单元;
[0157]
滤波模块300,用于对各帧音频单元根据音频场景对应的波段特征进行滤波处理,获取目标音频;
[0158]
第二获取模块400,用于获取目标音频中各帧音频单元的帧数计数和能量均值;所述帧数计数用于表征特定场景具有的特征;
[0159]
判断模块500,用于将所述帧数计数或能量均值与不同音频场景对应的特征阈值进行比较,判断各帧音频单元对应的音频场景。
[0160]
关于音频场景的识别系统的具体限定可以参见上文中对于音频场景的识别方法的限定,在此不再赘述。上述音频场景的识别系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0161]
本技术在第四方面提供一种马达驱动系统,如图4所示,该马达驱动系统包括:
[0162]
识别模块700,用于根据上述任一实施例提供的音频场景的识别系统,识别当前播放的音频单元对应的音频场景;
[0163]
第三获取模块800,用于根据所述音频场景,获取对应的振动规则;
[0164]
驱动模块900,用于以所述振动规则驱动马达振动,实现与当前所播放音频单元对应的振动效果。
[0165]
关于马达驱动系统的具体限定可以参见上文中对于马达驱动方法的限定,在此不再赘述。上述马达驱动系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0166]
本技术在第五方面提供一种电子设备,包括处理器和存储介质;所述存储介质上存储有程序代码;所述处理器用于调用所述存储介质存储的程序代码,以执行上述任一实施例所述的音频场景的识别方法。
[0167]
在一个实施例中,上述电子设备还包括马达;所述处理器还用于执行上述任一实施例提供的马达驱动方法。
[0168]
具体地,参考图5所示,上述电子设备还包括马达驱动芯片,在电子设备播放各帧音频单元时,其中处理器可以按照各帧音频单元对应的振动规则控制马达驱动芯片驱动马达振动。
[0169]
进一步地,上述电子设备还可以包括音频功放和扬声器等组件,以播放各帧音频单元。此时电子设备的工作过程可以参考图6所示,首先获取赛车类游戏的音频数据,判定待处理的音频数据产生于第一音频场景和/或第二音频场景后,获取各帧音频单元对应的振动规则,通过音频功放和扬声器播放各帧音频单元,同时按照各帧音频单元对应的振动规则控制马达驱动芯片驱动马达振动。
[0170]
上述电子设备也可以称为终端设备,其能够针对赛车类游戏的第一音频场景和/或第二音频场景这些特定场景能够提供振动信号,有效丰富了这类游戏产品的用户感知信号,这样用户在游戏过程中便可以更为全面地感知操控目标在这些场景中的各种状态变化,用户体验得到有效提升。
[0171]
尽管已经相对于一个或多个实现方式示出并描述了本技术,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本技术包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本说明书的示范性实现方式中的功能的公开结构不等同。
[0172]
即,以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
[0173]
另外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0174]
为了使本领域任何技术人员能够实现和使用本技术,本技术给出了以上描述。在以上描述中,为了解释的目的而列出了各个细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本技术。在其它实施例中,不会对公知的过程进行详细阐述,以避免不必要的细节使本技术的描述变得晦涩。因此,本技术并非旨在限于所示的实施例,而是与符合本技术所公开的原理和特征的最广范围相一致。