Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 19:38
· 5 commits to main since this release
f78ed04

Added

  • --backend elevenlabs — transcription through ElevenLabs Scribe, the first trx backend that reports who is speaking. Models scribe_v2 (default) and scribe_v1. The upload limit is 5 GB rather than the 25 MB and 100 MB of the other cloud backends, so this one never chunks.
  • --diarize and --speakers <n> — separate speakers. Every SRT cue is prefixed with its speaker ([speaker_0]) and the .txt becomes a conversation, one paragraph per turn. --speakers takes 1 to 32, the range the API accepts, and implies --diarize. Both are rejected on local, openai and vercel instead of being ignored: no other backend returns labels, and dropping the flag quietly would return an undiarized transcript that looks like the request succeeded.
  • Keychain fallback for the API keyELEVENLABS_API_KEY is read from the environment first, and on macOS from the elevenlabs login Keychain entry when the variable is unset, so a key already stored there does not have to be exported into every shell. trx doctor resolves it through the same path a real run uses, so it cannot report a key missing that trx would have used.
  • ISO 639-3 language codes on this backend — Scribe accepts es and spa alike and normalizes both to spa. The other backends still take ISO 639-1 only, which is the set whisper.cpp accepts.

Notes

Scribe timestamps every word, so cues are grouped rather than emitted one word each: a pause of 0.6s or more starts a new cue, a cue is capped at 84 characters, and a change of speaker always cuts. Those first two thresholds are subtitle conventions picked to read well, not measurements. The speaker rule is not subject to them, because a cue holding two voices misattributes the line.

Verified end to end on a 26 minute two-speaker Spanish interview: 488 cues, no cue mixing speakers, monotonic timestamps, transcript covering 25:56 of a 25:59 recording.

Upgrade

bun add -g @crafter/trx@latest --force
trx init --backend elevenlabs
trx interview.m4a -b elevenlabs --speakers 2