
African Speech Corpora Quality Audit
io.github.papasega由 GitHub 帳號 papasega 發布v2.0.0更新於 Oct 27, 2026
Read-only, provenance-aware selection of Wolof speech corpora by measured quality.
發布方自己的服務:audit.domains - Domain Valuation
概覽
唯讀的 MCP 伺服器,依實測品質、來源與授權稽核並篩選非洲語言語音語料庫,以沃洛夫語為主。
- 可以做什麼
- 列出語料庫變體及其稽核狀態、建議用途與驗證狀態
- 稽核單一語料庫的檔案數、時長、驗證依據、警告及另行列出的公開數據
- 依語言、任務與品質等級規劃訓練集,避免重複計算衍生集或混入基準集
- 比較語料庫的品質、領域、語言純度、授權與指標新鮮度
- 僅在具備已驗證結構或列級清單時搜尋與篩選資料列
- 回傳授權與引用資訊,包括衍生集的父層引用
- 適用情境
- 適合在為非洲語言 ASR、TTS 或自監督學習挑選與記錄語音資料集時使用,需要的是品質、來源與授權事實而非原始下載。也適合規劃訓練集,或確認某語料庫是專家驗證、已轉寫還是僅被假定有效。
- 執行需求
- 本機 Python 套件 african-speech-mcp,需 Python 3.11 或更新版本,透過 stdio 執行。選用環境變數:ASM_CATALOG_PATH、ASM_VALIDATION_LOCK_PATH、ASM_AUDIT_LOG_PATH,以及用於受限 Hugging Face 資料集的 ASM_HF_TOKEN。進行 Hugging Face 結構驗證需要網路存取。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 African Speech Corpora Quality Audit,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
African Speech Corpora MCP
A read-only server implementing the Model Context Protocol, an open standard created by Anthropic, over public speech corpora for African languages: Wolof first, plus Pulaar and Sereer.
The project is Wolof-first. The 2.0 catalog contains 14 variants: 11 variants of original sources and 3 derivatives. Pulaar (ful) and Sereer (srr) are represented only by Kallaama variants without local metrics; the project does not claim Swahili or Amharic coverage. The bundled validation lock, generated on August 26, 2026, makes 6 Hugging Face variants queryable. A later validation run may naturally produce a different state.
Version 2.0.0 is distributed on PyPI and published as io.github.papasega/african-speech-corpora in the official MCP Registry.
The server does not train models, download complete corpora, or write to Hugging Face, OpenSLR, Kaggle, GitHub, or any other remote source.
What the server measures
The quality pipeline keeps the following stages separate:
- Raw: a file present in the observed snapshot.
- Usable: a file remaining after the audit's quantifiable exclusions.
- Transcribed: audio associated with a transcription.
- Audit accepted: an explicitly named union of expert-verified material and material only assumed valid by the audit.
- Expert verified: only
expert_auditedorsource_reported_expert. An “a priori” assessment never enters this level.
Seconds are the canonical duration representation. Decimal hours and HH:MM:SS strings are derived at serialization time. Every audited metric states its scope, source, method, observation date, and confidence. A missing value remains null; it is never converted to zero. Figures published by a project remain under published_metrics, separate from local observations.
2026 Wolof snapshot
The machine-readable source is assets/wolof-audit-2026.csv. The protocol, limitations, and discrepancies with the source table's TOTAL cells are documented in assets/wolof-audit-2026.md.
Seven Wolof variants have a local observation: ALFFA, FLEURS wo_sn, Kallaama Wolof, Urban Bus, Waxal crowdsource, Wolof TTS Baamtu, and WolBanking77. Totals are recomputed from these seven rows and are never stored as a redundant manual total: 148,102 usable files, 64,609 transcribed files, 50,494 audit-accepted files, 2,329,382.06 seconds of audio, 515,185.06 transcribed seconds, and 302,048.06 audit-accepted seconds.
Important limitations:
- the FLEURS, Urban Bus, Waxal, Wolof TTS, and WolBanking77 observations described as “a priori” are
audit_assumed_valid, not expert verified; - ALFFA explicitly has zero expert-verified files in this snapshot;
- the 153 Kallaama files are long radio or interview recordings, not 153 speech turns; 36 files and 12:49:36 are attributed to the local protocol's
source_reported_expertbasis; - Urban Bus contains substantial French content without a quantified rate and therefore has
language_purity=mixed_fr; - Waxal separates 517:38:05 of raw audio, usable notably for SSL, from only 13:41:28 transcribed for supervised ASR;
- the local Wolof TTS Baamtu snapshot—36,009 files and 37:04:49—is distinct from the rounded public metric, and this TTS corpus is excluded from ASR by default;
- WolBanking77 distinguishes 2,563 observed audio files from the 9,791 text phrases reported elsewhere;
- Afrivoice publishes 530.74 hours of Wolof audio, including 102.96 transcribed hours. These are source-published figures, not measurements from the 2026 local audit and not evidence of expert verification. The dataset is auto-gated on Hugging Face, so its files, schema, splits, and durations cannot be independently checked without accepting its access conditions and supplying a token; it therefore remains
audit_status=pending; - because the exact source observation date is unavailable,
observed_at=2026intentionally has year-only precision.
Installation
The package requires Python 3.11 or newer. Python 3.12 is recommended and is selected explicitly below so that the virtual environment does not accidentally inherit an older system interpreter such as Python 3.9:
Install the published release from PyPI:
For development, install an editable checkout with the development dependencies:
Both version commands should report Python 3.12.x. Creating the environment with python -m venv .venv is safe only when that python executable is already Python 3.11 or newer. If installation fails with an error such as:
then the virtual environment was created with Python 3.9.6. Deactivate it, remove or rename that local .venv, install Python 3.12 if necessary, and recreate the environment with python3.12 -m venv .venv. A virtual environment keeps the interpreter with which it was created; activating it does not upgrade Python.
The stdio server starts with no arguments:
It can also be started explicitly:
Example Claude Desktop configuration after installing the package, preferably using an absolute path:
Version 2.0.0 is published on PyPI and can be installed with pip. The repository installation remains the appropriate choice for development or unreleased changes.
MCP tools
All eight tools declare read_only_hint=true, destructive_hint=false, and idempotent_hint=true.
Conceptual examples:
The last call currently returns filter_available=false. Aggregate totals establish that Waxal contains 430 duplicates and 22 corrupt or non-Wolof files, but they provide no row identifiers. The server therefore refuses to pretend that it removed those rows.
plan_training_set semantics
quality accepts:
any: select by task and license without requiring transcription;transcribed: use actually transcribed duration;audit_accepted: include expert and assumed-valid material, with a visible breakdown and warning;expert_verified: use only genuinely expert verification bases;wolof_only: excludemixed_fr,mixed,unknown, and variants without sufficient language-purity evidence.
metric_source is either latest_audit (the default) or published. Variants without a known duration remain listed in hours_unknown_for. FLEURS is a benchmark and stays out of training unless include_benchmarks=true. Urban Bus requires include_mixed_language=true. TTS variants stay out of ASR unless explicitly enabled, and derivatives are never added to their parents. Unknown, non-commercial, share-alike, or unconfirmed licenses produce appropriate warnings; commercial_use=null is never presented as commercially compatible.
Persistent Hugging Face validation
Validation checks the dataset identifier, config, splits, transcription column, and any declared language column. The lock is written through atomic replacement and records checked_at, observed schema information, and a stable fingerprint. It is also bound to the catalog hash, so the server rejects a stale lock.
By default, --write creates validation-lock.json in the current directory without modifying the installed package. To use it afterward:
Possible states are unverified, verified, gated, unavailable, schema_mismatch, and quality_blocked. A responding identifier is never marked verified when the expected config or column is missing. For Afrivoice, set ASM_HF_TOKEN locally before validation; the token is neither serialized nor logged.
corpus_stats filters strictly by config, so FLEURS wo_sn never includes another language. A multilingual distribution without a separate config must declare a language column and accepted values. When the server cannot guarantee that filter, it refuses the request or returns an explicit warning.
Catalog and architecture
There is no longer a second root-level corpora.json. The audit CSV remains canonical under assets/, and Hatch includes it deterministically in the wheel. Tests check totals and references between the CSV and catalog.
Useful variables include ASM_CATALOG_PATH, ASM_VALIDATION_LOCK_PATH, ASM_AUDIT_LOG_PATH, ASM_HF_TOKEN, ASM_REQUEST_TIMEOUT_S, ASM_REQUEST_RETRIES, and ASM_VALIDATION_CONCURRENCY. Runtime logs go to stderr so that stdout remains reserved for the stdio protocol.
Contributing an audit or manifest
A new audit must:
- add unit rows to the CSV, never a manual TOTAL row;
- provide
audit_id,observed_at,source_reference, method, confidence, and verification basis; - distinguish an observed zero from a missing value;
- reference the audit from the matching variant;
- document limitations in Markdown and add consistency tests.
To enable real filtering, provide a versioned manifest with at least:
Identifiers must come from the audited snapshot. They must never be invented from aggregate counts.
Development and release preparation
CI runs these checks on Python 3.11 and 3.12, installs the built wheel in a clean environment, and tests both the CLI and a real MCP stdio exchange. Version 2.0.0 is a documented breaking release: the public unit is now a single-language, single-task, single-config variant with more structured quality responses.
Publishing a non-prerelease GitHub Release runs .github/workflows/publish-pypi.yml. The workflow verifies the attached distributions, publishes them to PyPI through Trusted Publishing, then validates and publishes the matching server.json to the official MCP Registry through GitHub OIDC. No long-lived PyPI or MCP Registry token is stored. If PyPI succeeded but the registry step failed, rerun the workflow manually with the same tag and registry_only=true; an already active registry version is detected and treated as success.
License
The server code is licensed under Apache-2.0. Each corpus retains its own license. Catalog entries marked TO BE CONFIRMED or SEE DATASET ... intentionally remain uncertain and must be checked against the primary source before any use, especially commercial use.
來源:README.md,提交 2649f11
工具
0版本歷史
1- v2.0.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Audit 整合
audit.domains - Domain Valuation
domains.audit官方發布者
確定性的網域名稱估值服務:提供公允價值區間、真實可比成交紀錄、可用性查詢,以及經 DNS 驗證的待售網域市場。
Revenue Agent — OpenAPI Audit & Change Detection
news.prh官方發布者
一個遠端 MCP 端點,用於稽核 OpenAPI 規格並偵測 API 變更,每次分析透過 Base 上的 x402 收取 0.10 USDC。

SEO Audit & Broken Link Checker
由 GitHub 帳號 prometheus-maker 發布
由 Apify 託管的 MCP 伺服器,用來稽核網站頁面的 SEO 中繼資料並找出失效連結與圖片,回傳每頁評分。

FinePrint AI Legal Risk & Contract Audit MCP Server
由 GitHub 帳號 RitualDev-Lab 發布
在本機記憶體中執行的合約風險掃描器,為編碼代理評估法律合約、NDA 與租約風險並產生修訂建議。

Mcp Supply Audit
由 GitHub 帳號 kimmawla 發布
把 MCP 伺服器當成供應鏈產物來稽核:登錄檔項目、PyPI/npm 套件、用戶端設定與工具定義,全為唯讀靜態檢查。