桌面语音助手

编程入门 行业动态 更新时间:2024-10-23 03:17:06

桌面<a href=https://www.elefans.com/category/jswz/34/1769309.html style=语音助手"/>

桌面语音助手

功能需求:

  • 语音控制台灯
  • 语音控制…
  • 将控制信息显示在oled屏幕上

问题

以前也做个类似的控制(小爱同学+esp8266+继电器) 但是这个缺点太大了. 不能免唤醒词 必须联网, 控制延迟也很大. 而且不能自定义回答

解决方案

淘宝上买了一个语音控制的模块(SU-03T), 离线语音, 免唤醒, 响应时间很快. 完美符合我的要求. 在线编程自己生成sdk,和固件.

思维导图

arduino代码

#include <Wire.h>// 引入驱动OLED0.96所需的库
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // 设置OLED宽度,单位:像素
#define SCREEN_HEIGHT 64 // 设置OLED高度,单位:像素
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);#include <SoftwareSerial.h>  //软串口库
SoftwareSerial mySerial(2,3); 定义软串口,arduino的2号引脚作为RX,arduino的3号引脚作为TX,根据需要自行修改void setup()
{Serial.begin(9600);mySerial.begin(9600);display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop()
{DataJC();
}
//------读取串口
void DataJC(){if (mySerial.available() > 0) //检测软串口是否有数据{int val = 0;val = mySerial.read();//读出串数据Serial.println(val);  //从主串口打开出来if (val == 161) {Serial.println("A1已开启");A1_on();}if (val == 162) {Serial.println("A1已关闭");A1_off();}if (val == 17) {Serial.println("响应");Emoji_1();}}
}
//表情:响应
void Emoji_1()
{display.clearDisplay();display.setTextColor(WHITE);display.setTextSize(4);display.setCursor(45, 10);display.print("Hi");display.display();delay(1000);display.clearDisplay();display.setTextColor(WHITE);display.setTextSize(4);display.setCursor(32, 10);display.print("o o");display.display();delay(1000);
}
//打开A1
void A1_on(){display.clearDisplay();display.setTextColor(WHITE);display.setTextSize(2);display.setCursor(0, 20);display.print("A1 >> on");display.display();//delay(2000);
}
//关闭A1
void A1_off(){display.clearDisplay();display.setTextColor(WHITE);display.setTextSize(2);display.setCursor(0, 20);display.print("A1 >> off");display.display();//delay(2000);
}
//向软串口输出数据
void send_cmd(int cmd){char mylist[9]={0xAA,0x55,0x01,0x01,0x00,0x00,0x00,0x55,0xAA};//设置发送列表//改变数值mylist[(int)(3)] = cmd; mySerial.write(mylist[(int)(0)]);mySerial.write(mylist[(int)(1)]);mySerial.write(mylist[(int)(2)]);mySerial.write(mylist[(int)(3)]);mySerial.write(mylist[(int)(4)]);mySerial.write(mylist[(int)(5)]);mySerial.write(mylist[(int)(6)]);mySerial.write(mylist[(int)(7)]);mySerial.write(mylist[(int)(8)]);
}

更多推荐

桌面语音助手

本文发布于:2024-02-27 05:00:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705265.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语音   助手   桌面

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!