CN115426588B - 一种音频处理系统和方法 - Google Patents

一种音频处理系统和方法 Download PDF

Info

Publication number
CN115426588B
CN115426588B CN202211364343.7A CN202211364343A CN115426588B CN 115426588 B CN115426588 B CN 115426588B CN 202211364343 A CN202211364343 A CN 202211364343A CN 115426588 B CN115426588 B CN 115426588B
Authority
CN
China
Prior art keywords
audio
processing
module
channel
pipeline
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
CN202211364343.7A
Other languages
English (en)
Other versions
CN115426588A (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.)
Hangzhou Xingxi Technology Co ltd
Original Assignee
Hangzhou Xingxi Technology 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 Hangzhou Xingxi Technology Co ltd filed Critical Hangzhou Xingxi Technology Co ltd
Priority to CN202211364343.7A priority Critical patent/CN115426588B/zh
Publication of CN115426588A publication Critical patent/CN115426588A/zh
Application granted granted Critical
Publication of CN115426588B publication Critical patent/CN115426588B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R3/00Circuits for transducers, loudspeakers or microphones

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • Stereophonic System (AREA)

Abstract

本发明实施例公开了一种音频处理系统和方法。该音频处理系统包括:第一输入模块用于获取至少一个类型的音频输入源输入的音频数据;第二输入模块,用于接收第一输入模块获取的音频数据;声音处理模块包括:至少一个处理节点,至少一个处理节点包含自定义功能,每个处理节点互相连接形成通道;每个处理节点通过管线获取音频数据的通道连接信息与音频参数配置信息,依据通道连接信息与音频参数配置信息对音频数据进行处理;输出模块用于输出音频处理后的音频数据;数据流调用模块用于依据调用指令获取音频处理后的音频数据。本发明提供的方案能够统一适配不同平台、系统、不同音频功能需求的一套音频处理软件框架的技术效果。

Description

一种音频处理系统和方法
技术领域
本发明涉及计算机技术应用领域,尤其涉及一种音频处理系统和方法。
背景技术
目前对于音频的处理功能以单功能、单独库实现为主。现有对于更多业务需求的音频处理,通常实现复杂音频处理需求是通过硬件调音台方式。而近几年直播机行业兴起,对于音频处理的需求日益增加。通常基于android平台,那么在android系统上通过软件实现类似硬件的调音台功能有较大的需求。
针对上述由于现有技术中无法满足不同平台上对于复杂音频功能的处理需求的问题,目前尚未提出有效的解决方案。
发明内容
为解决上述技术问题,本发明实施例期望提供一种音频处理系统和方法,以至少解决由于现有技术中无法满足不同平台上对于复杂音频功能的处理需求的问题。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种音频处理系统,包括:第一输入模块、第二输入模块、声音处理模块、输出模块和数据流调用模块;其中,第一输入模块包括至少一个类型的音频输入源,用于获取至少一个类型的音频输入源输入的音频数据;其中,第一输入模块包括至少一路音频输入,每路音频输入包括至少一个类型的音频输入源;第二输入模块,与第一输入模块连接,用于接收第一输入模块获取的音频数据;声音处理模块,与第二输入模块连接,其中,声音处理模块包括:至少一个处理节点,至少一个处理节点包含自定义功能,每个处理节点互相连接形成通道;每个处理节点通过管线获取音频数据的通道连接信息与音频参数配置信息,依据通道连接信息与音频参数配置信息对音频数据进行处理;输出模块,与声音处理模块连接,用于输出音频处理后的音频数据;数据流调用模块,与输出模块连接,用于依据调用指令获取音频处理后的音频数据;管线的一端与第一输入模块中的至少一个类型的音频输入源连接,并依次经过第二输入模块、声音处理模块和输出模块,管线的另一端与数据流调用模块连接,管线包含音频数据的通道连接信息和音频参数信息,其中,管线依据类型依次经过声音处理模块中的指定处理节点。
可选的,每个处理节点包括:至少一个声音处理功能单元,每个声音处理功能单元根据音频数据的类型和每个声音处理功能单元的预设功能进行音频处理;声音处理模块还包括:功能为自定义功能的声音处理模块,在自定义功能的声音处理模块运行多条管线,在多条管线中处理多路音频数据流与输出处理结果。
可选的,音频参数配置信息包括目标对象信息,至少一个处理节点根据目标对象信息创建声音处理功能单元,并通过声音处理功能单元进行音频处理,声音处理功能单元与目标对象对应。
可选的,通道根据管线包含的通道连接信息,在管线流经对应处理节点时,控制处理节点对目标对象执行对应操作;其中,管线的类型至少包括:树形或直通类型,至少一个处理节点支持树形管线或直通类型的管线。
第二方面,本发明实施例提供一种音频处理方法,应用于上述音频处理系统,包括:通过读取接收到的配置文件创建通道;通过通道接收请求消息,其中,请求消息包括:各类型的音频数据的待处理请求消息;在通道中根据各类型的音频数据的待处理请求消息的类型执行对应操作。
可选的,在通过读取接收到的配置文件创建通道之前,该方法还包括:对音频处理系统进行初始化,其中,对音频处理系统进行初始化包括:缓存与管理通道、创建与销毁管线、实现管线的配置接口、请求框架启动与销毁中的至少一种。
可选的,通过读取接收到的配置文件创建通道包括:依据配置文件创建第二输入模块、声音处理模块和输出模块,以及,创建第二输入模块、声音处理模块和输出模块之间的功能关系;依据功能关系通过第二输入模块、声音处理模块和输出模块组成通道。
可选的,在通过通道接收请求消息之前,该方法还包括:创建消息处理线程与消息处理队列,其中,消息处理队列,用于接收数据流调用模块的接口操作消息;消息处理线程,用于控制音频处理系统进入循环操作。
可选的,在通道中根据各类型的音频数据的待处理请求消息的类型执行对应操作包括:在各类型的音频数据的待处理请求消息的类型包括开启流请求的情况下,创建管线,其中,管线中包含:流通道信息,用于保存每个声音处理模块处理数据流时的参数配置信息;创建声音处理模块的参数配置信息,其中,参数配置信息,用于指示声音处理模块在音频数据流经声音处理模块时执行的对应功能;将参数配置信息与管线关联,其中,将参数配置信息与管线关联包括:在管线中创建容器,在容器中配置参数配置信息,并将参数配置信息的对象加入声音处理模块中作为目标处理对象。
进一步地,可选的,在通道中根据各类型的音频数据的待处理请求消息的类型执行对应操作包括:在各类型的音频数据的待处理请求消息的类型包括配置流请求的情况下,从容器中获取与配置流请求对应的目标处理对象;对目标处理对象进行重置,得到重置后的目标处理对象;将目标处理对象配置于容器。
可选的,在通道中根据各类型的音频数据的待处理请求消息的类型执行对应操作包括:在各类型的音频数据的待处理请求消息的类型包括数据读取请求的情况下,判断是否创建第一输入模块;在判断结果为是的情况下,遍历第一输入模块所属的通道中的声音处理模块,通过第二输入模块接收待处理的音频数据,根据数据所属的管线中声音处理模块的参数配置信息对音频数据进行处理,并将处理结果输出至输出模块的目标缓冲区;在判断结果为否的情况下,创建并初始化第一输入模块,并将第一输入模块与第二输入模块连接。
本发明实施例提供了一种音频处理系统和方法。第一输入模块包括至少一个类型的音频输入源,用于获取至少一个类型的音频输入源输入的音频数据;其中,第一输入模块包括至少一路音频输入,每路音频输入包括至少一个类型的音频输入源;第二输入模块,与第一输入模块连接,用于接收第一输入模块获取的音频数据;声音处理模块,与第二输入模块连接,其中,声音处理模块包括:至少一个处理节点,至少一个处理节点包含自定义功能,每个处理节点互相连接形成通道;每个处理节点通过管线获取音频数据的通道连接信息与音频参数配置信息,依据通道连接信息与音频参数配置信息对音频数据进行处理;输出模块,与声音处理模块连接,用于输出音频处理后的音频数据;数据流调用模块,与输出模块连接,用于依据调用指令获取音频处理后的音频数据;管线的一端与第一输入模块中的至少一个类型的音频输入源连接,并依次经过第二输入模块、声音处理模块和输出模块,管线的另一端与数据流调用模块连接,管线包含音频数据的通道连接信息和音频参数信息,其中,管线依据类型依次经过声音处理模块中的指定处理节点,从而能够统一适配不同平台、系统、不同音频功能需求的一套音频处理软件框架的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例一提供的一种音频处理系统的示意图;
图2为本发明实施例二提供的一种音频处理方法的流程示意图;
图3为本发明实施例二提供的另一种音频处理方法的流程示意图;
其中,图1中所示的10为第一输入模块,12为第二输入模块,14为声音处理模块,16为输出模块,18为数据流调用模块。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。
还需要说明是,本发明下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本发明实施例对此不作具体限制。
实施例一
第一方面,本发明实施例提供一种音频处理系统,图1为本发明实施例一提供的一种音频处理系统的示意图;如图1所示,本申请实施例提供的音频处理系统包括:第一输入模块10、第二输入模块12、声音处理模块14、输出模块16和数据流调用模块18;其中,
第一输入模块10包括至少一个类型的音频输入源,用于获取至少一个类型的音频输入源输入的音频数据;其中,第一输入模块10包括至少一路音频输入,每路音频输入包括至少一个类型的音频输入源;第二输入模块12,与第一输入模块10连接,用于接收第一输入模块10获取的音频数据;声音处理模块14,与第二输入模块12连接,其中,声音处理模块14包括:至少一个处理节点,至少一个处理节点包含自定义功能,每个处理节点互相连接形成通道;每个处理节点通过管线获取音频数据的通道连接信息与音频参数配置信息,依据通道连接信息与音频参数配置信息对音频数据进行处理;输出模块16,与声音处理模块14连接,用于输出音频处理后的音频数据;数据流调用模块18,与输出模块16连接,用于依据调用指令获取音频处理后的音频数据;管线的一端与第一输入模块10中的至少一个类型的音频输入源连接,并依次经过第二输入模块12、声音处理模块14和输出模块16,管线的另一端与数据流调用模块18连接,管线包含音频数据的通道连接信息和音频参数信息,其中,管线依据类型依次经过声音处理模块14中的指定处理节点。
可选的,每个处理节点包括:至少一个声音处理功能单元,每个声音处理功能单元根据音频数据的类型和每个声音处理功能单元的预设功能进行音频处理;声音处理模块14还包括:功能为自定义功能的声音处理模块14,在自定义功能的声音处理模块14运行多条管线,在多条管线中处理多路音频数据流与输出处理结果。
具体的,基于同样的声音处理模块14实现多通道音频流数据实时处理。 基于自定义的节点node,可以在node节点中运行多条管线channel 以达到多路音频数据流同时处理与输出的能力。即,可基于channel包含的信息,复用node功能与source输入、对应于前端多个stream输出,实现多路音频数据同时处理,音频数据经过对应处理节点时,可以按照预先设定的指令进行特定处理,或者经过但不处理,实现基于同样的处理节点实现不同的处理效果。
在本申请实施例中第二输入模块12用于对第一输入模块10中的各个音频输入源进行管理,第二输入模块12组合各个音频输入源, 管理各个音频输入源的生命周期管理、监控各音频输入源运行状态以及通过各音频输入源读取音频数据等。例如,在第二输入模块12中创建对应各个音频输入源的标识及存储空间,或,在后续音频处理流程对各音频输入源的读取等管理功能。
可选的,音频参数配置信息包括目标对象信息,至少一个处理节点根据目标对象信息创建声音处理功能单元,并通过声音处理功能单元进行音频处理,声音处理功能单元与目标对象对应。
其中,管线,还用于通过对管线的自定义,以使得通过同一个声音处理模块处理指定管线中对应的多个目标对象。
具体的,本申请实施例提供的音频处理系统音频处理自由度较高,由于支持管线channel、子管线subchannel的链接关系的自由定义,对于特定的复杂场景,该框架支撑树形channel结构,即,同一个node 可以处理特定channel 中对应的多个目标对象target,如混音流对应的channel,经过mix node时可以有三个taeget目标,对应三路subchannel,在mix node中可将这三路subchannel混合成一路音频流。
可选的,通道根据管线包含的通道连接信息,在管线流经对应处理节点时,控制处理节点对目标对象执行对应操作;其中,管线的类型至少包括:树形或直通类型,至少一个处理节点支持树形管线或直通类型的管线。
通道,用于通过静态文件读取或者网络接口输入的方式对第二输入模块12、声音处理模块14和输出模块16和/或音频数据进行动态配置;其中,本申请实施例提供的音频处理系统中动态改变node 以适应应用层业务修改。通道,还用于当应用开启变声功能时,在通道中插入功能为变声的node,对待处理的数据流进行处理。
原有的数据流的路径若不需要,则进行路径回收处理。例如,在处理不需要进行变声处理的音频数据时,管线在经过功能为变声的node时,采取bypass方式,即经过但不处理。
具体的,如图1所示,在本申请实施例提供的音频处理系统中,包括第一输入模块10、第二输入模块12、声音处理模块14,包含至少一个声音处理节点、输出模块16、数据流调用模块18。
其中,声音处理节点node,通常一个node具备处理多个管线channel的音频数据(frame)的能力。常见的node有输入node、输出node、音量增益处理node、音频重采样node、音频混音node、音频自动增益node、音频回声消除node、音频降噪node、音频音效处理node等,在本申请实施例中每个node是相互独立的处理节点,互不影响,解耦性高。
声音处理功能单元unit, 每个node至少持有一个unit ,unit是node中实现具体音频处理功能的组件, 如一个Resample node 可能持有两个 Resample unit(如通过ffmpeg lib实现) 来处理两路音频数据的重采样。一个node可能会对应多个unit。一个unit通常情况下会对应一个目标对象,目标对象指待处理的音频数据。
管线channel,横跨各个node,实现完整音频通路。对应一个前端的stream输出,覆盖一种音频业务处理场景。channel主要包含音频数据流的通道连接信息与音频参数配置信息来告知channel所经过的node该如何处理本通道的音频数据。
通道pipeline,用于描述node的整体拓扑结构。通常情况下为单线式连接。上图中所有node连接而成的通道可以视为一条pipeline。pipeline可以通过静态文件读取或者网络接口输入等方式进行动态配置。
第一输入模块source,如通过linux alsa标准接口实现的音频源、通过虚拟声卡节点实现的虚拟音频源、usb 音频源、网络流实现的远程音频源、解析本地文件实现的本地音频源等。source模块封装不同的音频源实现统一的数据源操作接口。保证对应Inputnode处理不同类型音频源时能够统一操作接口。
数据流调用模块stream,为上层音频功能调用提供的音频数据流操作句柄。常见的操作接口可能有:open()、close()、config()、prepare()、read()等。
本申请实施例提供的音频处理系统中基于模块化的处理节点、管线化的处理流程、通道化的数据流描述作为核心设计思想, 通过多路通道数据流复用处理管线的方法实现多路流数据输出,模块化的处理节点为复杂音频处理功能的单元性、模块化解耦提供了基础,管线化的处理流程可通过静态文件、接口请求等方式进行动态配置,极大的提高了软件框架的功能适配性、平台适配性与功能扩展性,通道化的数据流设计能够再更细的颗粒度上实现对于不同音频处理场景的需求,通过以上三个核心设计要素,实现了具备高度适配性的、适合复杂音频处理场景的音频软件架构处理方案。
本申请实施例提供的音频处理系统能够较好地功能适配性,采用模块化、拓扑连接的音频处理模块管线,支持通过静态配置文件实现音频功能随意定制化与功能裁剪、增加;较好的场景适应性,基于节点拓扑图,抽象的音频通道,在一条处理管线上能支持多场景下的音频读取需求;较好地功能拓展性,节点本身可按照需求自由定制化,能够适配绝大多数音频处理的场景;代码模块独立,功能模块解耦较好,框架简单高效,结构清晰明确。
本发明实施例提供了一种音频处理系统。第一输入模块包括至少一个类型的音频输入源,用于获取至少一个类型的音频输入源输入的音频数据;其中,第一输入模块包括至少一路音频输入,每路音频输入包括至少一个类型的音频输入源;第二输入模块,与第一输入模块连接,用于接收第一输入模块获取的音频数据;声音处理模块,与第二输入模块连接,其中,声音处理模块包括:至少一个处理节点,至少一个处理节点包含自定义功能,每个处理节点互相连接形成通道;每个处理节点通过管线获取音频数据的通道连接信息与音频参数配置信息,依据通道连接信息与音频参数配置信息对音频数据进行处理;输出模块,与声音处理模块连接,用于输出音频处理后的音频数据;数据流调用模块,与输出模块连接,用于依据调用指令获取音频处理后的音频数据;管线的一端与第一输入模块中的至少一个类型的音频输入源连接,并依次经过第二输入模块、声音处理模块和输出模块,管线的另一端与数据流调用模块连接,管线包含音频数据的通道连接信息和音频参数信息,其中,管线依据类型依次经过声音处理模块中的指定处理节点,从而能够统一适配不同平台、系统、不同音频功能需求的一套音频处理软件框架的技术效果。
实施例二
第二方面,本发明实施例提供一种音频处理方法,图2为本发明实施例二提供的一种音频处理方法的流程示意图;如图2所示,应用于实施例一中的音频处理系统,本申请实施例提供的音频处理方法包括:
步骤S202,通过读取接收到的配置文件创建通道;
步骤S204,通过通道接收请求消息,其中,请求消息包括:各类型的音频数据的待处理请求消息;
步骤S206,在通道中根据各类型的音频数据的待处理请求消息的类型执行对应操作。
可选的,在步骤S202中通过读取接收到的配置文件创建通道之前,本申请实施例提供的音频处理方法还包括:对音频处理系统进行初始化,其中,对音频处理系统进行初始化包括:缓存与管理通道、创建与销毁管线、实现管线的配置接口、请求框架启动与销毁中的至少一种。
可选的,步骤S202中通过读取接收到的配置文件创建通道包括:依据配置文件创建第二输入模块、声音处理模块和输出模块,以及,创建第二输入模块、声音处理模块和输出模块之间的功能关系;依据功能关系通过输入模块、声音处理模块和输出模块组成通道。
可选的,在步骤S204中通过通道接收请求消息之前,本申请实施例提供的音频处理方法还包括:创建消息处理线程与消息处理队列,其中,消息处理队列,用于接收数据流调用模块的接口操作消息;消息处理线程,用于控制音频处理系统进入循环操作。
可选的,步骤S206中在通道中根据各类型的音频数据的待处理请求消息的类型执行对应操作包括:在各类型的音频数据的待处理请求消息的类型包括开启流请求的情况下,创建管线,其中,管线中包含:流通道信息,用于保存每个声音处理模块处理数据流时的参数配置信息;创建声音处理模块的参数配置信息,其中,参数配置信息,用于指示声音处理模块在音频数据流经声音处理模块时执行的对应功能;将参数配置信息与管线关联,其中,将参数配置信息与管线关联包括:在管线中创建容器,在容器中配置参数配置信息,并将参数配置信息的对象加入声音处理模块中作为目标处理对象。
进一步地,可选的,在通道中根据各类型的音频数据的待处理请求消息的类型执行对应操作包括:在各类型的音频数据的待处理请求消息的类型包括配置流请求的情况下,从容器中获取与配置流请求对应的目标处理对象;对目标处理对象进行重置,得到重置后的目标处理对象;将目标处理对象配置于容器。
可选的,在通道中根据各类型的音频数据的待处理请求消息的类型执行对应操作包括:在各类型的音频数据的待处理请求消息的类型包括数据读取请求的情况下,判断是否创建第一输入模块;在判断结果为是的情况下,遍历第一输入模块所属的通道中的声音处理模块,通过第二输入模块接收待处理的音频数据,根据数据所属的管线中声音处理模块的参数配置信息对音频数据进行处理,并将处理结果输出至输出模块的目标缓冲区;在判断结果为否的情况下,创建并初始化第一输入模块,并将第一输入模块与第二输入模块连接。
综上,结合步骤S202至步骤S206,图3为本发明实施例二提供的另一种音频处理方法的流程示意图;如图3所示,本申请实施例提供的音频处理方法还包括:
Step1:系统初始化。通常会初始化一个全局单例的音频中心对象,用于缓存与管理pipeline、channel创建与销毁、实现channel配置接口、请求框架启动与销毁工作。
Step2:通过读取配置文件,构建pipeline。构建pipeline的过程包含node节点的创建与初始化、节点间依赖关系设置、将各节点加入pipeline等工作。
Step3:构建消息处理线程与消息处理队列。用于接收音频流句柄对象stream的接口操作消息。线程启动后进入循环。
Step4:线程循环处理查询消息队列状态,若无消息处理则进入等待状态。若有消息处理则进入具体的消息处理状态。当上层接口调用stream对象的接口生成消息并入队时,会唤醒消息处理线程进行消息处理。根据消息类型的不同,可能会跳转到step5 或step8或step11。
Step5:处理开启流请求。首先构建channel。channel主要包含流通道信息,保存流经过每个node应该如何被处理的node参数配置信息。
Step6:构造node参数配置信息, 后续节点运行时会读取该配置,根据此配置处理属于该channel经过node的数据帧。
Step7:将step6中生成的参数配置信息绑定到channel中。通常的做法是在channel中构建一个容器(如数组、链表、树),将参数配置信息对象赋值channel id、subchannel id等必要参数后加入channel的容器。同时参数配置信息对象也需要分别加入到node中作为目标处理对象,记为target。
Step8:处理配置流请求。从channel保存参数配置信息的容器中找到目标参数配置信息对象。
Step9:重新设置目标参数配置信息对象。
Step10:再次将该目标参数配置信息对象绑定到channel中。
Step11:处理数据处理请求。判断是否已经构建source。若否,跳转Step12.若是,跳转step13。
Step12:构建及初始化Source,并添加到Inputnode内作为它的一个组件。
Step13:遍历pipeline中的node节点进行处理处理。此处理过程的顺序是从pipeline的尾部开始(通常是连接source的Inputnode),直到首节点(一般是Outputnode).遍历处理过程中一般会搜寻自己channel对应的target(即step7中保存到node的参数配置信息)并进行处理,遍历完整个pipeline后整个channel即被处理完成。将结果数据拷贝到Outputnode的目标缓冲区即可完成输出。
本申请实施例提供的音频处理方法能够应用于虚拟音频场景,将source实现变成虚拟声卡的实现,另外实现一客户端向该虚拟声卡节点注入数据,本框架负责数据读取与处理,即可完整实现虚拟音频功能;并且还可以系统集成场景,本框架整体放到android系统hal层进行运行,可替换系统原生tinyalsa驱动接口。即可实现对android系统原生音频能力的极大扩展。应用集成场景,本框架作为应用app进行集成,如android中封装为jnilib库,可实现应用层对于音频处理功能的完整实现。以及,不同硬件方案中使用同一套软件方案,根据不同产品音频处理功能不同,使用静态文件保存不同pipeline node配置。不同产品的系统中动态读取以及初始化即可完成同一框架对不同功能需求的方案的支持。
本发明实施例提供了一种音频处理方法。通过读取接收到的配置文件创建通道;通过通道接收请求消息,其中,请求消息包括:各类型的音频数据的待处理请求消息;在通道中根据各类型的音频数据的待处理请求消息的类型执行对应操作,从而能够统一适配不同平台、系统、不同音频功能需求的一套音频处理软件框架的技术效果。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (11)

1.一种音频处理系统,其特征在于,包括:
第一输入模块、第二输入模块、声音处理模块、输出模块和数据流调用模块;其中,
所述第一输入模块包括至少一个类型的音频输入源,用于获取所述至少一个类型的音频输入源输入的音频数据;其中,所述第一输入模块包括至少一路音频输入,每路音频输入包括所述至少一个类型的音频输入源;
所述第二输入模块,与所述第一输入模块连接,用于接收所述第一输入模块获取的所述音频数据;
所述声音处理模块,与所述第二输入模块连接,其中,所述声音处理模块包括:至少一个处理节点,所述至少一个处理节点包含自定义功能,每个处理节点互相连接形成通道;所述每个处理节点通过管线获取所述音频数据的通道连接信息与音频参数配置信息,依据所述通道连接信息与所述音频参数配置信息对所述音频数据进行处理;
所述输出模块,与所述声音处理模块连接,用于输出所述音频处理后的音频数据;
所述数据流调用模块,与所述输出模块连接,用于依据调用指令获取所述音频处理后的音频数据;
所述管线的一端与所述第一输入模块中的所述至少一个类型的音频输入源连接,并依次经过所述第二输入模块、所述声音处理模块和所述输出模块,所述管线的另一端与所述数据流调用模块连接,所述管线包含所述音频数据的所述通道连接信息和所述音频参数信息,其中,所述管线依据类型依次经过所述声音处理模块中的指定处理节点;
其中,所述每个处理节点包括:至少一个声音处理功能单元,每个声音处理功能单元根据所述音频数据的类型和所述每个声音处理功能单元的预设功能进行音频处理。
2.根据权利要求1所述的音频处理系统,其特征在于,
所述声音处理模块还包括:功能为自定义功能的声音处理模块,在所述自定义功能的声音处理模块运行多条所述管线,在多条所述管线中处理多路音频数据流与输出处理结果。
3.根据权利要求1或2所述的音频处理系统,其特征在于,所述音频参数配置信息包括目标对象信息,所述至少一个处理节点根据所述目标对象信息创建声音处理功能单元,并通过所述声音处理功能单元进行音频处理,所述声音处理功能单元与所述目标对象对应。
4.根据权利要求3所述的音频处理系统,其特征在于,所述通道根据所述管线包含的所述通道连接信息,在所述管线流经对应处理节点时,控制所述处理节点对所述目标对象执行对应操作;
其中,所述管线的类型至少包括:树形或直通类型,所述至少一个处理节点支持树形管线或直通类型的管线。
5.一种音频处理方法,其特征在于,应用于权利要求1至4中任意一项所述的音频处理系统,包括:
通过读取接收到的配置文件创建通道;
通过所述通道接收请求消息,其中,所述请求消息包括:各类型的音频数据的待处理请求消息;
在所述通道中根据所述各类型的音频数据的待处理请求消息的类型执行对应操作。
6.根据权利要求5所述的音频处理方法,其特征在于,在所述通过读取接收到的配置文件创建通道之前,所述方法还包括:
对音频处理系统进行初始化,其中,对音频处理系统进行初始化包括:缓存与管理所述通道、创建与销毁管线、实现管线的配置接口、请求框架启动与销毁中的至少一种。
7.根据权利要求5所述的音频处理方法,其特征在于,所述通过读取接收到的配置文件创建通道包括:
依据所述配置文件创建第二输入模块、声音处理模块和输出模块,以及,创建所述输入模块、所述声音处理模块和所述输出模块之间的功能关系;
依据所述功能关系通过所述第二输入模块、所述声音处理模块和所述输出模块组成所述通道。
8.根据权利要求5所述的音频处理方法,其特征在于,在所述通过所述通道接收请求消息之前,所述方法还包括:
创建消息处理线程与消息处理队列,其中,所述消息处理队列,用于接收数据流调用模块的接口操作消息;所述消息处理线程,用于控制所述音频处理系统进入循环操作。
9.根据权利要求5至8中任意一项所述的音频处理方法,其特征在于,所述在所述通道中根据所述各类型的音频数据的待处理请求消息的类型执行对应操作包括:
在所述各类型的音频数据的待处理请求消息的类型包括开启流请求的情况下,创建管线,其中,所述管线中包含:流通道信息,用于保存每个声音处理模块处理数据流时的参数配置信息;
创建所述声音处理模块的参数配置信息,其中,所述参数配置信息,用于指示所述声音处理模块在音频数据流经所述声音处理模块时执行对应功能;
将所述参数配置信息与所述管线关联,其中,所述将所述参数配置信息与所述管线关联包括:在所述管线中创建容器,在所述容器中配置所述参数配置信息,并将所述参数配置信息的对象加入所述声音处理模块中作为目标处理对象。
10.根据权利要求9所述的音频处理方法,其特征在于,所述在所述通道中根据所述各类型的音频数据的待处理请求消息的类型执行对应操作包括:
在所述各类型的音频数据的待处理请求消息的类型包括配置流请求的情况下,从所述容器中获取与所述配置流请求对应的所述目标处理对象;
对所述目标处理对象进行重置,得到重置后的目标处理对象;
将所述目标处理对象配置于所述容器。
11.根据权利要求5至8中任意一项所述的音频处理方法,其特征在于,所述在所述通道中根据所述各类型的音频数据的待处理请求消息的类型执行对应操作包括:
在所述各类型的音频数据的待处理请求消息的类型包括数据读取请求的情况下,判断是否创建第一输入模块;
在判断结果为是的情况下,遍历所述第一输入模块所属的通道中的声音处理模块,通过第二输入模块接收待处理的音频数据,根据所述数据所属的管线中所述声音处理模块的参数配置信息对音频数据进行处理,并将处理结果输出至输出模块的目标缓冲区;
在判断结果为否的情况下,创建并初始化所述第一输入模块,并将所述第一输入模块与第二输入模块连接。
CN202211364343.7A 2022-11-02 2022-11-02 一种音频处理系统和方法 Active CN115426588B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211364343.7A CN115426588B (zh) 2022-11-02 2022-11-02 一种音频处理系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211364343.7A CN115426588B (zh) 2022-11-02 2022-11-02 一种音频处理系统和方法

Publications (2)

Publication Number Publication Date
CN115426588A CN115426588A (zh) 2022-12-02
CN115426588B true CN115426588B (zh) 2023-03-03

Family

ID=84207229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211364343.7A Active CN115426588B (zh) 2022-11-02 2022-11-02 一种音频处理系统和方法

Country Status (1)

Country Link
CN (1) CN115426588B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2506262A2 (en) * 2011-03-28 2012-10-03 YAMAHA Corporation Audio data inputting apparatus and audio data outputting apparatus
CN103793193A (zh) * 2012-10-30 2014-05-14 联想(北京)有限公司 一种音频接口的模式切换方法、音频接口及电子设备
CN110333839A (zh) * 2019-06-12 2019-10-15 腾讯科技(深圳)有限公司 一种音频数据处理方法、装置及介质
CN111736794A (zh) * 2019-03-22 2020-10-02 北京骑胜科技有限公司 用于播放声音的方法、车辆和计算机可读介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100128888A1 (en) * 2008-11-21 2010-05-27 Plantronics, Inc. Automatic Audio Processing Mode Control
CN109462796A (zh) * 2018-10-25 2019-03-12 歌尔股份有限公司 一种音频处理系统及音频设备
CN114281297A (zh) * 2021-12-09 2022-04-05 上海深聪半导体有限责任公司 多音频流的传输管理方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2506262A2 (en) * 2011-03-28 2012-10-03 YAMAHA Corporation Audio data inputting apparatus and audio data outputting apparatus
CN103793193A (zh) * 2012-10-30 2014-05-14 联想(北京)有限公司 一种音频接口的模式切换方法、音频接口及电子设备
CN111736794A (zh) * 2019-03-22 2020-10-02 北京骑胜科技有限公司 用于播放声音的方法、车辆和计算机可读介质
CN110333839A (zh) * 2019-06-12 2019-10-15 腾讯科技(深圳)有限公司 一种音频数据处理方法、装置及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
多通道同步语音数据采集系统的实现;曾辉等;《微计算机应用》;20080615(第06期);全文 *

Also Published As

Publication number Publication date
CN115426588A (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
Graham et al. Open MPI: A high-performance, heterogeneous MPI
CN109274722B (zh) 数据共享方法、装置以及电子设备
US7752635B2 (en) System and method for configuring a virtual network interface card
CN111741134B (zh) 一种网络靶场大规模场景中虚拟机快速构建系统与方法
CN111625354B (zh) 一种边缘计算设备算力的编排方法及其相关设备
US20170302978A1 (en) Video coding method, system and server
CN106533713B (zh) 一种应用部署方法及设备
CN109547509B (zh) 一种跨平台部署的方法和系统
CN112799825A (zh) 一种任务处理方法和网络设备
WO2022142601A1 (zh) 应用程序的构建方法、装置及计算机设备
CN111258530B (zh) 音频播放控制方法和服务器以及音频播放系统
CN115426588B (zh) 一种音频处理系统和方法
CN114296864A (zh) 一种iso镜像转换成容器镜像的方法及设备
WO2021135283A1 (zh) 一种异构计算系统及其计算方法
CN111310638B (zh) 一种数据处理方法、装置及计算机可读存储介质
CN110519092B (zh) 边缘网关、配置工具和软plc功能的脚本化实现方法
US11252457B2 (en) Multimedia streaming and routing apparatus and operation method of the same
CN108306757B (zh) 可编程数据平面虚拟层构建方法及存储介质
CN111740869B (zh) 基于物理网卡的kubernetes网络实现方法、系统、设备及介质
CN108886476B (zh) 虚拟交换机数据平面和数据平面迁移的多个提供器框架
CN115202674A (zh) 基于Helm的kubernetes集群中本地卷自动化部署方法
CN115225482A (zh) 一种基于Kubernetes进行Pod容器网络配置的方法及装置
JP5298055B2 (ja) 資源内に配置された制御対象機器を制御する機器制御装置、プログラム及び方法
KR100962614B1 (ko) 저 레벨 계층을 고객 소프트웨어 프로그램에 개방하는메인 소프트웨어 프로그램과 저 레벨 계층을 구동하는무선통신 모듈
KR100719416B1 (ko) 데이터 처리 장치 및 데이터 처리 방법

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