MecoScribe: FOSS Local Audio Transcription for macOS with Speaker Detection

HeyMeco1 pts1 comments

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

mecoscribe speaker swift models fluidaudio html

Related Articles