如果您设计并构建了自己的音频用例,您可能会发现在开发环境中存在一些重大障碍:
- 您找不到一个单独、集成的环境来开发您的用例。
- 没有用于调优和用例配置的综合基础设施。
- 如果您希望跨多个处理器实现端到端的用例,则必须使用多个软件框架。
- 在开源框架中没有对异构分布式处理的原生支持。
- 您不能在低功耗或高性能子系统的级别上独立控制用例(信号流程图)。
这些障碍在当前的开源环境中给音频处理供应商、调优工程师和系统集成商/原始设备制造商/原始设计制造商带来了令人烦恼的空白。
为了填补这些空白,高通科技公司(QTI)将AudioReach信号处理框架开源,AudioReach是高通公司内部开发的一种端到端音频开发SDK,已经在一系列由高通科技公司片上系统(SoC)驱动的产品上实现了商业化,例如可穿戴设备、汽车、手机、扩展现实设备和计算硬件。我们设想将AudioReach发展成为一个社区驱动的项目,以支持整个行业的各家供应商——从树莓派和Xtensa DSP(数字信号处理器)开始,而不仅仅是高通的芯片。
本文探讨了AudioReach软件开发工具包,包括为主机和嵌入式设备(例如:手机、汽车设备、XR/VR、智能扬声器、摄像头和视频会议硬件)制作的软件组件。
(这是我在Linaro Connect大会上的演讲“AudioReach开源项目”的总结。详情和链接见下文。)
高通科技公司的开源工作
AudioReach是高通科技公司最新的开源项目之一,因此我们期待社区的指导和参与。
AudioReach开源项目实现了音频解决方案开发工作流程的四个主要部分:
- 脱离设备的开发,即音频产品的开发人员可以基于主机开始工作。
- 使用基于图形用户界面的工具进行图形化设计和配置。
- 一套全面的测试和模拟套件(一旦设计完成)。
- 到目标设备的简单部署路径,具有集成测试和调优功能。
我们认为,AudioReach可以降低开发和维护音频软件和硬件的总体成本。
- 在其基于图形用户界面的集成开发环境中,您可以实时设计、模拟(在线或离线)和调整信号流图。
- 可以实现与标准API、专用配置工具、Gstreamer和PulseAudio等产品的互操作性。
- 我们让离线(仿真)开发变得容易,然后将您的项目迁移到在线开发中。
- AudioReach具有高度可移植性,因此无论片上系统/硬件和操作系统平台如何,您都可以享受到相同的开发环境和工作流程。
- 您可以在各种硬件产品中使用AudioReach,从内存和计算受限的可穿戴设备到高性能汽车应用程序。
正如本人所提到的,我们期待看到AudioReach的发展远远超出高通科技公司所支持的硬件。AudioReach的许可证将会是由开源促进会建立的3条款BSD许可证(BSD-3-Clause)。我们设想一个社区将会围绕AudioReach成长,积极的参与者和指导委员会将会为我们的项目做出贡献。
AudioReach SDK包含哪些内容?
下图显示了SDK的主要组件:
左侧的米黄色大框描绘了主机环境;右侧大框则显示了目标环境(在嵌入式设备的片上系统上运行)。
1. AudioReach Creator
AudioReach Creator是提供图形用户界面环境的主要工具,您可以在其中设计和配置音频用例。您可以使用其来拖放处理模块,这些模块构成了离线和在线模式下系统的用例。您可以在AudioReach Creator中获得三种有价值的功能:
- 运行时音频处理流修改——当处理流正在运行时,设计人员仍然可以在AudioReach Creator中修改处理流。如果设计人员发现有一个模块丢失,则可以插入新的模块或者删除一个模块,而无需停止用例。
- 模块调优——当用例在AudioReach Creator中运行时,您可以更改模块参数或运行时,而无需停止用例。
- 处理器资源监控——通过资源监控密切关注您的DSP使用情况。如果您的某个处理器占用率达到了峰值,您可以选择将任务卸载到其他DSP处理器上。
2. 信号处理框架(SPF)
信号处理框架专为各种用例而设计,并允许即插即用,从而可以轻松插入算法模块。信号处理框架支持动态加载,因此您不必将所有用例模块构建到DSP镜像本身。信号处理框架具有很高的可移植性,因为它在核心框架和我们称为平台和操作系统抽象层(POSAL)之间具有一个清晰的分离状态。
AudioReach的一个重要功能是它允许在不同处理器中进行分布式处理。如上图所示,不同的信号处理框架实例部署在三个地方:2a)音频子系统的主DSP上;2b)直接在DSP上; 2c)Arm应用程序子系统中(3)。因此,在AudioReach Creator中,您能够对用例图进行分区,以确保部分用例图能够在主DSP上运行,部分直接在DSP上运行。如果您具有针对Arm进行优化的算法,您可以在Arm应用程序子系统中的信号处理框架上运行。分区和分布对您的应用程序是透明的。
4. 音频校准数据库(ACDB)
音频校准数据库是存储所有用例拓扑和图形定义,以及为用例调优的数据的地方。
5. AudioReach图形服务
AudioReach图形服务是一组跨操作系统的图形服务库,包含与信号处理框架交互的控制软件。AudioReach向客户机提供API,以设置用例图形,并与在不同子系统的信号处理框架上运行的用例图形交互。AudioReach图形服务通过音频校准数据库获取和下载用例、设备的图形定义及调优数据。
6. 操作系统平台适配
我们的首要任务是确保AudioReach支持现有的生态系统框架和应用程序接口。通过平台适配和插件,您会发现与PulseAudio等现有音频框架相同的开发人员接触点。
7. AudioReach SDK
AudioReach SDK在偏离目标模拟模式下运行与嵌入式设备上相同的软件组件。设计人员和开发人员可以在部署到设备之前,在模拟中运行其用例。
AudioReach开发工作流程
下图说明了我们为该开源项目设想的工作流程:
图片注释:
(环境)颜色图例
离线环境(主机)
在线环境(开发板)
1. 开始离线开发;
2. 打开数据库并通过ARGS、SPF及模块输入定制内容;
3. 使用图形用户界面进行图形式设计并配置系统用例;
4. 模拟并仿真测试;
5. 利用设备进行模拟和测试;
6. 利用设备生成并测试模块软件;
7. 通过软件堆栈将变更内容输出到片上系统/嵌入式设备;8. 集成、测试、配置、校准并调优
尽管AudioReach开源项目(OSP)仍处于起步阶段,但我们正朝着以下方向努力。
在主机环境中
1. 用例设计人员使用标准工业工具(例如:MATLAB和Simulink)进行算法开发。
2. 在初始开发之后,用例设计人员可以将定制内容和数据文件导入到AudioReach Creator中。
3. 在图形用户界面环境中,用例设计人员可以设计和配置系统用例。
4.设计好的用例可以在仿真器中离线运行。音频数据可以输入到MATLAB中进行处理,然后再返回到离线仿真中。
5. 在离线仿真验证之后,我们准备将测试从设计工具部署到实际设备上。设计人员可以通过AudioReach验证他们的算法在特定硬件平台上的运行情况。
6. 测试完成后,工具可以根据封装在AudioReach模块接口自动生成算法模块,这些模块已经针对特定的处理器架构进行了优化。
在目标设备中
7. 接下来,我们希望能够将配置导出到在SOC本身运行的软件堆栈中的不同组件。
8. 从那里,开发人员可以在目标设备上进行集成、测试、配置和调优。
简而言之,我们的目标是通过该工具实现整个开发工作流。
在Linux上的AudioReach
正如本人在上文所提到的那样,AudioReach已经在高通公司的SOC驱动的各种产品上实现了商业化。作为Linux开发人员,您有三个可选的路径来启用AudioReach,如下文架构图所示:
1. 链接ALSA内核——该驱动程序已经开源向上。请注意,该驱动程序目前仅支持基本的渲染和捕捉。
2. 用户模式架构——对于完整的功能集而言,这是一条更好的路径。该路径遵循一个典型的Linux音频软件堆栈,PulseAudio运行在libALSA顶部。在底层,AudioReach SDK提供了与通用AudioReach组件交互的插件,PulseAudio直接连接到被称为libALSA的随机弹窗。该SDK还具有与通用AudioReach组件交互的插件。
3. 平台适配层(PAL)——在我们的路线图上有一条与Linux平台适配层交互的路径,就像中间件一样。该平台适配层提供了一套随时可用的逻辑,以管理各种各样的用例和声音设备。
设备部署流程
以下是您将音频功能部署到设备(在这种情况下与Yocto一起)的工作流程:
- 购买AudioReach光信号处理器和Yocto支持的基准硬件。
- 同步Yocto项目并拉入必要的元层。
- 使能电路板并验证音频用例。
- 利用AudioReach Creator对尺寸规格进行调优。
- 从高通开发人员网络下载AudioReach Creator并设计用例图。
- 构建板级支持包(BSP)和AudioReach软件。
- 部署。
高通科技公司已经为AudioReach开发了元层,从而可以确保从光信号处理器中提取所有内容。
AudioReach的路线图
我们简要说明了AudioReach的几个阶段,如下所示:
第1阶段 | 第2阶段 | 第3阶段 | 第4阶段 | 第5阶段 | 第6阶段 |
开源项目 | 使能基准平台 | 使能树莓派 | 能力扩展,参考算法 | 使能Zephyr / Xtensa DSP | AudioReach Creator(QACT) |
·初版SDK,包括源文件、构建脚本和文档 | ·在高通机器人平台上运行的多个用例 ·复现和定制用例的开发人员指南 ·作为高通Linux的一部分发布 | ·在树莓派平台上运行的多个用例 ·复现和定制用例的开发人员指南 | ·简化流程和设备管理 ·扩展参考算法 | ·在Zephyr/Xtense DSP上运行的多个用例 ·复现和定制用例的开发人员指南 | ·开源QACT,重命名为Audio Reach Creator(QACT) ·跨平台工具支持(Windows, Linux, MaxOS) |
5月24日 | 6月24日 | 9月24日 | 2024年第4季度 | 2025年第2季度 | 2025年第4季度 |
第1阶段:高通科技公司已经创建了AudioReach开源项目。我们正在补充源代码和文档。
第2阶段:我们与 高通® Linux® 计划保持一致。我们希望在高通®第2代RB3平台上启用AudioReach。
第3阶段:树莓派及其大型开发人员社区是这个项目的重要目标。请继续关注有关树莓支持的更多更新内容。
第4阶段:我们希望使能内置Xtensa DSP的非高通硬件平台。
当然,我们将在第5、第6和第7阶段转向开源社区。
后续步骤
您可以通过您的建设性贡献和参与帮助我们完善自身的路线图。请在github.com/audioreach上访问项目,以下载SDK,并向我们反馈您意图了解的内容。我们也欢迎您加入本公司在Discord上的公共聊天,与其他专家会面,交流您的想法,并通过本公司的技术团队获得及时的支持。
我们相信,AudioReach开源项目将有助于降低应用程序开发人员和算法解决方案开发人员的开发和维护成本。该项目也为原始设备制造商和芯片供应商带来了希望,他们可以在自己的硬件平台上推出AudioReach。
如果获得更多详细内容节,请观看本人我在2024年Linaro Connect大会上的演讲“AudioReach开源项目”。在视频的最后是一个两分钟的AudioReach Creator的演示。
在所发布内容中表达的观点仅为原作者的个人观点,并不代表高通公司或其子公司(以下简称为“高通公司”)的观点。所提供的内容仅供参考之用,而并不意味着高通公司或任何其他方的赞同或表述。本网站同样可以提供非高通公司网站和资源的链接或参考。高通公司对于可能通过本网站引用、访问、或链接的任何非高通公司网站或第三方资源并没有做出任何类型的任何声明、保证、或其他承诺。
骁龙与高通品牌产品均为高通科技公司和/或其子公司的产品。
注册商标Linux®根据Linux基金会的再许可使用,Linux基金会是该商标在全球范围内的所有者林纳斯·托瓦兹的独家许可人。
关于作者
帕特里克·赖
首席工程师