- New word_timestamps option (default False) in client handshake
- When enabled, each segment includes 'words' array with per-word
start/end times and probability scores
- Wired through entire pipeline: client → server → backend → transcribe()
- Words include timestamp_offset for accurate absolute times
- REST API already supported word timestamps; now WebSocket does too
- Added 9 unit tests for word timestamp extraction and formatting
- New whisper_live/diarization.py: SpeakerDiarizer with online clustering
- Uses pyannote.audio speaker embeddings (optional dependency)
- Cosine similarity threshold for speaker matching (default 0.55)
- Running average embedding update for speaker stability
- Configurable max_speakers limit (default 10)
- Client options: enable_diarization, max_speakers
- Segments include 'speaker' field when diarization is active
- Graceful fallback: logs warning if pyannote not installed
- Added 12 unit tests (mock-based, no GPU required)
Replace hardcoded [-4:] truncation with a configurable display_segments
parameter (default: 4) in both Client and TranscriptionClient classes.
Fixes#377
Add `--enable-timestamps` option to `run_client.py`
script to print out transcripted text with timestamps.
Sample output with translation enabled:
```
[0.000 -> 7.440] And so, my fellow Americans, ask not what your country can do for you.
[7.440 -> 10.300] Ask what you can do for your country.
TRANSLATION to fr:
[0.000 -> 7.440] Et donc, mes camarades américains, ne demandez pas ce que votre pays peut faire pour vous.
[7.440 -> 10.300] Demandez ce que vous pouvez faire pour votre pays.
```
Signed-off-by: Jeny Sadadia <jeny.sadadia@collabora.com>
Translate from any language to any language with alirezamsh/small100
running in a thread and reading from a queue shared with transcription thread.
Signed-off-by: makaveli10 <vineet.suryan@collabora.com>
Added the `use_wss` parameter to allow the client to handle WebSocket-based streaming. This enhances flexibility for real-time transcription scenarios.
Introduce an optional `use_wss` flag to enable secure WebSocket protocol. Updated socket URL generation to dynamically select between `ws` or `wss` based on the flag value. Ensures greater flexibility when connecting to secure servers.