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 内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语音识别
    +关注

    关注

    38

    文章

    1739

    浏览量

    112632
  • 全志
    +关注

    关注

    24

    文章

    247

    浏览量

    53119
收藏 人收藏

    评论

    相关推荐

    HAL嵌入式系统中的应用

    HAL(Hardware Abstraction Layer Library,硬件抽象层)在嵌入式系统中扮演着至关重要的角色。以下是HAL
    的头像 发表于 12-02 11:32 455次阅读

    科技亮相飞凌嵌入式技术创新日

    近日,工业领域板卡厂商“飞凌嵌入式”在上海举行技术创新日。科技工业车载事业部副总经理皮杰勇和工业产品总监刘海军受邀出席,并进行了主题为《志在工业领域的解决方案与技术应用》的分享。
    的头像 发表于 11-05 14:11 268次阅读

    如何在低成本ARM平台部署LVGL免费图形,基于T113-i

    ,适合资源受限的嵌入式系统,即使在低性能硬件上也能流畅运行复杂的图形界面,用户可以根据需要定制界面风格和布局。 LVGL案例演示 本文主要介绍创龙科技TLT113-EVM工业评估板(基于
    发表于 10-29 09:55

    T507-H国产平台Ubuntu系统正式发布,让您的应用开发更便捷!

    系统上,可以方便地安装Qt、Qt Creator以及相关的嵌入式开发工具,进行嵌入式GUI应用的开发。 图 2 T507-H典型应用领域 图 3 T507-H典型应用领域 Ubuntu系统启动演示
    发表于 10-29 09:39

    基于T113-i多核异构处理器的全国产嵌入式核心板简介

    一、嵌入式核心板产品介绍 基于公司的T113-i处理器精心设计的多核异构处理器、工业级ECK30-T13IA系列嵌入式核心板,采用邮票孔连接的低成本、低功耗、高性价比、高可靠性的全
    的头像 发表于 10-25 13:40 276次阅读

    目前深圳嵌入式单片机就业环境如何?

    深圳作为中国的科技创新中心之一,在嵌入式单片机领域的就业环境相对较好,以下是对该就业环境的详细分析:
    的头像 发表于 10-09 11:51 480次阅读
    目前深圳<b class='flag-5'>嵌入式</b>单片机就业<b class='flag-5'>环境</b>如何?

    嵌入式系统的未来趋势有哪些?

    智能家居领域,嵌入式系统可以集成语音识别和自然语言处理技术,去实现智能家电的语音控制。 2. 更强大的处理能力 在未来的嵌入式系统将具备更加强大的处理能力,以满足日益变得复杂的计算需求
    发表于 09-12 15:42

    一种常用嵌入式开发代码

    使用开源协议:GPL-2.0varch简介varch(we-architecture,意为我们的框架)是嵌入式C语言常用代码模块,包含了嵌入式中常用的算法库,数据结构(容器)
    的头像 发表于 09-04 08:06 454次阅读
    一种常用<b class='flag-5'>嵌入式</b>开发代码<b class='flag-5'>库</b>

    七大嵌入式GUI盘点

    嵌入式图形用户界面(GUI)是一种嵌入式系统设计的用户界面,它可以让用户通过图形化的方式与设备进行交互。以下是对七种嵌入式 GUI 的盘点。 emWin 由德国SEGGER公司
    发表于 09-02 10:58

    ARMxy ARM嵌入式计算机搭载 1 TOPS NPU支持深度学习

    ARMxy ARM嵌入式计算机BL410系列内置了1TOPS算力 NPU,它每秒可以执行高达一万亿次的浮点运算,这复杂的图像处理和深度学习任务提供了充足的计算资源。在产品缺陷检测领域,ARMxy ARM
    的头像 发表于 08-20 11:53 347次阅读
    ARMxy ARM<b class='flag-5'>嵌入式</b>计算机搭载 1 TOPS <b class='flag-5'>NPU</b>支持深度学习

    EVASH Ultra EEPROM:助力ChatGPT等AI应用的嵌入式存储解决方案

    EVASH Ultra EEPROM:助力ChatGPT等AI应用的嵌入式存储解决方案
    的头像 发表于 06-26 18:13 900次阅读

    现场直击 | 飞凌嵌入式亮相2024上海国际嵌入式

    6月12日,2024上海国际嵌入式展(embedded world China 2024)在上海世博展览馆开幕。飞凌嵌入式不仅展出了基于NXP、TI和瑞萨等国际厂商芯片打造的嵌入式核心板及开发板产品,还带来了依托瑞芯微、
    的头像 发表于 06-13 14:13 992次阅读
    现场直击 | 飞凌<b class='flag-5'>嵌入式</b>亮相2024上海国际<b class='flag-5'>嵌入式</b>展

    R329开发板点灯教程

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

    恩智浦发布新一代智能语音技术组合的语音识别引擎

    恩智浦发布新一代智能语音技术组合的语音识别引擎。本文将探讨开发人员在嵌入式语音控制设计中面临的挑战、恩智浦新的Speech to Inten
    的头像 发表于 01-26 09:15 753次阅读
    恩智浦发布新一代智能<b class='flag-5'>语音</b>技术组合的<b class='flag-5'>语音</b>识别引擎

    基于Rust的嵌入式符合ACID的键值数据

    surrealkv -- 基于 Rust 的 low level、版本化、嵌入式、符合 ACID 的键值数据
    的头像 发表于 12-28 11:29 872次阅读