finnvoor/yap

Swift

alternativa a Otter.ai

🗣️ A CLI for on-device speech transcription using Speech.framework on macOS 26

speech-to-texttranscriptionmacosspeechcli
Crecimiento de estrellas
Estrellas
1.6k
Forks
67
Crecimiento semanal
+3
Issues
12
5001k1.5k
sept 25ene 26may 26sept 26
README

🗣️ yap

A CLI for on-device speech transcription using Speech.framework on macOS 26.

Demo

Usage

USAGE: yap transcribe [--locale <locale>] [--censor] <input-file> [--txt] [--srt] [--vtt] [--json] [--output-file <output-file>] [--max-length <max-length>] [--word-timestamps]

ARGUMENTS:
  <input-file>            Path to an audio or video file to transcribe.

OPTIONS:
  -l, --locale <locale>   (default: current)
  --censor                Replaces certain words and phrases with a redacted form.
  --txt/--srt/--vtt/--json
                          Output format for the transcription. (default: --txt)
  -o, --output-file <output-file>
                          Path to save the transcription output. If not provided,
                          output will be printed to stdout.
  -m, --max-length <max-length>
                          Maximum sentence length in characters. (default: 40)
  --word-timestamps       Include word-level timestamps in JSON output.
  -h, --help              Show help information.

Installation

Homebrew

brew install yap

Mint

mint install finnvoor/yap

Examples

Transcribe a YouTube video using yap and yt-dlp

yt-dlp "https://www.youtube.com/watch?v=ydejkIvyrJA" -x --exec yap

Summarize a video using yap and llm

yap video.mp4 | uvx llm -m mlx-community/Llama-3.2-1B-Instruct-4bit 'Summarize this transcript:'

Create SRT captions for a video

yap video.mp4 --srt -o captions.srt

Generate WebVTT subtitles

yap video.mp4 --vtt -o subtitles.vtt

Export JSON with word-level timestamps

yap video.mp4 --json --word-timestamps -o transcript.json

Live System Audio

yap listen transcribes system audio in real time — anything playing on your computer.

USAGE: yap listen [--locale <locale>] [--censor] [--txt] [--srt] [--vtt] [--json] [--max-length <max-length>] [--word-timestamps]

OPTIONS:
  -l, --locale <locale>   (default: current)
  --censor                Replaces certain words and phrases with a redacted form.
  --txt/--srt/--vtt/--json
                          Output format for the transcription. (default: --txt)
  -m, --max-length <max-length>
                          Maximum sentence length in characters for timed output
                          formats. (default: 40)
  --word-timestamps       Include word-level timestamps in JSON output.
  -h, --help              Show help information.

Screen Recording permission is required. Grant it to your terminal app in System Settings > Privacy & Security > Screen Recording.

Examples

# Transcribe system audio live
yap listen

# Pipe live transcription to another tool
yap listen | uvx llm 'Translate this to French:'

# Save system audio as VTT subtitles
yap listen --vtt > captions.vtt

Listen and Dictate

yap listen-and-dictate transcribes both system audio and microphone input simultaneously — perfect for meeting transcription.

USAGE: yap listen-and-dictate [--locale <locale>] [--censor] [--txt] [--srt] [--vtt] [--json] [--max-length <max-length>] [--mic-label <mic-label>] [--system-label <system-label>] [--word-timestamps]

OPTIONS:
  -l, --locale <locale>   (default: current)
  --censor                Replaces certain words and phrases with a redacted form.
  --txt/--srt/--vtt/--json
                          Output format for the transcription. (default: --txt)
  -m, --max-length <max-length>
                          Maximum sentence length in characters for timed output
                          formats. (default: 40)
  --mic-label <mic-label> Speaker label for microphone audio in timed output
                          formats. (default: Mic)
  --system-label <system-label>
                          Speaker label for system audio in timed output
                          formats. (default: System)
  --word-timestamps       Include word-level timestamps in JSON output.
  -h, --help              Show help information.

Both Screen Recording and Microphone permissions are required. Grant them to your terminal app in System Settings > Privacy & Security.

Examples

# Transcribe a video call (both sides)
yap listen-and-dictate

# Save a meeting transcript
yap listen-and-dictate > meeting.txt

# Save a meeting transcript as VTT with speaker labels
yap listen-and-dictate --vtt > meeting.vtt

# Use custom speaker labels
yap listen-and-dictate --vtt --mic-label Alice --system-label Bob > meeting.vtt

Dictation

yap dictate transcribes microphone input in real time.

USAGE: yap dictate [--locale <locale>] [--censor] [--txt] [--srt] [--vtt] [--json] [--max-length <max-length>] [--word-timestamps]

OPTIONS:
  -l, --locale <locale>   (default: current)
  --censor                Replaces certain words and phrases with a redacted form.
  --txt/--srt/--vtt/--json
                          Output format for the transcription. (default: --txt)
  -m, --max-length <max-length>
                          Maximum sentence length in characters for timed output
                          formats. (default: 40)
  --word-timestamps       Include word-level timestamps in JSON output.
  -h, --help              Show help information.

Microphone permission is required. Grant it to your terminal app in System Settings > Privacy & Security > Microphone.

Examples

# Dictate from your microphone
yap dictate

# Dictate and save to a file
yap dictate > notes.txt

MCP Server

yap includes an MCP server that exposes a transcribe tool, allowing any MCP-compatible agent to transcribe audio and video files.

Claude Code

claude mcp add yap -- yap mcp

Codex

codex mcp add yap -- yap mcp
Repositorios relacionados
ggml-org/whisper.cpp

Port of OpenAI's Whisper model in C/C++

C++MIT Licenseopenaispeech-to-text
53.5k6.1k
cjpais/Handy

A free, open source, and extensible speech-to-text application that works completely offline.

Rustcrates.ioMIT Licensespeech-to-texttauri-v2
handy.computer
31.2k2.8k
Zackriya-Solutions/meetily

Privacy first, AI meeting assistant with 4x faster Parakeet/Whisper live transcription, speaker diarization, and Ollama summarization built on Rust. 100% local processing. no cloud required. Meetily (Meetly Ai - https://meetily.ai) is the #1 Self-hosted, Open-source Ai meeting note taker for macOS & Windows. Understand How to write meeting minutes

Rustcrates.ioMIT Licensemeeting-minutesmeeting-notes
meetily.ai
30.5k3.3k
mozilla/DeepSpeech

DeepSpeech is an open source embedded (offline, on-device) speech-to-text engine which can run in real time on devices ranging from a Raspberry Pi 4 to high power GPU servers.

C++Mozilla Public License 2.0deep-learningmachine-learning
26.8k4.1k
mozilla-ai/llamafile

Distribute and run LLMs with a single file.

C++Othercross-platformgguf
docs.mozilla.ai/llamafile
25.9k1.6k
SYSTRAN/faster-whisper

Faster Whisper transcription with CTranslate2

PythonPyPIMIT Licensedeep-learninginference
25.3k2.1k
m-bain/whisperX

WhisperX: Automatic Speech Recognition with Word-level Timestamps (& Diarization)

PythonPyPIBSD 2-Clause "Simplified" Licenseasrspeech
23.9k2.4k
screenpipe/screenpipe

YC (S26) | Open Computer History | Record your screen continuously locally and provide context to your agents (Claude, Codex, Openclaw, Hermes, Runner...)

Rustcrates.ioOtheraicomputer-vision
screenpipe.com
21.5k2.2k
debpalash/VoiceStudio

VoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription & audiobook creation in 646 languages.

PythonPyPIGNU Affero General Public License v3.0ttsvoice-cloning
voicestudio.sh
21k2.6k
modelscope/FunASR

Open-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.

PythonPyPIMIT Licensepytorchspeech-recognition
funasr.com
20.2k2k
jianchang512/pyvideotrans

Translate the video from one language to another and embed dubbing & subtitles.

PythonPyPIGNU General Public License v3.0text-to-speechvideo-transition
pyvideotrans.com
18.9k2.3k
leon-ai/leon

🧠 Leon is your open-source personal assistant.

TypeScriptnpmMIT Licenseleonpersonal-assistant
getleon.ai
17.5k1.5k