Skip to main content

Local speaker diarization and realtime voice-labeling tools.

Project description

WhoSpeaksLive

WhoSpeaksLive is a local-first speaker diarization app for turning live or replayed media into speaker-labeled transcripts, with a browser UI for fast live speaker feedback, final sentence assignment, speaker library management, and validation.

Demo

https://github.com/user-attachments/assets/2de749e0-6c02-47de-b949-bd90b4f4efbb

For faster realtime ASR preview text like shown in the demo, use Kroko Pro/commercial streaming models; the public Community models work, but Pro/private models must be installed and licensed separately.

Current Scope

WhoSpeaksLive performs best on clean recordings where one person speaks at a time into good microphones. Diarization accuracy can degrade with background noise, background music, echo, crosstalk, overlapping speech, or low-quality microphones, and it may become less reliable as the active speaker count grows. The system assumes complete utterances can be assigned to a single speaker, so cases where one speaker starts a sentence and another finishes it are not expected to score well.

All Kroko languages supported by this integration work with realtime preview text: German, English, Spanish, French, Italian, Hebrew, Dutch, Portuguese, Swedish, and Turkish. Set --language or WHOSPEAKS_LANGUAGE to keep final ASR, Kroko/Banafo preview model selection, and stream2sentence sentence splitting on the same language. See the configuration guide for language codes and model details.

Without realtime preview text, WhoSpeaksLive can also work with additional languages. The key requirement is that the language is supported by Whisper and by at least one configured sentence segmenter, meaning NLTK or Stanza.

That currently makes these additional languages principally supported without realtime preview text: Afrikaans, Arabic, Belarusian, Bulgarian, Catalan, Czech, Welsh, Danish, Greek, Estonian, Basque, Persian, Finnish, Faroese, Galician, Hindi, Croatian, Hungarian, Armenian, Indonesian, Icelandic, Japanese, Georgian, Kazakh, Korean, Latin, Lithuanian, Latvian, Malayalam, Marathi, Maltese, Myanmar/Burmese, Norwegian, Norwegian Nynorsk, Polish, Romanian, Russian, Sanskrit, Sindhi, Slovak, Slovenian, Albanian, Serbian, Tamil, Telugu, Thai, Ukrainian, Urdu, Vietnamese, and Chinese.

CPU-only operation is not the recommended path for the current stack. The system is GPU-heavy today; a CPU-only setup may be possible, but should be treated as a separate optimization target and will likely require engineering work, slower processing, and some accuracy or throughput tradeoffs.

License

WhoSpeaksLive's own code is licensed under the MIT License.

Optional Kroko/Banafo preview support uses separately licensed upstream components and model files. Missing public Community preview models are downloaded automatically from Hugging Face when realtime preview starts. This repository's MIT license does not relicense Kroko/Banafo assets; before downloading, bundling, or deploying them, review and respect the current terms from Kroko by Banafo, the Banafo/Kroko-ASR model card, and the kroko-ai/kroko-onnx repository.

Start Here

For a guided setup, install the lightweight CLI and let it inspect the machine:

pip install whospeaks
whospeaks

The whospeaks starter shows the current component state and gives direct controls for language, realtime text, provider quality, backend URLs, ASR runtime, browser port, diagnostics, installation, exact launch-command printing, and launching the browser UI.

The short whospeaks command is a setup and launcher wrapper. It saves a small profile, runs doctor checks, and expands that profile into the longer whospeaks-window ... browser-server command when you launch.

For a Linux container server:

docker build -t whospeaks:local .
docker run --rm --name whospeaks -p 8796:8796 -v whospeaks-data:/data -v whospeaks-models:/models whospeaks:local

See Docker for the full build/run path and volume notes.

For a manual full working setup, follow these in order:

  1. Installation: install the Windows controller.
  2. External ASR and embeddings servers: set up the Linux GPU services.
  3. Quickstart: verify a local or remote smoke run, then run the tuned provider stack.

Documentation

Topic Document
Documentation map docs/index.md
Product overview and use cases docs/overview.md
Installation docs/installation.md
macOS setup docs/macos-setup.md
Quickstart docs/quickstart.md
Live window workflow docs/live-window-workflow.md
Meeting intelligence server docs/meeting-intelligence-server.md
Speaker libraries docs/speaker-libraries.md
External ASR and embeddings servers docs/external-servers.md
Docker server image docs/docker.md
Configuration guide docs/configuration.md
Technical description docs/technical-description.md
Technical architecture docs/architecture.md
Validation and scoring docs/validation-and-scoring.md
Modal deployment docs/modal-deployment.md
Troubleshooting docs/troubleshooting.md
Development workflow docs/development.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whospeaks-0.0.1.tar.gz (575.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whospeaks-0.0.1-py3-none-any.whl (582.3 kB view details)

Uploaded Python 3

File details

Details for the file whospeaks-0.0.1.tar.gz.

File metadata

  • Download URL: whospeaks-0.0.1.tar.gz
  • Upload date:
  • Size: 575.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for whospeaks-0.0.1.tar.gz
Algorithm Hash digest
SHA256 af0a8de214af052a3f6a3a1ae05ca31e75e94e97335a9bd313328a5bff1ec123
MD5 cb008a0c18db285b9dc9024de5c5c60d
BLAKE2b-256 c7c78f1939319f3752c6c740898b5bd21793c0513db3b6b5d27154fcc8abca1c

See more details on using hashes here.

File details

Details for the file whospeaks-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: whospeaks-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 582.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for whospeaks-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 08ed8a503f21f855ea759abc482f704e09630dcd5882ddfe38b71ed2b56d6333
MD5 ff80c82f49f9d4f9583c5017991e5303
BLAKE2b-256 1829938814b4dc9c87d39dda3af54920abcda17988bca815651becad06ba65dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page