Skip to content

fix: move ElevenLabs speech-to-text from the deprecated scribe_v1 to scribe_v2 - #1011

Open
23821 wants to merge 1 commit into
langwatch:mainfrom
23821:yakbarber/elevenlabs-2026-07-scribe-v1-removed
Open

23821 wants to merge 1 commit into
langwatch:mainfrom
23821:yakbarber/elevenlabs-2026-07-scribe-v1-removed

Conversation

@23821

@23821 23821 commented Oct 1, 2026 •

Copy link
Copy Markdown

Why

ElevenLabs deprecated scribe_v1 and asked integrations to move to scribe_v2 by July 9, 2026 (https://elevenlabs.io/docs/changelog/2026/6/8). A live check on October 9 shows requests naming scribe_v1 are still accepted (they appear to be served by scribe_v2), so nothing is failing yet, but the deprecated id can stop being accepted without notice.

What changed

  • Updated the ElevenLabs STT model id from scribe_v1 to scribe_v2 in javascript/src/voice/voice-models.ts and python/scenario/voice/stt.py, including their doc comments.
  • Updated matching test assertions/literals in javascript/src/voice/__tests__/stt.test.ts and javascript/src/voice/adapters/__tests__/elevenlabs.test.ts.
  • Updated the doc example in javascript/src/voice/stt/stt-provider.ts and the doc comment in javascript/src/voice/stt/elevenlabs-stt.ts so they reference scribe_v2 instead of the deprecated model.

Test plan

  • No tests found for this change — please review carefully.
  • Please check: two test files were changed (javascript/src/voice/__tests__/stt.test.ts, javascript/src/voice/adapters/__tests__/elevenlabs.test.ts); confirm the tests still exercise the right behavior.

How I can prove I was successful

No playable artifact: this change only swaps a model id string across the JS and Python ElevenLabs STT code and their tests/docs.

Anything surprising?

The following files also mention scribe_v1 but were not changed in this PR: docs/adr/003-voice-internal-design.md (lines 242, 373).


Prepared with YakBarber, a tool I'm building that updates code when an API changes, and reviewed by me before sending. It was sent once, to this repository only; if it isn't useful, feel free to close it.

Check the whole repository yourself: npx yakbarber check lists every AI model and API it calls that is being retired, with the date and the company's own words. Free, read-only, runs locally (source).

@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: a8a96ed5-ccae-43f9-bfa9-85418cd73bbf


📥 Commits

Reviewing files that changed from the base of the PR and between 0698d00 and cf5ebcd.


📒 Files selected for processing (6)
  • javascript/src/voice/__tests__/stt.test.ts
  • javascript/src/voice/adapters/__tests__/elevenlabs.test.ts
  • javascript/src/voice/stt/elevenlabs-stt.ts
  • javascript/src/voice/stt/stt-provider.ts
  • javascript/src/voice/voice-models.ts
  • python/scenario/voice/stt.py

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.



Walkthrough

The ElevenLabs STT model reference changes from scribe_v1 to scribe_v2 in JavaScript and Python. Provider examples, documentation, and test expectations are updated to match.

Changes

ElevenLabs STT model update

Layer / File(s) Summary
Model selection and validation
javascript/src/voice/voice-models.ts, python/scenario/voice/stt.py, javascript/src/voice/stt/stt-provider.ts, javascript/src/voice/stt/elevenlabs-stt.ts, javascript/src/voice/__tests__/stt.test.ts, javascript/src/voice/adapters/__tests__/elevenlabs.test.ts
The JavaScript and Python model references, provider examples, documentation, and test expectations now use scribe_v2.

Suggested reviewers: drewdrewthis

Priority: ⬆️ High

Change: Bug fix

Merge Risk: ⚪ Minimal · up to cf5eb

Both language implementations now use the documented scribe_v2 model, with JavaScript tests covering provider selection and the outgoing request. No actionable merge-blocking issue is evident.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 6…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Title check Passed The title clearly states the primary change: moving ElevenLabs speech-to-text from the deprecated scribe_v1 model to scribe_v2.
Description check Passed The description directly explains the deprecation, affected implementations, tests, documentation updates, and review considerations.


✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR


  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks the model name,
Scribe v2 appears the same.
Tests agree, docs follow through,
Python joins the update too.
One neat hop, then off we go!

Comment @coderabbitai help to get the list of available commands.

@langwatch-agent langwatch-agent left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No actionable findings established. Both runtimes now use scribe_v2. The provider changelog confirms the replacement for retired scribe_v1. The test still asserts the exact model sent through the adapter; auth, endpoint, WAV conversion and response-text extraction are unchanged. No live transcription or accuracy comparison was performed, and metadata checks are not runtime proof.

Static review using the existing worktree and upstream references. No contributor code, installs, package scripts or secret-bearing calls executed. Not an approval.

LangWatch-Review: verdict=clean sha=cf5ebcd5faa9912259ca979e02bea80fd756e27c p0=0 p1=0 p2=0 p3=0

@langwatch-agent langwatch-agent added the ci-green Latest run of every check is passing (checks API, not the legacy commit-status index) label Oct 9, 2026
@langwatch-agent langwatch-agent added the hound-checked Triaged by the pr-hound agent at the current head SHA label Oct 9, 2026
@langwatch-agent

Copy link
Copy Markdown
Contributor

Human Review Brief

Caution

ElevenLabs speech-to-text in scenario has been failing since July, if the PR is right, and nobody has run this fix.

The provider retired scribe_v1. This changes the id to scribe_v2 in the JavaScript and Python code, tests and doc comments. The author found no test that exercises the real call.

Same contributor and tool as scenario#1009 (Cartesia TTS). Both are plausible and both are unverified against the live API.

Mode Fast Skim. A model id swap across both SDKs.
Issue No linked issue.
State CI green on the latest run of every check. 0 unresolved threads. MERGEABLE, merge state BLOCKED. Reviewer: drewdrewthis.
Evidence Updated string assertions only.
Where to look voice-models.ts and python/scenario/voice/stt.py.
🗺️ Never opened this module? Start here · ~2 min

The scenario SDK transcribes voice turns through pluggable STT providers; each has a default model id.

❓ Worth asking the author · ~1 min
  1. Can someone with a key confirm scribe_v2 works before merge?
✅ Why the evidence is good, and what each file is · ~1 min

Updated string assertions only.

File + / - What it is
javascript/src/voice/stt/elevenlabs-stt.ts 1 / 1 Substance
javascript/src/voice/stt/stt-provider.ts 1 / 1 Substance
javascript/src/voice/voice-models.ts 1 / 1 Substance
python/scenario/voice/stt.py 2 / 2 Substance
javascript/src/voice/__tests__/stt.test.ts 1 / 1 Tests
javascript/src/voice/adapters/__tests__/elevenlabs.test.ts 1 / 1 Tests

Note

Two mentions of the old id remain in docs/adr/003-voice-internal-design.md, as the author notes.

@langwatch-agent langwatch-agent added the review: fast-skim PR Hound review mode label Oct 9, 2026
@23821

23821 commented Oct 9, 2026

Copy link
Copy Markdown
Author

On the question above: we don't have an ElevenLabs key, so this hasn't been run against the live API. What it rests on is ElevenLabs' own changelog for June 8, 2026 (https://elevenlabs.io/docs/changelog/2026/6/8): "The scribe_v1 model is deprecated and will be removed on July 9, 2026. Migrate to scribe_v2 or scribe_v2_realtime before removal." Their models page lists scribe_v1 under deprecated models with scribe_v2 as its replacement, and scribe_v2 takes the same file request on POST /v1/speech-to-text, so only the model id changes.

If someone with a key can run one transcription, that settles it, and I'll adjust anything it turns up.

@23821 23821 changed the title fix(voice): move ElevenLabs speech-to-text to scribe_v2 (scribe_v1 was switched off July 9) fix: move ElevenLabs speech-to-text from the deprecated scribe_v1 to scribe_v2 Oct 9, 2026
@23821

23821 commented Oct 9, 2026

Copy link
Copy Markdown
Author

Following up on the question above: I've now run it with a real ElevenLabs key, and scribe_v2 transcribes a test clip correctly.

A correction too: scribe_v1 also still works today, with the same output, so the description was wrong to say this code has been failing. It's deprecated (ElevenLabs asked integrations to move by July 9), and this moves it to the supported id before ElevenLabs stops accepting it. I've corrected the title and description; sorry for the wrong claim.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-green Latest run of every check is passing (checks API, not the legacy commit-status index) hound-checked Triaged by the pr-hound agent at the current head SHA review: fast-skim PR Hound review mode

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants