Repository navigation
BMeet 0.4.0
Russian is transcribed with GigaAM v3, and everything runs on the NPU, including telling the speakers apart.
Added
- GigaAM v3 for Russian (Sber, MIT), used automatically for Russian meetings and files (detected or
--language ru).- On Russian conversation (Podlodka podcast, 16 min) it made 6.5 % word errors against Whisper turbo's 8.2 %, at ~215x realtime instead of 14x.
- The trade-off: English terms inside Russian speech come out mangled.
npu-transcribe --engine auto|whisper|gigaam, installer--no-gigaam.
transcribe/prepare-modelsmakes sherpa-onnx's int8 GigaAM export run correctly on the NPU, once, at install time. On the NPU that export wrote garbage. The int8 weights become float again, and the rotary position step, which the NPU compiler gets wrong, is folded into the query and key projections.
Changed
- Speaker separation runs on the NPU (OpenVINO) instead of the CPU (sherpa-onnx). It's a new pipeline:
- pyannote segmentation-3.0 finds up to 3 voices per 10 s window.
- TitaNet-small fingerprints them, in batches of 16, with its statistics pooling scaled so the NPU's fp16 does not underflow.
- Average-linkage clustering, threshold 0.4, then pyannote-style turn reconstruction.
- The right number of people was found in all four test calls, at ~110x realtime.
- CPU time: numpy is kept to one thread, because its BLAS threads busy-waited. A 5-minute meeting now takes 8 s of CPU in total, down from 26 s.
- Language detection: the language is detected once per recording (for meetings, on the other side), also when Whisper is chosen.
- Requirements:
sherpa-onnxis no longer needed;onnxis (install time only).
Install or upgrade
curl -fsSL https://raw.githubusercontent.com/baakhoff/bmeet/main/install.sh | bashThe upgrade downloads GigaAM v3 (~160 MB) and prepares it for the NPU once (~1-2 min).