На данный момент я пытаюсь создать систему распознавания голоса, которая будет реагировать на то, что я говорю соответственно. Я размышлял о том, как извлечь подпись из библиотеки модуля распознавания голоса.
Это мой результат:
Мой код Arduino, который дал результат, приведен ниже:
#include <SoftwareSerial.h>
#include "VoiceRecognitionV3.h"
VR myVR(2,3);
uint8_t record[7];
uint8_t buf[64];
#define onRecord (0)
#define offRecord (1)
void printSignature (uint8_t *buf, int len) {
int i;
for(i = 0; i < len; i++) {
if(buf[i] > 0x19 && buf[i] < 0x7F) {
Serial.write(buf[i]);
} else {
Serial.print("[");
Serial.print(buf[i], HEX);
Serial.print("]");
}
}
}
void printVR(uint8_t *buf)
{
Serial.println("VR Index\tGroup\tRecordNum\tSignature");
Serial.println(buf[2], DEC);
Serial.println("\t\t");
Serial.print(buf[2], DEC);
Serial.print("\t\t");
if(buf[0] == 0xFF){
Serial.print("NONE");
}
else if(buf[0]&0x80){
Serial.print("UG ");
Serial.print(buf[0]&(~0x80), DEC);
}
else{
Serial.print("SG ");
Serial.print(buf[0], DEC);
}
Serial.print("\t");
Serial.print(buf[1], DEC);
Serial.print("\t\t");
if(buf[3] >0) {
printSignature(buf+4, buf[3]);
}
}
void setup() {
myVR.begin(9600);
Serial.begin(115200);
if(myVR.clear() == 0) {
Serial.println("Recognizer cleared.");
} else {
Serial.println("Not find VR Module");
while(1);
}
if(myVR.load((uint8_t)onRecord) >= 0){
Serial.println("onRecord loaded");
}
if(myVR.load((uint8_t)offRecord) >= 0){
Serial.println("offRecord loaded");
}
}
void loop() {
int ret;
ret = myVR.recognize(buf, 50);
if(ret > 0) {
printVR(buf);
}
}
Любые предложения о том, как я go при извлечении подписи из этого модуля?
Редактировать: Модуль обучен распознавать мою речь, говоря «два», и ему присваивается подпись «два».