Skip to main content

A CLI tool for speaker enrollment and identification using SpeechBrain.

Project description

speaker-detector 🎙️

A lightweight CLI tool for speaker enrollment and voice identification, powered by SpeechBrain.

🔧 Features

  • ✅ Enroll speakers from .wav audio
  • 🕵️ Identify speakers from audio samples
  • 🧠 ECAPA-TDNN embedding-based matching
  • 🎛️ Simple, fast command-line interface
  • 📁 Clean file storage in ~/.speaker-detector/
  • 🔊 Optional --verbose mode for debugging

📦 Installation

Install from TestPyPI:

pip install --index-url https://test.pypi.org/simple/ speaker-detector

🚀 Usage

🎙️ Enroll a speaker:

speaker-detector record --enroll Lara

🕵️ Identify a speaker:

speaker-detector record --test

📋 List enrolled speakers:

speaker-detector list

🗂️ Project Structure

~/.speaker-detector/enrollments/ Saved .pt voice embeddings ~/.speaker-detector/recordings/ CLI-recorded .wav audio files

🧹 Clean vs Verbose Mode By default, warnings from speechbrain, torch, etc. are hidden for a clean CLI experience. To enable full logs & deprecation warnings:

speaker-detector --verbose identify samples/test_sample.wav

🛠 Requirements Python 3.8+ torch speechbrain numpy soundfile onnxruntime

Step Command When / Purpose Output
1. Export ECAPA Model to ONNX speaker-detector export-model --pt models/embedding_model.ckpt --out ecapa_model.onnx Run once unless model changes ecapa_model.onnx
2. Enroll Speaker speaker-detector enroll <speaker_id> <audio_path>
Example:
speaker-detector enroll Lara samples/lara1.wav
Run per new speaker Individual .pt files (e.g., Lara.pt)
3. Combine Embeddings speaker-detector combine --folder data/embeddings/ --out data/enrolled_speakers.pt After enrolling speakers enrolled_speakers.pt
4. Export Speakers to JSON speaker-detector export-speaker-json --pt data/enrolled_speakers.pt --out public/speakers.json For frontend use speakers.json
5. Identify Speaker speaker-detector identify samples/test_sample.wav Identify speaker from audio Console output: name + score
6. List Enrolled Speakers speaker-detector list-speakers Show all enrolled speakers Console output: list of IDs
Verbose Mode (optional) Add --verbose to any command:
speaker-detector --verbose identify samples/test_sample.wav
Show warnings, detailed logs Developer debug info

NB: When pushing to Github, do not include any .identifier files.

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

speaker_detector-0.1.4.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

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

speaker_detector-0.1.4-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file speaker_detector-0.1.4.tar.gz.

File metadata

  • Download URL: speaker_detector-0.1.4.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for speaker_detector-0.1.4.tar.gz
Algorithm Hash digest
SHA256 3ab267e90a73c28bdd037d87c2fbad2f98423b9b49ea24be7c3c403c7f07a9e0
MD5 a0fdf34e6e1ca6a86d6404a55d6f3403
BLAKE2b-256 36033e53e18bf76fa6b4972b9d1c47b5a8aa97037b767233a299e50585a3dff6

See more details on using hashes here.

File details

Details for the file speaker_detector-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for speaker_detector-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b29bd894a7eb8a83a720eec1a51d3e3edd99c1483b67fca733341e1f4443a293
MD5 329b6aa3fb4dcd0cd544145851ca82a6
BLAKE2b-256 358fa21ad5e0ddce29563ebf4e5ee4cbed1fea78d792055f9b324218db00c1c3

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