【花雕动手做】行空板K10实验之调用语音合成TTS天黑点灯

2026-06-24611
AI 快速预览详细 收起
行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,集成摄像头、麦克风、扬声器和2.8寸彩色屏幕。通过本实验,孩子可以轻松实现天黑自动点灯功能,提升编程技能和动手能力。该板支持离线图像检测、语音识别和语音合成,无需额外设备即可完成复杂项目,非常适合STEM教育场景。
【花雕动手做】行空板K10实验之调用语音合成TTS天黑点灯图1

行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。

主要特点
集成摄像头&内置算法,可进行离线图像检测
集成麦克风&内置算法,可进行离线语音识别
集成扬声器&内置算法,可进行离线语音合成
2.8寸彩色屏幕,数据展示更清晰
集成度高,利于教学
接口丰富,兼容软件多,扩展性好

【花雕动手做】行空板K10实验之调用语音合成TTS天黑点灯图2

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(7)
驴友花雕
驴友花雕
作者
实验场景图与视频记录


驴友花雕
驴友花雕
作者
Mind+图形编程

驴友花雕
驴友花雕
作者
代码解读
一、整体项目功能
这是行空板 K10 智能光控灯光项目:
利用板载环境光传感器实时检测亮度。
当环境光线变暗(传感器数值<50),RGB 白光自动点亮,屏幕弹出提示文字,喇叭通过离线语音合成说出:天黑点灯;
保持 2 秒后自动关灯、清空屏幕,循环持续检测光照。
全程使用本地离线 TTS 语音,不需要连接 WiFi。
二、分段代码解析
1. 头文件与对象定义
[code]#include "asr.h"
#include "unihiker_k10.h"
UNIHIKER_K10 k10;
ASR asr;
uint8_t screen_dir=2;[/code]
#include "asr.h":语音库,同时包含离线语音识别 + 文字转语音(TTS 播报)。
#include "unihiker_k10.h":行空板硬件总库,封装屏幕、环境光传感器、RGB 彩灯、音频喇叭。
k10:主控硬件实例,操作所有板载外设。
asr:语音功能实例,用来实现文字朗读。
screen_dir=2:设置屏幕为正向显示。
2. setup () 上电初始化(只运行一次)
[code]void setup() {
k10.begin();
asr.asrInit(CONTINUOUS, CN_MODE, 6000);
while(asr._asrState == 0){delay(100);}
asr.setAsrSpeed(2);
k10.initScreen(screen_dir);
k10.creatCanvas();
k10.setScreenBackground(0x000000);
}[/code]
k10.begin():初始化主板底层硬件,开启传感器、音频、屏幕总线。
asr.asrInit(...):启动语音引擎
CONTINUOUS:持续语音识别模式
CN_MODE:中文模式
6000:音频缓存时长 6 秒
while(asr._asrState == 0):程序阻塞等待,直到语音模型加载完毕,防止语音未就绪就调用播报。
asr.setAsrSpeed(2):设置朗读语速,档位 0~5,2 为正常语速。
后续代码:初始化显示屏,创建绘图画布,把屏幕底色设置为纯黑色。
重要隐患:这里开启了持续语音识别功能,会占用大量内存,和 TTS 合成一起运行极易造成内存溢出,开发板反复重启崩溃。
3. loop () 主循环(无限反复执行)
[code]void loop() {
k10.canvas->canvasText("行空板K10系列实验", 4, 0xFF0000);
k10.canvas->canvasText(" 语音提示天黑点灯", 6, 0x0000FF);
k10.canvas->updateCanvas();
delay(1000);[/code]
在画布上打印两行标题文字;
updateCanvas():将文字刷新显示到液晶屏;
延时 1 秒。
[code] if ((k10.readALS()<50)) {
k10.rgb->write(-1, 0xFFFFFF);
k10.canvas->canvasText(" 天黑点灯", 9, 0xFFFFFF);
k10.canvas->updateCanvas();
asr.speak("天黑点灯");
delay(2000);
}[/code]
k10.readALS():读取板载环境光传感器数值。光线越暗,数值越小。
判断条件:亮度小于 50,判定为天黑。
条件成立:RGB 灯全开白光,屏幕输出提示文字。
asr.speak("天黑点灯"):调用离线语音合成,喇叭读出这句话。
灯光和文字保持 2 秒。
[code] k10.rgb->write(-1, 0x000000);
k10.canvas->canvasClear();
k10.canvas->updateCanvas();
}[/code]
关闭所有 RGB 彩灯;
清空画布上所有文字;
刷新黑屏画面,进入下一轮循环检测。
三、代码优点
硬件调用简洁,直接调用板载环境光传感器,不需要外接模块;
语音为本地离线播报,不用联网;
逻辑清晰:光线判断→亮灯→文字提示→语音播报→延时关灯。
驴友花雕
驴友花雕
作者
【花雕动手做】行空板 K10 系列实验之人工智能调用语音合成 TTS 天黑点灯
实验开源代码
[code]// 引入语音库,包含语音识别ASR与语音合成TTS功能
#include "asr.h"
// 引入行空板K10硬件驱动库,屏幕、光线传感器、RGB灯全部封装在内
#include "unihiker_k10.h"
// 实例化行空板硬件对象
UNIHIKER_K10 k10;
// 实例化语音功能对象
ASR asr;
// 屏幕方向参数,2为正向正常显示
uint8_t screen_dir=2;
// 上电初始化,只运行一次
void setup() {
// 初始化主板全部底层硬件(总线、音频、传感器外设)
k10.begin();
// 初始化语音引擎:持续收音模式、中文模式,音频缓冲区6000ms
asr.asrInit(CONTINUOUS, CN_MODE, 6000);
// 等待语音模型加载完成
// _asrState等于0代表未就绪,每100ms循环检测一次
while(asr._asrState == 0){delay(100);}
// 设置语音播报语速,参数范围0~5,2为标准语速
asr.setAsrSpeed(2);
// 初始化LCD显示屏
k10.initScreen(screen_dir);
// 创建绘图画布,所有文字绘制都需要画布缓存
k10.creatCanvas();
// 设置屏幕背景为纯黑色
k10.setScreenBackground(0x000000);
}
// 主循环,程序反复循环运行
void loop() {
// 在画布第4行写入红色文字
k10.canvas->canvasText("行空板K10系列实验", 4, 0xFF0000);
// 在画布第6行写入蓝色文字
k10.canvas->canvasText(" 语音提示天黑点灯", 6, 0x0000FF);
// 把画布内容刷新到屏幕上
k10.canvas->updateCanvas();
// 延时1秒
delay(1000);
// 读取板载光线传感器数值
// 判断:光照值小于50,判定为环境昏暗
if ((k10.readALS()<50)) {
// 打开全部RGB彩灯,白光常亮
k10.rgb->write(-1, 0xFFFFFF);
// 屏幕第9行显示白色文字
k10.canvas->canvasText(" 天黑点灯", 9, 0xFFFFFF);
k10.canvas->updateCanvas();
// 语音合成,喇叭朗读文字:天黑点灯
asr.speak("天黑点灯");
// 保持灯光与文字2秒
delay(2000);
}
// 关闭RGB彩灯
k10.rgb->write(-1, 0x000000);
// 清空画布所有文字内容
k10.canvas->canvasClear();
// 刷新空白画面
k10.canvas->updateCanvas();
}[/code]
驴友花雕
驴友花雕
作者

知识点:行空板 K10 离线语音合成(TTS)介绍
1、底层方案
依托 ESP-SR 语音套件内置esp-tts轻量化离线语音合成引擎,无需 WiFi 联网,文字本地实时转人声,依托板载喇叭直接发声。
2、功能能力
仅支持中文汉字、数字、常用标点朗读;内置小新、小乐两种人声音色;提供 0–5 级语速调节;支持短句、长文本流式合成播放,自带停顿逻辑。
3、硬件配套
板载集成扬声器,无需外接音频设备;共用芯片 PSRAM 内存资源,与离线语音识别 ASR 存在内存抢占冲突,二者无法同时运行,同时初始化会内存报错、设备反复重启。
4、资源占用
单独运行 TTS 仅占用约 3MB PSRAM,程序运行稳定;若搭配屏幕、传感器,内存余量会进一步缩减,不建议叠加 AI 视觉模型。
5、开发形式
Mind + 提供图形化语音合成积木,底层封装规避指针崩溃问题;也可调用playText.h底层库手写代码,仅推荐纯播报场景使用。
6、适用场景
设备状态语音播报、文字朗读、交互提示、温湿度 / 数字信息语音输出;适合不需要语音指令识别、仅单向发声的项目。
7、短板
无英文朗读能力;人声存在轻微机械拼接感,自然度弱于云端 TTS;无法和离线语音识别共存,有双向语音交互需求只能选用联网在线语音方案。

驴友花雕
驴友花雕
作者
辅助:屏幕显示相关积木

板载传感器模块

LED控制模块

驴友花雕
驴友花雕
作者
主打:人工智能模块

语音合成相关说明

- 没有更多了 -