African Speech Corpora MCP
African Speech Corpora MCP
Ein schreibgeschützter Server, der das Model Context Protocol implementiert – einen offenen Standard von Anthropic – über öffentliche Sprachkorpora für afrikanische Sprachen: zuerst Wolof, dazu Pulaar und Sereer.
Das Projekt ist Wolof-zuerst ausgerichtet. Der 2.0-Katalog enthält 14 Varianten: 11 Varianten aus Originalquellen und 3 Ableitungen. Pulaar (ful) und Sereer (srr) sind nur durch Kallaama-Varianten ohne lokale Metriken vertreten; das Projekt beansprucht keine Abdeckung von Swahili oder Amharisch. Die gebündelte Validierungssperre, erzeugt am 26. August 2026, macht 6 Hugging-Face-Varianten abfragbar. Ein späterer Validierungslauf kann naturgemäß einen anderen Zustand ergeben.
Der Server trainiert keine Modelle, lädt keine vollständigen Korpora herunter und schreibt nicht auf Hugging Face, OpenSLR, Kaggle, GitHub oder andere entfernte Quellen.
Was der Server misst
Die Qualitätspipeline hält die folgenden Stufen getrennt:
raw audio → usable audio → transcribed audio → audit-accepted audio → expert-verified audioRoh: eine Datei, die im beobachteten Schnappschuss vorhanden ist.
Verwendbar: eine Datei, die nach den quantifizierbaren Ausschlüssen der Prüfung verbleibt.
Transkribiert: Audio, das mit einer Transkription verknüpft ist.
Prüfung akzeptiert: eine ausdrücklich benannte Vereinigung von fachlich geprüftem Material und Material, das von der Prüfung nur als gültig angenommen wird.
Fachlich geprüft: nur
expert_auditedodersource_reported_expert. Eine „a priori“-Bewertung gelangt niemals in diese Stufe.
Sekunden sind die kanonische Darstellung der Dauer. Dezimalstunden und HH:MM:SS-Zeichenketten werden zur Serialisierungszeit abgeleitet. Jede geprüfte Metrik gibt ihren Umfang, ihre Quelle, ihre Methode, ihr Beobachtungsdatum und ihre Konfidenz an. Ein fehlender Wert bleibt null; er wird niemals auf null gesetzt. Von einem Projekt veröffentlichte Zahlen bleiben unter published_metrics, getrennt von lokalen Beobachtungen.
Related MCP server: dspace-mcp
Wolof-Schnappschuss 2026
Die maschinenlesbare Quelle ist assets/wolof-audit-2026.csv. Das Protokoll, die Einschränkungen und die Abweichungen von den TOTAL-Zellen der Quelltabelle sind in assets/wolof-audit-2026.md dokumentiert.
Sieben Wolof-Varianten haben eine lokale Beobachtung: ALFFA, FLEURS wo_sn, Kallaama Wolof, Urban Bus, Waxal Crowdsource, Wolof TTS Baamtu und WolBanking77. Die Summen werden aus diesen sieben Zeilen neu berechnet und niemals als redundante manuelle Summe gespeichert: 148.102 verwendbare Dateien, 64.609 transkribierte Dateien, 50.494 von der Prüfung akzeptierte Dateien, 2.329.382,06 Sekunden Audio, 515.185,06 transkribierte Sekunden und 302.048,06 von der Prüfung akzeptierte Sekunden.
Wichtige Einschränkungen:
die als „a priori“ beschriebenen Beobachtungen zu FLEURS, Urban Bus, Waxal, Wolof TTS und WolBanking77 sind
audit_assumed_valid, nicht fachlich geprüft;ALFFA hat in diesem Schnappschuss ausdrücklich null fachlich geprüfte Dateien;
die 153 Kallaama-Dateien sind lange Radio- oder Interviewaufnahmen, keine 153 Sprechbeiträge; 36 Dateien und 12:49:36 werden der
source_reported_expert-Grundlage des lokalen Protokolls zugeschrieben;Urban Bus enthält erhebliche französische Anteile ohne quantifizierte Rate und hat daher
language_purity=mixed_fr;Waxal trennt 517:38:05 Rohaudio, das insbesondere für SSL verwendbar ist, von nur 13:41:28 transkribiertem Audio für überwachtes ASR;
der lokale Wolof-TTS-Baamtu-Schnappschuss – 36.009 Dateien und 37:04:49 – unterscheidet sich von der gerundeten öffentlichen Metrik, und dieses TTS-Korpus ist standardmäßig von ASR ausgeschlossen;
WolBanking77 unterscheidet 2.563 beobachtete Audiodateien von den 9.791 anderswo gemeldeten Textphrasen;
Afrivoice veröffentlicht 530,74 Stunden Wolof-Audio, darunter 102,96 transkribierte Stunden. Dies sind quellenveröffentlichte Zahlen, keine Messungen aus der lokalen Prüfung 2026 und kein Beleg für fachliche Prüfung. Der Datensatz ist auf Hugging Face automatisch gesperrt, sodass seine Dateien, sein Schema, seine Aufteilungen und seine Dauern nicht unabhängig geprüft werden können, ohne seine Zugriffsbedingungen zu akzeptieren und ein Token bereitzustellen; er bleibt daher
audit_status=pending;da das genaue Beobachtungsdatum der Quelle nicht verfügbar ist, hat
observed_at=2026absichtlich eine Genauigkeit nur auf Jahresebene.
Installation
Das Paket erfordert Python 3.11 oder neuer. Python 3.12 wird empfohlen und unten ausdrücklich ausgewählt, damit die virtuelle Umgebung nicht versehentlich einen älteren Systeminterpreter wie Python 3.9 erbt:
git clone https://github.com/papasega/african-speech-mcp.git
cd african-speech-mcp
python3.12 --version
python3.12 -m venv .venv
source .venv/bin/activate
python --version
python -m pip install -e .Beide Versionsbefehle sollten Python 3.12.x melden. Das Erstellen der Umgebung mit python -m venv .venv ist nur sicher, wenn diese python-ausführbare Datei bereits Python 3.11 oder neuer ist. Wenn die Installation mit einem Fehler wie diesem fehlschlägt:
ERROR: Package 'african-speech-mcp' requires a different Python: 3.9.6 not in '>=3.11'dann wurde die virtuelle Umgebung mit Python 3.9.6 erstellt. Deaktivieren Sie sie, entfernen oder benennen Sie das lokale .venv um, installieren Sie bei Bedarf Python 3.12 und erstellen Sie die Umgebung mit python3.12 -m venv .venv neu. Eine virtuelle Umgebung behält den Interpreter, mit dem sie erstellt wurde; das Aktivieren aktualisiert Python nicht.
Der stdio-Server startet ohne Argumente:
african-speech-mcpEr kann auch explizit gestartet werden:
african-speech-mcp serve --transport stdio
african-speech-mcp serve --transport streamable-httpBeispielkonfiguration für Claude Desktop nach der Installation des Pakets, vorzugsweise mit einem absoluten Pfad:
{
"mcpServers": {
"african-speech-corpora": {
"command": "/absolute/path/to/.venv/bin/african-speech-mcp"
}
}
}Dieses Refactoring veröffentlicht das Paket nicht. Verwenden Sie uvx oder eine PyPI-Kennung erst, wenn eine Version ausdrücklich veröffentlicht wurde.
MCP-Werkzeuge
Alle acht Werkzeuge deklarieren read_only_hint=true, destructive_hint=false und idempotent_hint=true.
Werkzeug | Zweck |
| Varianten, Prüfstatus, empfohlene Verwendung und Validierungsstatus auflisten. |
| Zählungen, Dauern, Prüfungsgrundlage, Warnungen und getrennte veröffentlichte Zahlen zurückgeben. |
| Einen Plan erstellen, ohne Ableitungen doppelt zu zählen oder Benchmarks standardmäßig einzuschließen. |
| Nur filtern, wenn ein Manifest auf Zeilenebene existiert; andernfalls Ausschlüsse verweigern. |
| Qualität, Domäne, Sprachreinheit, Lizenz und Aktualität der Metriken vergleichen. |
| Zeilen in einer Variante durchsuchen, deren entferntes Schema validiert wurde. |
| Größen nur für die Konfiguration der Variante zurückgeben und Schemaabweichungen melden. |
| Lizenz, Zitat und übergeordnete Zitate für eine Ableitung zurückgeben. |
Konzeptionelle Beispiele:
audit_corpus(corpus="waxal-crowdsource")
plan_training_set(language="wol", task="asr", quality="transcribed")
plan_training_set(language="wol", task="asr", quality="expert_verified")
plan_training_set(
language="wol",
task="asr",
quality="audit_accepted",
include_mixed_language=true,
)
filter_segments(
corpus="waxal-crowdsource",
exclude_duplicates=true,
exclude_non_wolof=true,
exclude_corrupt=true,
)Der letzte Aufruf gibt derzeit filter_available=false zurück. Aggregatsummen belegen, dass Waxal 430 Duplikate und 22 beschädigte oder nicht-wolofische Dateien enthält, aber sie liefern keine Zeilenkennungen. Der Server weigert sich daher, so zu tun, als hätte er diese Zeilen entfernt.
Semantik von plan_training_set
quality akzeptiert:
any: nach Aufgabe und Lizenz auswählen, ohne Transkription zu verlangen;transcribed: tatsächlich transkribierte Dauer verwenden;audit_accepted: fachlich geprüftes und als gültig angenommenes Material einschließen, mit sichtbarer Aufschlüsselung und Warnung;expert_verified: nur echte fachliche Prüfungsgrundlagen verwenden;wolof_only:mixed_fr,mixed,unknownund Varianten ohne ausreichende Belege für Sprachreinheit ausschließen.
metric_source ist entweder latest_audit (die Voreinstellung) oder published. Varianten ohne bekannte Dauer bleiben in hours_unknown_for aufgeführt. FLEURS ist ein Benchmark und bleibt außerhalb des Trainings, sofern nicht include_benchmarks=true gesetzt ist. Urban Bus erfordert include_mixed_language=true. TTS-Varianten bleiben außerhalb von ASR, sofern nicht ausdrücklich aktiviert, und Ableitungen werden niemals zu ihren übergeordneten Varianten hinzugefügt. Unbekannte, nicht-kommerzielle, Share-Alike- oder unbestätigte Lizenzen erzeugen entsprechende Warnungen; commercial_use=null wird niemals als kommerziell kompatibel dargestellt.
Dauerhafte Hugging-Face-Validierung
african-speech-mcp validate
african-speech-mcp validate --write
african-speech-mcp validate --output validation-lock.jsonDie Validierung prüft die Datensatzkennung, die Konfiguration, die Aufteilungen, die Transkriptionsspalte und jede deklarierte Sprachspalte. Die Sperre wird durch atomaren Ersatz geschrieben und zeichnet checked_at, beobachtete Schemainformationen und einen stabilen Fingerabdruck auf. Sie ist außerdem an den Katalog-Hash gebunden, sodass der Server eine veraltete Sperre ablehnt.
Standardmäßig erstellt --write validation-lock.json im aktuellen Verzeichnis, ohne das installierte Paket zu verändern. Zur späteren Verwendung:
export ASM_VALIDATION_LOCK_PATH="$PWD/validation-lock.json"
african-speech-mcpMögliche Zustände sind unverified, verified, gated, unavailable, schema_mismatch und quality_blocked. Eine antwortende Kennung wird niemals als verified markiert, wenn die erwartete Konfiguration oder Spalte fehlt. Für Afrivoice setzen Sie ASM_HF_TOKEN vor der Validierung lokal; das Token wird weder serialisiert noch protokolliert.
corpus_stats filtert streng nach Konfiguration, sodass FLEURS wo_sn niemals eine andere Sprache einschließt. Eine mehrsprachige Verteilung ohne separate Konfiguration muss eine Sprachspalte und akzeptierte Werte deklarieren. Wenn der Server diesen Filter nicht garantieren kann, lehnt er die Anfrage ab oder gibt eine ausdrückliche Warnung zurück.
Katalog und Architektur
src/african_speech_mcp/
├── audit.py # audited CSV, duration formats, deterministic aggregation
├── catalog.py # Pydantic v2 variants and invariants
├── cli.py # serve, validate, catalog-show
├── config.py # ASM_* settings
├── hf_client.py # GET only, retries, bounded concurrency
├── models.py # structured responses
├── server.py # eight MCP tools
├── validation.py # schema inspection and atomic lock files
└── data/
├── corpora.json # single canonical catalog
└── validation-lock.jsonEs gibt keine zweite corpora.json auf oberster Ebene mehr. Die Prüf-CSV bleibt unter assets/ kanonisch, und Hatch nimmt sie deterministisch in das Wheel auf. Tests prüfen Summen und Verweise zwischen CSV und Katalog.
Nützliche Variablen sind ASM_CATALOG_PATH, ASM_VALIDATION_LOCK_PATH, ASM_AUDIT_LOG_PATH, ASM_HF_TOKEN, ASM_REQUEST_TIMEOUT_S, ASM_REQUEST_RETRIES und ASM_VALIDATION_CONCURRENCY. Laufzeitprotokolle gehen an stderr, sodass stdout für das stdio-Protokoll reserviert bleibt.
Beitragen einer Prüfung oder eines Manifests
Eine neue Prüfung muss:
Einheitenzeilen zur CSV hinzufügen, niemals eine manuelle TOTAL-Zeile;
audit_id,observed_at,source_reference, Methode, Konfidenz und Prüfungsgrundlage bereitstellen;eine beobachtete Null von einem fehlenden Wert unterscheiden;
die Prüfung von der passenden Variante referenzieren;
Einschränkungen in Markdown dokumentieren und Konsistenztests hinzufügen.
Um echtes Filtern zu ermöglichen, stellen Sie ein versioniertes Manifest mit mindestens Folgendem bereit:
audit_id,corpus_key,revision,row_id,audio_path,is_duplicate,is_empty,is_corrupt,is_wolof,transcript_quality,reasonKennungen müssen aus dem geprüften Schnappschuss stammen. Sie dürfen niemals aus Aggregatsummen erfunden werden.
Entwicklung und Release-Vorbereitung
python -m pip install -e ".[dev]"
ruff check src tests scripts
pytest -q
python -m buildCI führt diese Prüfungen auf Python 3.11 und 3.12 aus, installiert das gebaute Wheel in einer sauberen Umgebung und testet sowohl die CLI als auch einen echten MCP-stdio-Austausch. Version 2.0.0 ist ein dokumentiertes, bahnbrechendes Release: Die öffentliche Einheit ist jetzt eine einsprachige, einaufgabige, einkonfigurige Variante mit strukturierteren Qualitätsantworten.
Lizenz
Der Servercode ist unter Apache-2.0 lizenziert. Jedes Korpus behält seine eigene Lizenz. Katalogeinträge, die mit TO BE CONFIRMED oder SEE DATASET ... markiert sind, bleiben absichtlich ungewiss und müssen vor jeder Verwendung, insbesondere der kommerziellen, gegen die Primärquelle geprüft werden.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA read-only MCP connector for searching, fetching, and citing provenance-tracked legal corpora with verifiable content hashes.Apache 2.0
- AlicenseNot gradedqualityAmaintenanceA read-only MCP server that enables natural language querying of DSpace 7+ repositories via the REST API, allowing users to search, retrieve items, and analyze repository data.2MIT
- AlicenseAqualityBmaintenanceEnables automated audio restoration, transcription, and speaker diarization via MCP tools for queuing files, monitoring progress, and retrieving speaker-labeled transcripts.9MIT
- AlicenseAqualityCmaintenanceProvides read access to community-written summaries, scores, and reviews of open-source repositories via the RepoCritics corpus. Enables search and retrieval of wiki pages, reviews, metadata, and AI reports for repositories.7280MIT
Related MCP Connectors
Read-only access to the Islam West Africa Collection via Hugging Face datasets.
AI-manageable audio CDN: upload, transcode, normalize, stream & deliver audio, plus grounded docs.
Multi-engine scholarly research server for search, traversal, full text, and reading lists.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/papasega/african-speech-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server