Skip to content

[asr] 支持讯飞(iFlytek)ASR 提供商 #842

Description

@HKLHaoBin

现象

OpenLess 当前已支持多种 ASR 提供商(Volcengine 流式、百炼流式、Whisper 兼容批量、MiMo、Apple Speech、本地模型等),但尚未支持讯飞开放平台的语音转写服务。

对于已持有讯飞开放平台账号、或受合规/成本/方言能力等因素限制而无法使用现有提供商的用户,目前无法在 OpenLess 中直接接入讯飞 ASR,只能额外切换工具或自行中转音频。

讯飞开放平台提供两类与 OpenLess 听写流程相关的 API,均已有成熟文档:

能力 协议 典型场景
实时语音转写(RTASR) WebSocket wss://rtasr.xfyun.cn/v1/ws 边录边传,与 Volcengine / 百炼流式模式相近
录音文件转写(IFASR) HTTPS raasr.xfyun.cn/v2/api/upload + getResult 录完后上传,与 Whisper 批量模式相近

官方文档:

影响

  • 无法覆盖依赖讯飞 ASR 的用户群体(国内政企、已有讯飞套餐、需要特定方言/语种包等)。
  • ASR 提供商选择与 OpenLess「自带密钥、可切换 provider」的设计目标不一致。
  • 若用户自行用外部工具做讯飞转写再粘贴,会绕过 OpenLess 的热词、润色、插入与历史记录流水线。

建议接受标准

  • 设置 → 语音提供商 中新增讯飞 ASR 选项,凭证字段至少包含 AppIDSecret Key(或开放平台当前要求的等价鉴权参数)。
  • 实现一种与现有听写流水线兼容的集成方式(推荐优先 实时流式 RTASR,与 Volcengine / 百炼的 open_session → consume_pcm_chunk → send_last_frame → await_final_result 模式对齐;若首期范围受限,可仅支持 录音文件转写 IFASR 批量模式,但需在 UI 中明确说明延迟特性)。
  • 听写主流程可完成:快捷键录音 → 讯飞转写 →(可选)润色 → 光标插入 / 剪贴板回退
  • 支持用户词典热词向讯飞侧传递(若对应 API 支持;字段名以实现为准)。
  • 错误信息对用户可读(鉴权失败、限流、网络超时等),行为与现有 ASR provider 一致。
  • 补充最小必要的开发者说明:所需开放平台服务、凭证获取路径、支持的音频格式/采样率约束。
  • 不将 Secret Key 写入客户端日志或历史记录明文。

TODO / 不确定项

  • 首期仅实现 RTASR、仅实现 IFASR,还是两者都支持?需维护者确认优先级。
  • 讯飞「录音文件转写大模型」与「极速录音转写大模型」是否纳入同一 provider,还是单独选项。
  • 讯飞鉴权签名(signa = Base64(HmacSHA1(MD5(appId+ts), secretKey)))是否完全适用于目标接口版本,需对照最新文档验证。
  • 是否需要支持 callbackUrl 异步回调,还是沿用 OpenLess 现有的轮询/等待最终结果模式。
  • 方言/小语种包是否通过 language 参数透传即可,还是需在设置页单独列出。

Metadata

Metadata

Assignees

No one assigned

    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