Spaces:
Running
Running
stream : fix data race on bool + avoid division-by-zero
Browse files
examples/stream/stream.cpp
CHANGED
|
@@ -8,6 +8,7 @@
|
|
| 8 |
#include <SDL.h>
|
| 9 |
#include <SDL_audio.h>
|
| 10 |
|
|
|
|
| 11 |
#include <cassert>
|
| 12 |
#include <cstdio>
|
| 13 |
#include <string>
|
|
@@ -144,8 +145,8 @@ private:
|
|
| 144 |
int m_len_ms = 0;
|
| 145 |
int m_sample_rate = 0;
|
| 146 |
|
| 147 |
-
|
| 148 |
-
std::mutex
|
| 149 |
|
| 150 |
std::vector<float> m_audio;
|
| 151 |
std::vector<float> m_audio_new;
|
|
@@ -155,6 +156,8 @@ private:
|
|
| 155 |
|
| 156 |
audio_async::audio_async(int len_ms) {
|
| 157 |
m_len_ms = len_ms;
|
|
|
|
|
|
|
| 158 |
}
|
| 159 |
|
| 160 |
audio_async::~audio_async() {
|
|
@@ -427,10 +430,10 @@ int main(int argc, char ** argv) {
|
|
| 427 |
const int n_samples_keep = (params.keep_ms *1e-3)*WHISPER_SAMPLE_RATE;
|
| 428 |
const int n_samples_30s = (30000 *1e-3)*WHISPER_SAMPLE_RATE;
|
| 429 |
|
| 430 |
-
const int n_new_line = params.length_ms / params.step_ms - 1; // number of steps to print new line
|
| 431 |
-
|
| 432 |
const bool use_vad = n_samples_step <= 0; // sliding window mode uses VAD
|
| 433 |
|
|
|
|
|
|
|
| 434 |
params.no_timestamps = !use_vad;
|
| 435 |
params.no_context = use_vad;
|
| 436 |
params.max_tokens = 0;
|
|
|
|
| 8 |
#include <SDL.h>
|
| 9 |
#include <SDL_audio.h>
|
| 10 |
|
| 11 |
+
#include <atomic>
|
| 12 |
#include <cassert>
|
| 13 |
#include <cstdio>
|
| 14 |
#include <string>
|
|
|
|
| 145 |
int m_len_ms = 0;
|
| 146 |
int m_sample_rate = 0;
|
| 147 |
|
| 148 |
+
std::atomic_bool m_running;
|
| 149 |
+
std::mutex m_mutex;
|
| 150 |
|
| 151 |
std::vector<float> m_audio;
|
| 152 |
std::vector<float> m_audio_new;
|
|
|
|
| 156 |
|
| 157 |
audio_async::audio_async(int len_ms) {
|
| 158 |
m_len_ms = len_ms;
|
| 159 |
+
|
| 160 |
+
m_running = false;
|
| 161 |
}
|
| 162 |
|
| 163 |
audio_async::~audio_async() {
|
|
|
|
| 430 |
const int n_samples_keep = (params.keep_ms *1e-3)*WHISPER_SAMPLE_RATE;
|
| 431 |
const int n_samples_30s = (30000 *1e-3)*WHISPER_SAMPLE_RATE;
|
| 432 |
|
|
|
|
|
|
|
| 433 |
const bool use_vad = n_samples_step <= 0; // sliding window mode uses VAD
|
| 434 |
|
| 435 |
+
const int n_new_line = !use_vad ? params.length_ms / params.step_ms - 1 : 1; // number of steps to print new line
|
| 436 |
+
|
| 437 |
params.no_timestamps = !use_vad;
|
| 438 |
params.no_context = use_vad;
|
| 439 |
params.max_tokens = 0;
|