[K10项目分享]行空板K10——图灵机器人 精华

2024-12-30 13:40:23 [显示全部楼层]
978浏览
查看: 978|回复: 3

[K10项目分享] 行空板K10——图灵机器人

[复制链接]
本帖最后由 云天 于 2024-12-30 13:45 编辑

行空板K10——图灵机器人图9

【项目背景】

       本项目旨在利用行空板K10与图灵机器人进行交互,通过行空板的语音识别功能将用户的语音问题转换成文本,随后将这些文本发送至图灵机器人。图灵机器人处理后,行空板再将返回的文本通过语音合成技术转换成语音输出,实现人机交互。

【项目目标】

       该项目的目标是创建一个基于行空板K10的交互系统,该系统能够理解用户的语音指令,通过图灵机器人获取信息,并将这些信息以语音的形式反馈给用户。这不仅增强了行空板的功能性,也为用户带来了更加便捷的交互体验。

【项目实现】

       为了实现上述目标,项目中将使用行空板K10的语音识别和语音合成功能。首先,用户的语音指令将被转换成文本形式,然后这些文本通过行空板K10发送至图灵机器人的API。图灵机器人将处理这些文本并返回相应的答案,行空板K10再将这些答案转换成语音,完成整个交互过程。

       通过这种方式,行空板K10不仅能够执行简单的语音识别和语音合成任务,还能够与外部智能服务进行交互,扩展了其应用范围,并为用户带来了更加丰富的互动体验。

【连接图灵】
行空板K10——图灵机器人图1

Arduino C代码:
  1. /*!
  2. * MindPlus
  3. * esp32s3bit
  4. *
  5. */
  6. #include <DFRobot_Iot.h>
  7. #include <DFRobot_HTTPClient.h>
  8. // 动态变量
  9. String mind_s_JieGuoWenBen;
  10. // 创建对象
  11. DFRobot_Iot        myIot;
  12. String requestBody = R"({"reqType":0,"perception": {"inputText": {"text": "你好,你是谁?"}},"userInfo": {"apiKey": "*************","userId": "yuntian365"} })";
  13. DFRobot_HTTPClient http;
  14. // 主程序开始
  15. void setup() {
  16.         http.init();
  17.         myIot.wifiConnect("********", "***********");
  18.         while (!myIot.wifiStatus()) {}
  19.         Serial.begin(9600);
  20.         Serial.println(myIot.getWiFiLocalIP());
  21.         http.addHeader("Content-Type", "application/json");
  22.         http.addString((requestBody));
  23.         http.POST("http://openapi.turingapi.com/openapi/api/v2", 10000);
  24.         mind_s_JieGuoWenBen = http.getString();
  25.         delay(10000);
  26.         Serial.println(mind_s_JieGuoWenBen);
  27. }
  28. void loop() {
  29. }
复制代码
"apiKey"通过登陆图灵机器人官网注册机器人获取。
行空板K10——图灵机器人图2


运行程序后,得到反馈结果。
{"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":"我叫图灵机器人,不要被我的名字所迷倒哦!"}}]}
【分析结果数据】
行空板K10——图灵机器人图3

  1. /*!
  2. * MindPlus
  3. * esp32s3bit
  4. *
  5. */
  6. #include <ArduinoJson.h>
  7. // 创建对象
  8. DynamicJsonBuffer jsonBuffer;
  9.                   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":"我叫图灵机器人,不要被我的名字所迷倒哦!"}}]})";
  10. // 主程序开始
  11. void setup() {
  12.          JsonObject& root = jsonBuffer.parseObject(jsonString);
  13.          String text = root[String("results")][0][String("values")][String("text")];
  14.         Serial.begin(9600);
  15.         delay(10000);
  16.         Serial.println((text));
  17. }
  18. void loop() {
  19. }
复制代码

【文本显示朗读】
行空板K10——图灵机器人图4

【语音识别】
行空板K10——图灵机器人图5

【完整代码】
行空板K10——图灵机器人图7

  1. #include <DFRobot_Iot.h>
  2. #include <ArduinoJson.h>
  3. #include <DFRobot_HTTPClient.h>
  4. #include "asr.h"
  5. #include "unihiker_k10.h"
  6. // 创建对象
  7. UNIHIKER_K10 k10;
  8. uint8_t      screen_dir=2;
  9. ASR          asr;
  10. // 动态变量
  11. String mind_s_WenTiWenBen;
  12. // 创建对象
  13. DFRobot_Iot        myIot;
  14. DFRobot_HTTPClient http;
  15. // 主程序开始
  16. void setup() {
  17.         k10.begin();
  18.         k10.initScreen(screen_dir);
  19.         k10.creatCanvas();
  20.         asr.setAsrSpeed(2);
  21.         asr.asrInit(CONTINUOUS, CN_MODE, 6000);
  22.         while(asr._asrState == 0){delay(100);}
  23.         asr.addASRCommand(0+1, "ni shi shui");
  24.         asr.addASRCommand(1+1, "ni hao");
  25.         asr.addASRCommand(2+1, "gu shi");
  26.         asr.addASRCommand(3+1, "ji qi ren");
  27.         
  28.         myIot.wifiConnect("sxs", "smj080823");
  29.         while (!myIot.wifiStatus()) {}
  30.         
  31.         Serial.begin(9600);
  32.         Serial.println(myIot.getWiFiLocalIP());
  33.         
  34. }
  35. void tuling(String question){
  36.   http.init();
  37.         // 设置请求头
  38.         http.addHeader("Content-Type", "application/json");
  39.         
  40.         // 构建请求体
  41.   String requestBody = R"({"reqType":0,"perception": {"inputText": {"text": ")" + question + R"("}},"userInfo": {"apiKey": "1f2c5095615446a1ac5bce1bfda33368","userId": "yuntian365"} })";
  42.   Serial.println(requestBody);
  43.         http.addString(requestBody);
  44.         // 发送HTTP POST请求
  45.         http.POST("http://openapi.turingapi.com/openapi/api/v2",10000);
  46.         
  47.         // 获取响应
  48.         String jsonString = http.getString();
  49.         DynamicJsonBuffer jsonBuffer;
  50.         JsonObject& root = jsonBuffer.parseObject(jsonString);
  51.         String text = root[String("results")][0][String("values")][String("text")];
  52.         Serial.println(jsonString);
  53.         k10.canvas->canvasText(text, 10, 10, 0x0000FF, k10.canvas->eCNAndENFont24, 9, true);
  54.         k10.canvas->updateCanvas();
  55.         asr.speak(text);
  56. }
  57. void loop() {
  58.         if (asr.isDetectCmdID(0+1)) {
  59.                 mind_s_WenTiWenBen = "你是谁?";
  60.                 tuling(mind_s_WenTiWenBen);
  61.         }
  62.         if (asr.isDetectCmdID(1+1)) {
  63.                 mind_s_WenTiWenBen = "你好";
  64.                 tuling(mind_s_WenTiWenBen);
  65.         }
  66.         if (asr.isDetectCmdID(2+1)) {
  67.                 mind_s_WenTiWenBen = "讲个故事";
  68.                 tuling(mind_s_WenTiWenBen);
  69.         }
  70.         if (asr.isDetectCmdID(3+1)) {
  71.                 mind_s_WenTiWenBen = "你是机器人吗?";
  72.                 tuling(mind_s_WenTiWenBen);
  73.         }
  74. }
复制代码
【行空板K10背板】
为保护行空板k10背面电子元器件,通过嘉立创EDA设计一个简易背板,免费打印。
行空板K10——图灵机器人图6

行空板K10——图灵机器人图8



【演示视频】





一只想肥的猫  见习技师

发表于 2024-12-30 16:55:36

说实话,确实很牛
回复

使用道具 举报

hnyzcj  版主

发表于 2024-12-30 18:10:34

说实话,确实很牛
回复

使用道具 举报

rzegkly  版主

发表于 2025-1-9 05:49:32

很牛,大模型对话新案例
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail