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

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

3天内不再提示

安信可VC系列离线语音SDK开发环境搭建——基于Linux系统

AIoT行业洞察 来源:AIoT行业洞察 作者:AIoT行业洞察 2025-03-12 10:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

之前的文章已经介绍了VC系列出厂固件的一些基本用法,本期就主要介绍VC系列云知声SDK 的二次开发环境搭建。

正式搭建开发环境之前,请确认:

有一个Linux 系统,虚拟机或者真机,推荐使用ubuntu
熟悉Linux 系统的基础指令,“ls”,"cd"之类的
具备Makefile

一、SDK生成

因为产品的语音词条是要通过平台训练生成语音模型和回复语,因此每个产品对应一个SDK,当然,如果是指令一致的产品可以共用一个SDK。为此,我们给各位同学开放了定制SDK的平台,主要提供:

· 唤醒词及指令词定制功能
· GPIO控制功能
· 回复语定制功能

其他功能就需要通过二次开发来实现了,比如指令码的串口输出和输入。这部分的内容会在《安信可语音开放平台》的使用介绍会做讲解。

二、编译工具链下载

1. 依赖工具安装

如果你使用的Ubuntu 16.04 / centos7以上版本作为开发环境,请使用以下指令:

sudo apt-get install python
sudo apt-get install lame
sudo apt-get install lib32stdc++6 lib32z1 lib32ncurses5 lib32bz2-1.0

对于ubuntu20.04的话,安装32位兼容库使用:

sudo apt-get install lib32stdc++6 lib32z1 lib32ncurses5 libbz2-1.0:i386

安装完成依赖之后,拉取编译工具链:

sudo git clone https://github.com/Ai-Thinker-Open/Andestech.git /opt/Andestech

如果github 太慢了。也可以使用:

sudo git clone https://gitee.com/Ai-Thinker-Open/Andestech.git /opt/Andestech

注意:/opt/Andestech 一定要带,不然就需要修改SDK中编译工具的实际路径

三、SDK下载编译测试

在云平台上下载好SDK 之后,将其复制到Linux 当中的某一个文件夹

1.下载解压

使用以下命令进行解压:

tar -zxvf uni_hb_m_solution-xxxxx.tar.gz

解压过程:

wKgZO2fQ9mCAJyM4AACNBHP2W-4157.jpg

SDK 文档架构:

├── build --------------------------------------> Makefile系统
├── build.sh -----------------------------------> 编译脚本
├── ci.yml -------------------------------------> 自动化平台构建脚本,对用户无用
├── include ------------------------------------> 语音识别引擎及其他自动化生成外部头文件,不可修改
├── lib ----------------------------------------> 语音识别引擎及其他底层驱动库
├── middleware ---------------------------------> RTOS系统
├── nds32-ae210p.ld ----------------------------> 链接信息脚本,不可修改
├── nds32-ae210p.sag ---------------------------> 内存段分布配置,不可修改
├── readme.txt ---------------------------------> 发布版本信息
├── src ----------------------------------------> 架构代码文件夹
│ ├── app ------------------------------------> APP层代码文件夹
│ │ ├── inc
│ │ └── src
│ │ ├── main.c -------------------------> 系统启动主程序,main函数入口
│ │ ├── sessions -----------------------> sessions代码文件夹
│ │ │ ├── uni_setting_session.c ------> setting类事件处理session
│ │ │ ├── uni_wakeup_session.c -------> wakeup类事件处理session
│ │ │ └── uni_watchdog_session.c -----> watchdog事件处理session
│ │ ├── uni_record_save.c --------------> 录音保存功能实现,蜂鸟M暂不支持
│ │ ├── uni_session.c ------------------> 创建释放session对象
│ │ ├── uni_session_manage.c -----------> 管理session注册
│ │ └── uni_user_meeting.c -------------> APP层与USER层交互接口
│ ├── hal ------------------------------------> HAL层实现代码
│ ├── sdk ------------------------------------> SDK层实现代码
│ │ ├── audio ------------------------------> Audio播放器
│ │ ├── idle_detect ------------------------> 设备空闲计时管理
│ │ ├── player -----------------------------> MP3解码器
│ │ └── vui --------------------------------> 语音识别功能
│ └── utils ----------------------------------> UTILS层实现代码
│ ├── arpt -------------------------------> ARPT自动化测试工具
│ ├── auto_string ------------------------> 变长字符串
│ ├── bitmap -----------------------------> 二值状态变量集合
│ ├── black_board ------------------------> 系统状态管理
│ ├── cJSON ------------------------------> JSON格式解析
│ ├── config -----------------------------> config.bin文件内容解析
│ ├── crc16 ------------------------------> CRC16算法
│ ├── data_buf ---------------------------> 一个不用互斥锁管理的Ring Buffer
│ ├── event ------------------------------> 创建事件对象
│ ├── event_list -------------------------> 事件队列
│ ├── event_route ------------------------> 事件分发
│ ├── float2string -----------------------> 浮点转字符串,用于无float类型打印能力的printf
│ ├── fsm --------------------------------> 状态机
│ ├── hash -------------------------------> 一个简易HASH算法
│ ├── interruptable_sleep ----------------> 非阻塞的sleep方式
│ ├── list -------------------------------> 通用链表
│ ├── log --------------------------------> 带等级控制的LOG输出接口
│ ├── string -----------------------------> 一套简易的string操作接口
│ ├── timer ------------------------------> 基于RTOS系统的Timer
│ └── uart -------------------------------> 通用的UART接口
├── startup ------------------------------------> 芯片启动代码,不可修改
├── tools --------------------------------------> 自动化构建工具
│ └── scripts --------------------------------> 自动化构建脚本
│ ├── aik_debug.json ---------------------> Debug固件对应的AIK配置文件
│ ├── aik_release.json -------------------> Release固件对应的AIK配置文件
│ ├── asrfix.dat -------------------------> 声学模型
│ ├── cmd_reply_data.json ----------------> UDP平台用户定制命令词和回复语信息
│ ├── config_debug.bin -------------------> Debug固件对应的应用配置文件
│ ├── config_release.bin -----------------> Release固件对应的应用配置文件
│ ├── custom_config.json -----------------> UDP平台用户定制系统配置信息
│ ├── default_tones ----------------------> 默认保底音频文件文件夹
│ ├── grammar.dat ------------------------> 语法模型
│ ├── grammar_jsgf.zip -------------------> 语法模型对应的构建脚本
│ ├── grammar.zip ------------------------> 语法模型文件压缩包
│ ├── input.txt --------------------------> 用户定制回复语列表
│ ├── pcm.bin ----------------------------> MP3音频flash固件,自动生成的中间文件
│ ├── pcm_map.txt ------------------------> MP3音频文件名及内容列表
│ ├── res_build_tool.py ------------------> 自动化构建脚本
│ ├── thresh.dat -------------------------> 唤醒词阈值推荐表
│ ├── tones ------------------------------> MP3音频文件夹
│ └── wav_tones --------------------------> WAV音频文件夹,自动转换到tones
├── uni_ci.yml ---------------------------------> 构建平台脚本,对用户无用
└── user ---------------------------------------> USER层实现代码
├── inc
│ ├── unione.h ---------------------------> USER层使用的底层头文件
│ ├── user_config.h ----------------------> USER可配置项,包括串口、音量等
└── src
├── examples ---------------------------> 包含个别USER模块的示例代码
├── user_asr.c -------------------------> 语音识别控制接口
├── user_event.c -----------------------> USER事件分发机制,底层调用USER注册的事件回调函数
├── user_file.c ------------------------> SD卡文件系统操作接口,蜂鸟M暂不支持
├── user_flash.c -----------------------> Flash操作接口
├── user_gpio.c ------------------------> GPIO操作接口
├── user_main.c ------------------------> 用户代码入口,参考示例实现user_main()接口以增加业务逻辑
├── user_player.c ----------------------> 音频播放控制接口
├── user_power.c -----------------------> 功耗操作接口,蜂鸟M暂不支持
├── user_pwm.c -------------------------> PWM操作接口
├── user_record.c ----------------------> 录音控制接口,蜂鸟M暂不支持
├── user_timer.c -----------------------> Timer操作接口
├── user_uart.c ------------------------> UART操作接口
└── user_uni_ucp.c ---------------------> 通用串口协议操作接口

2. 编译例程

编译的例程可以在user/inc/user_config.h的USER_RUN_DEMO_SELECT配置成想要的Demo,比如配置成GPIO 操作的:

编译指令一共有两种:

. /build.sh: 这个指令会编译输出uni_app_release.bin文件,这个文件只能用JTAG调试器进行烧录
. /build.sh update: 这个指令会编译输出uni_app_release_update.bin和uni_app_release.bin

uni_app_release_update.bin 是串口升级专用文件

uni_app_release.bin 是JTAG方式升级使用的文件。

备注:python 的版本是python2

四、更多资料

安信可语音开放平台:http://voice.ai-thinker.com

官方官网:https://www.ai-thinker.com

开发DOCS:https://docs.ai-thinker.com

技术支持:support@aithinker.com

审核编辑 黄宇

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

    关注

    88

    文章

    11628

    浏览量

    218020
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1094

    浏览量

    51209
  • 安信可
    +关注

    关注

    0

    文章

    216

    浏览量

    4953
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux系统开发环境搭建

    今天给大家讲一讲Linux系统开发环境搭建
    发表于 07-12 14:51 1495次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>系统开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    HPM SDK Linux开发环境搭建指南

    先楫半导体高性能MCU配套的HPM SDK(以下简称SDK)在Linux系统开发
    发表于 06-08 13:59

    ESP8266 SDK开发环境搭建初级教程

    环境目前主要为在虚拟机(Virtual Box)中安装 Linux 系统进行编译 或者使用
    发表于 12-07 14:42 15次下载
    ESP8266 <b class='flag-5'>SDK</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>初级教程

    VC 01/VC 02离线语音模块载体PCB设计

    电子发烧友网站提供《VC 01/VC 02离线语音模块载体PCB设计.zip》资料免费下载
    发表于 08-15 09:19 5次下载
    <b class='flag-5'>VC</b> 01/<b class='flag-5'>VC</b> 02<b class='flag-5'>离线</b><b class='flag-5'>语音</b>模块载体PCB设计

    新品发布 | 离线语音VC-01/02:卸掉APP,秒控你的家电!

    科技的VC-01/VC-02离线语音方案具有免
    的头像 发表于 06-13 16:15 2260次阅读
    新品发布 | <b class='flag-5'>离线</b><b class='flag-5'>语音</b><b class='flag-5'>VC</b>-01/02:卸掉APP,秒控你的家电!

    BW16模组如何搭建Arduino开发环境

    BW16模组是基于 RTL8720DN开发的双频Wi-Fi+蓝牙SoC模组,具备超强性能。本文着重介绍BW16及开发板如何
    的头像 发表于 10-21 16:39 1511次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>BW16模组如何<b class='flag-5'>搭建</b>Arduino<b class='flag-5'>开发</b><b class='flag-5'>环境</b>?

    推出了一款AI离线语音识别的产品—VC系列模组

    VC系列模组是开发的一款AI离线
    的头像 发表于 04-15 10:29 1575次阅读

    离线语音模组VC系列出厂固件使用教程——SDK开源?

    VC系列离线语音模组,采用云知声方案,在
    的头像 发表于 02-26 14:14 851次阅读
    <b class='flag-5'>离线</b><b class='flag-5'>语音</b>模组<b class='flag-5'>VC</b><b class='flag-5'>系列</b>出厂固件使用教程——<b class='flag-5'>SDK</b>开源?

    语音开放平台的使用——VC系列SDK的获取

    离线语音开放平台提供了开发量接近于零的SDK
    的头像 发表于 04-12 11:24 693次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>语音</b>开放平台的使用——<b class='flag-5'>VC</b><b class='flag-5'>系列</b><b class='flag-5'>SDK</b>的获取

    离线语音开发板:二次开发语音控制LED灯

    前言 经过前面的学习,相信大家已经了解离线语音开发环境搭建流程。甚至已经编译过固件,并进行了测试。本文将从产品创建开始讲起,一步一步实现
    的头像 发表于 03-19 10:53 777次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>离线</b><b class='flag-5'>语音</b><b class='flag-5'>开发</b>板:二次<b class='flag-5'>开发</b><b class='flag-5'>语音</b>控制LED灯

    离线语音VC-01/02教程:中级入门篇

    -02 系列教程 【二次开发篇】虚拟开发环境搭建和分享
    的头像 发表于 07-31 09:33 646次阅读
    【<b class='flag-5'>离线</b><b class='flag-5'>语音</b>】<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC</b>-01/02教程:中级入门篇

    VC-01/02二次开发篇: 事件和GPIO控制

    -02 系列教程 【二次开发篇】虚拟开发环境搭建和分享
    的头像 发表于 08-19 14:02 835次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC</b>-01/02二次<b class='flag-5'>开发</b>篇: 事件和GPIO控制

    轻松配置小智AI语音开发板,IOT小程序功能更新

    科技:可发布的 AI 语音开发板,可以通过
    的头像 发表于 08-19 17:46 927次阅读
    轻松配置小智AI<b class='flag-5'>语音</b><b class='flag-5'>开发</b>板,<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>IOT小程序功能更新

    VC-01/02二次开发篇: PWM输出

    -02 系列教程 【二次开发篇】虚拟开发环境搭建和分享
    的头像 发表于 08-27 16:06 675次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC</b>-01/02二次<b class='flag-5'>开发</b>篇: PWM输出

    离线语音VC-01/02二次开发篇:自定义音频播放控制

    -02 系列教程 【二次开发篇】虚拟开发环境搭建和分享
    的头像 发表于 09-25 16:34 635次阅读
    【<b class='flag-5'>离线</b><b class='flag-5'>语音</b>】<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC</b>-01/02二次<b class='flag-5'>开发</b>篇:自定义音频播放控制