截至目前,我正在尝试构建一个语音识别系统,以响应我所说的话。我一直在寻找如何从语音识别模块的库中检索签名的方法。
这是我的结果:
产生结果的我的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);
}
}
关于我将如何从该模块中检索签名的任何建议?
编辑:该模块已经过训练,可以识别我说“两个”的语音,并已分配 签名“两个”。