0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【全志R329-NPU助力】Maix-Speech为嵌入式环境设计的离线语音库

深圳全志在线有限公司 2022-03-28 10:11 次阅读

Maix-Speech是专为嵌入式环境设计的离线语音库,设计目标包括:ASR/TTS/CHAT

作者的设计初衷是完成一个低至Cortex-A7 1.0GHz 单核下可以实时运行的ASR库。

目前市面上的离线语音库非常稀缺,即使有也对主控要求很高,Maix-Speech 针对语音识别算法进行了深度优化,在内存占用上达到了数量级上的领先,并且保持了优良的WER。

基本情况

Maix-Speech刚发布了一个面向嵌入式设备的离线语音识别库,可以在低至Coretx-A7 1.0GHz, 64MB系统内存的嵌入式设备上实时运行(RTF<1.0)

最低内存占用25MB,磁盘占用35MB(含语言模型);最优aishell wer约5.4%;支持流式识别,支持连续数字识别,关键词识别,连续大词表语音识别等

支持:x86_64, armv7, aarch64, riscv64 等多种硬件平台,支持 AWNN, Zhouyi AIPU 加速。

感兴趣的可以跳转githuib来点个赞。

链接:https://github.com/sipeed/Maix-Speech

Maix-Speech 的优势

  • 多平台支持

Maix-Speech 支持多种嵌入式平台

poYBAGJBEv-AAn0RAAA5SHaXm9M760.png
  • 极低的内存要求和优良的正确率

Maix-Speech的内存占用相对于市面上的其他语音识别框架有数量级上的领先优势,并且保持良好的WER水平。

Maix-Speech最低可以实时运行(RTF<1)于典型的 1.0GHz Cortex-A7 内核的芯片上,并且最低仅占用25MB左右内存, 也就意味着它可以实时运行在典型的内封64MB内存的A7芯片上。

pYYBAGJBEv-AawkPAABEpQ_rkGQ552.png常见离线语音识别工具对比

  • 细节优化

优化了openfst及wfst解码,使得整个解码图无需载入内存即可实时读取解码。

可选载入内存的LG.fst解码图,压缩为lg.sfst, 尺寸为原始fst的1/3左右,占用内存为kaldi载入相同fst的内存占用的 1/20左右(kaldi需要6.5倍左右内存载入fst文件)。

使用新的sMBR等效的方式(无需修改loss)进行鉴别性训练,提升流式识别的准确率

效果展示

在全志 R329 上的运行效果,视频中板卡为 MaixSense

pYYBAGJBEwCAd8D9AAB3m7HpMZI612.jpg连续大词汇量语音识别(LVCSR)

poYBAGJBEwCAHls7AABssf99_54766.jpg连续中文数字识别 (DIGIT)

poYBAGJBEv-ALtHhAABtclcQc4Q595.jpg关键词识别(KWS)

Maix-Speech 工程结构

├── assets
│   └── test_files                # 提供的测试文件,方便上手测试
├── components                     # 组件
│   ├── asr_lib                   # 组件 asr_lib
│   │   ├── CMakeLists.txt       # 组件配置文件
│   │   ├── include              # 头文件
│   │   ├── Kconfig              # 组件 menuconfig 配置文件
│   │   ├── lib                  # 各个平台的库文件
│   │   └── src                  # 源文件
│   └── utils                     # 工具类组件,包括了跑分、字体等
├── Kconfig                       # 最顶级的 menuconfig 配置文件
├── LICENSE                       # 开源协议(证书)
├── projects                      # 工程
│   └── maix_asr                 # ASR 工程
│       ├── CMakeLists.txt       # 工程配置文件
│       ├── main                 # 工程里面的主组件
│       └── project.py           # 构建脚本,方便输入命令
├── README.md                     # 项目首页英文文档
├── README_ZH.md                  # 项目首页中文文档
├── tools                         # 项目构建相关代码,一般不用看
└── usage_zh.md                   # 使用方法

构建代码

项目支持多平台, 不同的平台使用的工具链和库可能有差异,注意区别。

PC环境的推荐系统为 Ubuntu 18.04 以上,gcc 7.5 以上,CMake 3.20以上,失能conda虚拟环境。其他环境可能有部分软件需要额外设置,不建议新手使用。

其他嵌入式环境的交叉编译方式可能存在一些细节使用问题,商业用户可以联系support@sipeed.com 获取支持。

  • 环境准备

首先电脑安装工具链和库(Ubuntu 为例)

sudo apt update

sudo apt install git python3 cmake

python 只是用在编译脚本上的,方便简单地输入编译命令, 如果你电脑里有任何一个版本的 python 都是可以的, 为确保不出问题最好是Python3。如果实在不想装 python , 也可以手动使用 cmake 命令进行编译。

x86 (Linux) 或 在跑在其它架构的系统里编译,比如在R329或树莓派的系统里使用GCC编译 安装工具链和库(Ubuntu为例)。

sudo apt install build-essential libasound2-dev

交叉编译 下载工具链,并解压到指定文件夹 比如R329, 从 realease 下载 r329_toolchain.tar.gz, 并解压到一个路径,比如 /opt/r329_toolchain 比如 v83x, 在这里找到工具链下载链接并下载工具链,解压到一个文件夹,比如/opt/toolchain-sunxi-musl

poYBAGJBEwCAL0MfAAAtpxZ8oRY466.png
  • 克隆代码

git clone https://github.com/sipeed/Maix-Speech

  • 编译

x86(Linux)或在跑在其它架构的系统里编译,比如在R329或 树莓派 的系统里使用GCC编译

注意,conda 环境下工具链可能有问题,如果出现错误可以先尝试 退出conda环境使用原生环境编译。


cd projects/maix_asr
python project.py clean_conf    # 清除工具链配置
python project.py menuconfig    # 配置选择芯片架构(ARCH),默认是 x86
python project.py build#python project.py rebuild          # 如果有新建文件需要使用 rebuild
# python project.py build --verbose # 打印详细构建过程

./build/maix_asr                # 测试下运行可执行文件,可以执行即可

python project.py clean         # 清除构建内容
python project.py distclean     # 彻底清除构建内容, 包括 menuconfig 内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语音识别
    +关注

    关注

    37

    文章

    1635

    浏览量

    111842
  • 全志
    +关注

    关注

    24

    文章

    220

    浏览量

    52653
收藏 人收藏

    评论

    相关推荐

    V853平台上成功部署深度学习步态识别算法

    伪装等优点。 本文所设计的步态识别系统,搭建在V853开发板上,充分利用板载外设、CPU与NPU,实现了嵌入式系统上的实时步态识别系统。 具体来说,系统所采用的深度学习算法在PC
    发表于 03-04 10:15

    R329开发板点灯教程

    timer > sunxi_led0r/trigger 如果你看到灯亮了,那么恭喜你,它将照亮你嵌入式开发学习的路。 LED灯阵列操作、模块配置、源码结构、内外部接口等进阶操作请见开发
    发表于 02-19 10:22

    V853 NPU开发之工具安装

    V853支持最高1T NPU算力,在进行NPU相关开发前,需要先配置NPU开发环境。 Linux系统准备NPU开发
    发表于 01-08 09:50

    嵌入式硬件和软件哪个好?

    这类技术都是看经验的,经验越高,那他的身价也相应变高。据统计,65%的电子产品开发企业中,嵌入式软件开发工程师团队,往往只占公司人数的5%,但是却创造了公司超过70%的效益。 嵌入式
    发表于 12-05 15:17

    离线语音识别及控制是怎样的技术?

    进行处理。  离线语音识别能够在设备上实现实时的语音识别响应,具有响应速度快、隐私保护好、稳定可靠等优势。它广泛应用于移动设备、智能音箱、嵌入式系统等场景,
    发表于 11-24 17:41

    T113i全国产核心板上市

    超低价、超灵活、超全能!飞凌嵌入式FET113i-S全国产核心板正式发布!整板采用100%国产工业级元器件,含税价最低仅需88元! FET113i-S核心板基于T113-i工业级处理器开发
    发表于 11-20 16:32

    方言离线语音控制场景解决方案

    致力于客户提供一站离线语音解决方案。我们的服务涵盖了多个领域,包括家电、医疗器械、安防报警、汽车电子、多媒体、通信、电话录音、工业自动化控制、玩具及互动消费类产品等。通过我们的专
    发表于 11-17 17:57

    离线语音识别和控制的工作原理及应用

    风险。在某些需要高可靠性的应用场景,如智能客服、电话会议和智能交通等,离线语音识别能够发挥重要作用。 雷龙发展公司致力于客户提供一站离线
    发表于 11-07 18:01

    新SDK平台下载开源R329的SDK

    makedirectory: File exists 之前拉取了 repo 但是不完整,需要删除 .repo 文件夹重新拉取 SDK 拉取 以 R329-Tina-jishu 例,讲述如何拉取 SDK。 新建
    发表于 09-11 09:51

    小米机器狗二代来了,比上一代更瘦、更快、更强!NVIDIA主控+MR813+R329协处理器

    处理器的组合,为了增强CyberDog2的人机交互体验,还新增加了在智能音箱市场被广泛使用的R329作为“小脑”来使用。 更智能 CyberDog2的主控Jetson Xavier NX核心模块
    发表于 09-06 09:39

    意法半导体助力嵌入式系统应用专业能力认证

    ST大学计划-助力中国高校人才培养,分析了嵌入式人才需求的痛点,介绍了ST助力嵌入式人才生态、项目发起及支持、嵌入式人才认证计划等。
    发表于 09-05 07:57

    智能语音开关面板:离线语音模块的魅力与应用

    离线语音模块是基于离线语音识别技术的一种嵌入式模块,其主要功能是在本地进行语音处理,无需连接云端
    的头像 发表于 08-14 14:17 1121次阅读
    智能<b class='flag-5'>语音</b>开关面板:<b class='flag-5'>离线</b><b class='flag-5'>语音</b>模块的魅力与应用

    飞凌嵌入式国产平台大盘点之瑞芯微系列

    终端、边缘计算、5G智能终端、视觉识别等前沿技术领域得到了广泛应用。 以上就是飞凌嵌入式的瑞芯微系列核心板大盘点,你最中意哪一款呢?下一篇,我们将走进系列核心板。
    发表于 08-05 11:12

    轻生活科技:离线语音技术助力智能家居发展

    轻生活科技:离线语音技术助力智能家居发展
    的头像 发表于 07-20 15:53 490次阅读
    轻生活科技:<b class='flag-5'>离线</b><b class='flag-5'>语音</b>技术<b class='flag-5'>助力</b>智能家居发展

    V3S嵌入式驱动开发(准备)

    就好了,无需重头开始写代码。 3、嵌入式驱动不一定都是内核层代码 很多同学都以为嵌入式驱动都是内核层代码,这也是不正确的。以linux系统例,最初设计的时候,确实是想把大多数驱动都放在内核来做。但是
    发表于 06-16 09:37