Skip to content

[asr] 新增 ElevenLabs Scribe 语音转录供应商 #795

Closed

Description

@Billmvp73

现象

OpenLess 当前没有 ElevenLabs Speech-to-Text / Scribe 的原生 ASR 供应商。ElevenLabs 的批式转录接口不是 Whisper-compatible 协议:它使用 POST /v1/speech-to-text、multipart/form-data(model_id + 音频文件)和 xi-api-key 请求头,因此不能只通过现有 OpenAI-compatible ASR 配置接入。

希望新增一个独立的 elevenlabs ASR provider,默认使用 scribe_v2,让已经使用 ElevenLabs 的用户可以直接复用其账户与额度。

官方资料:

影响

  • 已有 ElevenLabs 用户目前无法在 OpenLess 中选择 Scribe,只能另外购买或配置其他 ASR 服务。
  • Scribe v2 官方支持 90+ 种语言、自动语言识别和 keyterm prompting;本次第一版只接入基础批式转录,不启用额外收费的 keyterm/entity 功能。
  • 音频会上传至用户配置的 ElevenLabs endpoint。该行为应在供应商选择和文档中保持透明;API key 继续使用 OpenLess 现有凭据存储机制,不写入源码、日志或 Issue/PR 证据。
  • 该 provider 增加一个约 300 行的独立 HTTP client,并在现有 provider 生命周期中增加少量接线;不改变其他 ASR provider 的默认值或行为。

已完成的实现与验证

当前 fork 已有可运行实现,覆盖:

  • 独立 ElevenLabs multipart client,默认 endpoint 为 https://api.elevenlabs.io/v1、默认模型为 scribe_v2。
  • 凭据检查、连接验证和模型配置。
  • 普通听写、悬浮问答、历史重转录和取消路径。
  • 设置页预设、Overview 名称,以及 en / zh-CN / zh-TW / ja / ko i18n。
  • tag_audio_events=false,避免笑声、音乐等非语音标签进入普通听写文本。
  • HTTP 请求格式、响应解析、provider dispatch 和空音频路径的单元测试。

本地验证结果:

  • Rust 全量测试:605 passed / 0 failed。
  • ElevenLabs 专项测试:6 passed / 0 failed。
  • cargo check:通过。
  • 前端构建:通过。
  • macOS Apple Silicon release build、安装和启动:通过。
  • 使用真实 ElevenLabs 账户完成 macOS 录音 → Scribe v2 转录 → 润色 → 当前应用插入的全链路验证:通过。

上述公开证据不包含 API key、真实请求头、request ID、原始音频或用户转录内容。

建议接受标准

  • 新增独立 elevenlabs ASR provider,使用官方 xi-api-key + multipart Speech-to-Text 协议。
  • 默认 endpoint 为 https://api.elevenlabs.io/v1,默认模型为 scribe_v2,并允许用户自定义 endpoint/model。
  • 覆盖普通听写、QA、重转录和取消路径,不影响现有 provider。
  • 设置页提供 ElevenLabs 预设,并补齐现有五种语言的供应商名称。
  • API key 仅通过现有凭据存储读取,不进入日志、错误证据或仓库。
  • Rust 单测、前端构建、cargo check 和上游多平台 CI 通过。
  • 至少完成一次真实 macOS 全链路语音验证,公开结果只保留脱敏摘要。

不包含

  • Scribe v2 Realtime WebSocket 接入。
  • keyterm prompting、entity detection、speaker diarization 等高级功能。
  • 对现有 Whisper-compatible、百炼、火山引擎、MiMo 或本地 ASR 路径的行为修改。
  • 本地开发构建的 ad-hoc 签名、Keychain 权限弹窗或安装流程调整。

TODO / 不确定项

  • 请维护者确认是否愿意在上游维护 ElevenLabs 厂商专有的 multipart 协议 client。
  • 请维护者确认第一版采用批式 scribe_v2 是否合适,还是希望直接以 scribe_v2_realtime 为目标。
  • 正式 PR 前 rebase 到最新 beta,重新运行并记录完整测试命令与准确结果。

AI 使用披露

本实现与 Issue/PR 文档整理使用了 Codex/AI 辅助;提交者已人工审阅代码,并在 macOS 上完成构建和真实语音全链路验证。公开材料不会包含任何个人 API key、真实请求凭据、原始音频或用户转录内容。

Activity

  1. self-assigned this
    on Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions