天天看点

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

上一章: 智能语音终端开发板介绍 | 《无需从0开发 1天上手智能语音离在线方案》第二章>>> 下一章: 智能语音应用开发指南 | 《无需从0开发 1天上手智能语音离在线方案》第四章>>>

智能语音终端SDK快速上手说明

1. 使用Windows开发环境

1.1 概述

Windows开发环境采用剑池CDK开发工具。剑池CDK开发工具以极简开发为理念,是专为IoT应用开发打造的集成开发环境。它在不改变用户开发习惯的基础上,全面接入云端开发资源,结合图形化的OSTracer、Profiling等调试分析工具,加速用户产品开发。

1.2 CDK工具下载

• 登录平头哥芯片开放社区,进入栏目“技术部落->资源下载->工具->CDK集成开发环境”,下载最新版本的剑池CDK集成开发环境安装包。下载完成后,点击setup.exe,根据CDK安装向导提示完成安装。

• 扫描下方二维码即可下载。

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

注意:

  1. 建议CDK不要安装在C盘,否则需要管理员权限运行
  2. 下载或安装过程中有可能被防火墙拦截,注意将其添加到防火墙白名单中

1.3 Windows调试环境安装

安装串口驱动程序

• 登录平头哥芯片开放社区,进入栏目“技术部落->资源下载->工具->驱动工具”,下载并安装“CP210x_Windows10_Drivers”串口转USB驱动包(注:根据操作系统选择对应的版本)。

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

安装Debug Server

• 登录平头哥芯片开放社区,进入栏目“技术部落 -> 资源下载 -> 工具 -> Debug Server”,下载最新CSKY-DebugServer-windows版本。

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

注:下载或安装过程中有可能被防火墙拦截,注意将其添加到防火墙白名单中

• Debug Server安装过程中,会同时安装JTAG调试驱动。

检查驱动状态

• 插入开发板调试串口和JTAG调试口后,打开计算机设备管理器,确认串口驱动以及JTAG调试驱动安装无误。

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

driver_status

运行Debug Server

• 烧录之前需要打开并运行CSkyDebugServer。CSkyDebugServer初始状态,左下角显示Ready:

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

• 上电开发板,确保蓝色JTAG指示灯被点亮。点击 ,CSkyDebugServer与设备连接成功:

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

debugserver_run

DebugServer处于上述的运行态时,可以烧录固件和对程序进行GDB调试,参考《2. 使用GDB调试》。

1.4 应用开发

创建实例工程

本节以“智能语音终端解决方案”为例,介绍如何使用CDK进行应用开发。

• 运行CDK,在首页点击新建工程:

• 在搜索框内输入智能语音并按回车,在第一个搜索结果右边点击创建工程:

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

• 输入工程名称,点击下载方案:

CDK_Download           

• 输入工作空间名称和路径,点击OK创建工作空间

• 之后CDK会创建工程并自动下载工程所需依赖。

编译

• 下载成功后,可以在左边的导航栏中看到项目(本例中项目名称demo_project)。右击项目名称,选择Build开始编译。

编译时间大约需要10分钟。

• 编译成功后,在界面底部的输出窗口,会显示成功信息:

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

CDK_Build_Success

烧录

点击工具栏的 开始烧录:

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

CDK_Start_Program

烧录完成后,显示烧录成功窗口:

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

CDK_Program_Success

2. 使用Linux开发环境

2.1 安装YocTools

YocTools需要通过 pip 命令安装,YocTools 支持 python2.7+、python3.6+,建议使用 python2 作为默认 python。

• 卸载旧版本YocTools,之前如果没安装请跳过该步骤

$sudo pip uninstall yoctools

• 安装YocTools

$sudo pip install --no-binary=yoctools

http://yoctools.oss-cn-beijing.aliyuncs.com/yoctools-1.0.60.1.tar.gz

-i

https://mirrors.163.com/pypi/simple/

2.2 工具链安装

编译工具链采用gcc编译,第一次编译时,makefile会自动下载编译工具链:

$ make

scons: Reading SConscript files ...

100.00% [##################################################] Speed: 9.260MB/S

Start install, wait half a minute please.

Congratulations!

工具链会被安装在当前用户的~/.thead目录下:

~/.thead$ ll

drwxr-xr-x 1 User user 4096 Apr 7 18:11 csky-abiv2-elf/

配置工具链路径到环境变量:

$echo "export PATH=$HOME/.thead/csky-abiv2-elf/bin:$PATH" >> ~/.bashrc

$source ~/.bashrc

2.3 Linux调试环境安装

• 登录平头哥芯片开放社区,进入栏目“技术部落 -> 资源下载 -> 工具 -> Debug Server”,下载最新CSKY-DebugServer-Linux版本,并解压

• 执行sudo sh ./CSKY-DebugServer-linux-*.sh -i,开始安装

• 系统提示“Do you agree to install the DebugServer[yes/no]”,输入yes

• 系统提示设置安装路径“Set full installing path:”,推荐安装到默认路径:直接回车

• 系统会提示”This software will be installed to the default path: (/usr/bin/)?[yes/no/cancel]:”,输入yes

• 安装成功后会提示:

Done !           

You can use command “DebugServerConsole” to start DebugServerConsole!

(NOTE:The full path of ‘DebugServerConsole.elf’ is /usr/bin/C-Sky_DebugServer)

注意:安装过程中用户需要获取sudo权限。

Linux虚拟机下安装Debug Server

很多开发者习惯在Windows系统(或Mac OS系统)下安装Linux虚拟机来进行开发,常见的虚拟机有WSL(Windows Subsystem for Linux),VMware,VirtualBox等。然而在Linux虚拟机下,由于Debug Server没办法获取到USB设备信息,导致部分情况下Debug Server连接失败。

因此需要切换到Windows环境安装和使用Debug Server。具体安装步骤,请参考《1.3 Windows调试环境安装》。

• 安装完成后,在任意目录下通过命令 sudo DebugServerConsole,来打开 DebugServer。打开后界面如下:

• DebugServer连接成功如下:

2.4 应用开发

2.4.1 编译

以CB5654开发板为例,进入开发板目录,使用make命令开始编译:

$ cd solutions_cb5654/smart_speaker_cb5654

$ make clean; make

2.4.2 烧录

调试脚本

• 镜像的烧写通过GDB完成,需要先配置调试服务器的IP地址为本机地址。输入命令ifconfig获取本机地址(下例为:30.21.178.4):

$ ifconfig           

wifi0: flags=4163 mtu 1500

inet 30.21.178.4  netmask 255.255.252.0  broadcast 30.21.179.255
    inet6 fe80::b031:5c7e:9a91:d8d2  prefixlen 64  scopeid 0xfd<compat,link,site,host>
    ether 60:f2:62:77:45:d9  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0           

• 在开发目录下(例如:solutions_cb5654/smart_speaker_cb5654)创建文件.gdbinit,设置JTAG IP地址为本机IP地址,端口号为1025:

$ cat .gdbinit           

target jtag jtag://30.21.178.4:1025

全部烧录

• 上电开发板,确保电源指示灯被点亮;运行Debug Server并保证与开发板连接成功

• 首次运行时,需要执行全部烧录命令,保证所有分区内容都被烧录:

$ make flashall
 该命令会烧录Bootloader分区、算法分区、应用分区。
           

注意:Bootloader烧写若异常断电可能会导致设备无法引导。

应用固件烧录

• 大部分应用程序都运行应用分区上,修改应用程序代码后可以只烧写相应的应用程序固件,加快烧写速度。

$ make flash
           

烧录成功

• 烧录成功后,可以看到所有分区烧写进度都已至100%。

Program partition: bmtb         address: 0x8000000, size 192 byte           

erasing...

program 08000000, 100%

Program partition: boot address: 0x8001000, size 41592 byte

program 08009000, 100%

Program partition: tee address: 0x8011000, size 22048 byte

program 08011000, 100%

Program partition: imtb address: 0x8021000, size 8192 byte

program 08021000, 100%

Program partition: prim address: 0x8023000, size 1712796 byte

program 081c3000, 100%

Program partition: cpu1 address: 0x8323000, size 233708 byte

program 0835b000, 100%

Program partition: cpu2 address: 0x83a3000, size 388358 byte

program 083fb000, 100%

Program partition: lpm address: 0x85a7000, size 25508 byte

program 085a7000, 100%

Program partition: lfs address: 0x85c7000, size 143360 byte

program 085e7000, 100%

Program partition: kp address: 0x8fff000, size 576 byte

program 08fff000, 100%

3. 例程运行

3.1 配置串口工具

Windows串口工具

• 串口工具可以选择putty/SecureCRT/Xshell等常见Windows工具

• 以Xshell为例,选择对应的端口号(安装完串口驱动后,从设备管理器中可以查询到),波特率设置为115200,数据位设为8,停止位设1,奇偶校验位和流控制位均设为‘无’:

智能语音终端SDK快速上手说明 | 《无需从0开发 1天上手智能语音离在线方案》第三章

Linux串口工具

• Linux下推荐使用minicom作为串口工具,安装命令:

$sudo apt-get install minicom           

• 启动minicom并配置参数:

$sudo minicom -s           

//选择‘Serial port setup’

A - Serial Device : /dev/ttyS0

E - Bps/Par/Bits : 115200 8N1

F - Hardware Flow Control: No

3.2 开发板上电

• 按开发板上的复位按键,复位开发板,开发板正常上电log打印如下:

boot_v1.4

sdram ok

boot core...build: May 16 2020 14:29:18

BOOT[I] part_num:12

BOOT[E] otp cant find pk region

BOOT[I] verify [prim] ok

BOOT[I] load img & jump to [tee]

BOOT[I] all copy over..

BOOT[I] j m

BOOT[I] j 0x18000000

Tee v1.4.0 Initliaze done, Jun 22 2020 17:29:06

... 后续日志省略

3.3 配置 WiFi 密码

首次上电时,开发板没有配置 WiFi 用户名密码,无法连接无线路由器。用户可以通过串口命令行指令快速配置 WiFi 密码,步骤如下:

• 串口中输入指令分别设置 WiFi 参数(ssid, password),其中 {ssid} 为 wifi 名称,{password} 为 wifi 密码,如果路由器没有密码,密码可随意填写

注意:所有命令都需要以换行符 \n 或\r\n结尾           

kv set wifi_ssid {ssid}

kv set wifi_psk {password}

• 可以通过 kv get wifi_ssid/kv get wifi_psk 来获取设置的ssid/密码,验证设置是否正确

kv get wifi_ssid

kv get test

kv get wifi_psk

kv get 123456

• 按开发板复位键,重启开发板

• 等待语音提示 正在启动,网络连接成功,并可以观察到串口打印输出 wifi 连接成功

7.801532[netmgr ]start dhcp

7.855701[netmgr ]IP: 192.168.1.103

也可以通过命令ifconfig检查网络连接状态,如果Wi-Fi连接失败,会显示“WiFi Not connected”:

ifconfig

wifi0 Link encap:WiFi HWaddr 18:bc:5a:60:d7:f1

inet addr:192.168.1.80
GWaddr:192.168.1.1
Mask:255.255.255.0
DNS SERVER 0: 208.67.222.222
WiFi Not connected
           

3.4 语音交互演示

开发板成功连网后,就可以进行语音交互演示了。

开发者可以通过唤醒词“宝拉宝拉”唤醒开发板,之后可以通过语音指令控制或询问开发板。

交互示例

人:宝拉宝拉

机:在

人:杭州天气

机:杭州今天阴转小雨,微风,15摄氏度,出门别忘了得带伞哦!

人:声音调大一点

机:好的

常用语音交互命令

控制命令:

• 声音大点/提高音量

• 声音小点/降低音量

• 停止播放

• 继续播放

交互命令:

• 讲个笑话

• 现在几点

• 天气预报/{城市}天气/明天天气/后天天气/下周天气

3.5 其他测试命令

更多测试命令,请参考解决方案文件夹下面的README.md文件。