Skip to content

Repository files navigation

roca-transcribe

La Roca plugin that turns local audio and video into federated, searchable memory.

This is an extra plugin. It is not part of roca init. Install it when you want transcripts next to the rest of your local memory.

Qualities are fast, balanced, and best quality. Those are the names you choose. The speech engine is whisper.cpp, compiled into this plugin's command and pinned in CI: darwin-arm64 with Metal, linux-amd64 on CPU. Weights are downloaded hash-pinned as data. They are never bundled.

Frozen contract

  • Independent public plugin. Own repo, own transcribe.db, installable with roca plugin install. Zero changes to La Roca's init ceremony.
  • One federated database. No context splitting in v1.
  • Files and folders are parameters. No watched folders.
  • No diarization, no live microphone, no cloud path, no daemon. The quality loads once per invocation batch and the process dies when the queue is done.
  • Vector retrieval is a declaration over segment text. This plugin does not embed.

Install

roca plugin install thellmwhisperer/roca-transcribe

That places the federated database. Build or place the command, then choose at least one quality:

make build-native
./.tmp/roca-transcribe place --dir "$HOME/.local/bin"
roca transcribe install

The chooser lists fast, balanced, and best quality. At least one is mandatory. The download runs in the background and never blocks other La Roca commands.

Transcribe

roca transcribe recording.wav notes/
roca transcribe interview.mp4 --model balanced --language es --output txt,srt
roca transcribe interview.mp4 --retranscribe

Video needs ffmpeg on the machine so the audio can be extracted. Folders are processed newest first. Unchanged files are skipped by fingerprint. --retranscribe does exactly the files you name.

Default AXI is bounded TOON with help[]. --json is the complete envelope.

roca exec 'SELECT COUNT(*) AS files FROM plugin_roca_transcribe.media_files'
roca exec 'SELECT COUNT(*) AS segments FROM plugin_roca_transcribe.segments'
roca exec "SELECT text, t0, t1 FROM plugin_roca_transcribe.segments ORDER BY t0 LIMIT 20"

Payload

The installer verifies plugin.json and transcribe.db. Source of the database is schema/schema.sql. The published command shares the plugin release version and follows the same shape as roca-firstmate: place copies it next to the database or onto PATH so roca transcribe dispatches to roca-transcribe.

Engine telemetry is rotated JSONL under logs/ next to the database, never a table.

Commands

make check         # gofmt, go vet, portable tests
make sync-db       # rebuild transcribe.db and checksums.txt
make build-native  # pin-compile whisper.cpp and link it in

Releases

Merged product PRs open or refresh a release-please PR. Merging that PR tags vX.Y.Z and publishes the plugin archives. The contract is in docs/releases.md.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages