本技术涉及通信,尤其涉及一种音频丢帧的补偿方法、装置、设备、存储介质及程序产品。
背景技术:
1、音频信号在传输过程(例如蓝牙传输)中,由于音频设备的问题或者传输模式的可靠性差等原因,通常会导致音频信号在传输过程中出现丢帧现象,导致在对于音频信号进行播放时,丢帧处容易出现卡顿的杂音,影响音频播放效果。
2、如何在进行丢帧补偿时,减少丢帧补偿处理的延时、以及音频设备的功耗,是亟待解决的问题。
技术实现思路
1、本技术提供一种音频丢帧的补偿方法、装置、设备、存储介质及程序产品,用以解决丢帧补偿处理的延时较大和音频设备的功耗大的问题。
2、第一方面,本技术提供一种音频丢帧的补偿方法,包括:
3、当检测到当前帧丢帧,获取补帧指示信息,所补帧指示信息包括编码模式、交换存储空间中的至少一个取数地址;
4、根据所述至少一个取数地址,按照所述编码模式将所述当前帧之前的多个历史帧存储到所述交换存储空间;
5、根据所述至少一个取数地址在所述交换存储空间获取所述多个历史帧,并按照所述编码模式将所述多个历史帧存储至基音存储空间;
6、基于所述基音存储空间,确定基音周期,并基于所述基音周期进行至少一次补帧处理。
7、在一种可能的实施方式中,所述基于所述基音存储空间,确定基音周期,包括:
8、按照一个时钟周期的取数个数n,从所述基音存储空间中确定第一序列和第二序列,所述第一序列为所述基音存储空间中的最后k个历史帧,所述第二序列为所述基音存储空间中的最后l个历史帧,所述n、k、l分别为大于1的整数,所述k和所述l分别为所述n的整数倍;
9、对所述第一序列和所述第二序列,进行归一化互相关处理,确定所述基音周期。
10、在一种可能的实施方式中,所述对所述第一序列和所述第二序列,进行归一化互相关处理,确定所述基音周期,包括:
11、将所述第一序列和所述第二序列进行归一化互相关处理,得到多个能量值和多个相关值;
12、根据所述多个能量值和所述多个相关值,确定所述基音周期。
13、在一种可能的实施方式中,所述根据所述至少一个取数地址,按照所述编码模式将所述当前帧之前的多个历史帧存储到所述交换存储空间,包括:
14、根据所述编码模式,在所述至少一个取数地址中确定每个历史帧对应的取数地址;
15、针对每个历史帧,根据所述历史帧对应的取数地址,将所述历史帧存储至所述交换存储空间。
16、在一种可能的实施方式中,所述基于所述基音周期进行至少一次补帧处理,包括:
17、根据所述基音周期,对所述当前帧进行补帧处理;
18、若所述当前帧之后的m个音频帧存在连续丢帧,则分别对所述m个音频帧进行补帧处理。
19、在一种可能的实施方式中,所述根据所述基音周期,对所述当前帧进行补帧处理,包括:
20、在所述基音存储空间获取第一数据,所述第一数据为所述基音存储空间中最后的q对应的长度的数据,所述q为所述基音周期的时长;
21、对所述第一数据进行平滑处理,得到第二数据;
22、根据所述当前帧在所述交换存储空间中的位置,将所述第二数据写入至所述交换存储空间;
23、根据所述第二数据更新所述基音存储空间中的数据。
24、在一种可能的实施方式中,所述m为1或2;对第m个帧进行补帧处理,包括:
25、在所述基音存储空间获取第三数据,所述第三数据为所述基音存储空间中最后的m*q对应的长度的数据;
26、对所述第三数据进行平滑处理,得到第四数据,并根据所述第四数据更新所述基音存储空间中的数据;
27、在更新后的基音存储空间中获取第五数据,所述第五数据为第一位置之后的一帧数据,所述第一位置为所述第m帧的前一帧数据的末尾位置;
28、对所述第五数据进行平滑处理和衰减处理,得到第六数据;
29、根据所述第m帧在所述交换存储空间中的位置,将所述第六数据写入至所述交换存储空间。
30、在一种可能的实施方式中,所述m为3或4或5;对第m个帧进行补帧处理,包括:
31、在所述基音存储空间获取第七数据,所述第七数据为第二位置之后的一帧数据,所述第二位置为所述第m帧的前一帧数据的末尾位置;
32、对所述第七数据进行衰减处理,得到第八数据;
33、根据所述第m帧在所述交换存储空间中的位置,将所述第八数据写入至所述交换存储空间。
34、在一种可能的实施方式中,所述m大于5;对第m个帧进行补帧处理,包括:
35、根据所述第m帧在所述交换存储空间中的位置,在所述交换存储空间写入零数据。
36、第二方面,本技术提供一种音频丢帧的补偿装置,包括:
37、获取模块,用于当检测到当前帧丢帧,获取补帧指示信息,所述补帧指示信息包括编码模式、交换存储空间中的至少一个取数地址;
38、第一存储模块,用于根据所述至少一个取数地址,按照所述编码模式将所述当前帧之前的多个历史帧存储到所述交换存储空间;
39、第二存储模块,用于根据所述至少一个取数地址在所述交换存储空间获取所述多个历史帧,并按照所述编码模式将所述多个历史帧存储至基音存储空间;
40、确定模块,用于基于所述基音存储空间,确定基音周期,并基于所述基音周期进行至少一次补帧处理。
41、在一种可能的实施方式中,所述确定模块具体用于:
42、按照一个时钟周期的取数个数n,从所述基音存储空间中确定第一序列和第二序列,所述第一序列为所述基音存储空间中的最后k个历史帧,所述第二序列为所述基音存储空间中的最后l个历史帧,所述n、k、l分别为大于1的整数,所述k和所述l分别为所述n的整数倍;
43、对所述第一序列和所述第二序列,进行归一化互相关处理,确定所述基音周期。
44、在一种可能的实施方式中,所述确定模块具体用于:
45、将所述第一序列和所述第二序列进行归一化互相关处理,得到多个能量值和多个相关值;
46、根据所述多个能量值和所述多个相关值,确定所述基音周期。
47、在一种可能的实施方式中,所述第一存储模块具体用于:
48、根据所述编码模式,在所述至少一个取数地址中确定每个历史帧对应的取数地址;
49、针对每个历史帧,根据所述历史帧对应的取数地址,将所述历史帧存储至所述交换存储空间。
50、在一种可能的实施方式中,所述确定模块还用于:
51、根据所述基音周期,对所述当前帧进行补帧处理;
52、若所述当前帧之后的m个音频帧存在连续丢帧,则分别对所述m个音频帧进行补帧处理。
53、在一种可能的实施方式中,所述确定模块还用于:
54、在所述基音存储空间获取第一数据,所述第一数据为所述基音存储空间中最后的q对应的长度的数据,所述q为所述基音周期的时长;
55、对所述第一数据进行平滑处理,得到第二数据;
56、根据所述当前帧在所述交换存储空间中的位置,将所述第二数据写入至所述交换存储空间;
57、根据所述第二数据更新所述基音存储空间中的数据。
58、在一种可能的实施方式中,所述m为1或2;所述确定模块还用于:
59、在所述基音存储空间获取第三数据,所述第三数据为所述基音存储空间中最后的m*q对应的长度的数据;
60、对所述第三数据进行平滑处理,得到第四数据,并根据所述第四数据更新所述基音存储空间中的数据;
61、在更新后的基音存储空间中获取第五数据,所述第五数据为第一位置之后的一帧数据,所述第一位置为所述第m帧的前一帧数据的末尾位置;
62、对所述第五数据进行平滑处理和衰减处理,得到第六数据;
63、根据所述第m帧在所述交换存储空间中的位置,将所述第六数据写入至所述交换存储空间。
64、在一种可能的实施方式中,所述m为3或4或5;所述确定模块还用于:
65、在所述基音存储空间获取第七数据,所述第七数据为第二位置之后的一帧数据,所述第二位置为所述第m帧的前一帧数据的末尾位置;
66、对所述第七数据进行衰减处理,得到第八数据;
67、根据所述第m帧在所述交换存储空间中的位置,将所述第八数据写入至所述交换存储空间。
68、在一种可能的实施方式中,所述m大于5;所述确定模块还用于:
69、根据所述第m帧在所述交换存储空间中的位置,在所述交换存储空间写入零数据。
70、第三方面,本技术提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
71、所述存储器存储计算机执行指令;
72、所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面所述的音频丢帧的补偿方法。
73、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被计算机执行时用于实现如第一方面所述的音频丢帧的补偿方法。
74、第五方面,本技术提供一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时用于实现第一方面所述的音频丢帧的补偿方法。
75、第六方面,本技术实施例提供一种芯片,所述芯片上存储有计算机程序,所述计算机程序被所述芯片执行时使得第一方面所述的音频丢帧的补偿方法被执行。
76、在一种可能的实施方式中,所述芯片为芯片模组中的芯片。
77、第七方面,本技术实施例提供一种模组设备,所述模组设备包括电源模组、存储模组以及芯片模组;
78、其中,所述电源模组用于为所述模组设备提供电能;
79、所述存储模组用于存储数据和指令;
80、所述芯片模组用于执行第一方面所述的音频丢帧的补偿方法。
81、本技术提供的一种音频丢帧的补偿方法、装置、设备、存储介质及程序产品,当检测到当前帧丢帧,可以获取补帧指示信息,然后可以根据至少一个取数地址,按照编码模式将当前帧之前的多个历史帧存储到交换存储空间。然后根据至少一个取数地址在交换存储空间获取多个历史帧,并按照编码模式将多个历史帧存储至基音存储空间,然后基于该基音存储空间中的数据,可以确定基音周期,并根据基音周期进行至少一次补帧处理。可以减少电子设备进行补帧处理的功耗、延时以及存储资源消耗。