Files
esarobotech/r1/include/r1_voice/stt.hh
T
2026-08-28 10:10:18 +02:00

50 lines
938 B
C++

#pragma once
#include <string>
namespace r1_voice {
struct SttConfig {
std::string whisper_cli;
std::string whisper_model;
std::string language = "cs";
int threads = 8;
static constexpr int sample_rate = 16000;
static constexpr int packet_bytes = 5120;
float speech_threshold = 0.010f;
int silence_ms = 900;
int min_speech_ms = 250;
int max_record_ms = 10000;
int preroll_ms = 800;
};
class SpeechToText {
public:
explicit SpeechToText(SttConfig config);
// Blocks until the user speaks, stops speaking,
// and Whisper has transcribed the utterance.
std::string listen();
private:
SttConfig config_;
bool recordToWav(const std::string& path);
std::string transcribe(
const std::string& wav_path
);
std::string trim(
const std::string& text
);
};
} // namespace r1_voice