EchoScribe records Discord voice conversations and produces reliable, speaker-attributed source transcripts. It retains durable journals, aligned per-participant FLAC tracks, and chronological structured and human-readable transcripts.
It was created for tabletop role-playing after-action reports, but the same pipeline suits meetings, lectures, symposia, interviews, and other Discord conversations where recoverability, speaker identity, and a shared timeline matter.
The operator-facing application is Rust. It owns recording, recovery, workflow
state and Python process orchestration. Faster-whisper runs as a subordinate
worker and never modifies session.json.
Cargo.toml, src/ Rust application
workers/faster-whisper/ Python transcription worker and dependencies
docs/ User and developer guides
archive/legacy-pipeline/ Historical pre-rewrite implementation
echoscribe.ps1, echoscribe.sh Convenience launchers
- User Guide — installation, configuration, operation, command reference, recovery, and troubleshooting.
- Developer Guide — architecture, source layout, authority, data flow, failure semantics, and extension guidance.
Create the shared repository-root virtual environment and install the worker dependencies through the root convenience requirements file.
POSIX:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txtWindows PowerShell:
py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txtEchoScribe uses ECHOSCRIBE_PYTHON when explicitly set. Otherwise it prefers
the root .venv interpreter and then falls back to the platform Python command.
Copy vocabulary.example.txt to vocabulary.txt and replace the examples with
names, places, jargon, specialist terminology, or other phrases relevant to
the conversation being recorded. Use one phrase per line. Blank lines and
full-line # comments are ignored; inline comments are not supported because
a # appearing later in a line belongs to the phrase.
The configured vocabulary path is relative to echoscribe.toml. The real
vocabulary.txt remains ignored by Git so each deployment or project can
maintain its own terms without changing the repository example.
The launchers rebuild the release executable when required, preserve the caller's working directory, and forward all arguments to the application.
.\echoscribe.ps1
.\echoscribe.ps1 record
.\echoscribe.ps1 inspect recordings\session-...
.\echoscribe.ps1 build-work-items recordings\session-... echoscribe.toml
.\echoscribe.ps1 transcribe recordings\session-... echoscribe.toml
.\echoscribe.ps1 continue recordings\session-...
.\echoscribe.ps1 continue recordings\session-... echoscribe.toml
.\echoscribe.ps1 rebuild-transcript recordings\session-..../echoscribe.sh
./echoscribe.sh record
./echoscribe.sh inspect recordings/session-...
./echoscribe.sh build-work-items recordings/session-... echoscribe.toml
./echoscribe.sh transcribe recordings/session-... echoscribe.toml
./echoscribe.sh continue recordings/session-...
./echoscribe.sh continue recordings/session-... echoscribe.toml
./echoscribe.sh rebuild-transcript recordings/session-...With no command, EchoScribe records, finalises, builds the work manifest,
transcribes and publishes the final transcript. The record command stops
after clean recording finalisation.
The unconfigured continue form only validates recording recovery. Supplying
the configuration resumes the one-stop pipeline at the stage established by
durable session authority. It never performs track recovery automatically.
rebuild-transcript reconstructs only the final human-readable transcript from
complete structured results. Successful transcription publishes
transcription/transcript.txt inside the session directory.
For development, invoke Cargo directly:
cargo run --
cargo run -- record
cargo run -- transcribe recordings/session-... echoscribe.toml
cargo run --release -- transcribe recordings/session-... echoscribe.tomlBuild without running:
cargo build --releaseCargo writes the executable to target/release/echoscribe on Linux and
target/release/echoscribe.exe on Windows. Debug builds use the corresponding
path beneath target/debug/; generated executables are not copied into the
repository root.
The archived pipeline is the previous Discord.js/Python capture, transcription, VAD-rescue, and deduplication stack. It is preserved for historical reference and is not executed by the current application. See its archival note, original README, and detailed pipeline document.
EchoScribe was developed with substantial assistance from OpenAI Codex in ChatGPT, under human direction and review. This is disclosed so users and contributors can make their own informed choice about AI-assisted software.