AIRI 接入 Xiaomi MiMo 语音转写(ASR/STT)完整指南:API Key、模型配置与麦克风转写实战
2026/9/12 7:28:17 网站建设 项目流程

AIRI 接入 Xiaomi MiMo 语音转写(ASR/STT)完整指南:API Key、模型配置与麦克风转写实战

【免费下载链接】airi💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-sama's altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airi

本指南以 AIRI 项目文档中关于Xiaomi MiMo(ASR/STT)的配置说明为核心,系统讲解如何在 AIRI 中接入小米 MiMo 的云端语音转写能力。你将掌握从申请 API Key、填写 Provider 配置、验证转写效果,到在「听觉(Hearing)」模块中启用麦克风实时转写的完整流程,并了解 MiMo 转写请求在 AIRI 源码中的底层实现原理。文章同时覆盖mimo-v2-omnimimo-v2.5两个可选模型的差异,以及常见问题的排查思路。

为什么选择 Xiaomi MiMo 作为转写服务

MiMo 是小米推出的自研多模态模型,其原生音频理解能力让语音转写不再依赖独立的 ASR 链路——MiMo 直接以多模态输入方式理解音频内容并输出文本。在 AIRI 中接入 MiMo 转写(ASR/STT)的典型场景是:

  • 你已经在使用 MiMo(例如用于对话或 TTS),希望在同一个账号下统一处理音频内容;
  • 你需要借助 MiMo 的多模态模型直接处理音频,而不是单独维护一套语音识别服务。

从 AIRI 的源码定义来看,MiMo 转写 Provider 的任务类型(tasks)被声明为['speech-to-text', 'automatic-speech-recognition', 'asr', 'stt'](见 mimo-audio/index.ts),即它同时满足 STT 与 ASR 两类能力标识。其底层依赖说明来自文档中的明确表述,而具体任务声明与模型清单则可在 mimo-audio/index.ts 中核实。

第一步:获取 API Key

  1. 登录 Xiaomi MiMo Platform(小米 MiMo 开放平台)。
  2. 确认账号已开启API 访问权限
  3. 在平台中创建API Key,复制并妥善保存在安全位置。

::: warning API Key 与音频数据安全 切勿泄露 API Key。云端转写会把你的音频上传到服务提供方进行处理,因此请先确认该行为符合你的隐私与数据处理要求。此外,API Key 不要提交到版本库、不要出现在截图或共享给他人。 :::

第二步:在 AIRI 中配置 MiMo 转写 Provider

配置入口为设置(Settings)→ 提供方(Providers)→ 转写(Transcription)→ Xiaomi MiMo

需要填写/确认两个核心配置项:

配置项默认值说明
API Key(必填)第一步从 MiMo 平台获取的密钥
Base URLhttps://api.xiaomimimo.com/v1/除非服务提供方给出其他地址,否则保持默认即可

这两项在源码中的默认值定义于 mimo-audio/index.ts 的mimoTranscriptionConfigSchema

const mimoTranscriptionConfigSchema = z.object({ apiKey: z.string(), baseUrl: z.string().default('https://api.xiaomimimo.com/v1/'), model: z.string().default('mimo-v2-omni'), })

其中baseUrl即使留空,也会在normalizeBaseUrl中回退到默认地址,并统一补全末尾的/(见 mimo-audio/index.ts):

function normalizeBaseUrl(baseUrl: string | undefined) { return `${(baseUrl || 'https://api.xiaomimimo.com/v1/').replace(/\/+$/, '')}/` }

对应的设置页面实现位于 mimo-audio-transcription.vue:API Key 输入框的占位提示为mimo_... (MiMo API key),Base URL 输入框位于「高级设置(ProviderAdvancedSettings)」区域,占位默认值为https://api.xiaomimimo.com/v1/

配置校验机制

AIRI 在编辑配置时会自动进行校验。源码中通过createMimoValidators实现(见 mimo-audio/index.ts),校验规则为:

  • apiKey不能为空(去空格后检查);
  • baseUrl不能为空(去空格后检查)。

任一条件不满足都会使校验失败,页面会展示错误提示,并提供「继续(force valid)」的跳过入口(见 mimo-audio-transcription.vue)。

第三步:选择转写模型

MiMo 转写 Provider 支持以下模型(来源:mimo-audio/index.ts 中的listModels):

模型 ID说明上下文长度
mimo-v2-omniOmni 多模态模型,具备原生音频理解与语音转写能力256,000(约 256K)
mimo-v2.5最新的 Omni 多模态模型,音频理解能力更强1,000,000(约 1M)

在 Provider 设置页面的模型下拉框中选中可用模型即可。页面挂载时会自动调用loadModelsForConfiguredProviders()fetchModelsForProvider()拉取模型列表(见 mimo-audio-transcription.vue)。

第四步:验证转写配置

  1. 在 Provider 设置页选择可用的转写模型。
  2. 使用同一页面上的Playground(转写试验场):允许浏览器/应用访问麦克风,录制一段简短语音样本,确认能返回对应文本。

源码中 Playground 的生成逻辑为handleGenerateTranscription(见 mimo-audio-transcription.vue):它通过hearingStore.transcription(providerId, provider, model, file, 'json')调用转写能力,并将结果以 JSON 形式返回页面展示。

第五步:启用麦克风实时转写(关键一步)

仅在上面的 Provider 页面测试并不会启用麦克风的实时转写。要让 AIRI 在对话中实际使用 MiMo 进行语音转写,还需要:

  1. 打开设置 → 模块(Modules)→ 听觉(Hearing)
  2. 在听觉模块中选择提供方Xiaomi MiMo
  3. 选择模型 IDmimo-v2-omni(或你选定的模型);
  4. 选择麦克风设备,并运行听觉测试确认转写生效。

这一步对应 AIRI 的模块级配置:听觉(Hearing)模块持有最终的转写提供方与模型选择,Provider 设置页只负责管理凭证与连通性验证。

底层原理:MiMo 转写请求是如何构造的

AIRI 的 MiMo 转写 Provider 并未使用 OpenAI 风格的/audio/transcriptions接口,而是将音频作为多模态消息提交到chat/completions端点。核心逻辑位于 mimo-audio/index.ts 的createMimoTranscriptionProvider

  1. 提取音频文件:请求体必须是FormData,其中包含file(音频文件)与model(模型 ID,缺省用mimo-v2-omni)字段;
  2. 转换为 Data URIreadBlobAsDataUri将音频 Blob 读取为data:<mime>;base64,...格式;
  3. 推断音频格式audioFormatFromDataUri根据 MIME 类型映射格式——webm/mp4原样保留、mpeg/mp3归并为mp3,其余回退为wav(见 mimo-audio/index.ts);
  4. 构造多模态消息:以{ type: 'text', text: 'Transcribe the audio content.' }{ type: 'input_audio', input_audio: { data, format } }组成用户消息;
  5. 发送请求POST {baseUrl}/chat/completions,认证头为api-key: <apiKey>
  6. 解析结果:从choices[0].message.content中取出转写文本,包装为{ text }响应返回。
const response = await fetch(new URL('chat/completions', baseUrl), { method: 'POST', headers: { 'Content-Type': 'application/json', 'api-key': apiKey }, body: JSON.stringify({ model: modelName, messages: [{ role: 'user', content: [ { type: 'text', text: 'Transcribe the audio content.' }, { type: 'input_audio', input_audio: { data: base64Data, format: audioFormatFromDataUri(dataUri) } }, ], }], }), })

请求失败时错误信息会携带 HTTP 状态码、状态文本以及服务端返回的响应体(MiMo transcription failed: <status> <statusText> — <body>),便于定位问题。

常见问题排查

现象排查方向
转写请求失败检查 API Key 是否正确且未过期、所选模型是否可用、网络是否连通到api.xiaomimimo.com
返回空文本确认 AIRI 是否拥有麦克风权限(浏览器或系统级授权)
模型列表加载不出来确认 Base URL 未被修改,或直接在听觉模块手动输入 MiMo 提供的准确模型 ID
校验一直失败确认 API Key 与 Base URL 均已填写且无多余空格

补充:MiMo 在 AIRI 中的其他能力

MiMo 在 AIRI 中除了转写(ASR/STT)外,还有独立的能力页面:

  • 对话(Consciousness):配置apiKeybaseUrl即可启用 MiMo 聊天模型,支持推理模式的开启/关闭,接入实现见 mimo/index.ts,配置文档见 consciousness/mimo.md;
  • 语音合成(TTS):支持预置音色(mimo-v2.5-tts)、音色设计(mimo-v2.5-tts-voicedesign)与音色克隆(mimo-v2.5-tts-voiceclone)三种模式,内置中文音色如「冰糖」「茉莉」「苏打」「白桦」及英文音色 Mia、Chloe、Milo、Dean 等,详见 speech/mimo.md 与 mimo-audio/index.ts。

如果你希望在同一个 MiMo 账号下同时使用对话与音频能力,可以参考上述两个文档分别启用对应模块;本文聚焦的转写能力则对应文档 transcription/mimo.md 所描述的完整流程。

【免费下载链接】airi💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-sama's altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询