CN117707464A - 音频处理方法及相关设备 - Google Patents
音频处理方法及相关设备 Download PDFInfo
- Publication number
- CN117707464A CN117707464A CN202310905404.4A CN202310905404A CN117707464A CN 117707464 A CN117707464 A CN 117707464A CN 202310905404 A CN202310905404 A CN 202310905404A CN 117707464 A CN117707464 A CN 117707464A
- Authority
- CN
- China
- Prior art keywords
- audio
- volume
- electronic device
- application
- module
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 claims abstract description 94
- 230000008569 process Effects 0.000 claims abstract description 52
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 46
- 230000006870 function Effects 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 17
- 230000000694 effects Effects 0.000 abstract description 166
- 230000003993 interaction Effects 0.000 abstract description 16
- 238000004891 communication Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 16
- 230000005236 sound signal Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000010295 mobile communication Methods 0.000 description 9
- 238000012958 reprocessing Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/165—Management of the audio stream, e.g. setting of volume, audio stream path
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72442—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for playing music files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例提供一种音频处理方法及相关设备。该方法包括:在第一时刻,电子设备播放第一应用中的第一音频;电子设备的硬件层有第一音量的标识;电子设备持续播放第一音频的过程中,在第二时刻,电子设备接收到用于播放第二应用中的第二音频的触发操作;响应于触发操作,电子设备暂停播放第一音频,以及电子设备播放第二音频;第二音频的音量为第一音量,电子设备的硬件层有第一音量的标识;在第三时刻,电子设备结束播放第二音频,以及继续以第一音量播放第一应用中的第一音频;电子设备的硬件层有第一音量的标识。这样,电子设备播放同一音频的音效相同,减少播放交互场景中,电子设备前后两次播放同一音频的音效出现差异的问题。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种音频处理方法及相关设备。
背景技术
电子设备可安装有多个应用程序,例如,社交应用、音乐应用、视频应用和电话应用等。这些应用程序可支持电子设备使用扬声器播放音频,例如,电子设备可播放社交应用中的语音消息,电子设备可播放音乐应用中的歌曲等。
可能的一些场景中,电子设备运行音乐应用,且音乐应用处于播放音乐的状态;电子设备又接收到微信语音消息,在接收到用于播放语音消息的触发操作时,电子设备暂停播放音乐,并播放微信应用的语音消息;待结束播放语音消息后,电子设备继续播放音乐。
在上述场景中,用户在收听语音消息之前听到的音乐音效与收听语音消息之后听到的音乐音效有所差异,影响用户的使用体验。
发明内容
本申请实施例提供一种音频处理方法及相关设备,应用于终端技术领域,电子设备可依次通过应用程序框架层和硬件层处理音频,提升音频的音效;同时,在播放交互场景中,电子设备前后两次播放同一音频的音效相同,以提升用户的听感体验。
第一方面,本申请实施例提出一种音频处理方法,应用于电子设备,该方法包括:
在第一时刻,电子设备播放第一应用中的第一音频;第一音频的音量为第一音量,电子设备的硬件层有第一音量的标识;电子设备持续播放第一音频的过程中,在第二时刻,电子设备接收到用于播放第二应用中的第二音频的触发操作;其中,第一音频与第二音频的音频流类型相同;第一时刻早于第二时刻;响应于触发操作,电子设备暂停播放第一音频,以及电子设备播放第二音频;第二音频的音量为第一音量,电子设备的硬件层有第一音量的标识;在第三时刻,电子设备结束播放第二音频,以及继续以第一音量播放第一应用中的第一音频;电子设备的硬件层有第一音量的标识;第二时刻早于第三时刻。
这样,在电子设备第一次播放音乐和电子设备继续播放音乐时,电子设备的硬件层中均包括第一音量的标识,所以前后两次播放音乐的场景中,电子设备的硬件层均能够使用媒体音的音量对音乐进行音效处理,使得电子设备播放同一音频的音效相同,减少相似播放交互场景中,电子设备前后两次播放同一音频的音效出现差异的问题。
在一种可能的实现方式中,响应于触发操作,电子设备暂停播放第一音频,以及电子设备播放第二音频,包括:响应于触发操作,电子设备暂停播放第一音频,电子设备监测到硬件抽象层的抽象音频输出设备发生变化,且第二应用处于播放线程,硬件抽象层向硬件层下发第一音量的标识;其中,抽象音频输出设备与音频校准数据库ACDB的值有关;电子设备以第一音量播放第二音频。这样,硬件层中包括第一音量的标识,电子设备的硬件层可使用第一音量对第一音频进行音效处理,使得电子设备播放同一音频的音效相同,提升用户的使用体验。
在一种可能的实现方式中,当电子设备中开始第一应用的音频流时,电子设备将硬件抽象层的抽象音频输出设备与第一应用的第一ACDB值关联;当电子设备中开始第二应用的音频流时,电子设备更新硬件抽象层的抽象音频输出设备与第二应用的第二ACDB值关联。这样,电子设备可通过不同的通路播放对应的音频。
在一种可能的实现方式中,当电子设备中结束播放第二音频,以及继续以第一音量播放第一应用中的第一音频时,电子设备保持硬件抽象层的抽象音频输出设备与第二ACDB值关联。这样,电子设备继续播放第一音频时,电子设备不会发生通路切换,后续ADSP模块中的第一音量不会重置为默认值。
在一种可能的实现方式中,硬件抽象层向硬件层下发第一音量的标识,包括:硬件抽象层通过调用update_sound_effect_param()函数向硬件层下发第一音量的标识。这样,硬件层中包括第一音量的标识,后续硬件层可使用第一音量对第二音频进行音效处理。
在一种可能的实现方式中,在硬件抽象层向硬件层下发第一音量的标识之前,还包括:当音频输出设备发生变化时,硬件层将硬件层中的音量值重置为预设音量;硬件层根据第一音量的标识将硬件层中的音量值设置为第一音量,包括:当硬件层得到第一音量的标识时,硬件层通过调用set_current_volume_index()函数将硬件层中的音量值设置为第一音量。这样,硬件层可将音量值从默认值设置为第一音量,后续硬件层可使用第一音量对第二音频进行音效处理。
在一种可能的实现方式中,电子设备播放第一应用中的第一音频之前,包括:电子设备的应用程序框架层对第一应用中的第一音频进行处理,得到处理后的第一音频;电子设备的硬件层对处理后的第一音频进行处理,得到再次处理后的第一音频;电子设备播放第一应用中的第一音频,包括:电子设备通过扬声器播放再次处理后的第一音频。这样,第一音频为经过应用程序框架层中的音效处理方法进行处理、以及经过硬件层中的音效处理方法进行处理后的音频;再次播放的第一音频也是经过应用程序框架层中的音效处理方法进行处理、以及经过硬件层中的音效处理方法进行处理后的音频;所以电子设备前后两次播放同一音频时,减少由于播放交互场景中的第二音频导致的第一音频的音效出现明显差异的问题,提升音频音效的稳定性,进而提升用户的使用体验。
在一种可能的实现方式中,硬件层包括高级数字信号处理ADSP模块。这样,电子设备可基于ADSP模块对音频进行第二次音效处理,进一步提升音频音效。
第二方面,本申请实施例提供一种电子设备,电子设备也可以称为终端(terminal)、终端设备、用户设备(user equipment,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为本申请实施例提供的一种播放交互场景的界面示意图;
图2为本申请实施例提供的电子设备100的结构示意图;
图3为本申请实施例提供的电子设备100的软件结构示意图;
图4为本申请实施例提供的一种播放第一音频的流程示意图;
图5为本申请实施例提供的一种音频流类型的示意图;
图6为本申请实施例提供的一种播放第二音频的流程示意图;
图7为本申请实施例提供的一种继续播放第一音频的流程示意图;
图8为本申请实施例提供的另一种播放第一音频的流程示意图;
图9为本申请实施例提供的另一种播放第二音频的流程示意图;
图10为本申请实施例提供的另一种继续播放第一音频的流程示意图;
图11为本申请实施例提供的一种音频处理方法的流程示意图;
图12为本申请实施例提供的另一种音频处理方法的流程示意图;
图13为本申请实施例中提供的一种电子设备的内部交互示意图;
图14为本申请实施例中提供的另一种电子设备的内部交互示意图;
图15为本申请实施例中提供的又一种电子设备的内部交互示意图;
图16为本申请实施例提供的一种音频处理装置的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:
1、音效处理方法
1)DTS音效
DTS音效是一种高品质的数字音频编码技术,它可以把多声道的音频数据压缩成一个数字流,用于在电影、游戏和其他媒体上提供超过CD标准的音频性能,从而为用户提供更好的声音体验。DTS音效的编码技术可以提供更高的动态范围、更高的压缩比、更多的声道转换等,从而为用户提供更好的声音体验。
2)杜比音效
杜比音效是指杜比定向逻辑环绕声,它可以把四声道立体声在录制时通过特定的编码手段合成为两声道,即将原来的左声道(L)、右声道(R)、中置声道(C)、环绕声道(S)的4个信号,经编码后合成为LT、RT复合双声道信号,重放时通过解码器将已编码的双声道复合信号LT和RT还原为编码的左、右、中、环绕四个互不干犹的独立信号,经放大后分别输入左音箱、右音箱、中置音箱和环绕音箱。
3)Histen音效
Histen音效采用最新最先进的音频处理算法,结合心理声学模型和听觉感知模型,将各种移动设备的音频系统的性能发挥到极致,还原高品质声音的质感和清晰度,通过三维(three dimensions)3D声场技术拓展声音的空间感和方位感,为用户较好的音质体验。
本申请实施例介绍DTS音效、杜比音效以及Histen音效三种音效处理方法,但本申请实施例并不限定这三种音效处理方法。
2、级联音效
级联音效是指通过至少两种音频处理方法对音频进行处理。
示例性地,电子设备的应用程序框架层包括第一种音效处理方法,电子设备的硬件层中高级数字信号处理(advanced digital signal processor,ADSP)芯片部署有第二种音效处理方法,第二种音效处理方法可以弥补第一种音效处理方法的缺陷。电子设备检测到音频时,可以通过应用程序框架层中的第一种音效处理方法对音频进行处理,得到处理后的音频,并可以通过硬件层的第二种音效处理方法对处理后的音频进行再次处理,得到再次处理后的音频。第一种音效处理方法和第二种音效处理方法可以是上述三种音效处理方法中的任意两种。
3、其他术语
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一时间段和第二时间段仅仅是为了区分不同的时间段,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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示出了可能的实现中的一种音频音效出现差异的场景示意图。
场景一中,电子设备运行有音乐应用,且电子设备在播放音乐,如图1中的a界面所示,播放按键101处于播放状态。
场景二中,当电子设备在播放音乐的过程中,电子设备接收到微信语音消息。电子设备可显示微信应用的聊天界面,如图1中的b界面所示,用户可点击微信语音消息102,在接收到用户对微信语音消息102的触发操作时,电子设备播放微信语音消息102的音频。其中,在电子设备播放微信语音消息102的过程中,电子设备不播放音乐应用中的音乐。
场景三中,在电子设备播放完毕微信语音消息时,电子设备可继续播放音乐。例如,在电子设备播放完毕微信语音消息102后,电子设备可显示图1中的c界面。在图1中的c所示界面中,电子设备显示播放按键103处于播放状态,电子设备继续播放音乐。
其中,在场景一中,电子设备播放音乐;在场景三中,电子设备继续播放音乐;但用户前后两次听到的音乐的音效存在差异。例如,电子设备继续播放音乐时,用户可能听到的音乐音量变大或者变小了,导致用户可能需要基于设置应用中的音量按钮或电子设备侧边的音量按键重新设置音乐的音量值,影响用户的使用体验。
在上述场景中,电子设备之所以用户前后两次听到的音乐之间出现音效差异,是因为:
本申请实施例中,电子设备部署有级联音效,例如,电子设备的应用程序框架部署有音效处理方法1,电子设备的硬件层的ADSP模块部署有音效处理方法2。应用程序框架部署的音效处理方法1可理解为原生流程中的音频处理方法,ADSP芯片部署的音效处理方法2可理解为:对原生流程中的音频处理方法中的音频数据作进一步处理,以提升音频的音效、音质等。
电子设备播放音乐应用的音乐时,电子设备使用第一通路播放音频;其中,ADSP模块中设置的音量值与音乐的音量值有关,ADSP模块基于音效处理方法2和音乐的音量值对音乐音频进行处理。
电子设备播放微信应用的微信语音消息时,电子设备使用第二通路播放音频。通路的切换导致ADSP模块重新加载音效处理方法2,使得ADSP模块中的音量值变为默认值。而电子设备恢复播放音乐后,电子设备继续使用第二通路播放音频,未发生通路切换,ADSP模块中的音量值沿用默认值,该默认值与音乐的音量值无关,ADSP模块基于音效处理方法2和默认值对音乐音频进行处理。所以,ADSP模块处理音乐音频时使用的音量参数不同,导致电子设备播放的音乐音效不同。
可以理解的是,上述用户听到的音乐的音量值的变化可以理解为:在第一次播放音乐时,ADSP模块使用音乐的音量对音乐音频进行音效处理;在第二次播放音乐时,ADSP模块使用默认值(例如,音量值为0)对音乐音频进行音效处理,所以用户感知到音乐音效发生变化可能为播放声音变大或变小了。
有鉴于次,本申请实施例提供一种音频处理方法,当电子设备在播放音频时,若电子设备检测到设备(或通路)发生切换,则电子设备将该音频的音量值重新下发至ADSP侧,使得ADSP侧能够基于该音频的音量值和音频处理方法2,处理经过音频处理方法1处理后的音频。这样,当电子设备播放音频的设备发生切换时,电子设备仍可以得到基于音频处理方法2和该音频的音量值处理后的音频,音频的音效较为稳定,例如,用户听到的电子设备播放音乐与电子设备继续播放音乐的音量相同,从而提高音频音效的稳定性,也提升用户的使用体验。
为了能够更好地理解本申请实施例,下面对本申请实施例的电子设备的结构进行介绍:
图2示出了电子设备100的结构示意图。电子设备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,以及用户标识模块(subscriberidentification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110具体可以是ADSP。ADSP用于对音频数据进行处理,如对接收的语音数据进行音效处理,以及对多种语音数据进行混音处理等。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integratedcircuitsound,I2S)接口,脉冲编码调制(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的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构,等。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图3是本申请实施例提供的一种电子设备的软件架构的示意图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可以将安卓(android)系统分为四层,从上至下分别为应用程序层、应用程序框架(framework)层、硬件抽象层(hardware abstraction layer,HAL)和内核层(kernel)。电子设备的硬件架构中还包括硬件层,硬件层可通过接口与电子设备的软件架构层进行信息交互。
应用层可以包括一系列应用程序包。应用程序层通过调用应用程序框架层所提供的应用程序接口(application programming interface,API)运行应用程序。如图3所示,应用程序包可以包括音乐应用、社交应用、视频应用、设置应用、邮箱应用、日历应用同、地图应用和电话应用等应用程序。其中,电子设备可基于音乐应用、社交应用、视频应用和地图应用等应用程序播放音频,例如,电子设备可基于音乐应用播放歌曲,电子设备可基于社交应用播放语音消息和语音通话等,电子设备可基于视频应用播放视频和音频,电子设备可基于地图应用播放导航线路等等。设置应用可用于根据用户操作设置电子设备的音量,例如,电子设备侧边设置有音量按键,用户可通过按压音量按键调整电子设备的音量大小。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括java层和native层。java层用于提供java语言的编程框架,native层用于提供C语言或者C++的编程框架。其中,java层可以包括音频获取模块1(AudioTrack_1)、音频系统模块1(AudioSystem_1)以及音频管理模块(AudioManager)。native层包括音频获取模块2(AudioTrack_2)、音频系统模块2(AudioSystem_2)、音频投递模块(Audioflinger)以及音频策略管理模块(Audiopolicymanager)。音频投递模块包括DTS音效。需要说明的是,音频投递模块包括DTS音效仅仅为一种示例,本申请实施例对音频投递模块包括的具体的音效处理方法不作限定。
音频获取模块1用于获取应用层中至少一个应用的音频,并将其传递至音频获取模块2。音频获取模块2用于从音频获取模块1得到音频,并将其传递至音频投递模块。音频投递模块用于从音频获取模块2得到音频,并可以通过DTS音效对音频进行处理,得到处理后的音频。
音频管理模块用于在用户使用电子设备播放音频时,获取音频信息,例如,音频流类型。音频管理模块还用于将音频流类型传递至音频系统模块1。音频系统模块1用于从音频管理模块得到音频流类型,并将音频流类型传递至音频系统模块2。音频系统模块2用于从音频系统模块1得到音频流类型,并将音频流类型传递至音频策略管理模块。
HAL层的目的在于将硬件抽象化,可以为上层的应用提供一个统一的查询硬件设备的接口,或也可以为上层应用提供数据存储服务。如图3所示,该HAL层可以包括音频输出模块(audio_stream_out)和音频设备模块(audio_hw_device)。
其中,音频策略管理模块用于从音频系统模块2得到音频流类型,并将音频流类型传递至音频设备模块。
在电子设备播放音频的场景下,音频设备模块可指示与音频流类型对应的音频输出模块传递音频流,以及音乐设备模块还可将音频流类型对应的音量传递至对应的音频输出模块。例如,在检测到音频的通路(通路可以为由音频校准数据库(audio calibrationdatabase,acdb)控制的音频流传递的内部通路)发生变化,或通路对应的设备发生变化时,音频设备模块可向音频输出模块下发音频流类型对应的音量。
内核层是硬件和软件之间的层。如图3所示,该内核层中可以包括下述一种或多种:摄像头驱动、音频驱动、传感器驱动和显示驱动等。
如图3所示,硬件层可以包括:ADSP模块、扬声器和摄像头等。ADSP模块可以部署于ADSP芯片中,该ADSP模块包括XSITEN音效,XSITEN音效为一种音效处理方法的名称,可以表示Histen音效,但本申请实施例并不限于此。ADSP模块用于从内核层得到经DTS音效处理后的音频,还用于在扬声器播放音频的情况下,从硬件抽象层得到音频流对应的音量值。ADSP模块还用于通过XSITEN音效对经DTS音效处理后的音频进行再次处理,得到再次处理后的音效,并通过扬声器播放再次处理后的音效。扬声器可以为上述图2中所示的扬声器170A,但本申请实施例对此不作限定。
图3对本申请实施例中的电子设备的软件架构进行了简单介绍,后续会结合本申请实施提供的音频处理方法对软件模块之间的交互过程进行详细说明,此处不再赘述。
本申请实施例中,在第一时刻,电子设备可播放第一应用的第一音频,例如,第一应用为音乐应用,第一音频为音乐应用中的音乐;在第二时刻,电子设备可暂停播放第一音频,并播放第二应用的第二音频,例如,第二应用可以为微信应用,第二音频为微信语音消息;在第三时刻,电子设备结束播放第二音频,并继续播放第一音频。其中,第一音频的音频流类型与第二音频的音频流类型相同,第一音频的音频流通路与第二音频的音频流通路不同,且第一时刻早于第二时刻,且第二时刻早于第三时刻。
第一种可能的实现方式中:在第一时刻,电子设备可通过音效处理方法1得到处理后的第一音频,和通过音效处理方法2和第一音量得到再次处理后的第一音频;在第二时刻,电子设备可通过音效处理方法1得到处理后的第二音频,和通过音效处理方法2和音量默认值得到再次处理后的第二音频;在第三时刻,电子设备可通过音效处理方法1得到处理后的第一音频,和通过音效处理方法2和音量默认值得到再次处理后的第一音频。
第二种可能的实现方式中:在第一时刻,电子设备可通过音效处理方法1得到处理后的第一音频,和通过音效处理方法2和第一音量得到再次处理后的第一音频;在第二时刻,电子设备可通过音效处理方法1得到处理后的第二音频,和通过音效处理方法2和第一音量得到再次处理后的第二音频;在第三时刻,电子设备可通过音效处理方法1得到处理后的第一音频,和通过音效处理方法2和第一音量得到再次处理后的第一音频。
下面结合图4、图6和图7对本申请实施例中第一种可能的实现方式中的音频处理方法进行说明。
图4以电子设备播放音乐为例,示出了在第一时刻第一种可能的实现方式中音频处理方法的流程示意图,该方法可适用于图1所示的场景中,但本申请实施例对此不作限定。如图4所示,该方法可以包括如下步骤:
S401、电子设备在第一应用的显示界面中接收到用于播放第一音频的触发操作。
第一应用可对应于音乐应用,第一音频可对应于音乐应用的音频,其中,第一音频的音频流类型可以为媒体音(AUDIO_STREAM_MUSIC,也可表示为流类型stream=3)。
S402、响应于用于播放第一音频的触发操作,应用程序框架层的音频获取模块检测到第一音频。
音频获取模块在传递音频过程中,可以对音频流类型stream=3(AUDIO_STREAM_MUSIC)进行传递。
示例性地,音频获取模块可以通过start()接口检测到第一音频和第一音频的音频流类型。
S403、音频获取模块将第一音频经音频投递模块下发给硬件抽象层的音频输出模块。
具体的,音频获取模块得到第一音频和第一音频的音频流类型,并将第一音频和第一音频的音频流类型传递至音频投递模块。
音频投递模块中设置有音效处理方法1(例如,音效处理方法1可以为DTS音效)。在基于openoutput()接口得到第一音频后,音频投递模块可使用DTS音效处理音频得到处理后的第一音频。
音频输出模块可通过adev_set_parameters()接口从音频投递模块得到处理后的第一音频。
需要说明的是,根据谷歌原生机制,第一音频可对应于第一通路,例如,第一音频为音乐应用的音频,第一通路可以为acdb_id=210。其中,通路可影响音频流的输出设备,例如,音频输出模块中可包括设备1,第一通路可对应于设备1。音频输出模块的设备1可得到处理后的第一音频。
S404、音频输出模块可得到第一音频的第一音量,并将处理后的第一音频和第一音量下发至ADSP模块。
音量值可以为用户在设置应用中设置的音量值。音频输出模块可得到与音频流类型对应的音量值。
例如,音频流类型可包括媒体音、铃声和闹钟等。音频流类型与对应的音量值可如图5所示。例如,媒体音501对应的音量值为6,铃声音502对应的音量值为5,闹钟音503对应的音量值为6等。本申请实施例仅示例性的对音频流类型的设置界面进行说明,但该界面并不对本申请实施例的方案造成限制。
音频输出模块可根据第一音频的音频流类型得到相应的第一音量,例如,第一音频的音频流类型为3,音频流类型3为媒体音,媒体音的音量为6(如图5所示),第一音量为6。
需要说明的是,电子设备在第一次播放媒体音的音频时,HAL层会记录下媒体音对应的音量值。后续,电子设备再次播放媒体音,且期间用户未在设置应用中重新调整媒体音的音量值时,电子设备可通过调用start_output_stream函数得到前一次播放媒体音时的音量值。
本申请实施例以电子设备播放音乐时并不是第一次播放媒体音为例,对音频输出模块得到第一音量的流程进行说明。本申请实施例中,电子设备也可在调整媒体音的音量值后,在第一时刻首次播放媒体音(音乐应用中的音乐),电子设备读取设置应用中的调整后的音量值。本申请实施例对此不作限制。
S405、ADSP模块通过XSITEN音效和第一音量对处理后的第一音频进行再次处理,得到再次处理后的第一音频。
需要说明的是,ADSP模块得到第一音量和处理后的第一音频后,ADSP模块可对第一音频再次进行处理,得到再次处理后的第一音频。其中,处理后的第一音频与再次处理后的第一音频之间的音效存在差异。
S406、ADSP模块通过扬声器播放再次处理后的第一音频。
相应的,电子设备播放音乐应用中的音频。
本申请实施例提供一种音频处理方法,可通过XSITEN音效对经DTS音效处理后的音频进行二次处理,得到更加优质的音效。
图6以电子设备播放微信语音消息为例,示出了在第二时刻第一种可能的实现方式中音频处理方法的流程示意图。如图6所示:
S601、电子设备在第二应用的显示界面中接收到用于播放第二音频的触发操作。
第二应用可对应于微信应用,第二音频可对应于微信应用的音频,其中,第二音频的音频流类型可以为媒体音(AUDIO_STREAM_MUSIC,也可表示为流类型stream=3)。
S602、响应于用于播放第二音频的触发操作,应用程序框架层的音频获取模块检测到第二音频。
电子设备停止播放第一音频,且音频获取模块检测到第二音频。
音频获取模块在传递音频过程中,可以对音频流类型stream=3(AUDIO_STREAM_MUSIC)进行传递。
具体的,音频获取模块1可以通过start()接口检测到第二音频和音频流类型。以及,音频获取模块2可以通过start()接口从音频获取模块1得到第二音频和音频流类型。其中,音频流类型可以为stream=3。
S603、音频获取模块将第二音频经音频投递模块下发给硬件抽象层的音频输出模块。
具体的,音频获取模块得到第二音频和第二音频的音频流类型,并将第二音频和第二音频的音频流类型传递至音频投递模块。
在基于openoutput()接口得到第二音频后,音频投递模块可使用DTS音效处理音频得到处理后的第二音频。
音频输出模块可通过adev_set_parameters()接口从音频投递模块得到处理后的第二音频。
需要说明的是,根据谷歌原生机制,第二音频可对应于第二通路,例如,第二音频为微信应用的音频,第二通路可以为acdb_id=214。其中,通路可影响音频流的输出设备,例如,音频输出模块中还包括设备2,第二通路可对应于设备2。音频输出模块的设备2可得到处理后的第二音频。
本申请实施例中,电子设备播放音频流类型stream=3的通路从设备1切换至设备2。
S604、音频输出模块将处理后的第二音频下发给硬件层的ADSP模块。
可以理解的是,在第一时刻与第二时刻之间,电子设备未接收到用于调整音量值的触发操作,第一音频与第二音频的音频流类型相同,所以第二音频对应的第二音量与第一音量相同。电子设备可不重复获取音量值。所以,这里将处理后的第二音频下发给ADSP,且不下发第一音量或第二音量。
S605、ADSP模块重新加载XSITEN音效,以及得到处理后的第二音频。
ADSP模块从设备1得到处理后的第一音频,停止接收第一音频后,ADSP模块从设备2得到处理后的第二音频。由于传递音频流的设备由设备1切换为设备2,设备发生切换,ADSP模块需要重新加载XSITEN音效。重新加载XSITEN音效的过程中,ADSP中的音量值重置为默认值,默认值可以为0。
S606、ADSP模块通过XSITEN音效和默认值对处理后的第二音频进行再次处理,得到再次处理后的第二音频。
由于XSITEN音效中的音量值为默认值,而不是第一音量,所以,再次处理后的第二音频的音效与再次处理后的第一音频的音效之间存在差异。
可以理解的是,由于第一音频和第二音频是来自不同应用程序的音频,虽然第一音频的音效与第二音频的音效有差异,但用户可能感知不明显。例如,用户使用电子设备播放音乐,在音乐播放过程中,用户又使用电子设备播放微信语音消息,用户听到的微信语音消息的声音大小与语音消息发送方的音量及电子设备的媒体音量等因素有关;所以第一音频与第二音频之间对比度较弱,用户感知音效差异不明显。
S607、ADSP模块通过扬声器播放再次处理后的第二音频。
相应的,电子设备播放微信应用中的微信语音消息。
需要说明的是,本申请实施例以默认值为0对本申请实施例中的音频处理方法进行说明,默认值也可以为其他值,本申请实施例对此不作限制。
图7以电子设备继续播放音乐为例,示出了在第三时刻第一种可能的实现方式中音频处理方法的流程示意图。如图7所示:
S701、电子设备停止播放第二音频,且音频获取模块得到第一音频。
第一音频可对应于第三时刻,第一应用中的音乐音频。第一音频可以与第一音频为同一音频,也可以为不同音频。第一音频的音频流类型stream=3。
具体的,音频获取模块可以通过start()接口检测到第一音频和音频流类型。
对应的,当电子设备播放完毕微信语音消息时,电子设备可继续播放音乐。电子设备继续播放音乐的过程可如步骤S702-S705所示:
S702、音频获取模块将第一音频经音频投递模块下发给硬件抽象层的音频输出模块。
具体的,音频获取模块得到第一音频和第一音频的音频流类型,并将第一音频和第一音频的音频流类型传递至音频投递模块。
在基于openoutput()接口得到第一音频后,音频投递模块可使用DTS音效处理音频得到处理后的第一音频。
音频输出模块可通过adev_set_parameters()接口从音频投递模块得到处理后的第一音频。
需要说明的是,在原生机制中,电子设备使用acdb_id=210的通路播放音乐,电子设备使用acdb_id=214的通路播放微信语音消息,在结束播放微信语音消息后,电子设备仍然使用acdb_id=214的通路播放音乐,所以在再次播放音乐时,电子设备未对通道进行切换,第一音频沿用第二音频的第二通道(例如,第一音频的通道为acdb_id=214),所以在步骤S702中,音频输出模块仍然为设备2。
S703、音频输出模块将处理后的第一音频下发给硬件层的ADSP模块。
S704、ADSP模块通过XSITEN音效和默认值对处理后的第一音频进行再次处理,得到再次处理后的第一音频。
可以理解的是,由于传递第二音频的设备为设备2,传递第一音频的设备也为设备2,该过程中未发生设备切换,所以,ADSP模块不需要重新加载XSITEN音效,ADSP模块中的音量值仍然为默认值。
S705、ADSP模块通过扬声器播放再次处理后的第一音频。
相应的,电子设备再次播放音乐应用中的音乐。
可以理解的是,在第一次播放音乐时,电子设备通过XSITEN音效对处理后的第一音频进行再次处理,XSITEN音效中音量参数为第一音量;而在第二次播放音乐时,电子设备通过XSITEN音效对处理后的第一音频进行再次处理,XSITEN音效中音量参数为默认值;音量参数的变化使得电子设备前后播放音乐的音效出现差异。
下面结合图8、图9和图10对本申请实施例中第二种可能的实现方式中的音频处理方法进行说明。
图8以电子设备播放音乐为例,示出了在第一时刻,第二种可能的实现方式中的音频处理方法的流程示意图,该方法可适用于图1所示的场景中,但本申请实施例对此不作限定。
如图8所示,该方法可以包括如下步骤:
S801、电子设备在第一应用的显示界面中接收到用于播放第一音频的触发操作。
第一应用可对应于音乐应用,第一音频可对应于音乐应用的音频,其中,第一音频的音频流类型可以为媒体音(AUDIO_STREAM_MUSIC,也可表示为流类型stream=3)。音频流类型还可包括铃声(AUDIO_STREAM_RING、stream=2)和闹钟(AUDIO_STREAM_ALARM、stream=4)等。
S802、响应于用于播放第一音频的触发操作,应用程序框架层的音频获取模块检测到第一音频。
音频获取模块在传递音频过程中,可以对音频流类型stream=3(AUDIO_STREAM_MUSIC)进行传递。
具体的,音频获取模块1可以通过start()接口检测到第一音频和音频流类型。以及,音频获取模块2可以通过start()接口从音频获取模块1得到第一音频和音频流类型。其中,音频流类型可以为stream=3。
其中,音频获取模块1可以为java层的java文件,音频获取模块2可以为native层的CPP文件,java层和native层可通过java-native接口(java native interface,JNI)进行通信,JNI可将java文件和CPP文件集成在一起。
S803、音频获取模块将第一音频经音频投递模块下发给硬件抽象层的音频输出模块。
具体的,音频获取模块得到第一音频和第一音频的音频流类型,并将第一音频和第一音频的音频流类型传递至音频投递模块。
音频投递模块中设置有音效处理方法1(例如,音效处理方法1可以为DTS音效)。在基于openoutput()接口得到第一音频后,音频投递模块可使用DTS音效处理音频得到处理后的第一音频。
音频输出模块可通过adev_set_parameters()接口从音频投递模块得到处理后的第一音频。
需要说明的是,根据谷歌原生机制,第一音频可对应于第一通路,例如,第一音频为音乐应用的音频,第一通路可以为acdb_id=210。其中,通路可影响音频流的输出设备,例如,音频输出模块中可包括设备1,第一通路可对应于设备1。音频输出模块的设备1可得到处理后的第一音频。
其中,当电子设备中开始第一应用的音频流时,硬件抽象层的抽象音频输出设备与第一应用的第一ACDB值关联。在电子设备调用start_output()函数得到第一音频后,电子设备可加载第一音频对应的ACDB文件,得到第一ACDB值,其中,硬件抽象层可设置有ACDB文件。例如,acdb_id=210与音频输出模块的设备1关联。
S804、音频输出模块可得到第一音频的第一音量,并将处理后的第一音频和第一音量下发至ADSP模块。
音量值可以为用户在设置应用中设置的音量值。音频输出模块可得到与音频流类型对应的音量值。
例如,音频流类型可包括媒体音、铃声和闹钟等。音频流类型与对应的音量值可如图5所示。例如,媒体音501对应的音量值为6,铃声音502对应的音量值为5,闹钟音503对应的音量值为6等。
音频输出模块可根据第一音频的音频流类型得到相应的第一音量,例如,第一音频的音频流类型为3,音频流类型3为媒体音,媒体音的音量为6(如图5所示),第一音量为6。
需要说明的是,电子设备在第一次播放媒体音的音频时,HAL层会记录下媒体音对应的音量值。后续,电子设备再次播放媒体音,且期间用户未在设置应用中重新调整媒体音的音量值时,电子设备可通过调用start_output_stream函数得到前一次播放媒体音时的音量值。
本申请实施例以电子设备播放音乐时并不是第一次播放媒体音为例,对音频输出模块得到第一音量的流程进行说明。本申请实施例中,电子设备也可在调整媒体音的音量值后,在第一时刻首次播放媒体音(音乐应用中的音乐),电子设备读取设置应用中的调整后的音量值。本申请实施例对此不作限制。
S805、ADSP模块通过XSITEN音效和第一音量对处理后的第一音频进行再次处理,得到再次处理后的第一音频。
ADSP模块中的音量值为第一音量,例如,xsiten_process_volume_index的值为6。
需要说明的是,ADSP模块得到第一音量和处理后的第一音频后,ADSP模块可对第一音频再次进行处理,得到再次处理后的第一音频。其中,处理后的第一音频与再次处理后的第一音频之间的音效存在差异。
S806、ADSP模块通过扬声器播放再次处理后的第一音频。
相应的,电子设备播放音乐应用中的音频。
本申请实施例提供一种音频处理方法,可通过XSITEN音效对经DTS音效处理后的音频进行二次处理,得到更加优质的音效。
图9以电子设备播放微信语音消息为例,示出了在第二时刻第二种可能的实现方式中音频处理方法的流程示意图。如图9所示:
S901、电子设备在第二应用的显示界面中接收到用于播放第二音频的触发操作。
第二应用可对应于微信应用,第二音频可对应于微信应用的音频,其中,第二音频的音频流类型可以为媒体音(AUDIO_STREAM_MUSIC,也可表示为流类型stream=3)。
S902、响应于用于播放第二音频的触发操作,应用程序框架层的音频获取模块检测到第二音频。
电子设备停止播放第一音频,且音频获取模块检测到第二音频。
音频获取模块在传递音频过程中,可以对音频流类型stream=3(AUDIO_STREAM_MUSIC)进行传递。
具体的,音频获取模块1可以通过start()接口检测到第二音频和音频流类型。以及,音频获取模块2可以通过start()接口从音频获取模块1得到第二音频和音频流类型。其中,音频流类型可以为stream=3。
S903、音频获取模块将第二音频经音频投递模块下发给硬件抽象层的音频输出模块。
具体的,音频获取模块得到第二音频和第二音频的音频流类型,并将第二音频和第二音频的音频流类型传递至音频投递模块。
在基于openoutput()接口得到第二音频后,音频投递模块可使用DTS音效处理音频得到处理后的第二音频。
音频输出模块可通过adev_set_parameters()接口从音频投递模块得到处理后的第二音频。
需要说明的是,根据谷歌原生机制,第二音频可对应于第二通路,例如,第二音频为微信应用的音频,第二通路可以为acdb_id=214。其中,通路可影响音频流的输出设备,例如,音频输出模块中还包括设备2,第二通路可对应于设备2。音频输出模块的设备2可得到处理后的第二音频。
其中,当电子设备中开始第二应用的音频流时,硬件抽象层的抽象音频输出设备与第二应用的第二ACDB值关联。在电子设备调用start_output()函数得到第二音频后,电子设备可加载第二音频对应的ACDB文件,得到第二ACDB值,其中,硬件抽象层可设置有ACDB文件。例如,acdb_id=214与音频输出模块的设备2关联。
本申请实施例中,电子设备播放音频流类型stream=3的通路从设备1切换至设备2。
S904、音频设备模块监测到设备切换,且电子设备运行在播放线程时,音频设备模块得到第一音量。
设备切换可理解为步骤S903中,音频输出模块由设备1切换至设备2。本申请实施例中,电子设备的音频设备模块可通过调用adev_create_audio_patch()函数确定设备发生切换。
播放线程可用于表征当前应用处于播放音频的状态;电子设备中运行的应用程序、电子设备系统中自带的功能组件或系统程序在运行时,均会在电子设备的后台产生对应的程序线程,程序线程的类型各不相同,如:播放器类程序的线程、浏览器类程序的线程或者是系统运行所必须的核心文件的线程,从而就需要确定出与播放相关的线程。
其中,与播放相关的线程包括:电子设备中所运行的带有音频播放功能的APP或电子书设备的系统(如:安卓系统)中自带的播放器运行时所产生的线程。例如,电子设备播放微信语音消息时,第二应用运行在播放线程;又例如,电子设备播放音乐时,第一应用运行在播放线程。例如,电子设备监测到patch_playback线程时,确定电子设备处于播放线程。
音频设备模块可获取第一音量,第一音量可以为前一次音频输出模块下发到ADSP模块的音量值。
需要说明的是,本申请实施例中,音频设备模块可在检测到第二应用占用播放线程时,下发指示。音乐设备模块也可不判定当前运行的具体应用程序,而是在检测到播放线程被启用且设备发生切换时,下发指示。本申请实施例对此不做限制。
S905、音频设备模块将第一音量传递至音频输出模块。
音频设备模块将第一音量传递至音频输出模块的设备2。具体的,音频输出模块可在调用start_output_stream函数时,可得到第一音量。
S906、ADSP模块重新加载XSITEN音效,以及得到处理后的第二音频和第一音量。
具体的,1、ADSP得到来自音频输出模块的处理后的第二音频。其中,音频输出模块可以为设备2,音频输出模块可通过调用update_sound_effect_param()函数将第一音量下发给ADSP模块。该过程中传递音频流的设备发生切换,ADSP模块需要重新加载XSITEN音效。
2、ADSP模块重新加载XSITEN音效,将音量值设置为默认值。其中,由于接收音频流的设备由设备1切换为设备2,ADSP模块需要重新加载XSITEN音效。重新加载XSITEN音效的过程中,ADSP中的音量值重置为默认值,默认值可以为0。
需要说明的是,ADSP模块可从硬件抽象层得到设备发生变化的信息,例如,音频设备模块在监测到设备发生变化时,将设备发生变化的信息下发至ADSP模块,使得ADSP模块基于该信息对XSITEN音效进行重置。
3、ADSP模块得到音频输出模块下发的第一音量,并将音量值设置为第一音量。其中,音频输出模块可以为设备2,ADSP模块可从音频输出模块得到第一音量。ADSP模块中音量值为默认值,在得到第一音量后,ADSP模块可通过调用set_current_volume_index()接口将音量值设置为第一音量。
ADSP模块中的音量值为第一音量,例如,xsiten_process_volume_index的值为6。
S907、ADSP模块通过XSITEN音效和第一音量对处理后的第二音频进行再次处理,得到再次处理后的第二音频。
在第二时刻,XSITEN音效中的音量值为第一音量,XSITEN音效在第一音量的基础上对处理后的第二音频进行再次处理。
S908、ADSP模块通过扬声器播放再次处理后的第二音频。
相应的,电子设备播放微信应用中的微信语音消息。
本申请实施例中,电子设备可在上述交互场景中,通过XSITEN音效对经DTS音效处理后的第二音频进行二次处理,得到更加优质的音效。
可选的,在步骤S904、音频设备模块监测到设备切换,且电子设备运行在播放线程时,音频设备模块获取第一音量之前,还包括:
S909、响应于用于播放第二音频的触发操作,音频管理模块得到第二音频的属性。
第二音频的属性可以为第二通路对应的输出设备(device)和第二音频对应的音频流类型的音量值(index)等。例如,第二通路对应的输出设备为设备2。
S910、音频管理模块将第二音频的属性传递到音频系统模块。
具体的,音频管理模块得到第二音频的属性后,将第二音频的属性传递到音频系统模块1。
音频系统模块1得到第二音频的属性后,将第二音频的属性传递到音频系统模块2。
其中,音频系统模块1可以为java层的java文件,音频系统模块2可以为native层的CPP文件,java层和native层可通过JNI进行通信,JNI可将java文件和CPP文件集成在一起。
S911、音频系统模块将第二音频的属性传递到音频策略服务模块。
S912、音频策略服务模块将第二音频的属性下发至音频设备模块。
需要说明的是,步骤S901-S909可以为电子设备从软件架构的上层传递第二音频的音频流,以使底层硬件播放再次处理后的第二音频的流程。而音频管理模块、音频系统模块和音频策略服务模块等模块可用于管理音频流的控制流程。例如,在第二应用处理完与用于播放第二音频的触发操作相关的流程后,音频管理模块得到第二音频的属性,音频系统模块和音频策略服务模块起到衔接功能,音频策略服务模块得到第二音频的属性后,将第二音频的属性下发至硬件抽象层的音频设备模块。
S913、音频设备模块根据第二音频的属性指示音频输出模块传递第二音频的设备。
音频设备模块可以为管理音频设备的类,音频设备模块可指示音频输出模块使用对应的设备传递第二音频,例如,音频设备模块指示音频输出模块使用设备2传递第二音频。此外音频设备模块可通过open_out_put_stream接口指示音频输出模块(设备2)打开相应的音频流,使音频输出模块建立流对象,以及将音频投递模块的第二音频的音频流进行封装。
图10以电子设备继续播放音乐为例,示出了在第三时刻第二种可能的实现方式中音频处理方法的流程示意图。如图10所示:
S1001、电子设备停止播放第二音频,且音频获取模块得到第一音频。
第一音频可对应于第三时刻,第一应用中的音乐音频。第一音频可以与第一音频为同一音频,也可以为不同音频。第一音频的音频流类型stream=3。
具体的,音频获取模块1可以通过start()接口检测到第一音频和音频流类型。以及,音频获取模块2可以通过start()接口从音频获取模块1得到第一音频和音频流类型。其中,音频流类型可以为stream=3。
对应的,当电子设备播放完毕微信语音消息时,电子设备可继续播放音乐。电子设备可继续播放音乐可如步骤S1002-S1005所示:
S1002、音频获取模块将第一音频经音频投递模块下发给硬件抽象层的音频输出模块。
具体的,音频获取模块得到第一音频和第一音频的音频流类型,并将第一音频和第一音频的音频流类型传递至音频投递模块。
在基于openoutput()接口得到第一音频后,音频投递模块可使用DTS音效处理音频得到处理后的第一音频。
音频输出模块可通过adev_set_parameters()接口从音频投递模块得到处理后的第一音频。
需要说明的是,在原生机制中,电子设备使用acdb_id=210的通路播放音乐,电子设备使用acdb_id=214的通路播放微信语音消息,在结束播放微信语音消息后,电子设备仍然使用acdb_id=214的通路播放音乐,所以在再次播放音乐时,电子设备未对通道进行切换,第一音频沿用第二音频的第二通道(例如,第一音频的通道为acdb_id=214),所以在步骤S702中,音频输出模块仍然为设备2。
S1003、音频输出模块将处理后的第一音频下发给硬件层的ADSP模块。
S1004、ADSP模块通过XSITEN音效和第一音量对处理后的第一音频进行再次处理,得到再次处理后的第一音频。
可以理解的是,由于传递第二音频的设备为设备2,传递第一音频的设备也为设备2,该过程中未发生设备切换,所以,ADSP模块不需要重新加载XSITEN音效,ADSP模块中的音量值仍然为第一音量,例如,xsiten_process_volume_index的值为6。
S1005、ADSP模块通过扬声器播放再次处理后的第一音频。
相应的,电子设备再次播放音乐应用中的应用。其中,用户听到的再次处理后的第一音频的音量与再次处理后的第二音频的音量相同。
可以理解的是,由于两次再次处理后的第一音频(第一次播放音乐和继续播放音乐)均是经过两次音效处理方法(一次为应用程序框架层,一次为硬件层的ADSP模块)处理过的,且音量参数相同;所以用户第一次听到音乐的音效和第二次听到音乐的音效是相同的。这样,在切换不同应用程序的音频流时,电子设备前后播放同一应用的音频的音效是一样的,用户不会感知到音效发生变化,从而提升了音频音效的稳定性。
以上实施例结合图4、图6和图7对本申请实施例中第一种可能的实现方式中的软件模块的内部交互进行说明,下面结合图11对第一种可能的实现方式中的流程进行说明。
图11示出了本申请实施例提供的一种音频处理方法的流程示意图。如图11所示:
S1101、在第一时刻,电子设备播放第一应用中的第一音频。其中,ADSP模块中有第一音量的标识。
相应的,在第一时刻,电子设备播放音乐应用中的音乐。其中,第一音频的音频流类型为stream=3,第一音频对应的第一通路为acdb_id=210。
ADSP模块中有第一音量的标识,可以理解为:ADSP模块中的音量值为第一音量,第一音量可以为音频流类型对应的音量值,例如,第一音量可以为媒体音的音量值。
步骤S1101可参考图4中的相关描述,此处不做赘述。
S1102、电子设备持续播放第一音频,在第二时刻,电子设备接收到用于播放第二音频的触发操作。
相应的,在电子设备播放音乐期间,电子设备接收到用于播放微信语音消息的触发操作。
其中,第二音频的音频流类型为stream=3,第二音频对应的第二通路为acdb_id=214。
S1103、响应于触发操作,电子设备暂停播放第一音频,以及电子设备播放第二音频;其中,ADSP模块中没有第一音量的标识。
相应的,电子设备暂停播放音乐,并播放微信语音消息。其中,ADSP模块监测到设备发生变化,ADSP模块重新加载XSITEN音效,ADSP模块的音量值为默认值,而非第一音量。
步骤S1102-S1103可参考图6中的相关描述,此处不做赘述。
S1104、在第三时刻,电子设备结束播放第二音频,以及继续播放第一应用中的第一音频;其中,ADSP模块中没有第一音量的标识。
相应的,电子设备结束播放微信语音消息,并继续播放音乐;其中,设备未发生变化,所以ADSP模块中的音量值沿用步骤S1103中的音量值,ADSP模块中的音量值仍为默认值。
在图8、图9和图10所示实施例的基础上,本申请实施例提供一种音频处理方法。示例性的,图12为本申请实施例提供的一种音频处理方法的流程示意图。
如图12所示,该音频处理方法可以包括如下步骤:
S1201、在第一时刻,电子设备播放第一应用中的第一音频;第一音频的音量为第一音量,电子设备的硬件层有第一音量的标识。
第一应用可以如上述图1中的a界面所示的音乐应用,第一音频可对应于音乐应用中的音乐,但本申请实施例并不限于此。第一音频的音量为第一音量,可以说明电子设备以第一音量播放第一应用中的声音,例如,第一音量与第一音频的音频流类型有关,第一音频的音频流类型可以为媒体音(stream=3),第一音量为6(如图5所示)。电子设备的硬件层有第一音量的标识,可以说明硬件层中的音量值为第一音量。
电子设备播放第一应用中的第一音频,具体的实现方式可以如上述图8中的S801至S806,此处不再重复赘述。
S1202、电子设备持续播放第一音频的过程中,在第二时刻,电子设备接收到用于播放第二应用中的第二音频的触发操作;其中,第一音频与第二音频的音频流类型相同;第一时刻早于第二时刻。
第二应用可以如上述图1中的b界面所示的微信应用,第二音频可对应于微信应用中的微信语音消息,但本申请实施例并不限于此;音频流类型包括:电话音(voice_call,stream=0)、系统音(system,stream=1)、铃声(ring,stream=2)、媒体音(music,stream=3)、闹钟(alarm,stream=4)等。
用于播放第二应用中的第二音频的触发操作可对应于图1中的b所示界面中针对微信语音消息102的触发操作。第一音频与第二音频的音频流类型相同,例如,第二音频的音频流类型为媒体音(stream=3)。
S1203、响应于触发操作,电子设备暂停播放第一音频,以及电子设备播放第二音频;电子设备的硬件层有第一音量的标识。
电子设备的硬件层有第一音量的标识,可以说明硬件层中的音量值为第一音量。
电子设备播放第二应用中的第二音频,具体的实现方式可以如上述图9中的S901至S913,此处不再重复赘述。
S1204、在第三时刻,电子设备结束播放第二音频,以及继续播放第一应用中的第一音频;电子设备的硬件层有第一音量的标识;第二时刻早于第三时刻。
电子设备的硬件层有第一音量的标识,可以说明硬件层中的音量值为第一音量。
电子设备继续播放第一应用中的第一音频,具体的实现方式可以如上述图10中的S1001至S1005,此处不再重复赘述。
本申请实施例中,在电子设备第一次播放音乐和电子设备继续播放音乐时,电子设备的硬件层中均包括第一音量的标识,所以前后两次播放音乐的场景中,电子设备的硬件层均能够使用媒体音的音量对音乐进行音效处理,使得电子设备播放同一音频的音效相同,减少相似播放交互场景中,电子设备前后两次播放同一音频的音效出现差异的问题。
可选的,响应于触发操作,电子设备暂停播放第一音频,以及电子设备播放第二音频,包括:响应于触发操作,电子设备暂停播放第一音频,电子设备监测到硬件抽象层的抽象音频输出设备发生变化,且第二应用处于播放线程,硬件抽象层向硬件层下发第一音量的标识;其中,抽象音频输出设备与音频校准数据库ACDB的值有关;电子设备以第一音量播放第二音频。
抽象音频输出设备可对应于音频输出设备中的设备1和设备2,抽象音频输出设备可以与acdb_id关联,例如,当电子设备接收到用于播放音乐应用中的音乐,并起流时,acdb_id=210,抽象音频输出设备可以为设备1;当电子设备接收到用于微信应用中的微信语音消息,并起流时,acdb_id=214,抽象音频输出设备可以为设备2。抽象音频输出设备发生变化可以理解为设备1切换为设备2。电子设备可以通过调用adev_create_audio_patch()函数监测硬件抽象层的抽象音频输出设备发生变化。播放线程可以为patch_playback线程。
该步骤可参考步骤S904中的相关描述,此处不再赘述。这样,硬件层中包括第一音量的标识,电子设备的硬件层可使用第一音量对第一音频进行音效处理,使得电子设备播放同一音频的音效相同,提升用户的使用体验。
可选的,当电子设备中开始第一应用的音频流时,电子设备将硬件抽象层的抽象音频输出设备与第一应用的第一ACDB值关联;当电子设备中开始第二应用的音频流时,电子设备更新硬件抽象层的抽象音频输出设备与第二应用的第二ACDB值关联。
其中,当电子设备中开始第一应用的音频流时,硬件抽象层的抽象音频输出设备与第一应用的第一ACDB值关联,可以理解为:电子设备播放第一应用的第一音频时,硬件抽象层可根据第一音频的第一ACDB值得到对应的抽象音频输出设备,例如,音乐应用中音乐的acdb_id=210,抽象音频输出设备可以为设备1;电子设备中开始第一应用的音频流可以理解为:电子设备调用shart_output()函数。
当电子设备中开始第二应用的音频流时,电子设备更新硬件抽象层的抽象音频输出设备与第二应用的第二ACDB值关联,可以理解为:电子设备播放第二应用的第二音频时,硬件抽象层可根据第二音频的第二ACDB值得到对应的抽象音频输出设备,例如,微信应用中微信语音消息的acdb_id=214,抽象音频输出设备可以为设备2;电子设备中开始第二应用的音频流可以理解为:电子设备调用shart_output()函数。
该步骤可参考步骤S803和S903中的相关描述,此处不再赘述。
这样,电子设备可通过不同的通路播放对应的音频。
可选的,当电子设备中结束播放第二音频,以及继续以第一音量播放第一应用中的第一音频时,电子设备保持硬件抽象层的抽象音频输出设备与第二ACDB值关联。
电子设备保持硬件抽象层的抽象音频输出设备与第二ACDB值关联,可以理解为:电子设备继续播放第一应用的第一音频时,硬件抽象层可根据第二音频的第二ACDB值得到对应的抽象音频输出设备,例如,微信应用中微信语音消息的acdb_id=214,抽象音频输出设备可以为设备2。
该步骤可参考步骤S1002中的相关描述,此处不再赘述。
这样,电子设备继续播放第一音频时,电子设备不会发生通路切换,后续ADSP模块中的第一音量不会重置为默认值。
可选的,硬件抽象层向硬件层下发第一音量的标识,包括:硬件抽象层通过调用update_sound_effect_param()函数向硬件层下发第一音量的标识。
硬件抽象层下发第一音量的过程可参考步骤S906中的相关描述,此处不再赘述。
这样,硬件层中包括第一音量的标识,后续硬件层可使用第一音量对第二音频进行音效处理。
可选的,在硬件抽象层向硬件层下发第一音量的标识之前,还包括:当音频输出设备发生变化时,硬件层将硬件层中的音量值重置为预设音量;硬件层根据第一音量的标识将硬件层中的音量值设置为第一音量,包括:当硬件层得到第一音量的标识时,硬件层通过调用set_current_volume_index()函数将硬件层中的音量值设置为第一音量。
其中,预设音量可以对应于ADSP模块中音量值重置后的默认值,当硬件层从硬件抽象层得到音频输出设备发生变化的信息时,ADSP模块会对XSITEN音效进行重新加载,这时,ADSP模块中的音量值为默认值。
该步骤可参考步骤S906中的相关描述,此处不再赘述。
这样,硬件层可将音量值从默认值设置为第一音量,后续硬件层可使用第一音量对第二音频进行音效处理。
可选的,电子设备播放第一应用中的第一音频之前,包括:电子设备的应用程序框架层对第一应用中的第一音频进行处理,得到处理后的第一音频;电子设备的硬件层对处理后的第一音频进行处理,得到再次处理后的第一音频;电子设备播放第一应用中的第一音频,包括:电子设备通过扬声器播放再次处理后的第一音频。
该步骤可参考图8或图10所示实施例中的相关描述,此处不再赘述。
可以理解的是,电子设备继续以第一音量播放第一应用中的第一音频的过程与该过程相似,此处不再重复说明。
这样,第一音频为经过应用程序框架层中的音效处理方法进行处理、以及经过硬件层中的音效处理方法进行处理后的音频;再次播放的第一音频也是经过应用程序框架层中的音效处理方法进行处理、以及经过硬件层中的音效处理方法进行处理后的音频;所以电子设备前后两次播放同一音频时,减少由于播放交互场景中的第二音频导致的第一音频的音效出现明显差异的问题,提升音频音效的稳定性,进而提升用户的使用体验。
可选的,硬件层包括高级数字信号处理ADSP模块。这样,电子设备可基于ADSP模块对音频进行第二次音效处理,进一步提升音频音效。
可选的,下面结合图13和图3中电子设备中的相关软件模块对电子设备执行本申请实施例中的音频处理方法的内部交互流程进行说明。图13示出了本申请实施例提供的一种电子设备内部交互示意图,可对应于图8所示实施例的场景,如图13所示:
在第一时刻,电子设备播放第一应用中的第一音频;第一音频的音量为第一音量,电子设备的硬件层有第一音量的标识。
其中,第一应用可以为音乐应用。
具体的,当电子设备接收到用于播放第一音频的触发操作时,应用程序层的音乐应用向应用程序框架层的java层的音频获取模块1下发第一音频;音频获取模块1得到第一音频后,通过JNI接口将第一音频传递至native层的音频获取模块2中;音频获取模块2得到第一音频后,将第一音频传递至音频投递模块。
音频投递模块中包括至少一种音效处理方法,例如,DTS音效。音频投递模块使用DTS音效对第一音频进行处理,得到处理后的第一音频,并将处理后的第一音频下发至硬件抽象层的音频输出模块。
音频输出模块得到处理后的第一音频后,将处理后的第一音频下发至硬件层的ADSP模块。ADSP模块中包括至少一种音效处理方法,例如,XSITEN音效,XSITEN音效中的音量值为第一音量。ADSP模块使用XSITEN音效对处理后的第一音频进行处理,得到再次处理的第一音频。ADSP模块将再次处理后的第一音频传递至扬声器,扬声器播放再次处理后的第一音频。
可选的,下面结合图14和图3中电子设备中的相关软件模块对电子设备执行本申请实施例中的音频处理方法的内部交互流程进行说明。图14示出了本申请实施例提供的一种电子设备内部交互示意图,可对应于图9所示实施例的场景,如图14所示:
电子设备持续播放第一音频的过程中,在第二时刻,电子设备接收到用于播放第二应用中的第二音频的触发操作;其中,第一音频与第二音频的音频流类型相同;第一时刻早于第二时刻;响应于触发操作,电子设备暂停播放第一音频,以及电子设备播放第二音频;第二音频的音量为第一音量,电子设备的硬件层有第一音量的标识。其中,第二应用可以为微信应用。
具体的,当电子设备在播放第一音频期间,接收到用于播放第二音频的触发操作时,电子设备暂停播放第一音频,应用程序层的微信应用向应用程序框架层的java层的音频获取模块1下发第二音频;音频获取模块1得到第二音频后,将第二音频通过JNI接口传递到native层的音频获取模块2;音频获取模块2得到第二音频后,将第二音频传递至音频投递模块。音频投递模块中包括至少一种音效处理方法,例如,DTS音效。音频投递模块使用DTS音效对第二音频进行处理,得到处理后的第二音频,并将处理后的第二音频下发至硬件抽象层的音频输出模块。
此外,响应于用于播放第二音频的触发操作,应用程序框架层的java层的音频管理模块从应用程序层的微信应用中得到第二音频的属性,第二音频的属性包括音频流类型和输出设备等。音频管理模块将第二音频的属性传递至音频系统模块1,音频系统模块1通过JNI接口将第二音频的属性传递至音频系统模块2;音频系统模块2得到第二音频的属性后,将第二音频的属性传递至音频策略服务模块;音频策略服务模块得到第二音频的属性后,将第二音频的属性下发至硬件抽象层的音频设备模块。音频设备模块可监听设备切换以及播放线程。示例性的,当音频设备模块监测到输出设备发生切换以及电子设备处于播放线程时,音频设备模块向音频输出模块传递第一音量。
音频输出模块得到处理后的第二音频和第一音量后,将处理后的第二音频和第一音量后下发至硬件层的ADSP模块。ADSP模块中包括至少一种音效处理方法,例如,XSITEN音效,XSITEN音效中的音量值由默认值更新为第一音量,ADSP模块使用XSITEN音效对处理后的第二音频进行处理,得到再次处理的第二音频。ADSP模块将再次处理后的第二音频传递至扬声器,扬声器播放再次处理后的第二音频。
可选的,下面结合图15和图3中电子设备中的相关软件模块对电子设备执行本申请实施例中的音频处理方法的内部交互流程进行说明。图15示出了本申请实施例提供的一种电子设备内部交互示意图,可对应于图10所示实施例的场景,如图15所示:
在第三时刻,电子设备结束播放第二音频,以及继续以第一音量播放第一应用中的第一音频;电子设备的硬件层有第一音量的标识;第二时刻早于第三时刻。
具体的,当电子设备结束播放第二音频,并继续播放第一音频时,应用程序层的音乐应用向应用程序框架层的java层的音频获取模块1下发第一音频;音频获取模块1得到第一音频后,通过JNI接口将第一音频传递至native层的音频获取模块2中;音频获取模块2得到第一音频后,将第一音频传递至音频投递模块。
音频投递模块中包括至少一种音效处理方法,例如,DTS音效。音频投递模块使用DTS音效对第一音频进行处理,得到处理后的第一音频,并将处理后的第一音频下发至硬件抽象层的音频输出模块。
音频输出模块得到处理后的第一音频后,将处理后的第一音频下发至硬件层的ADSP模块。ADSP模块中包括至少一种音效处理方法,例如,XSITEN音效,其中,XSITEN音效未重新加载,XSITEN音效中的音量值仍然为第一音量。ADSP模块使用XSITEN音效对处理后的第一音频进行处理,得到再次处理的第一音频。ADSP模块将再次处理后的第一音频传递至扬声器,扬声器播放再次处理后的第一音频。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
上面已对本申请实施例的音频处理方法进行了说明,下面对本申请实施例提供的执行上述音频处理方法的装置进行描述。本领域技术人员可以理解,方法和装置可以相互结合和引用,本申请实施例提供的相关装置可以执行上述音频处理方法中的步骤。
如图16所示,音频处理装置1600可以用于通信设备、电路、硬件组件或者芯片中,该音频处理装置包括:显示单元1601、以及处理单元1602。其中,显示单元1601用于支持音频处理装置1600执行的显示的步骤;处理单元1602用于支持音频处理装置1600执行信息处理的步骤。
可能的实现方式中,该音频处理装置1600中也可以包括通信单元1603。具体的,通信单元用于支持音频处理装置1600执行数据的发送以及数据的接收的步骤。其中,该通信单元1603可以是输入或者输出接口、管脚或者电路等。
可能的实施例中,音频处理装置还可以包括:存储单元1604。处理单元1602、存储单元1604通过线路相连。存储单元1604可以包括一个或者多个存储器,存储器可以是一个或者多个设备、电路中用于存储程序或者数据的器件。存储单元1604可以独立存在,通过通信线路与音频处理装置具有的处理单元1602相连。存储单元1604也可以和处理单元1602集成在一起。
存储单元1604可以存储终端设备中的方法的计算机执行指令,以使处理单元1602执行上述实施例中的方法。存储单元1604可以是寄存器、缓存或者RAM等,存储单元1604可以和处理单元1602集成在一起。存储单元1604可以是只读存储器(read-only memory,ROM)或者可存储静态信息和指令的其他类型的静态存储设备,存储单元1604可以与处理单元1602相独立。
本申请实施例提供的音频处理方法,可以应用在具备通信功能的电子设备中。电子设备包括电子设备,电子设备的具体设备形态等可以参照上述相关说明,此处不再赘述。
本申请实施例提供一种电子设备,该电子设备包括:包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得电子设备执行上述方法。
本申请实施例提供一种芯片。芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现上述方法。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
一种可能的实现方式中,计算机可读介质可以包括RAM,ROM,只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(Digital Subscriber Line,DSL)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘,激光盘,光盘,数字通用光盘(Digital Versatile Disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行上述方法。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (11)
1.一种音频处理方法,其特征在于,应用于电子设备,包括:
在第一时刻,所述电子设备播放第一应用中的第一音频;所述第一音频的音量为第一音量,所述电子设备的硬件层有所述第一音量的标识;
所述电子设备持续播放所述第一音频的过程中,在第二时刻,所述电子设备接收到用于播放第二应用中的第二音频的触发操作;其中,所述第一音频与所述第二音频的音频流类型相同;所述第一时刻早于所述第二时刻;
响应于所述触发操作,所述电子设备暂停播放所述第一音频,以及所述电子设备播放所述第二音频;所述第二音频的音量为所述第一音量,所述电子设备的硬件层有所述第一音量的标识;
在第三时刻,所述电子设备结束播放所述第二音频,以及继续以所述第一音量播放所述第一应用中的所述第一音频;所述电子设备的硬件层有所述第一音量的标识;所述第二时刻早于所述第三时刻。
2.根据权利要求1所述的方法,其特征在于,响应于所述触发操作,所述电子设备暂停播放所述第一音频,以及所述电子设备播放所述第二音频,包括:
响应于所述触发操作,所述电子设备暂停播放所述第一音频,所述电子设备监测到硬件抽象层的抽象音频输出设备发生变化,且所述第二应用处于播放线程,所述硬件抽象层向所述硬件层下发所述第一音量的标识;其中,所述抽象音频输出设备与音频校准数据库ACDB的值有关;
所述电子设备以所述第一音量播放所述第二音频。
3.根据权利要求2所述的方法,其特征在于,当所述电子设备中开始所述第一应用的音频流时,所述电子设备将所述硬件抽象层的抽象音频输出设备与所述第一应用的第一ACDB值关联;
当所述电子设备中开始所述第二应用的音频流时,所述电子设备更新所述硬件抽象层的抽象音频输出设备与所述第二应用的第二ACDB值关联。
4.根据权利要求3所述的方法,其特征在于,当所述电子设备中结束播放所述第二音频,以及继续以所述第一音量播放所述第一应用中的所述第一音频时,所述电子设备保持所述硬件抽象层的抽象音频输出设备与所述第二ACDB值关联。
5.根据权利要求3或4所述的方法,其特征在于,所述硬件抽象层向所述硬件层下发所述第一音量的标识,包括:
所述硬件抽象层通过调用update_sound_effect_param()函数向所述硬件层下发所述第一音量的标识。
6.根据权利要求2所述的方法,其特征在于,在所述硬件抽象层向所述硬件层下发所述第一音量的标识之前,还包括:
当音频输出设备发生变化时,所述硬件层将所述硬件层中的音量值重置为预设音量;
所述硬件层根据所述第一音量的标识将所述硬件层中的音量值设置为所述第一音量,包括:当所述硬件层得到所述第一音量的标识时,所述硬件层通过调用set_current_volume_index()函数将所述硬件层中的音量值设置为所述第一音量。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述电子设备播放第一应用中的第一音频之前,包括:
所述电子设备的应用程序框架层对所述第一应用中的所述第一音频进行处理,得到处理后的第一音频;
所述电子设备的硬件层对所述处理后的第一音频进行处理,得到再次处理后的第一音频;
所述电子设备播放第一应用中的第一音频,包括:所述电子设备通过扬声器播放所述再次处理后的第一音频。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述硬件层包括高级数字信号处理ADSP模块。
9.一种电子设备,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的所述计算机执行指令,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的方法。
11.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得计算机执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310905404.4A CN117707464A (zh) | 2023-07-21 | 2023-07-21 | 音频处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310905404.4A CN117707464A (zh) | 2023-07-21 | 2023-07-21 | 音频处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117707464A true CN117707464A (zh) | 2024-03-15 |
Family
ID=90155860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310905404.4A Pending CN117707464A (zh) | 2023-07-21 | 2023-07-21 | 音频处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117707464A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827825A (zh) * | 2016-02-29 | 2016-08-03 | 维沃移动通信有限公司 | 一种音频数据的处理方法及移动终端 |
CN109379491A (zh) * | 2018-09-30 | 2019-02-22 | Oppo广东移动通信有限公司 | 音频播放方法、装置、电子设备及计算机可读介质 |
CN110543289A (zh) * | 2019-08-02 | 2019-12-06 | 华为技术有限公司 | 控制音量的方法和电子设备 |
US20210019111A1 (en) * | 2019-07-17 | 2021-01-21 | Samsung Electronics Co., Ltd. | Electronic device for outputting audio through usb port and method thereof |
CN114390426A (zh) * | 2020-10-22 | 2022-04-22 | 华为技术有限公司 | 一种音量校准方法及装置 |
WO2022247455A1 (zh) * | 2021-05-28 | 2022-12-01 | 华为技术有限公司 | 一种音频分流的方法及电子设备 |
CN115686423A (zh) * | 2021-07-21 | 2023-02-03 | 广州三星通信技术研究有限公司 | 用于电子设备的音频播放方法及电子设备 |
CN115729511A (zh) * | 2021-08-31 | 2023-03-03 | 华为技术有限公司 | 一种播放音频的方法及电子设备 |
CN116052701A (zh) * | 2022-07-07 | 2023-05-02 | 荣耀终端有限公司 | 一种音频处理方法及电子设备 |
-
2023
- 2023-07-21 CN CN202310905404.4A patent/CN117707464A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827825A (zh) * | 2016-02-29 | 2016-08-03 | 维沃移动通信有限公司 | 一种音频数据的处理方法及移动终端 |
CN109379491A (zh) * | 2018-09-30 | 2019-02-22 | Oppo广东移动通信有限公司 | 音频播放方法、装置、电子设备及计算机可读介质 |
US20210019111A1 (en) * | 2019-07-17 | 2021-01-21 | Samsung Electronics Co., Ltd. | Electronic device for outputting audio through usb port and method thereof |
CN110543289A (zh) * | 2019-08-02 | 2019-12-06 | 华为技术有限公司 | 控制音量的方法和电子设备 |
CN114390426A (zh) * | 2020-10-22 | 2022-04-22 | 华为技术有限公司 | 一种音量校准方法及装置 |
WO2022247455A1 (zh) * | 2021-05-28 | 2022-12-01 | 华为技术有限公司 | 一种音频分流的方法及电子设备 |
CN115686423A (zh) * | 2021-07-21 | 2023-02-03 | 广州三星通信技术研究有限公司 | 用于电子设备的音频播放方法及电子设备 |
CN115729511A (zh) * | 2021-08-31 | 2023-03-03 | 华为技术有限公司 | 一种播放音频的方法及电子设备 |
CN116052701A (zh) * | 2022-07-07 | 2023-05-02 | 荣耀终端有限公司 | 一种音频处理方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113873378B (zh) | 一种耳机噪声处理方法、装置及耳机 | |
CN113873379B (zh) | 一种模式控制方法、装置及终端设备 | |
CN115002934B (zh) | 音频业务处理系统、电子设备及蓝牙耳机 | |
CN116347320B (zh) | 音频播放方法及电子设备 | |
US20170195817A1 (en) | Simultaneous Binaural Presentation of Multiple Audio Streams | |
CN117133306B (zh) | 立体声降噪方法、设备及存储介质 | |
CN111107226A (zh) | 应用于移动终端的音量控制方法 | |
CN113301544A (zh) | 一种音频设备间语音互通的方法及设备 | |
CN114640747A (zh) | 一种通话方法、相关设备和系统 | |
US20220311700A1 (en) | Method for multiplexing http channels and terminal | |
CN113689890B (zh) | 多声道信号的转换方法、装置及存储介质 | |
CN117707464A (zh) | 音频处理方法及相关设备 | |
US20230297324A1 (en) | Audio Control Method, System, and Electronic Device | |
CN116866472A (zh) | 音量控制方法及电子设备 | |
CN118102176B (zh) | 音频输出控制方法及电子设备 | |
CN114885440B (zh) | 多个音频设备间语音通话的方法、电子设备及存储介质 | |
CN117931116A (zh) | 音量调节方法、电子设备及介质 | |
CN116567489B (zh) | 一种音频数据处理方法及相关装置 | |
CN116744187B (zh) | 扬声器控制方法及设备 | |
CN116737049B (zh) | 音频播放方法及终端设备 | |
CN117492689B (zh) | 音频处理方法及电子设备 | |
CN113709652B (zh) | 音频播放控制方法和电子设备 | |
WO2024082855A1 (zh) | 一种音频业务处理方法、电子设备及计算机存储介质 | |
CN117857692A (zh) | 音振同步方法、系统及相关装置 | |
CN118900381A (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 |