7浏览
查看: 7|回复: 7

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

[复制链接]
【花雕动手做】行空板K10实验之调用语音合成TTS天黑点灯图1

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

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

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

驴友花雕  高级技神
 楼主|

发表于 1 小时前

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

主打:人工智能模块

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

语音合成相关说明

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


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

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

辅助:屏幕显示相关积木

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

板载传感器模块

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

LED控制模块

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


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

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

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

知识点:行空板 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;无法和离线语音识别共存,有双向语音交互需求只能选用联网在线语音方案。


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

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 26 分钟前

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

【花雕动手做】行空板 K10 系列实验之人工智能调用语音合成 TTS 天黑点灯
实验开源代码

  1. // 引入语音库,包含语音识别ASR与语音合成TTS功能
  2. #include "asr.h"
  3. // 引入行空板K10硬件驱动库,屏幕、光线传感器、RGB灯全部封装在内
  4. #include "unihiker_k10.h"
  5. // 实例化行空板硬件对象
  6. UNIHIKER_K10 k10;
  7. // 实例化语音功能对象
  8. ASR          asr;
  9. // 屏幕方向参数,2为正向正常显示
  10. uint8_t      screen_dir=2;
  11. // 上电初始化,只运行一次
  12. void setup() {
  13.         // 初始化主板全部底层硬件(总线、音频、传感器外设)
  14.         k10.begin();
  15.         // 初始化语音引擎:持续收音模式、中文模式,音频缓冲区6000ms
  16.         asr.asrInit(CONTINUOUS, CN_MODE, 6000);
  17.         // 等待语音模型加载完成
  18.         // _asrState等于0代表未就绪,每100ms循环检测一次
  19.         while(asr._asrState == 0){delay(100);}
  20.         // 设置语音播报语速,参数范围0~5,2为标准语速
  21.         asr.setAsrSpeed(2);
  22.         // 初始化LCD显示屏
  23.         k10.initScreen(screen_dir);
  24.         // 创建绘图画布,所有文字绘制都需要画布缓存
  25.         k10.creatCanvas();
  26.         // 设置屏幕背景为纯黑色
  27.         k10.setScreenBackground(0x000000);
  28. }
  29. // 主循环,程序反复循环运行
  30. void loop() {
  31.         // 在画布第4行写入红色文字
  32.         k10.canvas->canvasText("行空板K10系列实验", 4, 0xFF0000);
  33.         // 在画布第6行写入蓝色文字
  34.         k10.canvas->canvasText(" 语音提示天黑点灯", 6, 0x0000FF);
  35.         // 把画布内容刷新到屏幕上
  36.         k10.canvas->updateCanvas();
  37.         // 延时1秒
  38.         delay(1000);
  39.         // 读取板载光线传感器数值
  40.         // 判断:光照值小于50,判定为环境昏暗
  41.         if ((k10.readALS()<50)) {
  42.                 // 打开全部RGB彩灯,白光常亮
  43.                 k10.rgb->write(-1, 0xFFFFFF);
  44.                 // 屏幕第9行显示白色文字
  45.                 k10.canvas->canvasText("        天黑点灯", 9, 0xFFFFFF);
  46.                 k10.canvas->updateCanvas();
  47.                 // 语音合成,喇叭朗读文字:天黑点灯
  48.                 asr.speak("天黑点灯");
  49.                 // 保持灯光与文字2秒
  50.                 delay(2000);
  51.         }
  52.         // 关闭RGB彩灯
  53.         k10.rgb->write(-1, 0x000000);
  54.         // 清空画布所有文字内容
  55.         k10.canvas->canvasClear();
  56.         // 刷新空白画面
  57.         k10.canvas->updateCanvas();
  58. }
复制代码


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 20 分钟前

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

代码解读
一、整体项目功能
这是行空板 K10 智能光控灯光项目:
利用板载环境光传感器实时检测亮度。
当环境光线变暗(传感器数值<50),RGB 白光自动点亮,屏幕弹出提示文字,喇叭通过离线语音合成说出:天黑点灯;
保持 2 秒后自动关灯、清空屏幕,循环持续检测光照。
全程使用本地离线 TTS 语音,不需要连接 WiFi。

二、分段代码解析
1. 头文件与对象定义

  1. #include "asr.h"
  2. #include "unihiker_k10.h"
  3. UNIHIKER_K10 k10;
  4. ASR          asr;
  5. uint8_t      screen_dir=2;
复制代码

#include "asr.h":语音库,同时包含离线语音识别 + 文字转语音(TTS 播报)。
#include "unihiker_k10.h":行空板硬件总库,封装屏幕、环境光传感器、RGB 彩灯、音频喇叭。
k10:主控硬件实例,操作所有板载外设。
asr:语音功能实例,用来实现文字朗读。
screen_dir=2:设置屏幕为正向显示。

2. setup () 上电初始化(只运行一次)

  1. void setup() {
  2.         k10.begin();
  3.         asr.asrInit(CONTINUOUS, CN_MODE, 6000);
  4.         while(asr._asrState == 0){delay(100);}
  5.         asr.setAsrSpeed(2);
  6.         k10.initScreen(screen_dir);
  7.         k10.creatCanvas();
  8.         k10.setScreenBackground(0x000000);
  9. }
复制代码

k10.begin():初始化主板底层硬件,开启传感器、音频、屏幕总线。
asr.asrInit(...):启动语音引擎
CONTINUOUS:持续语音识别模式
CN_MODE:中文模式
6000:音频缓存时长 6 秒
while(asr._asrState == 0):程序阻塞等待,直到语音模型加载完毕,防止语音未就绪就调用播报。
asr.setAsrSpeed(2):设置朗读语速,档位 0~5,2 为正常语速。
后续代码:初始化显示屏,创建绘图画布,把屏幕底色设置为纯黑色。
重要隐患:这里开启了持续语音识别功能,会占用大量内存,和 TTS 合成一起运行极易造成内存溢出,开发板反复重启崩溃。

3. loop () 主循环(无限反复执行)

  1. void loop() {
  2.         k10.canvas->canvasText("行空板K10系列实验", 4, 0xFF0000);
  3.         k10.canvas->canvasText(" 语音提示天黑点灯", 6, 0x0000FF);
  4.         k10.canvas->updateCanvas();
  5.         delay(1000);
复制代码

在画布上打印两行标题文字;
updateCanvas():将文字刷新显示到液晶屏;
延时 1 秒。

  1. if ((k10.readALS()<50)) {
  2.                 k10.rgb->write(-1, 0xFFFFFF);
  3.                 k10.canvas->canvasText("        天黑点灯", 9, 0xFFFFFF);
  4.                 k10.canvas->updateCanvas();
  5.                 asr.speak("天黑点灯");
  6.                 delay(2000);
  7.         }
复制代码

k10.readALS():读取板载环境光传感器数值。光线越暗,数值越小。
判断条件:亮度小于 50,判定为天黑。
条件成立:RGB 灯全开白光,屏幕输出提示文字。
asr.speak("天黑点灯"):调用离线语音合成,喇叭读出这句话。
灯光和文字保持 2 秒。

  1. k10.rgb->write(-1, 0x000000);
  2.         k10.canvas->canvasClear();
  3.         k10.canvas->updateCanvas();
  4. }
复制代码

关闭所有 RGB 彩灯;
清空画布上所有文字;
刷新黑屏画面,进入下一轮循环检测。

三、代码优点
硬件调用简洁,直接调用板载环境光传感器,不需要外接模块;
语音为本地离线播报,不用联网;
逻辑清晰:光线判断→亮灯→文字提示→语音播报→延时关灯。

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 17 分钟前

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

Mind+图形编程

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

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 2 分钟前

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

实验场景图与视频记录

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail