VSP(语音信号处理)是专为GX8010芯片研发的语音信号处理框架。它运行在MCU、DSP、NPU和CPU上,主要完成待机和工作模式下的语音信号处理,比如降噪、去混响、回声消除、波束合成、特征提取、激活词识别等。除此之外,VSP框架还实现了原始语音数据采集、系统的启动和初始化(BootLoader)、系统状态检测、系统功耗控制、LED环效果、USB声卡等功能。
VSP在设计之初就兼顾考虑了语音信号处理的运算特点、硬件模块的特点、NPU和DSP处理器的特点,并在很大程度上对算法实现的便利性、内存使用效率、处理器性能和系统功耗进行了充分的优化。
为了帮助算法工程师顺利的在GX8010实现、移植和优化语音处理算法,特编写此文档详细描述VSP框架的组成和工作原理,以及开发过程中所需要的相关信息。除了算法工程师之外,系统架构师、系统工程师、驱动工程师、应用工程师也可以参考该文档,以便在VSP框架的基础上实现附加功能。
本文首先描述VSP运行的硬件环境以及VSP的软件需求,然后给出主要的设计思想和实现原则,然后展开描述VSP软件的设计(异步消息、Context、流水线、工作模式、启动过程和软件部署),最后给出移植算法的参考方法,文末附带开发环境指南和VSP的API指南。
1.1 知识准备
为了充分的理解VSP,并在VSP框架之上进行开发,并且让系统的稳定和高效的运转起来。一般来说,开发者需要具备以下知识、技能和相关经验:
语音信号处理的一般过程;
深度神经网络的工作原理,以及GX8010的NPU的开发流程;
GX8010语音信号处理子系统的硬件体系结构;
C语言的功底,开发者需要具备比较深厚的C语言功底,尤其要理解C语言的编译和链接的原理;
Tensilica HiFi4 DSP处理器的特点(尤其是矢量运算的特点),这对做算法优化尤其重要;
Linux Kernel驱动程序,VSP框架最终都是依靠Linux驱动程序与上层应用进行数据交互的。如果开发者希望在VSP框架基础上添加附加功能,那么还需要了解Linux Kernel驱动程序的开发和调试;
嵌入系统(尤其是内存受限系统和前后台系统)的一些设计模式,比如多核的运算量分配策略、状态机、工作模式、消息派送、任务队列、静态内存分配等等;
本文将着重描述VSP框架所依赖的硬件子系统的相关信息,VSP框架的组成和运行原理、算法开发环境的搭建、VSP SDK的API等相关内容。其余知识请参考“参考文档”一节。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !