Repository navigation
Closed
Description
现象
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 的用户可以直接复用其账户与额度。
官方资料:
- Speech-to-Text API:https://elevenlabs.io/docs/api-reference/speech-to-text/convert
- Scribe 能力说明:https://elevenlabs.io/docs/overview/capabilities/speech-to-text/
- API 定价:https://elevenlabs.io/pricing/api
- 隐私政策:https://elevenlabs.io/privacy-policy
影响
- 已有 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、原始音频或用户转录内容。
建议接受标准
- 新增独立
elevenlabsASR 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、真实请求凭据、原始音频或用户转录内容。
Metadata
Metadata
Assignees
Labels
No labels
Activity