【2023集创赛】芯原杯一等奖作品:基于芯原DSP核的智能语音SoC设计
本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)芯原杯一等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼品等你来领!
团队介绍
参赛单位:东南大学
队伍名称:一口气全队
指导老师:黄见秋
参赛队员:黎颖,李欣欣,甘云汉
总决赛奖项:一等奖
项目概述
本项目旨在设计一款基于芯原DSP (数字信号处理器)核ZSPNano的智能语音识别SoC芯片,基于芯原自主半导体IP搭建的技术平台,可以快速设计出满足不同应用的SoC产品,实现自主可控国产SoC芯片,帮助缩短产品的上市时间。该SoC芯片采用芯原公司自主研发的DSP核作为主控芯片,集成了高性能的语音信号采集、处理、识别等功能模块,实现语音信号的采集、处理和识别功能,将能够支持基于深度神经网络模型的智能语音识别算法和传统的语音识别算法。同时,该芯片还具备低功耗、低延迟、高精度等特点,适用于各种智能语音识别场景,可广泛应用于智能音箱、车载语音系统、语音翻译、智能家居、智能安防、智能手表、智能音箱等场景。该项目旨在为用户提供一种更加高效、便捷、安全的本地语音识别解决方案,推动智能语音识别技术的发展。
本项目的设计和开发基于ZSPNano的语音处理SoC设计平台和现有系统框架完成,配合现有DSP核、语音处理单元、存储器、I2C、I2S、PDM麦克风、WDT等功能模块,设计了能够满足系统需求的AMBA总线,实现音频数据输入输出、音频的数据处理与关键字判断识别、低功耗设计与综合。我们设计的基于芯原DSP核ZSPNano的智能语音识别SoC芯片包括以下内容:
- 基于Design Spec规定的memory mapping,完成了AHB Bus的设计
- 基于Design Spec规定的memory mapping,完成了APB Bus及AHB2APB Bridge的设计。
- 完成了必要的功能验证及结果输出
- 基于系统环境验证可靠,完成了低功耗及其唤醒的实现,其中包含低功耗软件实现与MFCC硬件加速实现。
- 完成了对低功耗实现的验证与评估
硬件概述
在本项目中,硬件设计主要包含两部分,一部分是AMBA总线系统的设计,包括AHB总线矩阵以及AHB转APB桥;另一部分是语音梅尔倒谱系数(Mel-scaleFrequency Cepstral Coefficients,下文以MFCC代替)提取硬件电路,包括硬件基2蝶形FFT运算单元、梅尔滤波器组以及离散余弦变换(DCT)运算单元等数字系统构成。
我们的AMBA总线设计如下图所示
MFCC硬件设计如下图所示,该MFCC硬件包含5大模块:预处理模块、(512点)傅里叶变换模块、梅尔滤波器组、对数运算模块以及离散余弦变换模块,对其进行封装后,将总体模块根据数据流连接,并将输入输出寄存器组和控制寄存器映射到APB总线上。
为了实现对硬件电路的自动化验证,我们编写了一套从MATLAB定点化模型的输出输出到Verilog仿真模型的数据对比测试代码,分别在每一个计算模块的testbench中加入这些数据源输入、硬件输出捕获以及输出与MATLAB模型对比的task实现自动化仿真,并将出错的数据地址显示在终端中,以便轻松检查电路的设计是否有错误以及快速定位错误位置。
软件概述
在本项目中,系统流程如下图所示,分为初始化,sleep,ZSP_nano wake,system wake,结束(回到sleep)四个状态。
其中初始化状态对i2c和PDM进行初始化;
sleep状态根据赛题要求,仅开启PDM时钟,ZSPNano进入低功耗状态并保持;
倘若PDM读取中断且读满1帧数据,就由sleep状态进入ZSP_nano wake状态进行唤醒;
在ZSP_nano wake状态中,经过三层判断:第一层通过“短时能量、短时过零率双门限端点检测法”判断读取数据是否为有效;第二层通过MFCC特征提取,判断处理数据是否为语音;第三层通过关键词唤醒方法判断是否为“Hi Verisilicon”。倘若判定结果为否,则返回sleep状态,对任意一层皆适用;倘若前两层判断为是则进入下一层,最后一层判断为是则进入system wake状态唤醒。
system wake状态会开启外设时钟和i2s初始化并输出正弦波。在输出完后重新回到sleep状态。如此,一次完整的低功耗唤醒流程结束。
参赛感悟与总结
首先,非常感谢集创赛给了我们这样一个可以在实践中学习SoC设计的机会,也非常感谢指导老师的有力支持。
其次,我觉得我们团队是幸运的,不仅仅是我们的付出得到了肯定,更重要的是,在长达8个月的赛程中,我们信赖彼此,相互支持,共同成长,收获了珍贵的友谊、回忆,这些并肩作战的日子想必在遥远的以后也依然温热。
在赛程的每个阶段,我们都分工明确,每一个队员都能够在完成自己负责的部分的基础上,进行深入的思考:如何优化才能提高识别速度?有没有更多更好实现低功耗的方法?在通过讨论提出更好的方法后,我们能够将其落地实现。这些积极负责的态度也是我们团队能够走到最后的原因吧。
最后,衷心祝愿屏幕前的朋友能够找到志同道合的伙伴,享受比赛过程中挑战困难带来的快乐 o((>ω< ))o
参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼品等你来领!
相关文章:

【2023集创赛】芯原杯一等奖作品:基于芯原DSP核的智能语音SoC设计
本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)芯原杯一等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼品等…...
代理IP与Socks5代理在跨界电商、爬虫、游戏和网络安全中的应用
在数字化时代,网络工程师们需要不断应对各种技术挑战,以满足跨界电商、爬虫、游戏和网络安全领域的需求。本文将聚焦于代理IP和Socks5代理,探讨它们在这些领域中的重要应用和影响。 1. 代理IP:跨越地域的电商战略 跨界电商已经成…...

DDS信号发生器Verilog波形发生器FPGA
名称:DDS信号发生器Verilog波形发生器 软件:Quartus 语言:Verilog 要求: 1.可产生正弦波,锯齿波,三角波,方波4种波形,频率可调 2.具有波形选择、起动、停止功能。 代码下载&…...

基于springboot实现二手交易平台管理系统演示【项目源码】分享
基于springboot实现二手交易平台管理系统演示 java简介 Java语言是在二十世纪末由Sun公司发布的,而且公开源代码,这一优点吸引了许多世界各地优秀的编程爱好者,也使得他们开发出当时一款又一款经典好玩的小游戏。Java语言是纯面向对象语言之…...

一个链接分享自制的产品图册
在商业中我们都需要一本产品册展现自家的产品特点,方便更多的人群挑选产品。但是纸质版的消费量最大,还不好存放和管理。不妨试试制作一本电子版的产品图册,无论是新手还是有经验者都能轻松上手 接下来给大家分享这款网站---FLBOOK在线制作…...

2023工博会 | 上海添力网络营销公司 | 助力工业品线上推广
2023年9月23日,为期五天的工博会正式落下帷幕。本届工博会不仅有数量,更加有质量,国内外企业纷纷拿出看家本领,围绕着“绿色低碳”、“数字化转型”、“数字经济”、“科技创新”、“智能制造”等主题进行推陈出新。 本次工博会也…...
React实现多图片预览功能、预览图上下张切换(实战示例)
前言 在React项目中,展示和预览多张图片是一种常见的需求。本篇帖子将介绍如何使用React和antd库来实现这一功能,并探讨如何在预览模态框中切换到前一张或后一张图片。 背景 我们将以一个OCR图像列表展示的示例来演示代码的运用。假设我们有一个OCR系…...

【NLP的Python库(04/4)】:Flair
一、说明 Flair是一个现代的NLP库。从文本处理到文档语义,支持所有核心 NLP 任务。Flair使用现代转换器神经网络模型来完成多项任务,并结合了其他Python库,可以选择特定的模型。其清晰的API和注释文本的数据结构,以及多语言支持&a…...
Vue框架学习大纲
Vue.js 是一个构建用户界面的框架,尤其是单页面应用。以下是一些主要基于 Vue 2.x 的版本必须了解的 Vue.js基本知识点和特性: Vue 实例: 创建一个 Vue 实例是开始使用 Vue 的第一步。 var vm new Vue({// 选项 });数据绑定: Vue 提供了非常直观的数据绑…...

利用PPT导出一张高清图的方法,office与WPS只需要使用一个即可,我使用的是office。
利用PPT导出一张高清图的方法,office与WPS只需要使用一个即可,我使用的是office。 1,PPT的功能拓展来解决导出高清图片方法1.1,PPT功能拓展—>安装插件: 2,各种方法导出图片效果显示:2.1&…...

2023年【四川省安全员B证】最新解析及四川省安全员B证模拟考试
题库来源:安全生产模拟考试一点通公众号小程序 四川省安全员B证最新解析考前必练!安全生产模拟考试一点通每个月更新四川省安全员B证模拟考试题目及答案!多做几遍,其实通过四川省安全员B证模拟考试题很简单。 1、【多选题】5.5kW…...

某瑞集团安全技术研发岗位面试
本文由掌控安全学院 - sbhglqy 投稿 一、自我介绍 阿吧阿吧,不多说 二、就ctf比赛经历方面提些问题 面试官:ctf打了多久了 我:两三年了。 面试官:得过什么奖项没有 我:本科的时候得过一个校一等奖。 面试官&#x…...

学习笔记|ADC反推电源电压|扫描按键(长按循环触发)|课设级实战练习|STC32G单片机视频开发教程(冲哥)|第十八集:ADC实战
文章目录 1.ADC反推电源电压测出Vref引脚电压的意义?手册示例代码分析复写手册代码Tips:乘除法与移位关系为什么4096后面还有L 2.ADC扫描按键(长按循环触发)长按触发的实现 3.实战小练1.初始状态显示 00 - 00 - 00,分别作为时,分,…...

2020 款凯迪拉克 XT5 车发动机加速异响
故障现象 一辆2020款凯迪拉克XT5车,搭载LSY发动机,累计行驶里程约为8万km。车主反映,加速时发动机有明显异响。 故障诊断 接车后试车,起动发动机,发动机怠速运转平稳;打开发动机室盖,能够听到轻…...

【AI视野·今日CV 计算机视觉论文速览 第255期】Wed, 27 Sep 2023
AI视野今日CS.CV 计算机视觉论文速览 Wed, 27 Sep 2023 (showing first 100 of 103 entries) Totally 100 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Generating Visual Scenes from Touch Authors Fengyu Yang, Jiacheng Zhang, Andre…...

Java应用生产Full GC或者OOM问题如何定位
1 引言 生产应用服务频繁Full GC却无法释放内存,甚至可能OOM,这种情况很有可能是内存泄露或者堆内存分配不足,此时需要dump堆信息来定位问题,查看是哪些地方内存泄漏。 Dump文件也称为内存转储文件或内存快照文件,是…...
Data processing flow
1. 找出第一年的address,有lat和long,自动生成 csv_log_lat_county.ipynb import csv from geopy.geocoders import Nominatim from geopy.exc import GeocoderTimedOutgeolocator Nominatim(user_agent"my-app") data_csv r"D:/year…...
CAP理论与BASE理论
分布式领域CAP理论: Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可靠性定理:任何分布式系统只可同时满足二点,没法三者兼顾。忠告࿱…...
DRM全解析 —— ADD_FB2(3)
接前一篇文章:DRM全解析 —— ADD_FB2(2) 本文参考以下博文: DRM驱动(四)之ADD_FB 特此致谢! 上一回围绕libdrm与DRM在Linux内核中的接口: DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB2,…...
【Java】SpringMVC ResponseBodyAdvice详解
目录 1. ResponseBodyAdvice 2. supports方法 3. beforeBodyWrite方法 4. 实践 1. ResponseBodyAdvice Spring MVC的ResponseBodyAdvice是Spring 4.1版本中引入的一个接口,它允许在Controller控制器中ResponseBody修饰的方法或ResponseEntity执行之后ÿ…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...

GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
【Java】Ajax 技术详解
文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…...

aurora与pcie的数据高速传输
设备:zynq7100; 开发环境:window; vivado版本:2021.1; 引言 之前在前面两章已经介绍了aurora读写DDR,xdma读写ddr实验。这次我们做一个大工程,pc通过pcie传输给fpga,fpga再通过aur…...