行空板K10——图灵机器人
本帖最后由 云天 于 2024-12-30 13:45 编辑【项目背景】
本项目旨在利用行空板K10与图灵机器人进行交互,通过行空板的语音识别功能将用户的语音问题转换成文本,随后将这些文本发送至图灵机器人。图灵机器人处理后,行空板再将返回的文本通过语音合成技术转换成语音输出,实现人机交互。【项目目标】 该项目的目标是创建一个基于行空板K10的交互系统,该系统能够理解用户的语音指令,通过图灵机器人获取信息,并将这些信息以语音的形式反馈给用户。这不仅增强了行空板的功能性,也为用户带来了更加便捷的交互体验。【项目实现】 为了实现上述目标,项目中将使用行空板K10的语音识别和语音合成功能。首先,用户的语音指令将被转换成文本形式,然后这些文本通过行空板K10发送至图灵机器人的API。图灵机器人将处理这些文本并返回相应的答案,行空板K10再将这些答案转换成语音,完成整个交互过程。 通过这种方式,行空板K10不仅能够执行简单的语音识别和语音合成任务,还能够与外部智能服务进行交互,扩展了其应用范围,并为用户带来了更加丰富的互动体验。【连接图灵】
Arduino C代码:
/*!
* MindPlus
* esp32s3bit
*
*/
#include <DFRobot_Iot.h>
#include <DFRobot_HTTPClient.h>
// 动态变量
String mind_s_JieGuoWenBen;
// 创建对象
DFRobot_Iot myIot;
String requestBody = R"({"reqType":0,"perception": {"inputText": {"text": "你好,你是谁?"}},"userInfo": {"apiKey": "*************","userId": "yuntian365"} })";
DFRobot_HTTPClient http;
// 主程序开始
void setup() {
http.init();
myIot.wifiConnect("********", "***********");
while (!myIot.wifiStatus()) {}
Serial.begin(9600);
Serial.println(myIot.getWiFiLocalIP());
http.addHeader("Content-Type", "application/json");
http.addString((requestBody));
http.POST("http://openapi.turingapi.com/openapi/api/v2", 10000);
mind_s_JieGuoWenBen = http.getString();
delay(10000);
Serial.println(mind_s_JieGuoWenBen);
}
void loop() {
}
"apiKey"通过登陆图灵机器人官网注册机器人获取。
运行程序后,得到反馈结果。
{"emotion":{"robotEmotion":{"a":0,"d":0,"emotionId":0,"p":0},"userEmotion":{"a":0,"d":0,"emotionId":0,"p":0}},"intent":{"appKey":"platform.chat","code":0,"operateState":1100},"results":[{"groupType":0,"resultType":"text","values":{"text":"我叫图灵机器人,不要被我的名字所迷倒哦!"}}]}
【分析结果数据】
/*!
* MindPlus
* esp32s3bit
*
*/
#include <ArduinoJson.h>
// 创建对象
DynamicJsonBuffer jsonBuffer;
String jsonString=R"({"emotion":{"robotEmotion":{"a":0,"d":0,"emotionId":0,"p":0},"userEmotion":{"a":0,"d":0,"emotionId":0,"p":0}},"intent":{"appKey":"platform.chat","code":0,"operateState":1100},"results":[{"groupType":0,"resultType":"text","values":{"text":"我叫图灵机器人,不要被我的名字所迷倒哦!"}}]})";
// 主程序开始
void setup() {
JsonObject& root = jsonBuffer.parseObject(jsonString);
String text = root;
Serial.begin(9600);
delay(10000);
Serial.println((text));
}
void loop() {
}
【文本显示朗读】
【语音识别】
【完整代码】
#include <DFRobot_Iot.h>
#include <ArduinoJson.h>
#include <DFRobot_HTTPClient.h>
#include "asr.h"
#include "unihiker_k10.h"
// 创建对象
UNIHIKER_K10 k10;
uint8_t screen_dir=2;
ASR asr;
// 动态变量
String mind_s_WenTiWenBen;
// 创建对象
DFRobot_Iot myIot;
DFRobot_HTTPClient http;
// 主程序开始
void setup() {
k10.begin();
k10.initScreen(screen_dir);
k10.creatCanvas();
asr.setAsrSpeed(2);
asr.asrInit(CONTINUOUS, CN_MODE, 6000);
while(asr._asrState == 0){delay(100);}
asr.addASRCommand(0+1, "ni shi shui");
asr.addASRCommand(1+1, "ni hao");
asr.addASRCommand(2+1, "gu shi");
asr.addASRCommand(3+1, "ji qi ren");
myIot.wifiConnect("sxs", "smj080823");
while (!myIot.wifiStatus()) {}
Serial.begin(9600);
Serial.println(myIot.getWiFiLocalIP());
}
void tuling(String question){
http.init();
// 设置请求头
http.addHeader("Content-Type", "application/json");
// 构建请求体
String requestBody = R"({"reqType":0,"perception": {"inputText": {"text": ")" + question + R"("}},"userInfo": {"apiKey": "1f2c5095615446a1ac5bce1bfda33368","userId": "yuntian365"} })";
Serial.println(requestBody);
http.addString(requestBody);
// 发送HTTP POST请求
http.POST("http://openapi.turingapi.com/openapi/api/v2",10000);
// 获取响应
String jsonString = http.getString();
DynamicJsonBuffer jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(jsonString);
String text = root;
Serial.println(jsonString);
k10.canvas->canvasText(text, 10, 10, 0x0000FF, k10.canvas->eCNAndENFont24, 9, true);
k10.canvas->updateCanvas();
asr.speak(text);
}
void loop() {
if (asr.isDetectCmdID(0+1)) {
mind_s_WenTiWenBen = "你是谁?";
tuling(mind_s_WenTiWenBen);
}
if (asr.isDetectCmdID(1+1)) {
mind_s_WenTiWenBen = "你好";
tuling(mind_s_WenTiWenBen);
}
if (asr.isDetectCmdID(2+1)) {
mind_s_WenTiWenBen = "讲个故事";
tuling(mind_s_WenTiWenBen);
}
if (asr.isDetectCmdID(3+1)) {
mind_s_WenTiWenBen = "你是机器人吗?";
tuling(mind_s_WenTiWenBen);
}
}
【行空板K10背板】
为保护行空板k10背面电子元器件,通过嘉立创EDA设计一个简易背板,免费打印。
【演示视频】https://www.bilibili.com/video/BV1Fk6uYqEYX/?share_source=copy_web
说实话,确实很牛 说实话,确实很牛 很牛,大模型对话新案例 太牛了,如果可以开源就太好了 老师您好,请问这个http模块有分享文件吗?谢谢! zuzu12138 发表于 2025-3-3 22:07
老师您好,请问这个http模块有分享文件吗?谢谢!
打扰了老师,我发现我没有更新新的公测版Mind+
页:
[1]