GitHub - HeyMeco/MecoScribe: Yet another local transcription tool. Uses FluidAudio / Apple CoreML under the hood and allows for easy diarization and editing of the result · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
HeyMeco
MecoScribe
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>9 Commits<br>9 Commits
.github
.github
Sources/MecoScribeCLI
Sources/MecoScribeCLI
samples
samples
.gitignore
.gitignore
LICENSE
LICENSE
Package.resolved
Package.resolved
Package.swift
Package.swift
README.md
README.md
View all files
Repository files navigation
MecoScribe
Local CLI for diarized transcription on macOS, built on FluidAudio. Upload an audio file and get a speaker-labeled transcript plus an interactive HTML viewer.
Features
Diarized transcription — identifies speakers and assigns words to each speaker
Plain-text output — .txt with timestamps and speaker labels
Interactive HTML — .html with:
Color-coded speaker segments
Word-level highlighting synced to playback
Click any word or segment to seek in the audio
Rename speakers
Built-in audio player (with playback speed selection)
Requirements
macOS 14+
Swift 6.0+
Apple Silicon recommended (uses CoreML / ANE via FluidAudio)
Network access on first run (models download from Hugging Face)
Install
git clone https://github.com/HeyMeco/MecoScribe.git<br>cd MecoScribe<br>swift build -c release
The binary is at .build/release/mecoscribe.
Model cache
Downloaded FluidAudio models are stored in ./models by default (relative to your current working directory). Subsequent runs reuse the cache instead of re-downloading.
Override with --models-dir /path/to/models or the MECOSCRIBE_MODELS_DIR environment variable.
Usage
# Basic — writes meeting.txt and meeting.html next to the audio file<br>swift run mecoscribe meeting.wav
# Specify output directory<br>swift run mecoscribe interview.mp3 --output-dir ./transcripts
# Offline diarization (default) — multilingual ASR is used automatically<br>swift run mecoscribe call.m4a --output-dir ./transcripts
# English-only ASR (optional)<br>swift run mecoscribe english.wav --model-version v2
# Preset speaker names<br>swift run mecoscribe panel.wav --speakers "Alice,Bob,Carol"
Options
Flag<br>Description
-o, --output-dir<br>Output directory (default: same folder as audio)
--models-dir<br>Model cache directory (default: ./models)
--mode streaming|offline<br>Diarization mode (default: offline)
--threshold<br>Speaker clustering threshold (default: 0.6)
--model-version v2|v3<br>ASR model — default v3 (multilingual); use v2 for English-only
--model-dir<br>Use local ASR models instead of downloading
--speakers<br>Initial speaker display names
-h, --help<br>Show help
Output
Given meeting.wav, MecoScribe produces:
meeting.txt — readable transcript:
[00:12] Speaker 1:<br>Welcome everyone to today's meeting.
[00:18] Speaker 2:<br>Thanks for having me.
meeting.html — open in any browser. The HTML references the original audio file via a relative path, so keep both files together (or open the HTML from the same directory).
How it works
Diarization — FluidAudio identifies who spoke when (offline VBx pipeline by default)
Transcription — Parakeet ASR with word-level timestamps
Alignment — words are mapped to speakers by timestamp overlap
Export — plain text and self-contained HTML are written
License
MecoScribe is licensed under the MIT License.
FluidAudio models and runtime are subject to their respective licenses (MIT / Apache 2.0). See the FluidAudio repository for details.
About
Yet another local transcription tool. Uses FluidAudio / Apple CoreML under the hood and allows for easy diarization and editing of the result
Resources
Readme
License
MIT license
Uh oh!
There was an error while loading. Please reload this page.
Activity
Stars
stars
Watchers
watching
Forks
forks
Report repository
Releases
No releases published
Packages
Uh oh!
There was an error while loading. Please reload this page.
Contributors
Uh...