有没有办法从语音识别模块中检索签名? (Elechouse语音识别V3.1)

时间:2020-03-20 16:06:29

标签: c++ module arduino signature voice-recognition

截至目前,我正在尝试构建一个语音识别系统,以响应我所说的话。我一直在寻找如何从语音识别模块的库中检索签名的方法。

这是我的结果: Picture taken from the Serial Monitor in Arduino IDE

产生结果的我的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);
  }  
}

关于我将如何从该模块中检索签名的任何建议?

编辑:该模块已经过训练,可以识别我说“两个”的语音,并已分配 签名“两个”。

0 个答案:

没有答案