talk_set_status("processing ...");
- g_force_speak = false;
-
t_last = t_now;
- {
+ if (!g_force_speak) {
const auto t_start = std::chrono::high_resolution_clock::now();
int ret = whisper_full(ctx, wparams, pcmf32.data(), pcmf32.size());
{
std::string text_heard;
- const int n_segments = whisper_full_n_segments(ctx);
- for (int i = n_segments - 1; i < n_segments; ++i) {
- const char * text = whisper_full_get_segment_text(ctx, i);
+ if (!g_force_speak) {
+ const int n_segments = whisper_full_n_segments(ctx);
+ for (int i = n_segments - 1; i < n_segments; ++i) {
+ const char * text = whisper_full_get_segment_text(ctx, i);
- const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
- const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
+ const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
+ const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
- printf ("[%s --> %s] %s\n", to_timestamp(t0).c_str(), to_timestamp(t1).c_str(), text);
+ printf ("[%s --> %s] %s\n", to_timestamp(t0).c_str(), to_timestamp(t1).c_str(), text);
- text_heard += text;
+ text_heard += text;
+ }
}
+ g_force_speak = false;
+
// remove text between brackets using regex
{
std::regex re("\\[.*?\\]");
Thanks, I'm fine too. What are you doing?
I'm just sitting here.
It's a lovely day, isn't it?
-Yes, it is.
-Did you know that I'm a robot?
-I wasn't aware of that.
+Yes, it is. I love the weather this time of year.
+I wish it would rain a little bit.
+Me too.
)";
std::mt19937 rng;
<br><br>
- Here is a short video of the demo in action: <a href="https://youtu.be/2om-7tFMaNs">https://youtu.be/2om-7tFMaNs</a>
+ Here is a short video of the demo in action: <a href="https://youtu.be/LeWKl8t1-Hc">https://youtu.be/LeWKl8t1-Hc</a>
<br><br>
context = new AudioContext({
sampleRate: 16000,
channelCount: 1,
- echoCancellation: true,
+ echoCancellation: false,
autoGainControl: true,
noiseSuppression: true,
});