File size: 1,837 Bytes
30197de
fb12dac
 
30197de
fb12dac
 
a2bec1d
30197de
fb12dac
 
 
 
2110f23
cd282f3
 
 
a2bec1d
30197de
cd282f3
 
 
 
 
 
 
 
 
 
 
30197de
fb12dac
 
afc6b1a
 
fb12dac
 
afc6b1a
 
 
fb12dac
 
 
19c0156
 
51306fa
30197de
51306fa
 
936213e
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# whisper.cpp/examples/stream

This is a naive example of performing real-time inference on audio from your microphone.
The `whisper-stream` tool samples the audio every half a second and runs the transcription continously.
More info is available in [issue #10](https://github.com/ggerganov/whisper.cpp/issues/10).

```bash

./build/bin/whisper-stream -m ./models/ggml-base.en.bin -t 8 --step 500 --length 5000

```

https://user-images.githubusercontent.com/1991296/194935793-76afede7-cfa8-48d8-a80f-28ba83be7d09.mp4

## Sliding window mode with VAD

Setting the `--step` argument to `0` enables the sliding window mode:

```bash

 ./build/bin/whisper-stream -m ./models/ggml-base.en.bin -t 6 --step 0 --length 30000 -vth 0.6

```

In this mode, the tool will transcribe only after some speech activity is detected. A very
basic VAD detector is used, but in theory a more sophisticated approach can be added. The
`-vth` argument determines the VAD threshold - higher values will make it detect silence more often.
It's best to tune it to the specific use case, but a value around `0.6` should be OK in general.
When silence is detected, it will transcribe the last `--length` milliseconds of audio and output
a transcription block that is suitable for parsing.

## Building

The `whisper-stream` tool depends on SDL2 library to capture audio from the microphone. You can build it like this:

```bash

# Install SDL2

# On Debian based linux distributions:

sudo apt-get install libsdl2-dev



# On Fedora Linux:

sudo dnf install SDL2 SDL2-devel



# Install SDL2 on Mac OS

brew install sdl2



cmake -B build -DWHISPER_SDL2=ON

cmake --build build --config Release



./build/bin/whisper-stream

```

## Web version

This tool can also run in the browser: [examples/stream.wasm](/examples/stream.wasm)