voice-service

voice-service is a skill for Claude Code, Codex from ellmos-ai/bach. It costs 53 tokens per session (1,178 once invoked), scanned A, original, MIT.

A voice service that converts speech to text, turns text into speech, and detects a wake word. It supports online and offline speech engines, German neural voices, and saving audio to files.

In plain words
What is it for?
Transcribing audio, speaking responses, detecting a wake word, reporting voice-system status, and exporting speech as MP3, OGG, or WAV files.
Why use it?
It lets an application accept spoken commands and respond aloud, with fallbacks when optional libraries or microphone hardware are unavailable.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/ellmos-ai/bach/voice
Any agent
npx skills add ellmos-ai/bach --skill voice
Clone the repo
git clone --depth 1 https://github.com/ellmos-ai/bach

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for voice-service

README.md
[![agentmods](https://agentmods.dev/badge/skills/ellmos-ai/bach/voice.svg)](https://agentmods.dev/skills/ellmos-ai/bach/voice)
Your own site
<a href="https://agentmods.dev/skills/ellmos-ai/bach/voice"><img src="https://agentmods.dev/badge/skills/ellmos-ai/bach/voice.svg" alt="Measured on agentmods" height="20"></a>
Per session 53 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,178 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00053 $0.01178
Opus 5 $0.00026 $0.00589
Sonnet 5 $0.00011 $0.00236
Haiku 4.5 $0.00005 $0.00118

Measured 5d ago against content hash 40706d66c029, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

voice-service scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (voice_stt.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

wget https://github.com/rhasspy/piper/releases/download/v1.2.0/voice-de-de-thorsten-medium.tar.gz
system/hub/_services/voice/SKILL.md · 150 lines

How it starts

The opening of the file, as written. The whole thing — 150 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Voice Service

Status: PRODUCTION

Vollstaendige Implementation mit STT, TTS (inkl. File-Export), Wake-Word. Alle Komponenten haben graceful Fallbacks bei fehlenden Dependencies.

Features

  1. STT (Speech-to-Text): Whisper (online) oder Vosk (offline)
  2. TTS (Text-to-Speech):
    • pyttsx3 mit Voice-Selection (Zira bevorzugt) und Non-Blocking-Modus
    • NEU: Piper-TTS für hochwertige deutsche neuronale Stimmen
    • NEU: speak_to_file() - Text als MP3/OGG/WAV exportieren
  3. Wake-Word: openwakeword + pyaudio, Keyboard-Fallback bei fehlender Hardware
  4. VoiceService: Kombinierte Klasse mit Status-Reporting

Abhaengigkeiten (alle optional)

# STT Engines
pip install openai-whisper   # STT Option 1 (online, hohe Qualitaet)
pip install vosk             # STT Option 2 (offline)

# TTS Engines
pip install pyttsx3          # TTS Option 1 (Basic, Windows SAPI5)
pip install piper-tts        # TTS Option 2 (Neural, EMPFOHLEN fuer DE)

# Wake-Word
pip install openwakeword     # Wake-Word Detection
pip install pyaudio numpy    # Mikrofon fuer Wake-Word

# Optional: Audio-Konvertierung
# ffmpeg (fuer MP3/OGG Export)

Verwendung

Basis-Nutzung

from hub._services.voice.voice_stt import VoiceService

svc = VoiceService()

# Status aller Komponenten
status = svc.status()

# Text-to-Speech (Live)
svc.tts.speak("Hallo von BACH")
svc.tts.speak("Nicht blockierend", block=False)

# Speech-to-Text
text = svc.stt.transcribe_file("aufnahme.wav", language="de")

# Wake-Word (threaded)
thread, stop = svc.wakeword.listen_threaded(on_wake=lambda: print("Wach!"))
# ... spaeter: stop.set()

NEU: Text-to-File (für Telegram/Discord Voice-Nachrichten)

from hub._services.voice.voice_stt import VoiceTTS

# Mit pyttsx3 (Standard Windows-Stimmen)
tts = VoiceTTS(engine="pyttsx3")
tts.speak_to_file("Hallo von BACH!", "output.mp3", format="mp3")

# Mit Piper-TTS (hochwertige deutsche neuronale Stimmen)
# Voraussetzung: PIPER_MODEL Environment-Variable gesetzt
# z.B. export PIPER_MODEL=/path/to/de_DE-thorsten-medium.onnx
tts = VoiceTTS(engine="piper")
tts.speak_to_file("Hallo von BACH!", "output.ogg", format="ogg")

# Auto-Select (beste verfügbare Engine)
tts = VoiceTTS(engine="auto")
tts.speak_to_file("Test", "voice.mp3")

Read the full file on GitHub · 150 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 150 lines · 53 tokens per session scan A 40706d66c029

Subscribe to this mod's changes

voice-service is a skill published in the GitHub repository ellmos-ai/bach (7 stars, last pushed today), licensed MIT. It adds 53 tokens to every session and 1,178 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

csv-workbench

Analyze CSV files in /mnt/data and return concise numeric summaries.

openai/openai-agents-python · 17 tokens

md2pdf

Use when the user wants to convert one Markdown file into a publication-ready A4 PDF, especially when the source may contain Mermaid diagrams, ASCII diagrams, CJK text, tables, or pandoc/weasyprint edge cases. Works by copying the source to a pdf.md working file, converting diagrams, escaping PDF-breaking syntax…

KerberosClaw/kc_ai_skills · 123 tokens

data-science-analysis

Computes a numeric or categorical answer to a quantitative data-science question by cleaning and analyzing local data files (CSV, Excel, TSV, and scientific formats .npz/.fits/.h5) with pandas, numpy, and scipy. Use whenever a task ships its own dataset (in whatever local directory it provides) and asks you to derive…

agentscope-ai/QwenPaw-Data · 237 tokens

docutranslate

Use when translating documents locally via LLM — PDF, Word, Excel, Markdown, SRT subtitles with format preservation. DocuTranslate: LLM-powered multi-format local file translation tool with MCP server support.

znlgis/opengis-skills · 47 tokens

fsl-requirements-document

Generate, edit, and re-verify a human-readable requirements document (Markdown) from a checked FSL requirements/spec dialect file, using fslc document generate/claims/check. The agent is a non-normative editor and review-support assistant, never a compiler — it may only fill in the document's editable slot…

ymm-oss/fsl · 145 tokens

obsidian-knowledge

Use for any knowledge work in an Obsidian vault — capturing a quick note or link, organizing an Inbox, or turning bigger material (PDFs, docx, slides, syllabi, papers, transcripts, URL lists) into structured, teaching-quality notes. Works for any subject, adapts to the vault it's in, and does as much or as little…

Michael-OvO/obsidian-knowledge-agent · 146 tokens