CN117406654B - 音效处理方法和电子设备 - Google Patents

音效处理方法和电子设备 Download PDF

Info

Publication number
CN117406654B
CN117406654B CN202311724199.8A CN202311724199A CN117406654B CN 117406654 B CN117406654 B CN 117406654B CN 202311724199 A CN202311724199 A CN 202311724199A CN 117406654 B CN117406654 B CN 117406654B
Authority
CN
China
Prior art keywords
sub
pcm audio
sound effect
output data
audio output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311724199.8A
Other languages
English (en)
Other versions
CN117406654A (zh
Inventor
肖应诚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202311724199.8A priority Critical patent/CN117406654B/zh
Publication of CN117406654A publication Critical patent/CN117406654A/zh
Application granted granted Critical
Publication of CN117406654B publication Critical patent/CN117406654B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Circuit For Audible Band Transducer (AREA)

Abstract

本公开提供一种音效处理方法和电子设备,应用于终端技术领域,能够实现PCM音频输出数据的异常检测和异常处理。该方法包括:获取脉冲编码调制PCM音频输入数据;对第一子PCM音频输入数据进行音效处理,得到第一子PCM音频输出数据;在根据第一子PCM音频输入数据和第一子PCM音频输出数据,确定第一子PCM音频输出数据存在异常的情况下,确定异常类型,以及与异常类型对应的预设音效算法;其中,异常类型包括POP音异常和时延过大异常;采用预设音效算法对第二子PCM音频输入数据进行音效处理,得到第二子PCM音频输出数据,并播放第二子PCM音频输出数据。

Description

音效处理方法和电子设备
技术领域
本公开涉及终端技术领域,尤其涉及一种音效处理方法和电子设备。
背景技术
为了提升用户的音频体验,电子设备可以集成音效算法。通常情况下,若音效算法运行在专门用于处理数字信号的数字信号处理器(Digital Signal Processing,DSP处理器)上,可以减少问题出现。
若电子设备没有集成DSP处理器,音效算法只能运行在中央处理器(CentralProcessing Unit,CPU)上。当音效算法运行在 CPU上时,它需要与操作系统的调度和配置配合使用,如果处理不当,会给用户带来诸多问题。例如,杂音(POP音)、时延过大等异常。因此,如何避免音效算法在CPU上运行时出现上述异常是目前亟需解决的问题。
发明内容
本公开实施例提供一种音效处理方法和电子设备,能够实现PCM音频输出数据的异常检测和异常处理,还能在当前子PCM音频输出数据出现异常时,基于当前子PCM音频输出数据的异常,修正后续子PCM音频输出数据,实现音频处理的闭环控制。
为达到上述目的,本公开的实施例采用如下技术方案:
第一方面,本公开提供了一种音效处理方法,应用于电子设备,该方法包括:首先,获取脉冲编码调制PCM音频输入数据;其中,PCM音频输入数据包括第一子PCM音频输入数据和第二子PCM音频输入数据;然后对第一子PCM音频输入数据进行音效处理,得到第一子PCM音频输出数据;接着,在根据第一子PCM音频输入数据和第一子PCM音频输出数据,确定第一子PCM音频输出数据存在异常的情况下,确定异常类型,以及与异常类型对应的预设音效算法;其中,异常类型包括POP音异常和时延过大异常,预设音效算法包括与POP音异常对应的低时延音效算法,以及与时延过大异常对应的待处理音效算法;最后采用预设音效算法对第二子PCM音频输入数据进行音效处理,得到第二子PCM音频输出数据,并播放第二子PCM音频输出数据。
基于第一方面的音效处理方法,本公开中的PCM音频输入数据可以包括多段子PCM音频输入数据(例如,PCM音频输入数据包括第一子PCM音频输入数据和第二子PCM音频输入数据)。在利用第一子PCM音频输入数据,得到第一子PCM音频输出数据后,可以确定第一子PCM音频输出数据是否存在异常,若存在异常,则根据异常类型,采用与异常类型对应的预设音效算法继续处理后续子PCM音频输入数据(例如,第二子PCM音频输入数据),从而使后续子PCM音频输出数据(例如,第二子PCM音频输出数据)不再异常。这样,不仅能够实现PCM音频输出数据的异常检测和异常处理,还能在当前子PCM音频输出数据(例如,第一子PCM音频输出数据)出现异常时,根据当前子PCM音频输出数据的异常,修正后续子PCM音频输出数据,实现音频处理的闭环控制,从而降低后续PCM音频输出数据出现异常的可能性。
结合第一方面,另一种可能的实现方式中,根据第一子PCM音频输入数据和第一子PCM音频输出数据,确定第一子PCM音频输出数据存在异常,包括:在检测到第一子PCM音频输入数据和第一子PCM音频输出数据时,采集第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息;对第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息进行解析,得到第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果;根据第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果,确定第一子PCM音频输出数据对应的时延值;在第一子PCM音频输出数据对应的时延值大于第一阈值的情况下,确定第一子PCM音频输出数据存在时延过大异常。
基于该方案,可以通过第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息检测第一子PCM音频输出数据是否存在异常。在第一子PCM音频输出数据存在时延过大异常时,提出一种如何确定时延过大异常的示例。
结合第一方面,另一种可能的实现方式中,在得到第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果之后,方法还包括:在第一子PCM音频输出数据的波形解析结果中查找为0的输出数据,当为0的输出数据对应的时长处于预设范围,且目标时长内为0的输出数据的个数大于等于第二阈值的情况下,在第一子PCM音频输入数据的波形解析结果中查找与为0的输出数据对应的输入数据;在第一子PCM音频输入数据的波形解析结果中不包括与为0的输出数据对应的输入数据的情况下,确定第一子PCM音频输出数据存在POP音异常。基于该方案,提出一种如何确定POP音异常的示例。
结合第一方面,另一种可能的实现方式中,待处理音效算法为第一音效算法、第二音效算法以及第三音效算法中的任一个;当第一音效算法、第二音效算法以及第三音效算法运行时,第一音效算法、第二音效算法以及第三音效算法所占用的硬件资源不同。
结合第一方面,另一种可能的实现方式中,在异常类型为时延过大异常时,方法还包括:在第一子PCM音频输出数据对应的时延值处于第一预设范围内时,确定待处理音效算法为第一音效算法;在第一子PCM音频输出数据对应的时延值处于第二预设范围内时,确定待处理音效算法为第二音效算法;在第一子PCM音频输出数据对应的时延值处于第三预设范围内时,确定待处理音效算法为第三音效算法;其中,第一预设范围的上限值小于第二预设范围的下限值;第二预设范围的上限值小于第三预设范围的下限值;第一音效算法运行时所占用的硬件资源大于第二音效算法运行时所占用的硬件资源;第二音效算法运行时所占用的硬件资源大于第三音效算法运行时所占用的硬件资源。
由于第一子PCM音频输出数据对应的时延值不定,所以基于该方案,可以设置多个音效算法,以便于针对不同的时延值采用不同的音效算法。这样,能够实现分级控制,针对不同的时延值,采用与其适配的音效算法。之后,可以利用与其适配的音效算法处理后续子PCM音频输入数据,不仅能够解决时延过大问题,也能避免后续子PCM音频输出数据的音效效果与第一子PCM音频输出数据的音效效果相差太多。
结合第一方面,另一种可能的实现方式中,在异常类型为POP音异常时,方法还包括:获取电子设备的硬件资源占用值和PCM音频输入数据对应的音效场景;在硬件资源占用值满足要求的情况下,按照音效场景对应的标准音效算法处理第三子PCM音频输入数据,得到第三子PCM音频输出数据,PCM音频输入数据还包括第三子PCM音频输入数据。
基于该方案,由于出现POP音异常时,采用低时延音效算法处理第二子PCM音频输入数据,得到的第二子PCM音频输出数据的音效效果有待提升。所以,为了给用户带来更好的音效体验,可以检测电子设备的硬件资源占用值。在电子设备的硬件资源占用值满足要求时,可以按照音效场景对应的标准音效算法处理第三子PCM音频输入数据,以提升第三子PCM音频输出数据的音效效果,进而提高用户的音效体验。
结合第一方面,另一种可能的实现方式中,音效场景包括标准音效场景、影院音效场景、体育音效场景、音乐音效场景、新闻音效场景、通话音效场景、游戏音效场景和低时延音效唱。提供一种音效场景的示例。
结合第一方面,另一种可能的实现方式中,根据第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果,确定第一子PCM音频输出数据对应的时延值,包括:对第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果分别进行标记处理,得到第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果;根据第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果,确定第一子PCM音频输出数据对应的时延值。
基于该方案,利用根据第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果,确定第一子PCM音频输出数据对应的时延值更加准确,从而便于采用合适的音效算法处理后续子PCM音频输入数据。
第二方面,本公开实施例提供一种音频控制装置,该音频控制装置可以应用于电子设备,用于实现上述第一方面中的方法。该音频控制装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,例如,获取模块、处理模块、确定模块和播放模块等。
其中,获取模块,被配置为获取脉冲编码调制PCM音频输入数据;其中,PCM音频输入数据包括第一子PCM音频输入数据和第二子PCM音频输入数据。
处理模块,被配置为对第一子PCM音频输入数据进行音效处理,得到第一子PCM音频输出数据。
确定模块,被配置为在根据第一子PCM音频输入数据和第一子PCM音频输出数据,确定第一子PCM音频输出数据存在异常的情况下,确定异常类型,以及与异常类型对应的预设音效算法;其中,异常类型包括POP音异常和时延过大异常,预设音效算法包括与POP音异常对应的低时延音效算法,以及与时延过大异常对应的待处理音效算法。
播放模块,被配置为采用预设音效算法对第二子PCM音频输入数据进行音效处理,得到第二子PCM音频输出数据,并播放第二子PCM音频输出数据。
结合第二方面,在一种可能的实现方式中,确定模块,还被配置为在检测到第一子PCM音频输入数据和第一子PCM音频输出数据时,采集第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息;对第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息进行解析,得到第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果;根据第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果,确定第一子PCM音频输出数据对应的时延值;以及在第一子PCM音频输出数据对应的时延值大于第一阈值的情况下,确定第一子PCM音频输出数据存在时延过大异常。
结合第二方面,在一种可能的实现方式中,确定模块,还被配置为在第一子PCM音频输出数据的波形解析结果中查找为0的输出数据,当为0的输出数据对应的时长处于预设范围,且目标时长内为0的输出数据的个数大于等于第二阈值的情况下,在第一子PCM音频输入数据的波形解析结果中查找与为0的输出数据对应的输入数据;以及在第一子PCM音频输入数据的波形解析结果中不包括与为0的输出数据对应的输入数据的情况下,确定第一子PCM音频输出数据存在POP音异常。
结合第二方面,在一种可能的实现方式中,待处理音效算法为第一音效算法、第二音效算法以及第三音效算法中的任一个;当第一音效算法、第二音效算法以及第三音效算法运行时,第一音效算法、第二音效算法以及第三音效算法所占用的硬件资源不同。
结合第二方面,在一种可能的实现方式中,在异常类型为时延过大异常时,确定模块,还被配置为在第一子PCM音频输出数据对应的时延值处于第一预设范围内时,确定待处理音效算法为第一音效算法;在第一子PCM音频输出数据对应的时延值处于第二预设范围内时,确定待处理音效算法为第二音效算法;在第一子PCM音频输出数据对应的时延值处于第三预设范围内时,确定待处理音效算法为第三音效算法。
其中,第一预设范围的上限值小于第二预设范围的下限值;第二预设范围的上限值小于第三预设范围的下限值;第一音效算法运行时所占用的硬件资源大于第二音效算法运行时所占用的硬件资源;第二音效算法运行时所占用的硬件资源大于第三音效算法运行时所占用的硬件资源。
结合第二方面,在一种可能的实现方式中,在异常类型为POP音异常时,获取模块,还被配置为获取电子设备的硬件资源占用值和PCM音频输入数据对应的音效场景。
处理模块,还被配置为在硬件资源占用值满足要求的情况下,按照音效场景对应的标准音效算法处理第三子PCM音频输入数据,得到第三子PCM音频输出数据,PCM音频输入数据还包括第三子PCM音频输入数据。
结合第二方面,在一种可能的实现方式中,音效场景包括标准音效场景、影院音效场景、体育音效场景、音乐音效场景、新闻音效场景、通话音效场景、游戏音效场景和低时延音效唱。
结合第二方面,在一种可能的实现方式中,确定模块,还被配置为对第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果分别进行标记处理,得到第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果。以及根据第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果,确定第一子PCM音频输出数据对应的时延值。
第三方面,本公开提供一种电子设备,包括:存储器、显示屏和一个或多个处理器;存储器、显示屏与处理器耦合。其中,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当电子设备运行时,该处理器用于执行该存储器存储的一个或多个计算机指令,以使电子设备执行如上述第一方面中任一项的音效处理方法。
第四方面,本公开提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面中任一项的音效处理方法。
第五方面,本公开提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如第一方面中任一项的音效处理方法。
第六方面,提供了一种装置(例如,该装置可以是芯片系统),该装置包括处理器,用于支持第一设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存第一设备必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
应当理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本公开实施例提供的一种电子设备的硬件结构示意图。
图2为本公开实施例提供的一种电子设备的软件结构示意图。
图3为本公开实施例提供的一种音效处理方法的流程示意图。
图4为本公开实施例提供的一种音效处理逻辑示意图之一。
图5为本公开实施例提供的一种音效处理逻辑示意图之二。
图6为本公开实施例提供的一种音效处理逻辑示意图之三。
图7为本公开实施例提供的一种通过电流采集的形式获取第一子PCM音频输出数据的波形信息的硬件结构示意图。
图8为本公开实施例提供的一种第一子PCM音频输入数据、第一子PCM音频输出数据分别对应的波形解析图。
图9为本公开实施例提供的一种第一子PCM音频输入数据、第一子PCM音频输出数据分别对应的标记结果示意图。
图10为本公开实施例提供的另一种第一子PCM音频输入数据、第一子PCM音频输出数据分别对应的波形解析图。
图11为本公开实施例提供的另一种第一子PCM音频输入数据、第一子PCM音频输出数据分别对应的标记结果示意图。
图12为本公开实施例提供的一种高级音效模块的接口示意图。
图13为本公开实施例提供的一种音效处理场景示意图。
图14为本公开实施例提供的一种芯片系统的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行描述。其中,在本公开的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本公开中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本公开的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本公开实施例的技术方案,在本公开的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本公开实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
此外,本公开实施例描述的网络架构以及业务场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。
以下对本公开实施例涉及的部分名词进行解释,以便于本领域技术人员理解。
1、声场扩展是指通过增加声场的宽度、深度和高度,来增强左右声道之间的空间分离度。通过声场扩展可以改善了立体声的空间表现力,使用户可以感受到更广阔和更具体的音效感觉。
2、在线流媒体文件是指通过互联网实时传输和播放的音频、视频或其他多媒体文件。它通常以数据流的形式传输,而不是作为完整的文件下载到设备上。在线流媒体文件通常使用特定的协议和格式进行传输,例如,HTTP实时流媒体 (HTTP Live Streaming,HLS)、基于 HTTP 的动态自适应流媒体(MPEG Dynamic Adaptive Streaming over HTTP,MPEG-DASH)和实时消息协议 (Real-Time Messaging Protocol,RTMP)。
3、杂音(POP音)是指在音频播放过程中,如果CPU调度不及时或被抢占,会导致音频持续输出为0且发生多次。此时,人耳会察觉到音频卡顿或不连续。这种异常现象被称为POP音异常。其中,CPU调度不及时或被抢占可能是由于系统负载过高、其他进程占用 CPU资源等原因导致的。当CPU无法及时处理音频数据时,音频输出数据可能会出现瞬间的中断或缺失,且持续时间超过一定值。
电子设备(例如,手机、平板电脑、电视等)通常配置有一定的硬件资源,例如:CPU、DSP处理器、音频编解码器等,以实现各种功能。为了给用户提供更好的音频体验,电子设备可以在上述硬件资源的基础上,集成音效算法。以利用音效算法对音频数据进行处理和增强,从而使音频数据适应不同的场景和需求。
例如,当用户选择在影院模式下播放音频数据时,电子设备会利用音效算法开启环绕音功能。在电影播放时,环绕音功能可以突出声场扩展效果,增强人声对白。这样可以增加电影的氛围感和冲击感,让用户感受到更真实、更沉浸的电影体验。
当用户选择在新闻模式下播放音频数据时,会更加关注人声的清晰度和保真度。由于音频数据中的中频数据出来的人声很干净、清晰,所以在新闻模式下,电子设备会利用音效算法保留较少的低频数据和超高频数据,保留较多的中频数据,从而让用户听到更清晰的新闻内容。
当用户选择在音乐模式下播放音频数据时,在保证电子设备声平衡的前提下,可以利用音效算法对低频数据和高频数据进行适度提升。这样可以使用户得到更好的音乐体验,感受到更真实、更动人的音乐效果。
由此可知,音效算法在音频数据的处理过程中非常重要。为了使音效算法达到更好的处理效果,对运行音效算法的硬件单元也有较高要求。通常情况下,使用DSP处理器运行音效算法,可以减少问题的出现。因为 DSP 处理器专门用于数字信号处理,可以提供更高的计算性能和更低的延迟。
如果电子设备没有专门设置DSP处理器,音效算法只能在CPU上运行。当音效算法在CPU上运行时,它需要与操作系统的调度、配置配合使用。如果CPU处理不当,会给用户带来很多问题。例如,当电子设备负载很高时,音效算法的处理可能会不及时或出现计算异常,从而导致时延过大、POP音等异常。
此外,在音频数据的处理过程中,如果音效算法的计算量超过了系统能够承受的极限,或者输入的音频信号与预期的音频信号不匹配,也会出现异常。
其中,音效算法的计算量超过了系统能够承受的极限是指音效算法的计算量超过了系统的处理能力。在这种情况下,可能会导致音频卡顿、杂音等异常现象。出现这种情况是因为CPU无法及时处理音效算法的计算,导致数据拥堵或丢失。
如果输入的音频信号与预期的音频信号不匹配,可能会导致音效处理出现错误。例如,输入的音频信号的采样率或声道数与预期的不同,音效算法可能无法正确处理音频信号,导致音频质量下降或出现杂音。
由此可知,当音频算法运行在CPU上时,可能会出现一些异常,例如,杂音、时延过大导致的音画不同步、音频卡顿等。并且当音频数据在播放过程中出现音频卡顿或杂音时,用户可以明显的感知到。当视频在播放过程中出现音画不同步时,若音频和视频之间的延时较小,用户可能感知不明显,但如果延时较大,用户体验会受到影响。
为了解决这些问题,本公开提供了一种音效处理方法和电子设备,利用该方法能够实现PCM音频输出数据的异常检测和异常处理,还能在当前子PCM音频输出数据出现异常时,基于当前子PCM音频输出数据的异常,修正后续子PCM音频输出数据,实现音频处理的闭环控制。
本公开实施例提供的音效处理方法,可应用于电子设备在任一应用中外放音频的场景,本公开实施例中对音效处理方法的应用场景不做限定。
可以理解的是,上述电子设备也可以称为终端,(terminal)、用户设备 (userequipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。电子设备可以为拥有至少两个播放器件的手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实 (virtual reality,VR)电子设备、增强现实(augmented reality,AR)电子设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本公开的实施例对电子设备所采用的具体技术和具体设备形态不做限定。
示例性的,图1示出了电子设备100的一种结构示意图。电子设备可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
其中,上述传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器和骨传导传感器等传感器。
可以理解的是,本实施例示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I1C)接口,集成电路内置音频(inter-integrated circuitsound,I1S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。在一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。
移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括WLAN(如(wirelessfidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigationsatellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(nearfield communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线1接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线1转为电磁波辐射出去。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。该显示屏194包括显示面板。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP 用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。例如,在本公开实施例中,处理器110可以通过执行存储在内部存储器121中的指令,内部存储器121可以包括存储程序区和存储数据区。
其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
另外,在上述部件之上,运行有操作系统,例如鸿蒙操作系统、iOS操作系统,Android操作系统,Windows操作系统等。在该操作系统上可以安装运行应用程序。在另一些实施例中,电子设备内运行的操作系统可以有多个。
应理解,图1所示电子设备包括的硬件模块只是示例性地描述,并不对电子设备的具体结构做出限定。事实上,本公开实施例提供的电子设备中还可以包含其它与图中示意的硬件模块具有交互关系的其它硬件模块,这里不作具体限定。例如,电子设备还可以包括闪光灯、微型投影装置等。又如,若电子设备是PC,那么电子设备还可以包括键盘、鼠标等部件。
上述电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android®系统为例,示例性说明电子设备的软件结构。
图2是本公开实施例的电子设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过接口通信。在一些实施例中,将Android ®系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时和系统库,HAL(hardware abstraction layer,硬件抽象层)层以及内核层。
应用程序层可以包括一系列应用程序包。示例性的,应用程序包可以包括音乐,日历,地图,蓝牙,游戏,视频,相机,通话,导航,浏览器等应用(application,APP)。
在本公开实施例中,应用程序层中可以安装具有音频播放功能的APP。当然,其它APP需要使用音频播放时,也可以调用声音应用进行播放,例如,游戏应用的背景音。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
应用程序框架层可以包括活动管理器、窗口管理器,内容提供器,视图系统,资源管理器,通知管理器等,本公开实施例对此不做任何限制。
窗口管理器(WindowManagerService):用于管理在屏幕上使用的图形用户界面(graphical user interface,GUI)资源,具体可用于:获取屏幕大小、窗口的创建和销毁、窗口的显示与隐藏、窗口的布局、焦点的管理以及输入法和壁纸管理等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。
活动管理器(Activity Manager):用于管理每个应用的生命周期。应用通常以Activity的形式运行在操作系统中。对于每一个Activity,在活动管理器中都会有一个与之对应的应用记录(ActivityRecord),这个ActivityRecord记录了该应用的Activity的状态。活动管理器可以利用这个ActivityRecord作为标识,调度应用的Activity进程。
应用程序框架层以下的系统库、HAL层和内核层等可称为底层系统,底层系统中包括用于提供显示服务的底层显示系统,例如,底层显示系统包括内核层中的显示驱动以及系统库中的surface manager等。
安卓运行时(Android Runtime)包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维图像引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。OpenGL ES用于实现三维图形绘图,图像渲染,合成,和图层处理等。SGL是2D绘图的绘图引擎。
HAL层可以包括多个功能模块。例如:采集模块、音频控制模块以及音频处理模块。其中音频处理模块包括基础音效模块和高级音效模块。
其中,采集模块,用于在开始检测到脉冲编码调制(Pulse Code Modulation,PCM)音频输入数据后,采集模块获取第一子PCM音频输入数据的波形信息;在检测到第一子PCM音频输出数据后,采集模块采集第一子PCM音频输出数据的波形信息;向音频控制模块发送第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息。
音频控制模块,用于接收第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息;根据第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息,确定第一子PCM音频输出数据的波形信息是否存在异常;在确定第一子PCM音频输出数据存在时延过大异常的情况下,向音频处理模块发送时延处理指令;在确定第一子PCM音频输出数据存在POP音异常的情况下,向音频处理模块发送POP音处理指令;周期性的检测CPU loading的数值,在CPU loading的数值满足要求的情况下,向音频处理模块发送音效调整指令。
音频处理模块,用于获取PCM音频输入数据和PCM音频输入数据对应的音效场景;对PCM音频输入数据中的第一子PCM音频输入数据进行处理,得到第一子PCM音频输出数据;接收时延处理指令,并响应于时延处理指令调用待处理音效算法处理第二PCM音频输入数据,得到第二子PCM音频输出数据;接收POP音处理指令,并响应于POP音处理指令调用低时延音效算法对第二子PCM音频输入数据进行处理,得到第二子PCM音频输出数据;接收音效调整指令,并响应于音频调整指令,按照音效场景对应的标准音效算法处理第三子PCM音频输入数据,得到第三子PCM音频输出数据。
基础音效模块用于调用与基础音效算法对应的接口,以利用基础音效算法对第二子第一子PCM音频输入数据进行处理。
高级音效模块用于调用与待处理音效算法对应的接口,以利用待处理音效算法对第二子第一子PCM音频输入数据进行处理。
也就是说,音频处理模块可以获取PCM音频输入数据和PCM音频输入数据对应的音效场景;然后对PCM音频输入数据中的第一子PCM音频输入数据进行处理,得到第一子PCM音频输出数据。采集模块可以在开始检测到PCM音频输入数据后,采集第一子PCM音频输入数据的波形信息;在检测到第一子PCM音频输出数据后,采集第一子PCM音频输出数据的波形信息;并向音频控制模块发送第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息。音频控制模块接收到第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息后,可以根据第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息,确定第一子PCM音频输出数据的波形信息是否存在异常。
在确定第一子PCM音频输出数据存在时延过大异常的情况下,可以向音频处理模块发送时延处理指令。当音频处理模块接收到时延处理指令后,可以响应于时延处理指令调用待处理音效算法处理第二PCM音频输入数据,得到第二子PCM音频输出数据。
在确定第一子PCM音频输出数据存在POP音异常的情况下,可以向音频处理模块发送POP音处理指令。当音频处理模块接收到POP音处理指令后,可以响应于POP音处理指令调用低时延音效算法对第二子PCM音频输入数据进行处理,得到第二子PCM音频输出数据。
另外,音频控制模块还可以周期性的检测CPU loading的数值,在CPU loading的数值满足要求的情况下,向音频处理模块发送音效调整指令。当音频处理模块接收到音效调整指令后,可以响应于音频调整指令,按照音效场景对应的标准音效算法处理第三子PCM音频输入数据,得到第三子PCM音频输出数据。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等,本公开实施例对此不做任何限制。
以下实施例中的方法均可以在具有上述硬件结构或软件结构的电子设备中实现。
下面结合附图详细阐述本公开实施例提供的一种音效处理方法。该方法可以应用于上述电子设备。如图3所示,该方法具体包括:
步骤301、音频处理模块获取PCM音频输入数据和PCM音频输入数据对应的音效场景。
其中,该PCM音频输入数据对应的音效场景为PCM音频输出数据播放时对应的音效场景。
例如,该音效场景可以是标准音效场景、影院音效场景、体育音效场景、音乐音效场景、新闻音效场景、通话音效场景、游戏音效场景以及低时延音效场景等中的任一个。
在一些示例中,以电子设备是手机为例,在用户需要使用手机播放音频或视频时,用户可以开启手机,选择相应的媒体文件进行播放。如图4所示,用户选择的媒体文件可以是本地媒体文件、在线流媒体文件,或者外部设备输入的媒体文件。
当用户选择的媒体文件是外部设备输入的媒体文件时,该外部设备输入的媒体文件可以是外部设备通过对应的外部接口向电子设备输入的。例如,该外部设备对应的外部接口可以是高清晰多媒体接口(High-Definition Multimedia Interface,HDMI)、音频视频接口(Audio Visual Interface,AV)以及数字电视接口(Digital Television,DTV)等。
在一些场景中,当用户选中媒体文件后,用户可以通过手机中的应用播放媒体文件。在利用应用播放媒体文件时,应用还可以为用户提供多种播放功能,例如,在不同的音效场景下播放该媒体文件。
其中,该应用为具有音频播放功能的应用。示例性的,该应用可以是音乐应用、视频应用、游戏应用等。当该应用是游戏应用时,游戏应用播放的媒体文件可以是游戏的背景音乐。
例如,当用户想要播放视频应用中的媒体文件时,用户可以触发手机的视频应用启动。视频应用启动后,可以显示包括本地媒体文件以及在线流媒体文件的显示界面。用户可以在该显示界面中,点击某一本地媒体文件或者在线流媒体文件。视频应用可以接收该点击操作,并响应于该点击操作为用户播放与该点击操作对应的媒体文件。
在播放媒体文件的过程中,视频应用可以按照默认的音效场景播放媒体文件。例如,视频应用设置的默认音效场景为标准音效场景。
若视频应用接收到用户的音效场景调整操作,该音频场景调整操作用于指示视频应用按照目标音效场景播放媒体文件。视频应用可以响应于用户的音效场景调整操作,按照目标音效场景播放媒体文件。例如,目标音效场景为影院音效场景。
在一些示例中,当用户确定媒体文件和音效场景后,音频处理模块可以按照该音效场景对应的标准音效算法对该媒体文件进行音效处理,得到处理后的媒体文件,并为用户播放处理后的媒体文件。
在一些示例中,音频处理模块获取PCM音频输入数据的过程可以是:当用户选中媒体文件后,操作系统可以利用解码器对媒体文件进行解码,得到解析后的音频数据。然后将解析后的音频数据输入PCM输入模块,PCM输入模块对解析后的音频数据进行处理,得到PCM音频输入数据,并向音频处理模块发送PCM音频输入数据。
示例性的,如图4所示,当用户选中的媒体文件是本地媒体文件,或者在线流媒体文件时,解码器可以将本地媒体文件解析后的音频数据,或者在线流媒体文件解析后的音频数据发送至PCM输入模块。当用户选中的媒体文件是外部设备输入的媒体文件时,外部设备对应的解码器可以将外部设备输入的媒体文件解析后的音频数据发送至PCM输入模块。
PCM输入模块对解析后的音频数据进行处理可以是:将解析后的音频数据的采样率、位宽等参数进行调整,以确保调整后的音频数据与终端设备的硬件要求相匹配。PCM输入模块输出的PCM音频输入数据的数据格式为PCM。
在一些示例中,操作系统利用解码器对媒体文件进行解码,得到解析后的音频数据的过程可以是:当媒体文件是本地媒体文件时,操作系统会使用相应的解码器读取该本地媒体文件,并将该本地媒体文件的音频数据解析为原始的音频数据。
当媒体文件是在线流媒体文件,操作系统会通过网络连接到流媒体服务器,并从流媒体服务器中获取该在线流媒体文件对应的音频数据。
当媒体文件是外部设备输入的媒体文件,操作系统会使用与外部设备对应的解码器读取该外部设备输入的媒体文件,并将外部设备输入的媒体文件解析为原始音频数据。
在一些示例中,当音频处理模块获取PCM音频输入数据时,可以一并获取该PCM音频输入数据对应的音效场景。
步骤302、音频处理模块对PCM音频输入数据中的第一子PCM音频输入数据进行处理,得到第一子PCM音频输出数据。
在一些示例中,由于PCM音频输入数据是一段时间的音频输入数据。当音频处理模块开始获取到PCM音频输入数据时,音频处理模块就可以对开始获取到PCM音频输入数据进行音效处理,从而得到部分PCM音频输入数据(即第一子PCM音频输入数据)对应的第一子PCM音频输出数据。
因此,PCM音频输入数据可以包括第一子PCM音频输入数据、第二子PCM音频输入数据和第三子PCM音频输入数据。PCM音频输出数据可以包括第一子PCM音频输出数据、第二子PCM音频输出数据和第三子PCM音频输出数据。
第一子PCM音频输入数据、第二子PCM音频输入数据和第三子PCM音频输入数据分别可以包括多帧PCM音频帧,第一子PCM音频输入数据、第二子PCM音频输入数据和第三子PCM音频输入数据对应的多帧PCM音频帧的数量可以相同也可以不同。
在利用硬件单元播放音频时,播放顺序为:先播放第一子PCM音频输入数据对应的第一子PCM音频输出数据、再播放第二子PCM音频输入数据对应的第二子PCM音频输出数据,最后播放第三子PCM音频输入数据对应的第三子PCM音频输出数据。
在一些示例中,当音频处理模块接收到PCM音频输入数据后,音频处理模块可以对PCM音频输入数据进行音效处理,得到PCM音频输出数据,并通过硬件单元播放PCM音频输出数据。
示例性的,如图4所示,当音频处理模块输出PCM音频输出数据后,可以通过喇叭播放PCM音频输出数据。
在一些示例中,如图5所示,通常情况下,音频处理模块对PCM音频输入数据进行处理,得到PCM音频输出数据的过程可以是:音频处理模块采用高级音效算法(例如,Histen音效算法)对PCM音频输入数据进行处理,得到PCM音频输出数据。其中,高级音效算法可以是高级音效模块调用相应的算法接口实现的。
或者,音频处理模块采用基础音效算法(例如,低时延音效算法)对PCM音频输入数据进行处理,得到PCM音频输出数据。其中,基础音效算法可以是基础音效模块调用基础音效算法对应的接口实现的。
在一些示例中,如图6所示,音频处理模块对PCM音频输入数据进行处理,得到PCM音频输出数据的过程可以是:音频处理模块对PCM音频输入数据进行音效处理和音效保护,得到PCM音频输出数据。
其中,音频处理模块可以包括音效处理模块和音效保护模块。音效处理模块用于对PCM音频输入数据进行音效处理,以得到处理后的PCM音频数据。音效保护模块用于对处理后的PCM音频数据进行音效保护,以得到PCM音频输出数据。
示例性的,对PCM音频输入数据进行音效处理可以是:对PCM音频输入数据应用各种音效处理算法,例如,均衡、压缩、混响、失真等,以利用音效处理算法改变PCM音频输入数据的声音特征,实现特定的音效效果。
对处理后的PCM音频数据进行音效保护可以是对处理后的PCM音频数据应用加密或数字水印等技术,以保护音频内容的版权或防止未经授权的复制。
步骤303、在开始检测到PCM音频输入数据时,采集模块采集第一子PCM音频输入数据的波形信息;在检测到第一子PCM音频输出数据时,采集模块采集第一子PCM音频输出数据的波形信息。
结合前述内容可知,当音效算法运行在CPU上时,第一子PCM音频输出数据可能存在时延过大或POP音等异常现象。为了确定音效算法运行在CPU上时,第一子PCM音频输出数据是否存在异常。采集模块可以实时检测音频处理模块(即CPU中的音频处理模块)是否获取到PCM音频输入数据,以及是否输出PCM音频输出数据。在音频处理模块开始获取PCM音频输入数据时,采集模块采集PCM音频输入数据的波形信息。在音频处理模块输出PCM音频输入数据中的第一子PCM音频输入数据对应的第一子PCM音频输出数据时,采集模块采集第一子PCM音频输出数据的波形信息。
之后,可以利用第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息来确定当音效算法运行在CPU上时,第一子PCM音频输出数据是否存在异常,以便于及时针对异常进行处理。
在一些示例中,当采集模块检测到PCM音频输入数据后,采集模块可以通过电流采集的形式获取PCM音频输入数据的波形信息。当采集模块检测到第一子PCM音频输出数据后,采集模块也可以通过电流采集的形式获取第一子PCM音频输出数据的波形信息。其中,PCM音频输入数据的波形信息中包括第一子PCM音频输入数据的波形信息。
下面以获取第一子PCM音频输出数据的波形信息为例,示例性说明通过电流采集的形式获取PCM音频数据(即第一子PCM音频输入数据、第一子PCM音频输出数据)的波形信息的过程。
如图7所示,在利用CPU(也就是音频处理模块)运行音效算法对PCM音频输入数据中的第一子PCM音频输入数据进行处理后,CPU可以输出第一子PCM音频输出数据。然后CPU可以将第一子PCM音频输出数据通过导线传输到功率放大器(Power Amplifier,PA)。
当功率放大器接收到来自CPU传输的第一子PCM音频输出数据后,功率放大器将第一子PCM音频输出数据进行放大,然后通过喇叭将第一子PCM音频输出数据输出到外部环境中。
采集模块可以通过导线连接到功率放大器和喇叭之间,在功率放大器将放大后的第一子PCM音频输出数据通过导线传输到喇叭的过程中,采集模块采集该导线上的电流数据,从而根据电流数据得出第一子PCM音频输出数据的波形信息。
其中,功率放大器用于将微弱的电信号进行放大,从而增强音频数据输出。
步骤304、采集模块向音频控制模块发送第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息。
在采集模块获取到第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息后,可以将第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息发送给音频控制模块,以使音频控制模块基于第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息,确定第一子PCM音频输出数据是否存在异常。
步骤305、音频控制模块接收第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息。
步骤306、音频控制模块根据第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息,确定第一子PCM音频输出数据的波形信息是否存在异常。
其中,该异常类型包括POP音异常和时延过大异常。
当音频控制模块接收到第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息后,可以根据第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息,确定PCM音频输出数据是否异常,以及异常类型。
在一些示例中,音频控制模块根据第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息,确定PCM音频输出数据是否异常的过程可以是:音频控制模块对第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息进行解析,得到第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果。然后对第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果分别进行标记处理,得到第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果。最后根据第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果,确定第一子PCM音频输出数据是否存在异常。
示例性的,第一子PCM音频输入数据的波形解析结果可以是第一子PCM音频输入数据对应的波形解析图。第一子PCM音频输出数据的波形解析结果可以是第一子PCM音频输出数据对应的波形解析图。图8示例性示出了第一子PCM音频输入数据对应的波形解析图和第一子PCM音频输出数据对应的波形解析图。
图8中的第一子PCM音频输入数据对应的波形解析图包括横线和两个横线之间的空白部分。其中,横线指示的是为0的输入数据,两个横线之间的空白部分是指非0的输入数据。图8中的第一子PCM音频输出数据对应的波形解析图也包括横线和两个横线之间的空白部分。其中,横线指示的是为0的输出数据。两个横线之间的空白部分是指非0的输出数据。
在一些示例中,对第一子PCM音频输入数据的波形解析结果进行标记处理,得到第一子PCM音频输入数据对应的标记结果的过程可以是:对第一子PCM音频输入数据的波形解析结果中为0的输入数据进行打点和计数,非0的输入数据进行打点和计数,得到第一子PCM音频输入数据对应的标记结果。示例性的,为0的输入数据可以是持续为0的输入数据。持续为0是指为0的输入数据持续时长超过1ms。
对第一子PCM音频输出数据的波形解析结果进行标记处理,得到第一子PCM音频输出数据对应的标记结果的过程可以是:对第一子PCM音频输出数据的波形解析结果中为0的输出数据进行打点和计数,非0的输出数据进行打点和计数,得到第一子PCM音频输出数据对应的标记结果。
其中,为0的输入数据或为0的输出数据是指该部分数据没有信号或信号强度非常低。因此,当第一子PCM音频输入数据,或第一子PCM音频输出数据中存在持续为 0的数据(即为0的输入数据或为0的输出数据)时开始打点和计数,即在没有信号或信号强度非常低的时间段内开始记录和计数。当出现非0的输入数据或非0的输出数据时,则表示有信号或信号强度增加,此时结束打点。这意味着当检测到信号或信号强度增加时,停止记录和计数。
这种打点和计数的过程可以用于监测信号的存在和持续时间,通过记录和分析打点和计数的结果,了解信号的传输情况和可能存在的问题。
在得到图8所示的第一子PCM音频输入数据对应的波形解析图和第一子PCM音频输出数据对应的波形解析图之后,可以对第一子PCM音频输入数据的波形解析图和第一子PCM音频输出数据的波形解析图分别进行标记处理,得到图9所示的第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果。
由图9可知,第一子PCM音频输入数据对应的标记结果中标记了多个为0的输入数据、每个为0的输入数据对应的时长、多个非0的输出数据、以及每个非0的输出数据对应的时长。例如,多个为0的输入数据分别是x1、x2、x3、x4。每个为0的输入数据对应的时长分别是x1=10ms,x2=20ms,x3=15ms,x4=30ms。多个非0的输入数据分别是t1、t2、t3、t4。每个非0的输入数据对应的时长分别是t1=2s,t2=3s,t3=2s,t4=1.5s。
第一子PCM音频输出数据对应的标记结果中也标记了多个为0的输出数据、每个为0的输出数据对应的时长、多个非0的输出数据、以及每个非0的输出数据对应的时长。例如,多个为0的输出数据分别是y1、y2、y3、y4。每个为0的输出数据对应的时长分别是y1=10ms,y2=20ms,y3=15ms,y4=30ms。多个非0的输出数据分别是n1、n2、n3、n4。每个非0的输出数据对应的时长分别是n1=2s,n2=3s,n3=2s,n4=1.5s。
在一些示例中,根据第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息,确定PCM音频输出数据是否异常的过程可以是:音频控制模块对第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息进行解析,得到第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果。根据第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果,确定第一子PCM音频输出数据对应的时延值。在第一子PCM音频输出数据对应的时延值大于第一阈值的情况下,确定第一子PCM音频输出数据存在时延过大异常。例如,第一阈值可以是120ms。
在一些示例中,根据第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果,确定第一子PCM音频输出数据对应的时延值的过程可以是:对第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果分别进行标记处理,得到第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果。根据第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果,确定第一子PCM音频输出数据对应的时延值。
在一些示例中,根据第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果,确定第一子PCM音频输出数据对应的时延值可以是:首先,在第一子PCM音频输入数据对应的标记结果中筛选满足第一要求时对应的多个第一时间段;在第一子PCM音频输出数据对应的标记结果中筛选满足第二要求时对应的多个第二时间段。然后对多个第一时间段和多个第二时间段进行匹配,得到多个第一时间段和多个第二时间段的对应关系。最后根据多个第一时间段和多个第二时间的对应关系,确定第一子PCM音频输出数据对应的时延值。
其中,第一要求为:对应的时长大于第三阈值的非0的输入数据。第二要求为:对应的时长大于第四阈值的非0输出数据。例如,第三阈值为1s。第四阈值为1s。
例如,结合图9,在第一子PCM音频输入数据对应的标记结果中筛选满足第一要求时对应的多个第一时间段为:t1、t2、t3、t4。在第一子PCM音频输出数据对应的标记结果中筛选满足第二要求时对应的多个第二时间段为n1、n2、n3、n4。由于t1=n1=2s,t2=n2=3s,t3=n3=2s,t4=n4=1.5s,然后对多个第一时间段(即t1、t2、t3、t4)和多个第二时间段(即n1、n2、n3、n4)进行匹配,得到多个第一时间段和多个第二时间段的对应关系为:t1和n1相对应;t2和n2相对应;t3和n3相对应;t4和n4相对应。最后根据多个第一时间段和多个第二时间的对应关系,确定第一子PCM音频输出数据对应的时延值可以是:在确定出多个第一时间段和多个第二时间段的对应关系后,可以根据对应的两个时间段的起始时刻之间的差值,得出第一子PCM音频输出数据对应的时延值。
示例性的,根据对应的两个时间段的起始时刻之间的差值,得出第一子PCM音频输出数据对应的时延值可以是:根据t1对应的起始时刻以及n1对应的起始时刻,得出n1对应的起始时刻和t1对应的起始时刻之间的差值,将n1对应的起始时刻和t1对应的起始时刻之间的差值确定为第一子PCM音频输出数据对应的时延值。例如,第一子PCM音频输出数据对应的时延值为100ms。
还可以是根据t2对应的起始时刻以及n2对应的起始时刻,得出n2对应的起始时刻和t2对应的起始时刻之间的差值,将n2对应的起始时刻和t2对应的起始时刻之间的差值确定为第一子PCM音频输出数据对应的时延值。
或者,根据t3对应的起始时刻以及n3对应的起始时刻,得出n3对应的起始时刻和t3对应的起始时刻之间的差值,将n3对应的起始时刻和t3对应的起始时刻之间的差值确定为第一子PCM音频输出数据对应的时延值。
又或者,根据t4对应的起始时刻以及n4对应的起始时刻,得出n4对应的起始时刻和t4对应的起始时刻之间的差值,将n4对应的起始时刻和t4对应的起始时刻之间的差值确定为第一子PCM音频输出数据对应的时延值。图9示例性示出根据t4对应的起始时刻以及n4对应的起始时刻确定第一子PCM音频输出数据对应的时延值。
在一些示例中,在得到第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果之后,方法还包括:在第一子PCM音频输出数据的波形解析结果中查找为0的输出数据,当为0的输出数据对应的时长处于预设范围,且目标时长内为0的输出数据的个数大于等于第二阈值的情况下,在第一子PCM音频输入数据的波形解析结果中查找与为0的输出数据对应的输入数据;在第一子PCM音频输入数据的波形解析结果中不包括与为0的输出数据对应的输入数据的情况下,确定第一子PCM音频输出数据存在POP音异常。
在一些示例中,该方法还包括:对第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果分别进行标记处理,得到第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果。然后根据第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果,确定第一子PCM音频输出数据是否存在POP音异常。
在一些示例中,在第一子PCM音频输出数据的波形解析结果中查找为0的输出数据,当为0的输出数据对应的时长处于预设范围,且为0的输出数据的个数大于等于第二阈值的情况下,在第一子PCM音频输入数据的波形解析结果中查找与为0的输出数据对应的输入数据的过程可以是:对第一子PCM音频输入数据的波形解析结果和第一子PCM音频输出数据的波形解析结果分别进行标记处理,得到第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果。在第一子PCM音频输出数据对应的标记结果中查找为0的输出数据,当为0的输出数据对应的时长处于预设范围,且目标时长内为0的输出数据的个数大于等于第二阈值的情况下,在第一子PCM音频输入数据对应的标记结果中查找与为0的输出数据对应的输入数据。
在第一子PCM音频输入数据的波形解析结果中不包括与为0的输出数据对应的输入数据的情况下,确定第一子PCM音频输出数据存在POP音异常。在第一子PCM音频输入数据的波形解析结果中包括与为0的输出数据对应的输入数据的情况下,确定第一子PCM音频输出数据不存在POP音异常。
由此可知,POP音是指为0的输出数据持续时间过长,且出现多次。所以在得到第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果后,可以在第一子PCM音频输出数据对应的标记结果中查找为0的输出数据,并判断为0的输出数据对应的时长是否处于预设范围,且目标时长内为0的输出数据的出现个数大于等于第二阈值。
例如,预设范围为1ms~100ms,第二阈值为10次,目标时长为1s。本公开对预设范围和第二阈值的具体数值不作限定,可以随着实际情况灵活调整,本公开对此不作限制。
在一些示例中,根据第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果,确定第一子PCM音频输出数据是否存在POP音异常的过程可以是:在第一子PCM音频输入数据对应的标记结果中筛选满足第一要求时对应的多个第一时间段;在第一子PCM音频输出数据对应的标记结果中筛选满足第二要求时对应的多个第二时间段。然后,将多个第一时间段和多个第二时间段进行匹配,得到多个第一时间段和多个第二时间段的对应关系。接着,在第一子PCM音频输出数据对应的标记结果中筛选满足第三要求时对应的多个第三时间段。最后,在第一子PCM音频输入数据对应的标记结果中查找是否存在与多个第三时间段匹配的多个第四时间段。若存在则说明第一子PCM音频输出数据不存在POP音异常;若不存在则说明第一子PCM音频输出数据存在POP音异常。
其中,第三要求是:为0的输出数据对应的时长处于预设范围内,且目标时长内为0的输出数据的出现个数大于等于第二阈值。
例如,图10示例性示出了另一种第一子PCM音频输入数据对应的波形解析图、第一子PCM音频输出数据对应的波形解析图。第一子PCM音频输入数据对应的波形解析图中的横线指示的是为0的输入数据。两个横线之间的空白部分是指非0的输入数据。第一子PCM音频输出数据对应的波形解析图中的横线指示的是为0的输出数据。两个横线之间的空白部分是指非0的输出数据。
然后对第一子PCM音频输入数据对应的波形解析图、第一子PCM音频输出数据对应的波形解析图进行标记,得到图11所示的第一子PCM音频输入数据对应的标记结果、第一子PCM音频输出数据对应的标记结果。
在第一子PCM音频输入数据对应的标记结果中,非0的输入数据分别是t5、t6、t7、t8。非0的输入数据对应的时长t5=2s,t6=3s,t7=2s,t8=1.5s。在第一子PCM音频输出数据对应的标记结果中,非0的输出数据分别是n5、n6、n7、n8、n9、n10、n11、n12、n13、n14。非0的输出数据对应的时长n5=0.45s、n6=0.1ms、n7=0.45ms、n8=1.455s、n9=0.09ms、n10=1.455s、n11=0.45s、n12=0.1s、n13=0.45s、n14=1.5s。
参考图11,在第一子PCM音频输入数据对应的标记结果中筛选满足第一要求时对应的多个第一时间段为t5、t6、t7、t8。在第一子PCM音频输出数据对应的标记结果中筛选满足第二要求时对应的多个第二时间段为n8、n10、n14。由于t1、t2、t3与n8、n10均不相同,t4=n14=1.5s,所以对多个第一时间段(即t1、t2、t3、t4)和多个第二时间段(即n8、n10、n14)进行匹配,得到多个第一时间段和多个第二时间段的对应关系为t4和n14相对应。接着,在第一子PCM音频输出数据对应的标记结果中筛选满足第三要求时对应的至少一个第三时间段。最后根据该至少一个第三时间段判断第一子PCM音频输出数据是否存在POP音异常。
例如,在第一子PCM音频输出数据对应的标记结果中筛选满足第三要求时对应的多个第三时间段为:n10~n20。则在第一子PCM音频输入数据对应的标记结果中查找与多个第三时间段(即n10~n15)匹配的多个第四时间段(例如,t10~t20)。若第一子PCM音频输入数据对应的标记结果中包括t10~t20,则认为第一子PCM音频输出数据不存在POP音异常。若第一子PCM音频输入数据对应的标记结果中不包括t10~t20,则说明多个第三时间段n10~n20对应的输出数据为异常音频数据,即第一子PCM音频输出数据存在POP音异常。
可以理解的是,当第一子PCM音频输出数据存在异常,该异常类型可以既包括POP音异常,又包括时延过大异常。或者,该异常类型包括POP音异常和时延过大异常中的一项。
在确定出第一子PCM音频输出数据存在异常后,可以基于异常类型,确定与异常类型对应的预设音效算法,采用预设音效算法对第二子PCM音频输入数据进行音效处理,得到第二子PCM音频输出数据;并播放第二子PCM音频输出数据。
其中,预设音效算法包括与POP音异常对应的低时延音效算法,以及与时延过大异常对应的待处理音效算法。
步骤307、在确定第一子PCM音频输出数据存在时延过大异常的情况下,音频控制模块向音频处理模块发送时延处理指令。
其中,时延处理指令用于指示音频处理模块按照待处理音效算法对第二子PCM音频输入数据进行音效处理。
时延处理指令包括待处理音效算法。待处理音效算法可以是第一音效算法、第二音效算法或第三音效算法中的任一个。
结合步骤302可知,当音频处理模块接收到第一子PCM音频输入数据时,音频处理模块可以按照音效场景对应的标准音效算法对第一子PCM音频输入数据进行处理,从而得到第一子PCM音频输出数据。若确定出第一子PCM音频输出数据存在时延过大异常,有可能是因为音频处理模块运行音效场景对应的标准音效算法所花费的时延较大造成的。针对这种情况,可以使用其他音效算法对后续的PCM音频输入数据(即第二子PCM音频输入数据)进行处理,从而降低第二子PCM音频输出数据的时延。
在确定第一子PCM音频输出数据存在异常,且异常类型为时延过大异常时,音频控制模块可以向音频处理模块发送时延处理指令,以利用时延处理指令,控制音频处理模块利用待处理音效算法处理第二子PCM音频输入数据,从而降低第二子PCM音频输出数据的时延。
在一些示例中,音效算法可以被划分为多个等级。示例性的,音效算法可以按照运行时所占用的硬件资源被划分为多个等级。例如,音效算法可以被划分为第一音效算法(又可以称为强音效算法)、第二音效算法(又可以称为中音效算法)以及第三音效算法(又可以称为弱音效算法)。
示例性的,第一音效算法、第二音效算法以及第三音效算法在不同音效场景下运行时所占用的硬件资源(即CPU)和时延如表1所示:
表1
结合表1可知,当前的音效场景可以包括标准音效场景、影院音效场景、体育音效场景、音乐音效场景、新闻音效场景、通话音效场景、游戏音效场景以及低时延音效场景。
在标准音效场景下,运行第一音效算法时,CPU占用9%,时延会达到60ms~90ms。运行第二音效算法时,CPU占用4%~9%,时延会达到30ms~60ms。运行第三音效算法时,CPU占用小于4%,时延10ms~30ms。
在影院音效场景下,运行第一音效算法时,CPU占用9%,时延会达到60ms~90ms。运行第二音效算法时,CPU占用4%~9%,时延会达到30ms~60ms。运行第三音效算法时,CPU占用小于4%,时延10ms~30ms。
在体育音效场景下,运行第一音效算法时,CPU占用9%,时延会达到60ms~90ms。运行第二音效算法时,CPU占用4%~9%,时延会达到30ms~60ms。运行第三音效算法时,CPU占用小于4%,时延10ms~30ms。
在音乐音效场景下,运行第一音效算法时,CPU占用9%,时延会达到60ms~90ms。运行第二音效算法时,CPU占用4%~9%,时延会达到30ms~60ms。运行第三音效算法时,CPU占用小于4%,时延10ms~30ms。
在新闻音效场景下,运行第一音效算法时,CPU占用9%,时延会达到60ms~90ms。运行第二音效算法时,CPU占用4%~9%,时延会达到30ms~60ms。运行第三音效算法时,CPU占用小于4%,时延10ms~30ms。
在通话音效场景下,运行第一音效算法时,CPU占用9%,时延会达到60ms~90ms。运行第二音效算法时,CPU占用4%~9%,时延会达到30ms~60ms。运行第三音效算法时,CPU占用小于4%,时延10ms~30ms。
在游戏音效场景下,运行第一音效算法时,CPU占用6%,时延会达到30ms~60ms。运行第二音效算法时,CPU占用3%~6%,时延会达到15ms~30ms。运行第三音效算法时,CPU占用小于3%,时延0ms~15ms。
在低时延音效场景下,运行第一音效算法时,CPU占用2%以下,时延在10ms以内。运行第二音效算法时,CPU占用1%以下,时延在5ms以内。运行第三音效算法时,不占用CPU,通过音效透传的方式实现时延为0ms。
结合上述第一音效算法、第二音效算法以及第三音效算法在不同音效场景下运行时所占用的硬件资源和时延可知,当第一子PCM音频输出数据对应的时延值过大时,音频控制模块可以根据第一子PCM音频输出数据对应的时延值,向音频处理模块发送的时延处理指令。
该时延处理指令包括待处理音效算法。通常,当第一子PCM音频输出数据对应的时延值很大时,时延处理指令中可以包括在不同音效场景下运行时所占用的硬件资源和时延较小的音效算法。当音频输出时延较大时,时延处理指令中可以包括在不同音效场景下运行时所占用的硬件资源和时延中等的音效算法。这样,通过采用不同的音效算法对第二PCM音频输入数据进行处理,可以降低音频处理模块输出的第二子PCM音频输出数据对应的时延值。
在一些示例中,在第一子PCM音频输出数据对应的时延值处于第一预设范围内时,确定待处理音效算法为第一音效算法。在第一子PCM音频输出数据对应的时延值处于第二预设范围内时,确定待处理音效算法为第二音效算法。在第一子PCM音频输出数据对应的时延值处于第三预设范围内时,确定待处理音效算法为第三音效算法。
其中,第一预设范围的上限值小于第二预设范围的下限值;第二预设范围的上限值小于第三预设范围的下限值;第一音效算法运行时所占用的硬件资源大于第二音效算法运行时所占用的硬件资源;第二音效算法运行时所占用的硬件资源大于第三音效算法运行时所占用的硬件资源。
例如,第一预设范围为120ms~180ms。第二预设范围为180ms~240ms。第三预设范围为>240ms。
当120ms<第一子PCM音频输出数据对应的时延值≤180ms,时延处理指令中可以包括第一音效算法,以使音频处理模块使用第一音效算法处理第二PCM音频输入数据。
当180ms<第一子PCM音频输出数据对应的时延值≤240ms,时延处理指令中可以包括第二音效算法,以使音频处理模块使用第二音效算法处理第二PCM音频输入数据。
当240ms<第一子PCM音频输出数据对应的时延值,时延处理指令中可以包括第三音效算法,音频处理模块可以使用第三音效算法处理第二PCM音频输入数据。
步骤308、音频处理模块接收时延处理指令,并响应于时延处理指令调用待处理音效算法处理第二PCM音频输入数据,得到第二子PCM音频输出数据。
当接收到时延处理指令后,音频处理模块可以响应于时延处理指令调用待处理音效算法对第二PCM音频输入数据进行处理,从而得到第二子PCM音频输出数据。之后,可以通过喇叭为用户播放第二子PCM音频输出数据。
在一些示例中,在接收到时延处理指令后,音频处理模块可以响应于时延处理指令调用高级音效模块中待处理音效算法对应的接口,从而使用待处理音效算法处理第二子PCM音频输出数据。
示例性的,高级音效模块可以包括多个接口,每个接口用于触发不同的音效算法。若音效算法划分的等级越详细,高级音效模块中接口数量也就越多。结合步骤307,如图12所示,高级音效模块可以包括3个接口,分别是第一接口、第二接口和第三接口。其中,第一接口用于触发调用第一音效算法。第二接口用于触发调用第二音效算法。第三接口用于触发调用第三音效算法。
可以理解的是,在得到第二子PCM音频输出数据后,结合步骤303,采集模块可以继续获取第二子PCM音频输入数据的波形信息和第二子PCM音频输出数据的波形信息,并结合步骤304-步骤306,判断第二子PCM音频输出数据是否存在异常。若第二子PCM音频输出数据存在POP异常,则可以参考步骤309-步骤310对后续的子PCM音频输入数据进行处理,从而解决POP异常。
步骤309、在确定第一子PCM音频输出数据存在POP音异常的情况下,音频控制模块向音频处理模块发送POP音处理指令。
其中,POP音处理指令用于指示音频处理模块按照低时延音效算法对第二子PCM音频输入数据进行音效处理。
POP音处理指令包括低时延音效算法。
在根据第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息,确定出第一子PCM音频输出数据存在异常,且异常类型为POP音异常时,音频控制模块可以向音频处理模块发送POP音处理指令,以使音频处理模块按照低时延音效算法对第二子PCM音频输入数据进行音效处理,以避免后续的第二子PCM音频输出数据存在POP音异常。
在一些示例中,在确定第一子PCM音频输出数据存在POP音异常的情况下,音频控制模块可以向音频处理模块发送POP音处理指令,以利用POP音处理指令,控制音频处理模块利用低时延音效算法对第二子PCM音频输入数据进行处理,这样,得到的第二子PCM音频输出数据将不会存在POP音异常。
步骤310、音频处理模块接收POP音处理指令,并响应于POP音处理指令调用低时延音效算法对第二子PCM音频输入数据进行处理,得到第二子PCM音频输出数据。
音频处理模块接收到POP音处理指令后,可以响应于POP音处理指令调用低时延音效算法对第二子PCM音频输入数据进行处理,从而得到第二子PCM音频输出数据。之后,可以通过喇叭为用户播放第二子PCM音频输出数据。
在一些示例中,在接收到POP音处理指令后,音频处理模块可以响应于POP音处理指令调用基础音效模块,使基础音效模块采用低时延音效算法对第二子PCM音频输入数据进行处理,从而得到第二子PCM音频输出数据。
通常情况下,如图13所示,当应用播放音频时,会参考非低时延场景对应的处理路线,调用hal层中的高级音效模块处理音频数据,从而为用户提供更好的音频体验。当检测到音频数据(即第一子PCM音频输出数据)中存在POP音异常时,可以参考低时延场景对应的处理路线,调用hal层中的基础音效模块处理音频数据,从而消除第二子PCM音频输出数据中的POP音异常。
由于采集模块在一开始检测到第一子PCM音频输入数据和第一子PCM音频输出数据时,就会持续的获取第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息,并将第一子PCM音频输入数据的波形信息和第一子PCM音频输出数据的波形信息发送至音频控制模块。由于PCM音频输入数据是一段音频,所以当音频控制模块识别出第一子PCM音频输出数据存在POP音异常时,可以向音频处理模块发送POP音处理指令,使音频处理模块调用基础音效模块对第二子PCM音频输入数据进行处理,从而得到不存在POP音异常的第二子PCM音频输出数据。
结合前述可知,POP音异常是CPU调度不及时或被抢占导致的,当基础音效模块在利用低时延音效算法处理第二子PCM音频输入数据时,由于低时延音效算法占用的CPU资源几乎为0。所以在利用低时延音效算法处理第二子PCM音频输入数据的过程中,即使仍然出现CPU调度不及时或被抢占的情况,也不会对第二子PCM音频输入数据的处理过程产生影响。因此,当第一子PCM音频输出数据中存在POP音异常时,音频处理模块可以调用基础音效模块对第二子PCM音频输入数据进行处理,从而保证输出的第二子PCM音频输出数据不存在POP音异常。
可以理解的是,在得到第二子PCM音频输出数据后,结合步骤303,采集模块可以继续获取第二子PCM音频输入数据的波形信息和第二子PCM音频输出数据的波形信息,并结合步骤304-步骤306,判断第二子PCM音频输出数据是否存在音频数据异常。若第二子PCM音频输出数据存在时延过大异常,则可以参考步骤307-步骤308对后续的子PCM音频输入数据进行处理,从而解决时延过大异常。
步骤311、音频控制模块周期性的检测CPU loading的数值,在CPU loading的数值满足要求的情况下,音频控制模块向音频处理模块发送音效调整指令。
其中,音效调整指令用于指示音频处理模块按照音效场景对应的标准音效算法处理第三子PCM音频输入数据。音效调整指令包括音效场景对应的标准音效算法。
结合前述可知,POP音异常是因为CPU的资源被抢占才出现的,所以在第一子PCM音频输出数据出现POP音异常之后,可以利用低时延音效算法处理第二子PCM音频输入数据。由于低时延音效算法能够提供的音效效果有限,因此音频控制模块可以按照固定周期检测CPU loading的数值。CPU loading的数值可以在一定程度上反应CPU的占用情况。示例性的,固定周期为1s。
当CPU loading的数值满足要求时,说明当前CPU的资源被抢占的现象已有所缓解,且当前CPU的资源能够满足按照音效场景对应的标准音效算法处理第三子PCM音频输入数据。因此,在CPU loading的数值满足要求的情况下,音频控制模块可以向音频处理模块发送音效调整指令,以使音频处理模块按照音效场景对应标准音效算法处理第三子PCM音频输出数据,以提升第三子PCM音频输出数据的音效效果,进而提高用户的音效体验。
在一些示例中,CPU loading的数值满足要求可以是CPU loading的数值小于第五阈值。例如,第五阈值可以是60%或者80%。
步骤312、音频处理模块接收音效调整指令,并响应于音频调整指令,按照音效场景对应的标准音效算法处理第三子PCM音频输入数据,得到第三子PCM音频输出数据。
当接收到音效调整指令后,音频处理模块可以响应于音效调整指令调用音效场景对应的标准音效算法处理第三子PCM音频输入数据,得到第三子PCM音频输出数据。之后,可以通过喇叭为用户播放第三子PCM音频输出数据。相比较而言,第三子PCM音频输出数据的音效效果优于基于步骤308得到的第二子PCM音频输出数据,可以为用户提供更好的音频体验。
需要说明的是,本公开实施例可以不限定步骤307-步骤308和步骤309-步骤312之间的执行顺序。示例性的,可以先执行步骤307-步骤308,后执行步骤309-步骤312;也可以先执行步骤309-步骤312,后执行步骤307-步骤308;还可以同时执行步骤307-步骤308和步骤309-步骤312,或者,仅执行步骤307-步骤308,又或者仅执行步骤309-步骤312。具体可以根据实际使用需求确定。
可以理解的是,在得到第三子PCM音频输出数据后,结合步骤303,采集模块可以继续获取第三子PCM音频输入数据的波形信息和第三子PCM音频输出数据的波形信息,并结合步骤304-步骤306,判断第三子PCM音频输出数据是否存在异常。若第三子PCM音频输出数据存在时延过大异常,则可以参考步骤307-步骤308对后续的子PCM音频输入数据进行处理,从而解决时延过大异常。若第三子PCM音频输出数据存在POP音异常,则可以参考步骤309-步骤310对后续的子PCM音频输入数据进行处理,从而解决POP音异常。
因此,采用本方案可以PCM音频输入数据可以包括多段子PCM音频输入数据(例如,PCM音频输入数据包括第一子PCM音频输入数据和第二子PCM音频输入数据)。在利用第一子PCM音频输入数据,得到第一子PCM音频输出数据后,可以确定第一子PCM音频输出数据是否存在异常,若存在异常,则根据异常类型,采用与异常类型对应的预设音效算法继续处理后续子PCM音频输入数据(例如,第二子PCM音频输入数据),从而使后续子PCM音频输出数据(例如,第二子PCM音频输出数据)不再异常。这样,不仅能够实现PCM音频输出数据的异常检测和异常处理,还能在当前子PCM音频输出数据(例如,第一子PCM音频输出数据)出现异常时,根据当前子PCM音频输出数据的异常,修正后续子PCM音频输出数据,实现音频处理的闭环控制,从而降低后续PCM音频输出数据出现异常的可能性。
另外,由于POP音异常是CPU调度不及时或被抢占导致的,所以当利用低时延音效算法处理第二子PCM音频输入数据时,因为低时延音效算法占用的CPU资源几乎为0,即使仍然出现CPU调度不及时或被抢占的情况,也不会对第二子PCM音频输入数据的处理过程产生影响。故利用低时延音效算法处理第二子PCM音频输入数据,可以保证输出的第二子PCM音频输出数据不存在POP音异常。
时延过大异常有可能是因为运行音效场景对应的标准音效算法所花费的时延较大造成的。因此可以根据第一子PCM音频输出数据的时延值选择与其适配的音效算法处理后续子PCM音频输入数据。这样,不仅能够解决时延过大问题,也能避免后续子PCM音频输出数据的音效效果与第一子PCM音频输出数据的音效效果相差太多。
应理解,本公开提供的上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本公开实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在一个例子中,以上装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或这些集成电路形式中至少两种的组合。
再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如CPU或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统SOC的形式实现。
在一种实现中,以上装置实现以上方法中各个对应步骤的单元可以通过处理元件调度程序的形式实现。例如,该装置可以包括处理元件和存储元件,处理元件调用存储元件存储的程序,以执行以上方法实施例的方法。存储元件可以为与处理元件处于同一芯片上的存储元件,即片内存储元件。
在另一种实现中,用于执行以上方法的程序可以在与处理元件处于不同芯片上的存储元件,即片外存储元件。此时,处理元件从片外存储元件调用或加载程序于片内存储元件上,以调用并执行以上方法实施例的方法。
例如,本公开实施例还可以提供一种装置,如:电子设备,可以包括:处理器,用于存储该处理器可执行指令的存储器。该处理器被配置为执行上述指令时,使得该电子设备实现如前述实施例的数据处理方法。该存储器可以位于该电子设备之内,也可以位于该电子设备之外。且该处理器包括一个或多个。
在又一种实现中,该装置实现以上方法中各个步骤的单元可以是被配置成一个或多个处理元件,这些处理元件可以设置于对应上述的电子设备上,这里的处理元件可以为集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或者这些类集成电路的组合。这些集成电路可以集成在一起,构成芯片。
例如,本公开实施例还提供一种芯片,如图14所示,该芯片系统包括至少一个处理器1401和至少一个接口电路1402。处理器1401和接口电路1402可通过线路互联。例如,接口电路1402可用于从其它装置接收信号。又例如,接口电路1402可用于向其它装置(例如处理器1401)发送信号。
例如,接口电路1402可读取设备中存储器中存储的指令,并将该指令发送给处理器1401。当指令被处理器1401执行时,可使得电子设备(如图1所示的电子设备100)执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本公开实施例对此不作具体限定。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备可以实现如上述的数据处理方法。
本公开实施例还提供一种计算机程序产品,包括如上述电子设备运行的计算机指令,当计算机指令在电子设备中运行时,使得电子设备实可以现如上述的数据处理方法。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,如:程序。该软件产品存储在一个程序产品,如计算机可读存储介质中,包括若干指令用以使得一个终端设备(可以是单片机,芯片等)或处理器(processor)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
例如,本公开实施例还可以提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备实现如前述方法实施例中的数据处理方法。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何在本公开揭露的技术范围内的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种音效处理方法,其特征在于,应用于电子设备,所述方法包括:
获取脉冲编码调制PCM音频输入数据;其中,所述PCM音频输入数据包括第一子PCM音频输入数据和第二子PCM音频输入数据;
对所述第一子PCM音频输入数据进行音效处理,得到第一子PCM音频输出数据;
在根据所述第一子PCM音频输入数据和所述第一子PCM音频输出数据,确定所述第一子PCM音频输出数据存在异常的情况下,确定异常类型,以及与所述异常类型对应的预设音效算法;其中,所述异常类型包括POP音异常和时延过大异常,所述预设音效算法包括与所述POP音异常对应的低时延音效算法,以及与所述时延过大异常对应的待处理音效算法;
采用所述预设音效算法对所述第二子PCM音频输入数据进行音效处理,得到第二子PCM音频输出数据,并播放所述第二子PCM音频输出数据;
其中,所述根据所述第一子PCM音频输入数据和所述第一子PCM音频输出数据,确定所述第一子PCM音频输出数据存在异常,包括:
在检测到所述第一子PCM音频输入数据和所述第一子PCM音频输出数据时,采集所述第一子PCM音频输入数据的波形信息和所述第一子PCM音频输出数据的波形信息;
对所述第一子PCM音频输入数据的波形信息和所述第一子PCM音频输出数据的波形信息进行解析,得到所述第一子PCM音频输入数据的波形解析结果和所述第一子PCM音频输出数据的波形解析结果;
在所述第一子PCM音频输出数据的波形解析结果中查找为0的输出数据,当所述为0的输出数据对应的时长处于预设范围,且目标时长内所述为0的输出数据的个数大于等于第二阈值的情况下,在所述第一子PCM音频输入数据的波形解析结果中查找与所述为0的输出数据对应的输入数据;
在所述第一子PCM音频输入数据的波形解析结果中不包括与所述为0的输出数据对应的输入数据的情况下,确定所述第一子PCM音频输出数据存在所述POP音异常。
2.根据权利要求1所述的方法,其特征在于,在所述得到所述第一子PCM音频输入数据的波形解析结果和所述第一子PCM音频输出数据的波形解析结果之后,所述方法还包括:
根据所述第一子PCM音频输入数据的波形解析结果和所述第一子PCM音频输出数据的波形解析结果,确定所述第一子PCM音频输出数据对应的时延值;
在所述第一子PCM音频输出数据对应的时延值大于第一阈值的情况下,确定所述第一子PCM音频输出数据存在所述时延过大异常。
3.根据权利要求1所述的方法,其特征在于,所述待处理音效算法为第一音效算法、第二音效算法以及第三音效算法中的任一个;当所述第一音效算法、所述第二音效算法以及所述第三音效算法运行时,所述第一音效算法、所述第二音效算法以及所述第三音效算法所占用的硬件资源不同。
4.根据权利要求2所述的方法,其特征在于,在异常类型为所述时延过大异常时,所述方法还包括:
在所述第一子PCM音频输出数据对应的时延值处于第一预设范围内时,确定所述待处理音效算法为第一音效算法;
在所述第一子PCM音频输出数据对应的时延值处于第二预设范围内时,确定所述待处理音效算法为第二音效算法;
在所述第一子PCM音频输出数据对应的时延值处于第三预设范围内时,确定所述待处理音效算法为第三音效算法;
其中,所述第一预设范围的上限值小于所述第二预设范围的下限值;所述第二预设范围的上限值小于所述第三预设范围的下限值;所述第一音效算法运行时所占用的硬件资源大于所述第二音效算法运行时所占用的硬件资源;所述第二音效算法运行时所占用的硬件资源大于所述第三音效算法运行时所占用的硬件资源。
5.根据权利要求1所述的方法,其特征在于,在异常类型为所述POP音异常时,所述方法还包括:
获取所述电子设备的硬件资源占用值和所述PCM音频输入数据对应的音效场景;
在所述硬件资源占用值满足要求的情况下,按照所述音效场景对应的标准音效算法处理第三子PCM音频输入数据,得到第三子PCM音频输出数据,所述PCM音频输入数据还包括所述第三子PCM音频输入数据。
6.根据权利要求5所述的方法,其特征在于,所述音效场景包括标准音效场景、影院音效场景、体育音效场景、音乐音效场景、新闻音效场景、通话音效场景、游戏音效场景和低时延音效唱。
7.根据权利要求2所述的方法,其特征在于,所述根据所述第一子PCM音频输入数据的波形解析结果和所述第一子PCM音频输出数据的波形解析结果,确定所述第一子PCM音频输出数据对应的时延值,包括:
对所述第一子PCM音频输入数据的波形解析结果和所述第一子PCM音频输出数据的波形解析结果分别进行标记处理,得到第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果;
根据第一子PCM音频输入数据对应的标记结果和第一子PCM音频输出数据对应的标记结果,确定所述第一子PCM音频输出数据对应的时延值。
8.一种电子设备,其特征在于,所述电子设备包括处理器,用于存储所述处理器可执行指令的存储器;所述处理器被配置为执行所述指令时,使得所述电子设备实现如权利要求1至7中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序指令;其特征在于,
当所述计算机程序指令被电子设备执行时,使得电子设备实现如权利要求1至7中任一项所述的方法。
CN202311724199.8A 2023-12-15 2023-12-15 音效处理方法和电子设备 Active CN117406654B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311724199.8A CN117406654B (zh) 2023-12-15 2023-12-15 音效处理方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311724199.8A CN117406654B (zh) 2023-12-15 2023-12-15 音效处理方法和电子设备

Publications (2)

Publication Number Publication Date
CN117406654A CN117406654A (zh) 2024-01-16
CN117406654B true CN117406654B (zh) 2024-04-16

Family

ID=89492963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311724199.8A Active CN117406654B (zh) 2023-12-15 2023-12-15 音效处理方法和电子设备

Country Status (1)

Country Link
CN (1) CN117406654B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126166A (zh) * 2016-06-16 2016-11-16 广东欧珀移动通信有限公司 一种音效处理的方法及终端
CN106878866A (zh) * 2017-03-03 2017-06-20 广东欧珀移动通信有限公司 音频信号处理方法、装置及终端
CN109107158A (zh) * 2018-09-04 2019-01-01 Oppo广东移动通信有限公司 音效处理方法、装置以及电子设备
CN111078448A (zh) * 2019-08-06 2020-04-28 华为技术有限公司 一种处理音频异常的方法及电子设备
CN112786070A (zh) * 2020-12-28 2021-05-11 Oppo广东移动通信有限公司 音频数据处理方法、装置、存储介质与电子设备
CN114173160A (zh) * 2021-12-01 2022-03-11 上海哔哩哔哩科技有限公司 直播推流方法及装置
WO2023029967A1 (zh) * 2021-08-31 2023-03-09 华为技术有限公司 一种播放音频的方法及电子设备
CN116795753A (zh) * 2022-03-14 2023-09-22 华为技术有限公司 音频数据的传输处理的方法及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126166A (zh) * 2016-06-16 2016-11-16 广东欧珀移动通信有限公司 一种音效处理的方法及终端
CN106878866A (zh) * 2017-03-03 2017-06-20 广东欧珀移动通信有限公司 音频信号处理方法、装置及终端
CN109107158A (zh) * 2018-09-04 2019-01-01 Oppo广东移动通信有限公司 音效处理方法、装置以及电子设备
CN111078448A (zh) * 2019-08-06 2020-04-28 华为技术有限公司 一种处理音频异常的方法及电子设备
CN112786070A (zh) * 2020-12-28 2021-05-11 Oppo广东移动通信有限公司 音频数据处理方法、装置、存储介质与电子设备
WO2023029967A1 (zh) * 2021-08-31 2023-03-09 华为技术有限公司 一种播放音频的方法及电子设备
CN114173160A (zh) * 2021-12-01 2022-03-11 上海哔哩哔哩科技有限公司 直播推流方法及装置
CN116795753A (zh) * 2022-03-14 2023-09-22 华为技术有限公司 音频数据的传输处理的方法及电子设备

Also Published As

Publication number Publication date
CN117406654A (zh) 2024-01-16

Similar Documents

Publication Publication Date Title
CN110109636B (zh) 投屏方法、电子设备以及系统
US20240192912A1 (en) Screen projection method for electronic device and electronic device
JP7369281B2 (ja) デバイス能力スケジューリング方法および電子デバイス
JP7533854B2 (ja) 投影データ処理方法および装置
US20220248160A1 (en) Sound processing method and apparatus
CN113835649B (zh) 一种投屏方法和终端
US20220159453A1 (en) Method for Using Remote SIM Module and Electronic Device
CN108769738B (zh) 视频处理方法、装置、计算机设备和存储介质
CN112533014B (zh) 视频直播中目标物品信息处理和显示方法、装置及设备
CN113455013B (zh) 用于处理图像的电子设备及其图像处理方法
US20230335081A1 (en) Display Synchronization Method, Electronic Device, and Readable Storage Medium
CN116052701B (zh) 一种音频处理方法及电子设备
EP4354270A1 (en) Service recommendation method and electronic device
US11825235B2 (en) Electronic device for processing image and image processing method thereof
CN116155874A (zh) 音频传输方法、电子设备及存储介质
CN112911337A (zh) 用于配置终端设备的视频封面图片的方法和装置
US12126523B2 (en) Method for multiplexing HTTP channels and terminal
CN117406654B (zh) 音效处理方法和电子设备
CN114040319B (zh) 一种终端设备外放音质优化方法、装置、设备和介质
CN114327317B (zh) 镜像投屏方法、装置及系统
CN117440194A (zh) 一种投屏画面的处理方法及相关装置
CN116055613B (zh) 一种投屏方法和设备
CN115499699B (zh) 一种投屏方法
CN116095512B (zh) 终端设备的拍照方法及相关装置
CN115460445B (zh) 电子设备的投屏方法和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant