Files
Vosklet/src/recognizer.h
2024-03-27 16:55:34 -07:00

35 lines
1.1 KiB
C++

#pragma once
#include "genericModel.h"
#include <queue>
#include <emscripten/console.h>
struct audioData {
float* data;
int len;
audioData(int start, int len) : data{reinterpret_cast<float*>(start)}, len{len} {}
};
struct recognizer {
std::atomic_bool done{};
std::atomic_bool blocker{};
int index;
VoskRecognizer* rec;
std::queue<audioData> dataQ{};
recognizer(int index, float sampleRate, genericModel* model);
recognizer(int index, float sampleRate, genericModel* model, genericModel* spkModel);
recognizer(int index, float sampleRate, genericModel* model, const std::string& grm, int dummy);
~recognizer();
void finishConstruction(genericModel* model, genericModel* spkModel = nullptr);
void pushData(int start, int len);
void reset();
void setEndpointerMode(VoskEndpointerMode mode);
void setEndpointerDelays(float tStartMax, float tEnd, float tMax);
void setSpkModel(genericModel* model);
void setGrm(const std::string& grm);
void setWords(bool words);
void setPartialWords(bool partialWords);
void setNLSML(bool nlsml);
void setMaxAlternatives(int alts);
};