A local-first voice transcription and recording review workspace.
VoiceTrace turns long recordings into text that can be replayed, searched, and checked. It is designed for meetings, interviews, classes, and personal recordings. Audio and transcripts stay on the local machine by default. Cloud services are optional, and the workspace uploads only speech intervals selected by local voice activity detection by default.
- Resumable long-recording pipeline with silence splitting, voice activity detection (VAD), overlap deduplication, and Markdown rendering;
- Cloud ASR by default, with CPU VAD and CPU ERes2NetV2 speaker association;
- Optional local Qwen3-ASR support, without making local ASR hardware a default requirement;
- Speaker identification, display-name management, and cross-segment speaker memory;
- Timeline playback, transcript reading, topic browsing, sentence favorites, and Markdown export;
- Local FastAPI service, browser review UI, CLI entry point, and Windows launcher;
- API keys read from environment variables and never written into source code or runtime artifacts.
Version 0.1.0 is still under development and currently targets personal use on a Windows machine. The project does not yet provide multi-user accounts, remote audio storage, or a deployment configuration suitable for direct public exposure.
Requirements: Python 3.12, uv, and Node.js 22.13 or newer.
uv sync
cd audio-review-ui
npm ci
cd ..
uv run voice-trace --helpStart the recording review workspace:
start-voicetrace-workspace.batOr start it manually:
uv run voice-trace audio-review --data-dir dataThe default path uses CPU FunASR models for VAD and speaker feature extraction, so CUDA is not required. To enable local Qwen3-ASR, install the optional local dependencies:
uv sync --extra localSee the audio review user guide for model preparation, API key configuration, and review workflows.
- Cloud enhancement: set
DASHSCOPE_API_KEY. The workspace filters speech intervals with local CPU VAD, uploads only those intervals, and associates speakers with CPU ERes2NetV2. - Local ASR: disabled by default. Install the
localextra, prepare the Qwen3-ASR model, and pass--localexplicitly. This path requires CUDA. - Text review and summaries: set
DEEPSEEK_API_KEYwhen needed. The original transcript is never overwritten by the summary flow.
Models are stored in data/models/audio by default. Use VOICETRACE_AUDIO_MODEL_DIR or --model-dir to select another directory.
research_kb/ Python runtime, API, and CLI entry points
audio-review-ui/ Browser review UI
docs/ User guides and model notes
tests/ Unit and governance tests
data/models/audio/ Local model directory placeholder; weights are not committed
uv sync --extra dev
uv run pytest
uv run ruff check .
cd audio-review-ui
npm test
npm run lintKeep development benchmarks, models, caches, recordings, and transcripts local. Do not commit .env files, API keys, private keys, recordings, model weights, or personal transcripts.
This repository does not currently include a license file. Until the maintainers choose a license and add LICENSE, the project should not be treated as granting the public permission to use, modify, or distribute it.