Skip to content

支持外部语音识别模型并接入小米 MiMo ASR #293

Description

@utopiafar

背景

当前语音识别主要围绕本地模型路径设计,用户无法在识别时选择外部语音识别服务。随着用户已经在 AI 模型配置页维护多个模型供应商,语音识别也需要支持“本地优先 + 可选外部模型”的配置方式,并与新版 AI 服务配置页保持一致。

本次需求希望:

  • 识别时可以在本地模型和外部模型之间切换。
  • 外部模型优先支持使用率较高、国内可用性较好的供应商。
  • 支持小米 MiMo 的语音识别模型 mimo-v2.5-asr
  • 识别结果在支持实时能力的模型上继续实时更新和预览;不支持实时上传音频流的模型需要在 UI 上说明能力边界。
  • 配置入口需要兼容新版 AI 配置页,而不是回退到旧版单页开关。

方案

建议将语音识别配置抽成独立模型,保留 legacy use_local_speech_to_text 语义用于兼容旧设置,同时新增 provider 选择:

  • 本地模型:继续走现有本地转录路径,支持实时预览。
  • 腾讯云 ASR:作为外部实时能力 provider,支持实时片段更新。
  • 小米 MiMo ASR:走 OpenAI-compatible chat completions 格式上传完整 wav/mp3 音频,适合导入音频或录音结束后的最终文本识别。

小米 MiMo 的实现要点:

  • 模型固定使用官方文档当前支持的 mimo-v2.5-asr
  • 请求体使用 input_audio.data = data:{mime};base64,...
  • 支持 auto / zh / en 语言选项。
  • 支持关联已有 MiMo LLM 配置,复用 API Key 和 Base URL;也支持手动配置 API Key 和 Base URL。
  • 对 token-plan 这类用户提供的 https://token-plan-sgp.xiaomimimo.com/anthropic 地址,需要在 ASR 调用时归一化为同 host 的 /v1/chat/completions
  • MiMo 当前作为最终文本识别,不标记为实时流式预览能力。

UI 方案:

  • 在新版 AI 配置页的自定义服务页中加入“语音识别”能力区。
  • 使用分段按钮选择本地 / 腾讯云 / 小米 MiMo。
  • 展示能力标签:是否实时预览、是否支持导入音频、音频是否离开设备。
  • 小米 MiMo 表单支持“关联已有 MiMo 配置”和“手动凭据”两种模式。
  • 对 MiMo 明确提示“录音结束后返回最终文本,不提供实时预览”。

验收标准

  • 用户可以在 AI 配置页选择本地、腾讯云或小米 MiMo 语音识别 provider。
  • 本地和腾讯云路径不回退已有实时预览体验。
  • 小米 MiMo 能识别 wav/mp3 音频,并能从关联的 MiMo LLM 配置或手动配置读取凭据。
  • token-plan /anthropic 地址能够自动映射到 /v1/chat/completions
  • 旧的 use_local_speech_to_text 设置可以被兼容迁移。
  • UI 有 widget test 覆盖 provider 切换、手动/关联 MiMo 配置、能力提示和表单持久化。
  • 服务层有 unit test 覆盖请求构造、错误解析、大小限制、MIME 处理、响应解析和配置兼容。

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