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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions