Skip to content
TeFuirneverPublic

About

🎤 开源免费的 AI 语音输入工具 — 基于FunASR,本地处理,为中文而生 | Free & open-source voice input tool with local FunASR

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

23 stars

Watchers

0 watching

Forks

Latest commit

 

History

621 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Murmur Logo

Murmur

Open Source · Local · AI Speech-to-Text

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

English · 简体中文

License: Apache 2.0 Platform

CI

Release

PRs Welcome Stars

Murmur brand hero — a hand-drawn sound wave turns into clean text at the cursor, next to a real screenshot of the AI-polished result, with the Azhou fox on the right

🦊 Brand cover by Azhou · Screenshot archive


Why Murmur?

Murmur is a local-first speech-to-text tool optimized for Chinese. It's more than "voice input" — press a hotkey to dictate and text appears at your cursor; import audio files for batch transcription and export; then let AI remove filler words or turn the transcript into meeting notes or a Xiaohongshu post. Everything happens on your computer, no internet, no uploads.

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).

🆚 Comparison

Capability Murmur macOS Dictation iFlytek Whisper Desktop
File Transcription ✅ ❌ ✅ ✅
AI Post-processing ✅ ❌ ❌ ❌
Fully Local ✅ ✅ ❌ ✅
Custom Prompts ✅ ❌ ❌ ❌
11+ AI Models ✅ ❌ ❌ ❌
Desktop (macOS/Windows) ✅ macOS only ❌ Windows only
Open Source ✅ ❌ ❌ ✅

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 Polish 📁 File Transcription 🔒 Fully Local
FunASR Paraformer-large Filler removal, fix, summarize wav/mp3/m4a/flac batch Zero data upload
⌨️ Global Hotkey 🌐 11+ AI Models 💾 History 🌍 i18n
Cmd+Shift+Space OpenAI/DeepSeek/Qwen/GLM/Ollama SQLite + search + export zh-CN / English

🤖 Meet the animated Bot mascot — the little fellow in the title bar morphs with app state: eyes wide open while recording, thinking dots while recognizing, a comet when a transcription finishes. The engine is ported from bloub (MIT) with frame-by-frame measured animation constants, replicated with zero drift. Pick its shape / color / expression under Settings → General.

🖼 Screenshots

AI polish pipeline (transcript → Xiaohongshu-style post):

Murmur app: a raw transcript is polished into a Xiaohongshu-style post through the AI polish pipeline

macOS app UI:

Murmur macOS app UI

🎬 Demo Video

murmur-intro-15s.mp4

▶ Watch the 15-second intro — speak to type, AI polish, fully local. Also archived in-repo: MP4 and a no-BGM version for your own soundtrack.

🚀 Install

Download the latest build from Releases:

  • macOS: Murmur-<version>-arm64.dmg
  • Windows: Murmur.Setup.<version>.exe

Package managers (planned): Homebrew (brew install --cask murmur) and Winget (winget install TeFuirnever.Murmur) are coming soon — cask/manifest definitions live in docs/homebrew/ and docs/winget/ but are not yet submitted upstream.

Linux: no official packages for now (limited maintainer capacity — macOS/Windows quality comes first). Community contributions for Linux packaging and maintenance are welcome (issues / PRs).

First install notes

  • macOS: if macOS reports "cannot verify the developer", right-click the app → Open
  • macOS: if macOS says the app "is damaged and can't be opened" (v1.5.0 ships with a broken signature seal), run in Terminal: xattr -cr /Applications/Murmur.app && codesign --force --deep --sign - /Applications/Murmur.app — details in Troubleshooting
  • Windows: if SmartScreen blocks the installer, click More info → Run anyway

⚡ Quick Start

  1. Launch Murmur and wait for the model download (~671 MB the first time, instant afterwards)
  2. Press Cmd+Shift+Space (macOS) or Ctrl+Shift+Space (Windows) and start speaking
  3. Text appears at your cursor

AI Polish (optional): Settings → choose provider (DeepSeek, Qwen, Ollama, etc.) → enter API key or use a local model. A built-in Quick Start guide helps you get a free API key (DeepSeek / SiliconFlow grant free credits on sign-up).

🤖 Supported AI Models

Provider Base URL Needs API Key Free tier
OpenAI api.openai.com/v1 ✅ —
DeepSeek ⭐ api.deepseek.com/v1 ✅ Sign-up bonus
Qwen (通义千问) dashscope.aliyuncs.com ✅ New users
Zhipu GLM (智谱) open.bigmodel.cn ✅ Sign-up bonus
SiliconFlow ⭐ api.siliconflow.cn ✅ Sign-up bonus
Groq api.groq.com ✅ Free tier
Moonshot api.moonshot.cn ✅ —
MiniMax api.minimaxi.com ✅ —
OpenRouter openrouter.ai/api/v1 ✅ Partially free
Ollama (local) localhost:11434 ❌ Free
LM Studio (local) localhost:1234 ❌ Free

⭐ Providers marked with a star are beginner-friendly — free credits on sign-up, stable access within mainland China.

Just pick a provider — Murmur fills in the base URL and models automatically.


Build from Source

Requirements

  • Node.js 22.5+ and pnpm
  • Python 3.11+ (for FunASR, matching the pyproject.toml requires-python)

Quick start

git clone https://github.com/TeFuirnever/Murmur.git
cd Murmur
pnpm install

# Python setup (choose one)
# Option A: uv (recommended, manages the virtualenv for you)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

# Option B: system Python
# [20261006_Docs_423_T10] spec #412 (T10): install exactly what
# pyproject.toml declares (modelscope arrives transitively via funasr).
uv pip install -r pyproject.toml

# [20261006_Docs_423_T10] spec #412 (T10): ONNX models need NO manual
# download — the first `pnpm dev` fetches the pin-anchored onnx-int8 set
# in-app (~671MB, resumable). `uv run python download_models.py` would only
# pre-seed the LEGACY fp32 torch fallback cache, which the new engine never
# reads; it stays available solely to seed that one-version-cycle rollback.

pnpm dev

Development commands

pnpm dev          # start dev mode
pnpm test         # unit tests (coverage gate enforced by ci:check)
pnpm lint         # linting (0 warnings)
pnpm typecheck    # TypeScript type check
pnpm ci:check     # run all CI gates locally

🛠 Tech Stack

Layer Technology
Desktop Electron 39
Frontend React 19, Tailwind CSS 4, Vite
Speech FunASR (Paraformer-large + FSMN-VAD + CT-Transformer)
AI 11+ OpenAI-compatible models + custom prompt templates
Storage SQLite (node:sqlite, safeStorage encryption)

📚 Documentation

Document What it covers
FAQ Common questions
Troubleshooting Install, launch, and audio issues
CONTRIBUTING.md Dev setup, code standards, PR process
Security Policy How to report vulnerabilities privately
CHANGELOG.md Full release history

📋 Roadmap

Done:

  • Local FunASR speech recognition (Paraformer-large)
  • AI text optimization (11+ models, incl. local Ollama/LM Studio)
  • Custom AI prompt templates
  • Audio file transcription (wav/mp3/m4a/flac)
  • History search (instant client-side filtering) and export (TXT/SRT/Markdown/DOCX)
  • Global hotkey (Cmd+Shift+Space)
  • Multi-language (Chinese/English)
  • Semi-auto update (SHA256 verified)
  • Accessibility (ARIA + keyboard nav)
  • GPU auto-detection (CUDA > CPU; MPS intentionally skipped — FunASR float64 unsupported)
  • TypeScript strict mode (full-src coverage gated, see CI)
  • File config support (~/.murmur.json)
  • AI Provider quick-start guide (free API key)

In Progress / Planned:

  • Real-time streaming transcription (target 200ms latency)
  • CLI mode (murmur transcribe --file)
  • Multi-engine ASR (whisper.cpp / SenseVoice)
  • Long audio chunked transcription (solves the 10-minute timeout)
  • AI streaming response

See docs/follow-ups.md (open items) and CHANGELOG.md (shipped). docs/strategic-plan-gap-analysis.md is a historical strategy snapshot, kept for reference only.

🤝 Contributing

PRs welcome! See CONTRIBUTING.md for setup, code standards, and the PR process.

Help & community: questions → FAQ · troubleshooting → Troubleshooting · security issues → Security Policy (please report vulnerabilities privately, not as public issues).

📊 Project Status

Star History Chart

Acknowledgments

  • QuQu — Upstream project
  • FunASR — Alibaba open-source speech recognition
  • shadcn/ui — UI components

License

Apache License 2.0

About

🎤 开源免费的 AI 语音输入工具 — 基于FunASR,本地处理,为中文而生 | Free & open-source voice input tool with local FunASR

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

23 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages