Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 55 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

# Murmur

**开源 · 本地 · AI 语音输入**
**开源 · 本地 · AI 语音转文字**

说话就能打字,音频秒转文字。基于 FunASR,数据不出你的电脑。
说话就能打字,音频秒转文字,AI 自动润色。基于 FunASR,数据不出你的电脑。

[![License: Apache 2.0](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-lightgrey)](#安装)
Expand All @@ -28,8 +28,12 @@

[English](#english) · [中文](#中文)

<!-- TODO: 录制产品演示 GIF 后替换 —— 说话 → 文字出现 → AI 润色 → 自动粘贴 -->
<!-- <img src="assets/demo.gif" width="800" alt="Murmur Demo" /> -->
<!-- [20260731_README_RewriteHero] Hero 区强化价值主张。
TODO(需项目维护者录制):录制 10 秒产品演示 GIF,
展示「说话 → 文字出现 → AI 润色 → 自动粘贴」完整流程,
替换下方占位注释。这是 README 最高 ROI 的转化元素。 -->
<!-- <img src="assets/demo.gif" width="800" alt="Murmur Demo — speak → text → AI polish → paste" /> -->
<!-- [20260731_README_RewriteHero] END -->

</div>

Expand All @@ -39,26 +43,33 @@

## 为什么选择 Murmur?

**Murmur 是为中文优化的本地语音输入工具。** 按下快捷键,说话,文字就出现在光标处——全部在你的电脑上完成,无需联网,无需上传。
**Murmur 是为中文优化的本地语音转文字工具。** 它不只是"语音输入"——按一下快捷键说话,文字出现在光标处;导入音频文件,批量转写并导出;再用 AI 去除口头禅、整理成会议纪要或小红书文案。全部在你的电脑上完成,无需联网,无需上传。

| | Murmur | macOS 原生听写 | 讯飞语记 | Whisper Desktop |
| ------------- | :--------: | :------------: | :--------: | :-------------: |
| 中文精度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 完全本地 | ✅ | ✅ | ❌ | ✅ |
| AI 后处理 | ✅ | ❌ | ❌ | ❌ |
| 开源免费 | ✅ | ✅ | ❌ | ✅ |
| 11+ AI 模型 | ✅ | ❌ | ❌ | ❌ |
| 自定义 Prompt | ✅ | ❌ | ❌ | ❌ |
> **定位说明**:Murmur 不与 macOS/Windows 系统听写正面竞争实时性,而是聚焦三个系统听写做不到的事——**文件转录**、**AI 后处理**、**完全本地 + 可自定义模型**。实时流式转录在规划中(见[路线图](#-路线图))。

### 🆚 与同类工具对比

| 能力 | Murmur | macOS 原生听写 | 讯飞语记 | Whisper Desktop |
| ------------------- | :--------: | :------------: | :--------: | :-------------: |
| **音频文件转录** | ✅ | ❌ | ✅ | ✅ |
| **AI 后处理** | ✅ | ❌ | ❌ | ❌ |
| **完全本地** | ✅ | ✅ | ❌ | ✅ |
| **自定义 Prompt** | ✅ | ❌ | ❌ | ❌ |
| **11+ AI 模型可选** | ✅ | ❌ | ❌ | ❌ |
| 中文识别精度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 开源免费 | ✅ | ✅ | ❌ | ✅ |

> 系统听写在"实时性"上更强(流式低延迟),Murmur 在"转写后能做什么"上更强(AI 润色 + 文件批处理 + 隐私)。两者可以共存。

## ✨ 特性

| 🎤 高精度中文识别 | 🤖 AI 智能润色 | ⌨️ 全局热键 | 🔒 完全本地 |
| ----------------------- | -------------------- | ----------------- | ----------- |
| FunASR Paraformer-large | 去除口头禅、修正错话 | `Cmd+Shift+Space` | 零数据上传 |
| 🎤 高精度中文识别 | 🤖 AI 智能润色 | 📁 音频文件转录 | 🔒 完全本地 |
| ----------------------- | ------------------------ | --------------------- | ----------- |
| FunASR Paraformer-large | 去口头禅、修错字、整纪要 | wav/mp3/m4a/flac 批量 | 零数据上传 |

| 🌐 11+ AI 模型 | 📁 音频文件转录 | 💾 转录历史 | 🌍 双语支持 |
| ------------------------------------- | ---------------- | -------------------- | ------------ |
| OpenAI/DeepSeek/通义/智谱/本地 Ollama | wav/mp3/m4a/flac | SQLite + 搜索 + 导出 | 中文/English |
| ⌨️ 全局热键 | 🌐 11+ AI 模型 | 💾 转录历史 | 🌍 双语支持 |
| ---------------------- | ------------------------------------- | -------------------- | ------------ |
| `Cmd+Shift+Space` 即录 | OpenAI/DeepSeek/通义/智谱/本地 Ollama | SQLite + 搜索 + 导出 | 中文/English |

## 🚀 安装

Expand Down Expand Up @@ -181,7 +192,7 @@ pnpm ci:check # 本地运行所有 CI 门禁
- [ ] 长音频分片转录(解决 10 分钟超时)
- [ ] AI 流式响应

详见 [docs/strategic-plan-gap-analysis.md](docs/strategic-plan-gap-analysis.md) 查看完整规划
详见 [docs/follow-ups.md](docs/follow-ups.md)(遗留事项跟踪)与 [CHANGELOG.md](CHANGELOG.md)(已交付)。`docs/strategic-plan-gap-analysis.md` 为历史战略快照,仅供参考

## 🤝 参与贡献

Expand Down Expand Up @@ -211,34 +222,41 @@ PRs welcome! 见 [CONTRIBUTING.md](CONTRIBUTING.md) 了解开发环境搭建、

<div align="center">

**Open Source · Local · AI Voice Input**
**Open Source · Local · AI Speech-to-Text**

Speak to type, convert audio to text in seconds. Powered by FunASR, all on your device.
Speak to type, convert audio to text, AI auto-polish. Powered by FunASR, all on your device.

</div>

## Why Murmur?

**Murmur is a local-first voice input tool optimized for Chinese.** Press the hotkey, speak, and text appears at your cursor — all processed locally, no internet required.
**Murmur is a local-first speech-to-text tool optimized for Chinese.** It's more than "voice input" — press a hotkey to dictate, import audio files for batch transcription, then use AI to remove filler words, or turn the transcript into meeting notes or a Xiaohongshu post. All processed locally, no internet required.

> **Positioning**: Murmur doesn't compete head-on with macOS/Windows system dictation on real-time latency. It focuses on three things system dictation can't do — **file transcription**, **AI post-processing**, and **fully local + customizable models**. Real-time streaming is on the roadmap (see [Roadmap](#roadmap)).

### 🆚 Comparison

| Capability | Murmur | macOS Dictation | iFlytek | Whisper Desktop |
| ---------------------- | :--------: | :-------------: | :--------: | :-------------: |
| **File Transcription** | ✅ | ❌ | ✅ | ✅ |
| **AI Post-processing** | ✅ | ❌ | ❌ | ❌ |
| **Fully Local** | ✅ | ✅ | ❌ | ✅ |
| **Custom Prompts** | ✅ | ❌ | ❌ | ❌ |
| **11+ AI Models** | ✅ | ❌ | ❌ | ❌ |
| Chinese Accuracy | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Open Source | ✅ | ✅ | ❌ | ✅ |

| | Murmur | macOS Dictation | iFlytek | Whisper Desktop |
| ------------------ | :--------: | :-------------: | :--------: | :-------------: |
| Chinese Accuracy | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Fully Local | ✅ | ✅ | ❌ | ✅ |
| AI Post-processing | ✅ | ❌ | ❌ | ❌ |
| Open Source | ✅ | ✅ | ❌ | ✅ |
| 11+ AI Models | ✅ | ❌ | ❌ | ❌ |
| Custom Prompts | ✅ | ❌ | ❌ | ❌ |
> System dictation wins on real-time latency (streaming); Murmur wins on "what you can do after transcription" (AI polish + batch files + privacy). They can coexist.

## Features

| 🎤 Accurate Chinese | 🤖 AI Refinement | ⌨️ Global Hotkey | 🔒 Fully Local |
| ----------------------- | --------------------------------- | ----------------- | ---------------- |
| FunASR Paraformer-large | Remove filler words, fix mistakes | `Cmd+Shift+Space` | Zero data upload |
| 🎤 Accurate Chinese | 🤖 AI Polish | 📁 File Transcription | 🔒 Fully Local |
| ----------------------- | ------------------------------ | ---------------------- | ---------------- |
| FunASR Paraformer-large | Filler removal, fix, summarize | wav/mp3/m4a/flac batch | Zero data upload |

| 🌐 11+ AI Models | 📁 File Transcription | 💾 History | 🌍 i18n |
| ------------------------------- | --------------------- | ------------------------ | --------------- |
| OpenAI/DeepSeek/Qwen/GLM/Ollama | wav/mp3/m4a/flac | SQLite + search + export | zh-CN / English |
| ⌨️ Global Hotkey | 🌐 11+ AI Models | 💾 History | 🌍 i18n |
| ----------------- | ------------------------------- | ------------------------ | --------------- |
| `Cmd+Shift+Space` | OpenAI/DeepSeek/Qwen/GLM/Ollama | SQLite + search + export | zh-CN / English |

## Install

Expand Down
114 changes: 114 additions & 0 deletions docs/competitive-positioning.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Murmur 竞品定位:错位竞争策略

> [20260731_CompetitivePositioning] 本文档回答 strategic-plan 三轮评审识别的核心战略盲区:"用户为什么不用系统自带语音输入?" 定位决策为**错位竞争**(2026-07-31 与项目维护者确认)。
>
> 相关文档:`README.md`(对外定位表述)、`docs/strategic-plan-gap-analysis.md`(历史战略快照,§四/§七含详细对标分析)、`docs/adr/012-known-limitations-tradeoffs.md`(已知技术约束)
> [20260731_CompetitivePositioning] END

## 一、核心定位

**Murmur 不与 macOS/Windows 系统听写正面竞争实时性,而是聚焦系统听写做不到的三件事:**

1. **音频文件转录** —— 系统听写只能实时输入,无法导入已有的会议录音/采访音频/播客文件批量转写
2. **AI 后处理** —— 转录完成后,用 AI 去除口头禅、修正错字、整理成会议纪要/小红书文案/知乎回答
3. **完全本地 + 可自定义模型** —— 数据不出设备,且用户可选 11+ AI 模型(含本地 Ollama/LM Studio),不被任何云服务绑定

**一句话定位**:Murmur 是"转写 + 加工"工具,不是"实时输入法"。系统听写负责"快",Murmur 负责"好"和"能加工"。

## 二、为什么是错位竞争(而非正面竞争)

### 正面竞争的死局

与系统听写比实时性是必败的——原因不是工程能力,而是架构与生态:

| 维度 | 系统听写 | Murmur | 为什么追不上 |
| ------------------ | --------------------- | -------------------------------- | ------------------------------------------------------------- |
| 流式延迟 | 50-200ms | 当前非流式(录音→保存→批量推理) | 全栈重构成本:录音→blob→临时文件→Python 批量推理 整条链要重写 |
| OS 深度集成 | 系统级,任意输入框 | 全局热键模拟 | 系统听写是 OS 一等公民,第三方永远劣势 |
| Apple Intelligence | 正在把语音深度塞进 OS | 无法对抗 | 3-6 个月内 Apple 的语音能力会更强 |
| 模型更新 | Apple/Google 持续迭代 | 依赖 FunASR 发版 | 系统厂商有模型团队,Murmur 是 1 人维护 |

### 错位竞争的胜算

聚焦系统听写的盲区,这些盲区**不是因为系统听写做得差,而是因为它的定位决定了它不会做**:

| 系统听写不会做的事 | 为什么不会做 | Murmur 的机会 |
| ------------------------------------- | ----------------------------------- | ------------------------------ |
| 文件转录 | 系统听写是输入法,不是文件处理器 | 这是产品类别差异,不是功能差距 |
| AI 后处理(去口头禅、整纪要、改文风) | 系统听写只负责"听写",不负责"改写" | AI 加工是独立价值层 |
| 本地 Ollama / 自定义模型 | 系统听写用 Apple 私有模型,不可替换 | 隐私敏感 + 模型自由是细分需求 |
| 跨平台一致体验 | macOS 听写与 Windows 听写完全不同 | 统一工具跨平台有价值 |

**关键洞察**:错位竞争不是"认输",而是把战场从"谁更快"转移到"谁能把转写结果变成可用的东西"。在这个战场上,系统听写根本不参赛。

## 三、核心用户画像

错位竞争定位下,Murmur 的核心用户**不是"需要实时打字的人"**(他们用系统听写更好),而是:

| 用户类型 | 核心场景 | 为什么选 Murmur 而非系统听写 |
| ---------------------------------- | ------------------------------ | --------------------------------------------------------- |
| **文字工作者**(记者/作家/研究者) | 采访录音转文字、灵感口述转初稿 | 需要 AI 去口头禅 + 整理成可发布文本,系统听写做不到后处理 |
| **会议记录者** | 会议录音批量转写 + 导出 | 系统听写无法导入音频文件,也无法批量处理 |
| **隐私敏感用户** | 涉密/隐私内容语音转文字 | 系统听写数据可能上传云端,Murmur 完全本地 |
| **内容创作者** | 录制音频 → 转小红书/知乎/字幕 | AI 后处理直接生成平台风格文案,系统听写无此能力 |
| **开发者/技术用户** | 本地模型 + 自定义 Prompt | 想用 Ollama 跑 qwen2.5,系统听写不可定制 |

**非核心用户**(明确放弃):需要实时低延迟打字的用户 → 推荐系统听写。

## 四、竞品矩阵与差异化

### 直接竞品(文件转录类)

| 工具 | 文件转录 | AI 后处理 | 本地 | 中文优化 | 开源 | Murmur 优势 |
| --------------- | -------- | --------- | ---- | ---------- | ---- | ---------------------------------------- |
| Whisper Desktop | ✅ | ❌ | ✅ | ⭐⭐⭐ | ✅ | 中文精度(FunASR)+ AI 后处理 + 11+ 模型 |
| 讯飞语记 | ✅ | ❌ | ❌ | ⭐⭐⭐⭐⭐ | ❌ | 完全本地 + 开源 + 可自定义模型 |
| 飞书妙记 | ✅ | 部分 | ❌ | ⭐⭐⭐⭐ | ❌ | 本地隐私 + 不绑定平台 |

### 间接竞品(系统听写类,不正面竞争)

| 工具 | 定位 | 与 Murmur 关系 |
| -------------------------- | --------------- | ------------------------------------- |
| macOS 听写 | 实时输入法 | 共存:实时用系统听写,后处理用 Murmur |
| Windows 语音输入 | 实时输入法 | 同上 |
| Apple Intelligence(未来) | OS 深度集成语音 | 不追实时性,聚焦文件+AI 后处理 |

### 差异化护城河(按强度排序)

1. **AI 后处理能力**(最强)—— 系统听写和 Whisper Desktop 都不做,这是 Murmur 独占的价值层
2. **中文精度**(FunASR Paraformer-large)—— 对中文场景优于 Whisper,但需注意 FunASR 是阿里开源,任何人可用
3. **完全本地 + 模型自由**—— 隐私敏感用户的硬需求,但需量化这个群体规模
4. **开源 + 可自定义 Prompt**—— 贡献者信任,但非用户可感知的护城河

## 五、战略风险与缓解

| 风险 | 严重度 | 缓解策略 |
| ---------------------------------------------------------- | ------ | -------------------------------------------------------------------------- |
| Apple Intelligence 3-6 个月内大幅提升中文 + 加文件转录能力 | High | 加速 AI 后处理差异化(这是 Apple 不会做的);考虑与 Shortcuts 集成而非对抗 |
| FunASR 中文优势被 Whisper 追平 | Medium | ASR 引擎抽象接口已就绪(ADR-003),可接入 whisper.cpp/SenseVoice |
| "错位竞争"被解读为"认输" | Medium | README/营销明确强调"共存"而非"替代",避免与系统听写对立 |
| 实时流式一直不做,被用户诟病 | Low | 路线图保留流式项目,但定位为"增强"而非"核心" |
| 1 人维护可持续性 | High | 聚焦核心功能,不做插件生态(strategic-plan 评审共识);考虑爱发电/赞助 |

## 六、可量化的成功指标(基于错位竞争定位调整)

| 指标 | 当前 | 3 月目标 | 6 月目标 | 定位含义 |
| ------------------ | ---- | -------- | -------- | ------------------------------------------- |
| GitHub Stars | ~200 | 1,000 | 3,000 | 通用增长指标 |
| **AI 功能激活率** | <10% | 40% | 60% | 错位竞争核心:AI 后处理是差异化,必须高激活 |
| **文件转录使用率** | 未知 | 30% | 50% | 错位竞争核心:文件转录是系统听写盲区 |
| 实时流式延迟 | N/A | 不追求 | 不追求 | 错位竞争:不与系统听写比实时 |
| 贡献者数 | 1-2 | 3-5 | 5-10 | 开源健康度 |

## 七、决策记录

**决策**:错位竞争,不与系统听写正面竞争实时性。
**决策日期**:2026-07-31
**决策者**:项目维护者(woshiguanxiaoliang)
**依据**:

- strategic-plan 三轮评审共识:"17 项行动对 1 人团队不现实",需聚焦
- 架构现实:非流式 ASR,全栈重构成本高
- 系统听写生态优势不可逆(OS 一等公民 + Apple Intelligence)

**后续应转为 ADR**:如果此定位在 3-6 月内验证有效(AI 激活率 + 文件转录使用率达标),应转为正式 ADR 记录为长期战略决策。当前作为定位文档,待验证。
Loading