Skip to content

feat(whispering): send no_verbatim for ElevenLabs scribe_v2#1725

Draft
osman-samil wants to merge 1 commit into
EpicenterHQ:mainfrom
osman-samil:feat/elevenlabs-no-verbatim
Draft

feat(whispering): send no_verbatim for ElevenLabs scribe_v2#1725
osman-samil wants to merge 1 commit into
EpicenterHQ:mainfrom
osman-samil:feat/elevenlabs-no-verbatim

Conversation

@osman-samil

@osman-samil osman-samil commented May 1, 2026

Copy link
Copy Markdown

What

When the user selects ElevenLabs scribe_v2, send no_verbatim=true to /v1/speech-to-text. ElevenLabs strips filler words, false starts, and non-speech sounds at the model, so the output is dictation-ready without a downstream transformation step.

No-op on scribe_v1 / scribe_v1_experimental (the parameter is ignored when not supported), so existing flows are unaffected.

Ref: https://elevenlabs.io/docs/api-reference/speech-to-text/convert

Why direct fetch

The bundled SDK is the legacy elevenlabs@1.59.0 package, which predates scribe_v2 and exposes neither the new model id nor no_verbatim in its BodySpeechToTextV1SpeechToTextPost type. Upgrading to @elevenlabs/elevenlabs-js@2.x is a package rename plus a breaking-change migration. To keep the diff small and avoid touching the lockfile, this patch posts the multipart form directly. The other adapters in this folder follow the same multipart pattern (see groq.ts, openai.ts), so this is consistent with the rest of the cloud transcription services.

Notes

  • Adds a typed ApiError variant so non-2xx responses surface the status and body instead of being flattened into Unexpected.
  • File-size guard (1000 MB) is preserved.
  • Diarization, language code, and tag-audio-events behavior unchanged.

Draft for now while I confirm the build artifact runs cleanly on Windows; happy to mark ready or split into a settings-toggle follow-up if maintainers prefer opt-in.


View in Codesmith
Need help on this PR? Tag @codesmith with what you need.

  • Let Codesmith autofix CI failures and bot reviews

The bundled `elevenlabs@1.59.0` SDK predates the scribe_v2 release and does
not expose the `no_verbatim` flag in its `BodySpeechToTextV1SpeechToTextPost`
type. Upgrading to `@elevenlabs/elevenlabs-js@2.x` is a package rename plus
breaking-change migration, so this patch keeps the dependency footprint
unchanged and posts the multipart form to `/v1/speech-to-text` directly.

When the user picks scribe_v2, we now send `no_verbatim=true`, which strips
filler words, false starts, and non-speech sounds at the model. This is a
no-op on scribe_v1 / scribe_v1_experimental (parameter is silently ignored),
so existing flows are unaffected.

Ref: https://elevenlabs.io/docs/api-reference/speech-to-text/convert

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant