pi-mimo-voice-zh

小米 MiMo 中文语音扩展 — 语音输入(ASR)和语音输出(TTS)

Packages

Package details

extension

Install pi-mimo-voice-zh from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-mimo-voice-zh
Package
pi-mimo-voice-zh
Version
0.0.4
Published
Jul 16, 2026
Downloads
38/mo · 38/wk
Author
mlosun
License
MIT
Types
extension
Size
17.5 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "."
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-mimo-voice-zh

npm

⚠️ 注意:本项目完全由 AI 生成,作者本人并不懂 TypeScript。如有问题请通过 Issues 提出,我会尽力解决。

目前仅支持 MiMo API Key,暂不支持 Token Plan。

小米 MiMo 中文语音扩展。

操作 快捷键
🎤 语音输入 Ctrl+Shift+V
🔊 开关/打断 Ctrl+Shift+K

AI 回复完自动朗读。朗读前自动清理 markdown。

平台要求

  • macOS(已测试)
  • Homebrew(安装 sox)
  • Windows 暂未支持

安装

# 1. 安装录音工具
brew install sox

# 2. 安装扩展(二选一)
pi install npm:pi-mimo-voice-zh              # npm(推荐)
pi install git:github.com/mlosun/pi-mimo-voice-zh  # GitHub

# 3. 创建配置文件
# npm 安装:
cp ~/.pi/agent/npm/pi-mimo-voice-zh/mimo-voice-zh.example.json ~/.pi/mimo-voice-zh.json
# GitHub 安装:
cp ~/.pi/agent/git/github.com/mlosun/pi-mimo-voice-zh/mimo-voice-zh.example.json ~/.pi/mimo-voice-zh.json

编辑 ~/.pi/mimo-voice-zh.json,将 apiKey 设为你的 MiMo API Key。获取地址:platform.xiaomimimo.com

# 4. 加载
pi /reload

状态栏出现 🔔 TTS 开启 即表示加载成功。

配置

~/.pi/mimo-voice-zh.json

{
  "voice": "冰糖",
  "apiKey": "sk-...",
  "ttsEnabled": true,
  "sttEnabled": true,
  "ttsShortcut": "ctrl+shift+k",
  "sttShortcut": "ctrl+shift+v"
}
字段 说明
voice 音色:冰糖 / 茉莉 / 苏打 / 白桦
apiKey MiMo API Key
ttsEnabled TTS 朗读开关
sttEnabled STT 语音输入开关
ttsShortcut TTS 快捷键
sttShortcut STT 快捷键

MiMo 模型费用说明

MiMo ASR 按用量收费,TTS 限时免费。详见 MiMo 模型定价

如希望完全免费,可用 macOS 系统听写代替 ASR:

  1. 系统设置 → 键盘 → 听写 → 开启
  2. ~/.pi/mimo-voice-zh.jsonsttEnabled: false 关闭 ASR
  3. 按两下 Ctrl 触发系统听写,口述后文字自动输入。

技术说明

MiMo TTS 是 LLM 驱动的语音合成,底层走的是 Chat Completions 端点,而非传统 TTS 引擎。这意味着文本是作为对话内容传给大模型的,模型"扮演"助理将文字念出来。

这种行为带来一个特性:单次传入的文本过长(实测 ~10000 字)时,模型可能"跑偏",表现为语音变得不连贯或内容错乱。短文本(~3000 字以内)则表现正常。

本扩展的应对策略:

  1. 按段落拆分:以空行为界将回复拆成多个段落,逐段调用 TTS
  2. 段落内语气一致:段落是天然的语气单元,同段内的语音自然连贯
  3. 超长段落兜底:遇到超过 2000 字的段落,再降级按句子拆分

这样既保证了长文本不会触发模型"跑偏",也避免了逐句拆分带来的语气割裂感。

状态栏

显示 含义
🔔 TTS 开启 语音输出已开启
🔕 TTS 关闭 语音输出已关闭
🔴 正在录音 录音中

功能清单

TTS 语音输出

# 场景 预期
1 /reload 后发一条消息 AI 回复自动朗读。状态栏显示 🔔 TTS 开启
2 回复很长(多段落) 全文朗读,标点间自然停顿
3 回复含代码块、粗体、斜体 markdown 格式被清洗,只朗读纯文字内容
4 回复含表格 表格内容按文本朗读
5 朗读中按 Ctrl+Shift+K 立即停止,通知"朗读已打断"
6 空闲时按 Ctrl+Shift+K TTS 切换为关闭。状态栏变 🔕 TTS 关闭。再发消息不朗读
7 TTS 关闭时按 Ctrl+Shift+K TTS 切换为开启。状态栏变 🔔 TTS 开启
8 修改 ~/.pi/mimo-voice-zh.jsonvoice: "苏打"/reload 朗读变为男声苏打

STT 语音输入

# 场景 预期
9 Ctrl+Shift+V 状态栏变 🔴 正在录音
10 说话后按 Ctrl+Shift+V 识别完成,文字填入编辑器
11 未设置麦克风权限 sox 报错,通知"录音失败"
12 ~/.pi/mimo-voice-zh.jsonsttEnabled: false/reload 后按快捷键 通知"ASR 已关闭"
13 ~/.pi/mimo-voice-zh.jsonsttShortcut 改为其他值 → /reload 新快捷键生效,旧键失效

配置项测试

# 场景 预期
14 首次启动,~/.pi/mimo-voice-zh.json 不存在 自动生成,使用默认值
15 ~/.pi/mimo-voice-zh.jsonapiKey 为空 → /reload 后语音输入 通知"请先设置 API Key"
16 ~/.pi/mimo-voice-zh.jsonttsEnabled: false/reload 状态栏 🔕 TTS 关闭,回复不朗读
17 手动在 ~/.pi/mimo-voice-zh.json 添加额外字段,操作后检查 额外字段不被删除(merge 保存)

更新日志

0.0.4

  • 修复:长文本 TTS 语音"跑偏"问题。改为按段落拆分后逐段调用 MiMo TTS,超长段落兜底按句拆分
  • 新增:README 技术说明章节,解释 MiMo TTS 的 LLM 驱动特性及应对策略

0.0.3

  • 新增:发布到 npm,支持 pi install npm:pi-mimo-voice-zh
  • 新增:npm 版本徽章、双安装方式(npm / GitHub)
  • 优化package.json 补充 author、repository、files 字段

0.0.2

  • 新增:README 添加 AI 生成声明及 MiMo API Key 限制说明

0.0.1

  • 初始版本:MiMo ASR 语音输入 + TTS 语音输出