Fix VAD+ASR C++ example. (#2335)
It was not able to handle short audios., e.g., 2.1 seconds.
This commit is contained in:
@@ -186,13 +186,15 @@ for a list of pre-trained models to download.
|
||||
fprintf(stderr, "Started!\n");
|
||||
int32_t window_size = vad_config.silero_vad.window_size;
|
||||
int32_t i = 0;
|
||||
while (i + window_size < samples.size()) {
|
||||
vad->AcceptWaveform(samples.data() + i, window_size);
|
||||
i += window_size;
|
||||
if (i >= samples.size()) {
|
||||
while (i < samples.size()) {
|
||||
if (i + window_size <= samples.size()) {
|
||||
vad->AcceptWaveform(samples.data() + i, window_size);
|
||||
} else {
|
||||
vad->Flush();
|
||||
}
|
||||
|
||||
i += window_size;
|
||||
|
||||
while (!vad->Empty()) {
|
||||
const auto &segment = vad->Front();
|
||||
float duration = segment.samples.size() / 16000.;
|
||||
|
||||
Reference in New Issue
Block a user