智能语音唤醒

实验介绍

本章主要介绍通过本地HaaS HaaS唤醒词唤醒设备实现本地语音播报响应。 开始学习之前我们先看一下显示效果,如下所示:

涉及知识点

  • 模拟MIC声音采样

  • 喇叭播放mp3

  • 本地唤醒AI推理引擎运用

  • OLED绘图

开发环境准备

硬件

开发用电脑一台
HAAS EDU K1 开发板一块
模拟MIC一个
喇叭一个
USB2TypeC 数据线一根

软件

AliOS Things开发环境搭建

开发环境的搭建请参考 @ref HaaS_EDU_K1_Quick_Start (搭建开发环境章节),其中详细的介绍了AliOS Things 3.3的IDE集成开发环境的搭建流程。

HaaS EDU K1 DEMO 代码下载

开发环境的搭建请参考《AliOS Things集成开发环境使用说明之搭建开发环境》,其中详细的介绍了AliOS Things 3.3的IDE集成开发环境的搭建流程。

本案例的代码下载请参考《AliOS Things集成开发环境使用说明之创建工程》

> 选择解决方案: “HaaS EDU K1教育开发案例合集”

> 选择开发板: haaseduk1 board configure

-- 编译固件可参考《AliOS Things集成开发环境使用说明之编译固件》

-- 烧录固件可参考《AliOS Things集成开发环境使用说明之烧录固件》

OLED绘图

参考上一章节。

软硬件环境准备

硬件

1、开发用电脑一台
2、HaaS EDU K1开发板一个
3、USB Type-C 数据线一根
4、外接模拟MIC一个

模拟MIC购买链接喇叭购买链接

硬件接线图

在本实验中,喇叭和模拟MIC与HaaS EDUK1连接如下所示:

软件设计

应用代码部分

文件路径如下: solutions/eduk1_demo/k1_apps/kws/kws.c solutions/eduk1_demo/k1_apps/kws/kws.h

# 唤醒后蜂鸣器发出声音,并播放本地响应TTS,等待播放结束重现显示语音唤醒初始界面

int32_t kws_callback(ai_result_t *result)
{
    int32_t kws_ret = (int32_t)*result;
    player_state_t player_state = -1;

    if (kws_ret) {
        beeper_start(0, 1, 25);
        OLED_Clear();
        OLED_Show_String(14, 24, "Hi, I am here!", 16, 1);
        OLED_Refresh_GRAM();
        beeper_stop(0);

        /*play local asr*/
        play_local_mp3();

        uvocplayer->wait_complete();

        OLED_Clear();
        OLED_Show_String(28, 16, "HaaS HaaS!", 16, 1);
        OLED_Show_String(28, 34, "Wakeup me!", 16, 1);

        OLED_Icon_Draw(2, 24, &icon_skip_left, 0);
        OLED_Icon_Draw(122, 24, &icon_skip_right, 0);
        OLED_Refresh_GRAM();
    }

    return 0;
}