Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 2.5.0 · 2026-07-31 11:17 UTC

DePasqualeOrg / mlx-audio-plus

Python tools for text to speech (TTS), speech to text (STT), and speech to speech (STS) powered by MLX

PythonMIT★ 44 Sterne⑂ 6 Forksseit Nov. 2025ForkAuf GitHub ansehen ↗

DePasqualeOrg/mlx-audio-plus erreicht einen Gesundheitsindex von 53 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (64/100) ab, am schwächsten bei Community & Adoption (29/100). Zuletzt vor 82 Tagen aktualisiert. 2 Mitwirkende tragen den Großteil der jüngsten Arbeit.

53
gesamt / 100
Mittel

Software-Gesundheitsindex

Metriken werden auf einer standardisierten Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr gewichtetes Mittel, kalibriert auf die Verteilung des öffentlichen Registers, sodass die Stufen Perzentilbedeutung tragen; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze Gefährdet von 34.

53
Außergewöhnlich93-100Die Spitzengruppe des Registers (≈ obere 5 %); erfüllt im Wesentlichen alle geprüften Kriterien
Exzellent80-92Durchgehend stark; geringfügige Lücken
Gut65-79Gesund; Lücken sind begrenzt und beherrschbar
Mittel50-64Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Schwach35-49Wesentliche Schwächen in mehreren Bereichen
Gefährdet20-34Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-19Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Der gewichtete Gesamtwert 52 wird auf der veröffentlichten Indexskala auf 53 kalibriert (Register-Kalibrierung 2026-08-02).

Eigentümerschaft

AnthonyPersönliches Konto
0 Follower189 öffentliche Reposseit Jan. 2017

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlicht
PyPImlx-audio-plus0.1.8-9vor 203 Tagen

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

64Mittel · 21 % des Gesamtindex
Wie die Bewertung erfolgt
18/36Push-Aktualität — letzter Push vor 82 Tagen
18/36Commit-Rhythmus — 26/52 Wochen mit Commits
18/18Commit-Volumen — 194 Commits im letzten Jahr
1/10OpenSSF Scorecard: Maintained — 1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1
Verwendete Eingangsdaten
commits_last_year194
human_commit_share1
days_since_last_push82
active_weeks_last_year26
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 9 Releases veröffentlicht
16.2/36Release-Aktualität — letztes Release vor 203 Tagen
27/27Release-Rhythmus — ein Release etwa alle 4,3 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count9
latest_release_tagv0.1.8
releases_from_tagsnein
days_since_latest_release203
mean_days_between_releases4,3
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

29Gefährdet · 17 % des Gesamtindex
Wie die Bewertung erfolgt
26.5/60Stars — 44 Stars
5.8/25Forks — 6 Forks
0/15Watcher — 1 Watcher
Verwendete Eingangsdaten
forks6
stars44
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
0/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmenein
has_licensenein
readme_badges
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
readme_badge_services
has_pull_request_templatenein

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

63Mittel · 23 % des Gesamtindex
Wie die Bewertung erfolgt
25.2/54Bus-Faktor — 2 Beitragende decken die Hälfte aller Commits ab
13.6/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 39 % der Commits
13.5/13.5Breite der Beitragenden — 39 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 5 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor2
contributors_sampled39
top_contributor_share0,394
Wie die Bewertung erfolgt
42/42Issue-Lösungsquote — 100 % der Issues geschlossen
10/30PR-Annahme — 1/3 entschiedene PRs gemergt
0/13Newcomer PR acceptance — kein PR eines Erstbeitragenden in 30 Tagen entschieden
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs1
open_issues0
closed_issues1
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio1
closed_unmerged_prs2
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): newcomer_pr_acceptance. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
0/25Reichweite des Inhabers — 0 Follower von DePasqualeOrg
25/25Kontohistorie — 189 öffentliche Repos, Kontoalter ca. 9 Jahre
Verwendete Eingangsdaten
followers0
owner_typeUser
is_verified
owner_loginDePasqualeOrg
public_repos189
account_age_days3.469
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

91Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf pypi
26/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 203 Tagen
20/20Versionshistorie — 9 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesmlx-audio-plus
ecosystemspypi
any_deprecatednein
min_days_since_publish203

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

58Mittel · 19 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 2 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration
9.6/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 1 merged PRs checked by a CI test -- score normalized to 0
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_configja

Dokumentation

35Schwach
Wie die Bewertung erfolgt
0/30README
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
0/10Repository-Beschreibung
10/10Topics — 12 Topics
0/10Wiki
Verwendete Eingangsdaten
topicsai, audio, machine-learning, mlx, python, speech-to-speech, speech-to-text, sst, sts, text-to-speech, tts, macos
has_wikinein
homepage
has_readmenein
has_docs_dirja
has_descriptionnein

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

39Schwach · 16 % des Gesamtindex

Sicherheitslage

33Gefährdet
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — 0 out of 1 merged PRs checked by a CI test -- score normalized to 0
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 5 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
0.8/7.5Maintained — 1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1
0/5Packaging — keine Daten
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,3
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): packaging, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
8.1/35Direkte Abhängigkeiten ohne bekannte Advisories — 1 betroffen: transformers 4.57.6 (critical 9.6)
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
32.3/40Keine offenen Advisories — 1 Paket(e) mit Advisory seit über 90 Tagen unbehandelt; ältestes vor 219 Tagen veröffentlicht
Verwendete Eingangsdaten
sourceosv
advisories7
affected_packages1
assessed_packages50
unassessed_packages0
affected_by_severitycritical 1
direct_affected_packages1
Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von pypi:mlx-audio-plus@0.1.8 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 50 Paketen. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Trägt ein bewusst kleines Gewicht (4 %): Agenten-Tooling ist ein echtes Pflegesignal, doch ein Repository ohne jedes Signal kann weiterhin 100/100 erreichen.

56Mittel · 4 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — .claude/CLAUDE.md, AGENTS.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 79 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,79
agent_instruction_files.claude/CLAUDE.md, AGENTS.md
agent_instruction_max_bytes1.892
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration
0/11Statische Typprüfung
0/10Reproduzierbare Umgebung
8/10Belegte Agentenpraxis — 4 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfiles
has_dockerfilenein
typed_languagenein
bootstrap_files
has_devcontainernein
has_linter_configja
typecheck_configs
agent_commit_share0,04
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
0/45Typprüfbarer Code — Python ohne Typprüfungs-Konfiguration
54.6/55Handhabbare Dateigrößen — 3/390 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languagePython
largest_source_bytes119.408
source_files_sampled390
oversized_source_files3
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

44GitHub-Sterne
39Mitwirkende
194Commits, letzte 12 Monate
82Tage seit letztem Push
9Releases
2Bus-Faktor
0offene Issues
PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Community profile unavailable
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 6 ⇿
0Sterne
6Forks
2Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

123456612025-122026-032026-07
Major 0Minor 0Patch 2
OpenSSF Scorecard 3.3 / 10
3.3Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-31 11:17 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
0CI-Tests0 out of 1 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 5 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
1Maintained1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1
k. A.Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 12
RegistryPaketVersionsvorgabeManifest
PyPImlx>=0.25.2pyproject.toml
PyPInumpy>=1.26.4pyproject.toml
PyPIhuggingface_hub>=0.27.0pyproject.toml
PyPItransformers>=4.49.0,<5.0.0pyproject.toml
PyPIhf_transferpyproject.toml
PyPImlx-lm>=0.18.0,<0.30.0pyproject.toml
PyPItqdm>=4.67.1pyproject.toml
PyPIsounddevice>=0.5.1pyproject.toml
PyPIsoundfile>=0.13.1pyproject.toml
PyPIpyloudnorm>=0.1.1pyproject.toml
PyPIlibrosa==0.11.0pyproject.toml
PyPIprotobuf>=6.33.5pyproject.toml
Alle Abhängigkeiten nicht erhoben

Der aufgelöste Abhängigkeitssatz konnte für diesen Bericht nicht erhoben werden: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Abhängigkeits-Advisories 1

Die Installation von pypi:mlx-audio-plus@0.1.8 zieht 50 Pakete nach sich, direkt und transitiv: 1 tragen bekannte Advisories, davon 1 direkte Abhängigkeiten.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
transformers4.57.6direktkritisch75.5.0

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "ai",
        "audio",
        "machine-learning",
        "mlx",
        "python",
        "speech-to-speech",
        "speech-to-text",
        "sst",
        "sts",
        "text-to-speech",
        "tts",
        "macos"
      ],
      "is_fork": true,
      "size_kb": 2861,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "Shell": 6694,
        "Python": 3716903
      },
      "pushed_at": "2026-05-09T17:11:09Z",
      "created_at": "2025-11-24T15:52:02Z",
      "owner_type": "User",
      "updated_at": "2026-07-29T14:02:46Z",
      "description": "Python tools for text to speech (TTS), speech to text (STT), and speech to speech (STS) powered by MLX",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Anthony",
      "type": "User",
      "login": "DePasqualeOrg",
      "company": null,
      "location": null,
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/25420077?v=4",
      "created_at": "2017-01-29T18:52:13Z",
      "is_verified": null,
      "public_repos": 189,
      "account_age_days": 3469
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.1.8",
          "kind": "patch",
          "published_at": "2026-01-08T23:31:22Z"
        },
        {
          "tag": "v0.1.7",
          "kind": "patch",
          "published_at": "2025-12-22T17:41:47Z"
        },
        {
          "tag": "v0.1.6",
          "kind": "patch",
          "published_at": "2025-12-17T07:57:34Z"
        },
        {
          "tag": "v0.1.5",
          "kind": "patch",
          "published_at": "2025-12-16T21:42:47Z"
        },
        {
          "tag": "v0.1.4",
          "kind": "patch",
          "published_at": "2025-12-14T14:27:40Z"
        },
        {
          "tag": "v0.1.3",
          "kind": "patch",
          "published_at": "2025-12-11T16:48:38Z"
        },
        {
          "tag": "v0.1.2",
          "kind": "patch",
          "published_at": "2025-12-09T19:02:29Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2025-12-05T22:31:33Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2025-12-05T22:31:10Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "4c9ec6a8489e790b5ba8964ab1f1d63150476f9f",
          "body": null,
          "is_bot": false,
          "headline": "Fix FunASR",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-05-09T17:10:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6dfaa2c2dc84876b5dbad8007ecd47099060acc",
          "body": null,
          "is_bot": false,
          "headline": "Improve TTS generate helper compatibility and seeding",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-04-10T12:49:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce39134c9d9c6dfc6e7449c31227d281dea67be1",
          "body": null,
          "is_bot": false,
          "headline": "Align CosyVoice3 MLX implementation with original PyTorch",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-04-10T12:48:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8dca3a148b9da170b739ed17c5bcea0727d7d40a",
          "body": null,
          "is_bot": false,
          "headline": "Fix CosyVoice3 text formatting for all inference modes (#3)",
          "author_name": "Anthony",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-02-28T19:05:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e11f6e57ca2cecf7aab72590469bec7f775c3b0e",
          "body": null,
          "is_bot": false,
          "headline": "Remove mlx-audio[all] dependency from core dependencies",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-02-28T18:18:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4b483bbae4e0cd5d10bde046191b6d7e87825f1",
          "body": null,
          "is_bot": false,
          "headline": "Update Claude context",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-02-28T15:20:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b6e85014023897e6b5bdad51071249a1b30f62e",
          "body": "The fork's tokenizer.py was missing the MTLTokenizer class and\nmultilingual text processing helpers that upstream added for\nChatterbox multilingual support.",
          "is_bot": false,
          "headline": "Sync Chatterbox tokenizer with upstream",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T15:20:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9117e9c2dabdfc22ae4b02ec31bfeb39b708d45a",
          "body": "The module was renamed from s3 to s3tokenizer but the test import\nwasn't updated.",
          "is_bot": false,
          "headline": "Fix S3TokenizerV2 test import path",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-02-28T15:20:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd6e0128235d84c4f515123558b91c4874140021",
          "body": null,
          "is_bot": false,
          "headline": "Add Echo TTS. (#525)",
          "author_name": "Lucas Newman",
          "author_login": "lucasnewman",
          "committed_at": "2026-02-28T13:05:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c4c38786c7e90e9bcb68688c5250700dc467ada",
          "body": "… (#522)",
          "is_bot": false,
          "headline": "feat(stt): add system_prompt parameter to Qwen3ASR generation methods…",
          "author_name": "chris-schra",
          "author_login": "chris-schra",
          "committed_at": "2026-02-28T13:05:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10c42cce46be794976a56c52dfc3270cf1305a94",
          "body": null,
          "is_bot": false,
          "headline": "fix: replace 4 bare excepts with except Exception (#521)",
          "author_name": "Sense_wang",
          "author_login": "haosenwang1018",
          "committed_at": "2026-02-28T13:05:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6be7380a5257cc39747ab51039d3fdd1cef4979e",
          "body": "* refactor(whisper): update model instantiation and loading process\n\n- Changed model instantiation to use `cls` instead of `Model` for better clarity.\n- Added a post-load hook to the model loading process to enhance functionality.\n- Updated error message in `generate_audio` to clarify requirements for STT model input.\n- Refactored STT model loading to streamline the process when `ref_text` is missing.\n\n* fix tests",
          "is_bot": false,
          "headline": "Refactor(whisper): update model instantiation and loading process (#514)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T13:05:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e51f37e3dbff41bac2df72c40d981ebcccfdf9d",
          "body": "…essing (#510)\n\n* fix(vibevoice-asr): add audio resampling and normalization to preprocessing\n\nThe VibeVoice ASR model requires 24 kHz input audio normalized to -25 dB FS,\nmatching the official PyTorch pipeline. Previously, when users passed raw\nwaveform arrays (e.g. loaded via librosa at 16 kHz), t\n[…]\n diarization accuracy.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "fix(vibevoice-asr): add audio resampling and normalization to preproc…",
          "author_name": "sikaro",
          "author_login": "bellkjtt",
          "committed_at": "2026-02-28T13:05:53Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1067b50f656ab5afc527dacc192f313d9c5e122b",
          "body": "* Add Smart Turn v3 semantic VAD.\n\n* Formatting.\n\n* Add license information.",
          "is_bot": false,
          "headline": "Add Smart Turn v3 semantic VAD (#511)",
          "author_name": "Lucas Newman",
          "author_login": "lucasnewman",
          "committed_at": "2026-02-28T13:05:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ac2b24d2ed00d477357cebafd53bfa85690f2b9",
          "body": "…ject dependencies (#497)\n\n- Added protobuf version 6.33.5 to the dependencies in pyproject.toml.\n- Updated protobuf version in uv.lock to 6.33.5, including new source URLs for the package.",
          "is_bot": false,
          "headline": "chore: update protobuf dependency to version 6.33.5 and add it to pro…",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T13:03:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03990a6b952d2842ce40a0af4b764129facdd17b",
          "body": "* Add sortformer\n\n* add vad module\n\n* udpate readme\n\n* update readme with vis\n\n* add generate stream\n\n* add realtime api\n\n* add prebult chunks to generate_stream\n\n* Enhance `generate_stream` functionality with support for processing audio from a list of chunks and real-time streaming. Update README \n[…]\nessing in `Model` class to consistently use `mx.array` instead of `numpy.ndarray`\n\n* fix dtype promotion\n\n* add tests\n\n* Delete sortformer-v2.1-mlx/README.md\n\n* add memory considerations for streaming",
          "is_bot": false,
          "headline": "[VAD / Diarization] Add sortformer  (#493)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T13:03:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "319f86407d495e3ca5426c9d1caeff907e3a81a0",
          "body": "* Add Voxtral Mini 4B Realtime (mistralai/Voxtral-Mini-4B-Realtime-2602) STT model\n\nImplements the Voxtral Realtime streaming speech-to-text model:\n- 0.6B causal audio encoder (32 layers, RoPE, sliding window=750)\n- 3.4B GQA decoder (26 layers, 32Q/8KV heads, sliding window=8192)\n- Adaptive RMSNorm \n[…]\n optimized performance\n\n* feat: remove convert script for Voxtral Realtime model\n\n---------\n\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>\nCo-authored-by: Olivier Chafik <ochafik@google.com>",
          "is_bot": false,
          "headline": "feat: Add support for Voxtral Mini 4B Realtime  (#487)",
          "author_name": "Shreyas Karnik",
          "author_login": "shreyaskarnik",
          "committed_at": "2026-02-28T13:03:08Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "962ff5ef030ffe659f9c2bf588772d55d9397946",
          "body": "…format (#488)\n\n* fix: update STT transcription parameters and preserve original audio format\n\n* fix: add audio data URL handling for playback in transcription viewer\n\n* fix: set default max_tokens value and add UI controls for adjustment\n\n* fix: update max_tokens to 1024 in transcription settings and adjust audio format handling\n\n* Update server.py to revert from wav to mp3\n\n---------\n\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "fix: update STT transcription parameters and preserve original audio …",
          "author_name": "Shreyas Karnik",
          "author_login": "shreyaskarnik",
          "committed_at": "2026-02-28T13:02:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a46cc6204e848723745b6bcdc046fd4f6c4ecaff",
          "body": "…(#484)\n\n* Enable streaming /v1/audio/speech server endpoint with raw/pcm data.\n\n* refactor streaming implementation\n\nCo-Authored-By: orbitalquark <70453897+orbitalquark@users.noreply.github.com>\n\n* Ensure proper handling of audio chunks and raise an error if no audio is generated when not streaming.\n\n---------\n\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "Enable streaming /v1/audio/speech server endpoint with raw/pcm data. …",
          "author_name": "orbitalquark",
          "author_login": "orbitalquark",
          "committed_at": "2026-02-28T13:01:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d5a7f0b7bbafe74510a5ed3b39cf2c7c6ec4537",
          "body": "…#489)\n\nThe Chinese G2P (misaki.zh.ZHG2P) returns a plain string, while the\npipeline expects a tuple from `self.g2p(chunk)` and tries to unpack it\nas `ps, _ = self.g2p(chunk)`. This causes a ValueError for all Chinese\nTTS generation:\n\n  ValueError: too many values to unpack (expected 2)\n\nCheck the r\n[…]\nk) and string returns (Chinese).\n\nCo-authored-by: botdev <botdev@botdevdeMacBook-Air.local>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "fix(kokoro): handle non-tuple return from Chinese ZHG2P in pipeline (…",
          "author_name": "bitking",
          "author_login": "smartchainark",
          "committed_at": "2026-02-28T13:01:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b1808bea10ff4f6ad45840695b61003abf41a70b",
          "body": null,
          "is_bot": false,
          "headline": "Properly slice cache for each segment. (#486)",
          "author_name": "Lucas Newman",
          "author_login": "lucasnewman",
          "committed_at": "2026-02-28T13:01:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf70c84e4887adff49514dbfec90575a334410fe",
          "body": "* fix soprano decoder and config loading\n\nCo-Authored-By: solarpunkin <solarpunkin@users.noreply.github.com>\n\n* bump version\n\n* format\n\n* fix tests\n\n---------\n\nCo-authored-by: solarpunkin <solarpunkin@users.noreply.github.com>",
          "is_bot": false,
          "headline": "[Soprano] Fix decoder and config loading (v1 and v1.1) (#480)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T12:59:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e09a58cfd5b5a282a42afa838ead93b169df71fc",
          "body": "* ran isort and black precommit\n\n* chore: add dev formatter config",
          "is_bot": false,
          "headline": "Formatting fix and add to pyproject.toml (#475)",
          "author_name": "Michael",
          "author_login": "mnoukhov",
          "committed_at": "2026-02-28T12:59:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87eb11ddd7be08ab7d3a6a6860b72b156b9115cf",
          "body": "* feat(stt): add support for MedASR (Lasr architecture)\n\n* feat(stt): add support for MedASR (Lasr architecture)\n\nThis commit adds full support for the MedASR model (Lasr architecture) to mlx-audio.\n\nChanges:\n- Added  implementation (LasrEncoder, LasrForCTC).\n- Updated  and  to support  model type.\n\n[…]\n_ctc, remove convert.py in favor of sanitize method, update example\n\n---------\n\nCo-authored-by: Jeonghyun Lee <sigjhl@Jeonghyuns-MacBook-Pro.local>\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "feat(stt): add support for MedASR (Lasr architecture) (#376)",
          "author_name": "sigjhl",
          "author_login": "sigjhl",
          "committed_at": "2026-02-28T12:59:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6e24b602ba57af67bad4b32ef8e32733f82e2f90",
          "body": null,
          "is_bot": false,
          "headline": "Fix voice matching for Pocket TTS. (#477)",
          "author_name": "Lucas Newman",
          "author_login": "lucasnewman",
          "committed_at": "2026-02-28T12:59:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b93f21d75cabf1402a9916bf3a6849e5fdf7613e",
          "body": "* Use shared model cache resolution for SAM-Audio\n\n* cleanup code using get_model_path\n\nadd specific Gated Excpetion to give warning about requesting access to\nfacebook/sam_audio\n\n---------\n\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "Use shared model cache resolution for SAM-Audio (#468)",
          "author_name": "Michael",
          "author_login": "mnoukhov",
          "committed_at": "2026-02-28T12:59:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5ba63f6cad7fc12b74f0019c70c9e1f18ca380c",
          "body": null,
          "is_bot": false,
          "headline": "Fix noise shape for short separate_long (#467)",
          "author_name": "Michael",
          "author_login": "mnoukhov",
          "committed_at": "2026-02-28T12:59:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6e3247f6819483fd3c1c1158d92e2d1ce8cad84",
          "body": "Co-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "Enable streaming for Qwen3-TTS when ICL mode is enabled. (#466)",
          "author_name": "orbitalquark",
          "author_login": "orbitalquark",
          "committed_at": "2026-02-28T12:59:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63348fd87ad7ad6d3bb304674468a6b3330b6a26",
          "body": "* fix long audio processing\n\n* Add token tracking and performance metrics to transcription generation\n\n* qwen3asr fix total tokens\n\n* format",
          "is_bot": false,
          "headline": "Fix ALMs max tokens and chunking (#474)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T12:59:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7fe57473fb85c99735c77f02b45ea5d99eea086",
          "body": null,
          "is_bot": false,
          "headline": "Restore encoder_config to preserve voice clone accents. (#461)",
          "author_name": "orbitalquark",
          "author_login": "orbitalquark",
          "committed_at": "2026-02-28T12:58:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18b21e9651d3d840ca0a9b096d49a264fe3dff58",
          "body": "* Add python-multipart dependency to pyproject.toml for multipart form handling\n\n* Refactor tokenizer usage in Whisper model files\n\n- Removed direct imports and references to the Tokenizer class in favor of using model methods for tokenizer retrieval.\n- Updated function signatures to accept a generi\n[…]\nrnal logic to reflect the new parameter names, ensuring proper handling of audio chunk durations.\n- Adjusted test cases to align with the updated parameter names, maintaining test integrity.\n\n* format",
          "is_bot": false,
          "headline": "Fix server (STT, TTS) (#460)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T12:58:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "10470ee9e8f6618978bd0d6387422e84c21b3f9f",
          "body": "* fix chatterbox load\n\n* format",
          "is_bot": false,
          "headline": "Fix chatterbox load (#455)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T12:55:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4970740aa66ae91040f1f1c12d5f0ff7bb19f132",
          "body": "* Add Qwen3-ASR model and configurations\n\n- Introduced Qwen3-ASR model with audio encoder and transformer layers.\n- Added configuration classes for audio encoder, text decoder, and model settings.\n- Updated generate_transcription function to print segment text for debugging.\n- Enhanced model remappi\n[…]\nerstanding of the expected behavior for both aligned and non-aligned weights.\n- Removed redundant variable assignments to streamline the test code, improving maintainability and readability.\n\n* format",
          "is_bot": false,
          "headline": "Add Qwen3-ASR (#454)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T12:55:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3e9a3389d217dec303dc1e7dc56df77dfa07c075",
          "body": null,
          "is_bot": false,
          "headline": "Update pyproject.toml for poetry support.",
          "author_name": "Lucas Newman",
          "author_login": "lucasnewman",
          "committed_at": "2026-02-28T12:52:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "acebc0c9842ce4fda610ac01354cc21544669c09",
          "body": "* Refactor audio utilities for volume normalization and random segment selection\n\n* support loading reference audio from file paths or mx.array\n\n* remove old examples\n\n* Allowing reference audio to be loaded from file paths or mx.array across tts\n\n* migrate to tfmx v5\n\n* revert\n\n* Refactor audio dec\n[…]\nor Qwen3 TTS model to track calls to speech_tokenizer.decode instead of streaming_decode\n\n* Add tests for Qwen3 TTS streaming decode behavior, including tracking of decode calls and chunk size control",
          "is_bot": false,
          "headline": "Refactor audio load (#445)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T12:29:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ff8d7453cc3c517e1e18bfb89fe0b4f8019ce643",
          "body": "* Update mel spectrogram padding calculation in Qwen3-TTS to align with PyTorch standards\n\n* Increase context size in Qwen3-TTS model for smoother audio transitions, improving decoding accuracy with minimal error.\n\n* Refactor text embedding handlingg\n\n- Updated the text embedding retrieval process t\n[…]\nhe deprecation of loading models from pretrained weights directly.\n\n* remove unused\n\n* Replaced custom sampling implementations with utility functions from `mlx_lm.sample_utils`\n\n* format\n\n* fix tests",
          "is_bot": false,
          "headline": "[Qwen3-TTS] Fix some Custom Voices producing silence with 0.6B (#444)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T12:28:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "83084f2f003f887f803a74fbbb106434523d8a47",
          "body": "* Fix: improve import error hadling\n\n* Update mlx_audio/utils.py\n\n---------\n\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "Fix: improve import error hadling (#443)",
          "author_name": "zer0",
          "author_login": "reinexworldc",
          "committed_at": "2026-02-28T12:28:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d956f7975323d0dc6f678af4f4ef6a501caf72f",
          "body": "* Enhance Qwen3-TTS model with streaming audio decoding and memory optimizations\n\n- Implemented streaming decoding in the speech tokenizer to handle long sequences with reduced memory usage, yielding audio chunks as they're decoded.\n- Updated the audio decoding process in the Model class to utilize \n[…]\n\n- Updated GenerationResult to include streaming state indicators for better tracking of audio chunks.\n\n* Increase context size for smoother audio transitions in Qwen3-TTS streaming model\n\n* fix tests",
          "is_bot": false,
          "headline": "Qwen3-TTS: Add streaming and optimise peak usage (#435)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-02-28T12:28:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c12a8cbde91d95ac132edbe14e19b38cc37ea66e",
          "body": "…arkers (#432)\n\n- Adjusted Python version resolution markers to include support for versions 3.11 and 3.13.\n- Updated numpy dependency versions based on Python version markers, introducing version 2.3.5 for Python 3.11 and above, while retaining version 2.2.6 for earlier versions.\n- Updated scipy an\n[…]\nencies similarly to align with the new numpy versioning strategy.\n- Incremented huggingface-hub version to 1.3.3 and setuptools to 80.10.1, ensuring compatibility with the latest package requirements.",
          "is_bot": false,
          "headline": "Update uv.lock to reflect dependency version changes and resolution m…",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-31T07:02:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c876966368dc8aa22e55c24ca9c68d9e944d898a",
          "body": "…ing (#431)\n\n- Removed `setuptools-scm` from the build requirements in `pyproject.toml`.\n- Changed license format to a simpler string representation.\n- Updated the GitHub Actions workflow to use the latest version tag for the PyPI publish action and corrected the parameter name from `packages_dir` to `packages-dir`.",
          "is_bot": false,
          "headline": "Update pyproject.toml and GitHub Actions workflow for package publish…",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-31T07:02:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74b88ac857f336b16294cf54736196ab3da66238",
          "body": null,
          "is_bot": false,
          "headline": "Move audio path/format prints under verbose flag (#429)",
          "author_name": "Wlad Paiva",
          "author_login": "wladpaiva",
          "committed_at": "2026-01-31T07:02:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f1d01def48e93256996ffbedd9641fae4712d77",
          "body": "…#428)",
          "is_bot": false,
          "headline": "Update MANIFEST.in to remove leading dot from requirements.txt path (…",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-31T07:02:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5906058cbb49a9957506e2b7fcbc1731914ff5b",
          "body": "* Refactor audio input handling in transcription methods to support multiple formats\n\n- Updated the `generate_transcription` and `Model` class methods to accept audio input as either a file path (str/Path) or an audio waveform (mx.array).\n- Enhanced documentation to clarify the expected input types \n[…]\nc1` to `5.0.0rc3` and `mlx-lm` version from `0.30.2` to `0.30.5` for improved compatibility.\n- Updated `uv.lock` to reflect the new dependency versions and added upload timestamps for package sources.",
          "is_bot": false,
          "headline": "Fix stt array io (#426)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-31T07:02:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "09f7c1268889ad6892e3d99772338b8854810370",
          "body": "* Fix convert skipping subdirs\n\n* Add model_quant_predicate method to Qwen3-TTS and update apply_quantization logic to handle dictionary results. This enhances quantization control and improves model-specific predicate handling.\n\n* Addd ICL voice cloning support and improve audio processing [Qwen3-T\n[…]\ndicate for clarity.\n- Consolidated the logic for loading tokenizer weights by utilizing mx.load, improving efficiency.\n- Ensured proper evaluation of speech_tokenizer parameters after loading weights.",
          "is_bot": false,
          "headline": "Fix qwen3 tts quants (silence in VC and word precision) (#407)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-31T07:02:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6b41a8742c03e3ebadd5547f0a4e1e7d9c20f2a0",
          "body": "…rs from quantization (#398)\n\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "fix: Add model_quant_predicate to Qwen3-TTS to exclude embedding laye…",
          "author_name": "Aron Homberg",
          "author_login": "kyr0",
          "committed_at": "2026-01-31T07:02:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33e64f230189aecf0f8a5bafe1ae8b956096a042",
          "body": "…udio  (#417)\n\n* Manual depthwise conv1d via accumulation over kernel positions.\n\n        Avoids the Metal depthwise_conv_1d kernel which may not be available\n        on all Apple Silicon hardware. Accumulates one kernel position at a\n        time to avoid materializing a large [B, T_out, K, C] tens\n[…]\n- Introduced a prefill step size parameter to optimize memory usage during token generation.\n- Updated progress bars for both encoding and generation processes to improve user experience and feedback.",
          "is_bot": false,
          "headline": "[VibeVoice-ASR] Fix Metal kernel crash and optimize memory for long a…",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-31T07:02:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "790901a08717f64cba0b6a832c778e6bbb8bee92",
          "body": "Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>",
          "is_bot": false,
          "headline": "Upgrade GitHub Actions to latest versions (#419)",
          "author_name": "Salman Chishti",
          "author_login": "salmanmkc",
          "committed_at": "2026-01-31T07:02:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a982744f914cb4a05bfa6172ffaa3e9a6ab89457",
          "body": "Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>",
          "is_bot": false,
          "headline": "Upgrade GitHub Actions for Node 24 compatibility (#418)",
          "author_name": "Salman Chishti",
          "author_login": "salmanmkc",
          "committed_at": "2026-01-31T07:02:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db84261ffe852257a10c874c65697c9f14ebfce0",
          "body": "* Enhance README with installation and usage examples\n\nAdded installation instructions for pip and uv tool, and included voice cloning example with Qwen-TTS.\n\n* Move voice cloning to be with the rest of the qwen3-tts part\n\nRemoved redundant voice cloning section and retained relevant information.\n\n* Move Qwen3-tts instructions to its own README\n\n* Correct speaker names in Qwen3-tts README\n\n---------\n\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "Enhance README with installation and usage examples (#404)",
          "author_name": "Rahim Nathwani",
          "author_login": "rahimnathwani",
          "committed_at": "2026-01-31T07:02:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "65a2e05edb1624732b20bef8e9e6469c1f0953a2",
          "body": "…406)",
          "is_bot": false,
          "headline": "Fix issue of ref_audio not loading prior to inference with server. (#…",
          "author_name": "byMAR.CO",
          "author_login": "BuffMcBigHuge",
          "committed_at": "2026-01-31T07:02:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f272c912dc9f941500136d92bbaa6ff3121aff59",
          "body": null,
          "is_bot": false,
          "headline": "Unify Mimi implementation. (#403)",
          "author_name": "Lucas Newman",
          "author_login": "lucasnewman",
          "committed_at": "2026-01-31T07:02:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be484555d5bda99f55cad403500f428de0a837e0",
          "body": null,
          "is_bot": false,
          "headline": "Fix Whisper",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-01-24T08:10:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3092c5d533e759a660ad864a2e82461acd32d42f",
          "body": null,
          "is_bot": false,
          "headline": "Fix VibeVoice sanitization",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-01-24T07:58:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b2ae0b6c7241746e1ac433bb7340b5f30a437ab",
          "body": null,
          "is_bot": false,
          "headline": "Update TTS commands in README to include language code option (#401)",
          "author_name": "Rudolf Olah",
          "author_login": "rudolfolah",
          "committed_at": "2026-01-24T07:49:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df70ce3b3cd8f0eda12f34d437ecc2f740c9ca8b",
          "body": "* Add unit tests for Qwen3-TTS reflect padding and mel spectrogram functionality\n\n* Enhance mel spectrogram tests in Qwen3-TTS\n\n- Introduced new tests to verify mel spectrogram output with center padding and slaney normalization.\n- Added checks for expected output shapes and values for various input\n[…]\nroduces correct boundary frame values and that a 1kHz sine wave activates the appropriate mel bins.\n- Updated existing tests to improve clarity and accuracy in verifying mel spectrogram functionality.",
          "is_bot": false,
          "headline": "Qwen3-TTS speaker embedding tests (#396)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:49:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e73d7e5fe21644a260a78903cc24594ee99ae490",
          "body": "* Add vibevoice ASR\n\n* format\n\n* Refactor file copying logic in copy_model_files to exclude specific model files and remove redundant code for supporting file copying.\n\n* Refactor tokenizer usage in VibeVoice ASR model to standardize access and improve clarity. Introduce model_quant_predicate for qu\n[…]\narity and consistency. Add new test initialization file.\n\n* Add speaker_id to JSON output in save_as_json function\n\n* Add comprehensive unit tests for VibeVoice ASR model\n\n* format\n\n* update gitignore",
          "is_bot": false,
          "headline": "Add Vibevoice ASR (#389)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:49:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "166332095a0e3f4774e53075f80456f34f36064a",
          "body": "* Fix mel filters\n\n* Refactor speaker encoder to implement reflect padding",
          "is_bot": false,
          "headline": "Fix Qwen3-TTS Base Voice Cloning (#394)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:49:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "787dfd5673e88ed17eefd040b1c13555907537c4",
          "body": "* Refactor causal padding logic in CausalTransposeConv1d. Trim from the right for causal behavior instead of using left and right padding calculations.\n\n* Update package versions in uv.lock\n\n- Bump mlx-audio version from 0.3.0rc1 to 0.3.0.\n- Change mlx-lm version specifier from ==0.30.2 to >=0.30.2.\n- Update transformers version specifier from ==5.0.0rc1 to >=5.0.0rc1.",
          "is_bot": false,
          "headline": "Fix Qwen3-TTS tail artifacts (#391)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:49:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c652a6251e7bc6f0f09a9927061d2eecd83b8190",
          "body": "* Fix speaker embedding extraction in Qwen3-TTS model to ensure correct input shape for speaker IDs\n\n* bump version",
          "is_bot": false,
          "headline": "Fix speaker embedding extraction in Qwen3-TTS model  (#390)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:49:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bea96bbd032b8f071e30b33fc13313df6c67eb80",
          "body": "* Add qwen3-tts\n\n* add custom generate and fix loading logic\n\n* fix loading\n\n* fix talker\n\n* update readme\n\n* refactor\n\n* refactor naming to qwen3_tts\n\n* Add 'instruct' parameter to audio generation functions for enhanced voice customization\n\n* Update README to reflect changes in model loading from \n[…]\no 'load_model'\n\n* Add numba dependency to pyproject.toml and uv.lock for librosa compatibility\n\n* add tests\n\n* Add 'instruct' parameter to generate_audio function for improved audio generation control",
          "is_bot": false,
          "headline": "Add Qwen3-TTS (#388)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:48:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fcb1ffd9e3cd09d0abd2e8459f5d5f402d97c540",
          "body": "* Add output path parameter to generate_audio function\n\n- Introduced an optional output_path argument to specify the directory for saving audio files.\n- Updated documentation to include output_path in the function signature and argument parsing.\n- Implemented logic to create the output directory if it does not exist.\n\n* unpin mlx-lm and tfms\n\n* Update README to include example for saving audio to a specific directory",
          "is_bot": false,
          "headline": "Update generate output path (#385)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:48:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a282e04ecaeadbcad3f0b3eb8e00d8e0f3564fb",
          "body": null,
          "is_bot": false,
          "headline": "add streaming decoding to snac and orpheus (#384)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:48:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43e12d80b59d4d236eb72cb05441d4aa07aff45f",
          "body": null,
          "is_bot": false,
          "headline": "Refactor model path retrieval in get_model_path",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:48:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c5d9a9d276fbf0fb7aefd8e8f26d85b113a5702",
          "body": "* Enhance audio file support by adding M4A/AAC decoding using ffmpeg. Update read function to utilize ffmpeg for M4A/AAC formats while maintaining miniaudio for other formats. Improve error handling for ffmpeg availability and provide installation instructions.\n\n* Enhance transcription functionality\n[…]\nracking during audio chunk processing.\n- Introduced a verbose parameter to toggle progress display in the Model class.\n\n* fix stream logs\n\n* fix stream segments\n\n* remove text printing\n\n* bump version",
          "is_bot": false,
          "headline": "Fix STT stream (#382)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:47:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "10b42ca4f02bda4c8f1f1446a002d9fc38cdc433",
          "body": null,
          "is_bot": false,
          "headline": "Add Pocket TTS model (#381)",
          "author_name": "Lucas Newman",
          "author_login": "lucasnewman",
          "committed_at": "2026-01-24T07:47:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a7d41d0235aab79ecd47224c97345225aedb809",
          "body": "* replace soundfile with miniaudio + ffmpeg\n\n* bump version\n\n* fix tests",
          "is_bot": false,
          "headline": "Replace soundfile with miniaudio + ffmpeg (#379)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:47:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd2d21d9c8a2f1a0b27c7ee68a565405a9ac4bc1",
          "body": null,
          "is_bot": false,
          "headline": "fix  lang codes kokoro (#380)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:47:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c305532338877513cb7f34868972e231b2fbea20",
          "body": null,
          "is_bot": false,
          "headline": "update lfm readme (#377)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:47:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca1978af20347b70468d671849e3f5f9e84b26f0",
          "body": "* add lfm2-audio (tts, llm working)\n\n* Added 'normalized' parameter to the istft function to allow for window squared (COLA) normalization.\n\n* fix conformer and detokenizer\n\n* fix slide mask\n\n* Refactor audio decoding\n\n* Add sample_rate property and refactor weight loading in LFM2AudioModel\n\n* Add s\n[…]\nformat\n\n* Remove unused input projection in AudioHead class for improved performance and clarity.\n\n* Remove test script for allclose comparison\n\n* add tests\n\n* format\n\n* fix readme gen\n\n* bump version",
          "is_bot": false,
          "headline": "Add lfm2 audio (#370)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:47:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5c81de3fc196d3b7471c659b52db528bf6c51969",
          "body": "* Remove loguru dependency from TTS and replace logger with print statement in Kokoro model for language pipeline creation.\n\n* Remove omegaconf dependency and update configuration loading to use YAML in file utilities.\n\n* Refactor tokenizer initialization and input handling in Spark model\n\n- Remove \n[…]\nor weights to ensure MLX compatibility.\n\n* Update default Whisper model to 'whisper-tiny-asr-fp16' and 'whisper-large-v3-turbo-asr-fp16' across multiple files for improved performance and consistency.",
          "is_bot": false,
          "headline": "Refactor load (#374)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:47:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fa70fd8235b072882df43359c87ccc63e13a48ec",
          "body": "* Remove loguru dependency from TTS and replace logger with print statement in Kokoro model for language pipeline creation.\n\n* Remove omegaconf dependency and update configuration loading to use YAML in file utilities.\n\n* Refactor tokenizer initialization and input handling in Spark model\n\n- Remove \n[…]\nock\n\n* fix quant\n\n* Add model evaluation state in Voxtral class\n\n- Set model parameters to evaluation mode after loading weights.\n- Ensure proper handling of model evaluation for improved performance.",
          "is_bot": false,
          "headline": "Remove extra deps (#373)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-24T07:44:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4d94f10e49950154842518d0ad1e238f749bbb9f",
          "body": null,
          "is_bot": false,
          "headline": "Create CONTRIBUTING.md",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-01-24T07:37:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8e07b4f870a5a2e9349cefdb80edaebefb0d221",
          "body": null,
          "is_bot": false,
          "headline": "Publish v0.1.8",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-01-08T23:28:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7a6587f6240f8ae350754a36893a85386289625",
          "body": null,
          "is_bot": false,
          "headline": "Fix CosyVoice 3 streaming",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-01-08T23:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3281ae520f2ea684acf81c2f240490d7f6c7bf87",
          "body": "…#321)\"\n\nThis reverts commit f66335662c44581baa1c79c96fdf0baccd2ffb50.",
          "is_bot": false,
          "headline": "Revert \"feat(stt): add AlignAtt streaming transcription for Whisper (…",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-01-08T23:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a56e541c8452744a4c82dd9a2e9004dfb18d3b44",
          "body": "ignore uv.lock",
          "is_bot": false,
          "headline": "pin all deps as core (#366)",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2026-01-08T23:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4d5e428e71d9520325c62782599623d0730f581",
          "body": "…s (#364)\n\n* Refactor voice loading in KokoroPipeline to support .safetensors files and check cache first\n\n* fix tests\n\n* remove debug statement\n\n* Update README.md to enhance library description and features",
          "is_bot": false,
          "headline": "Refactor voice loading in KokoroPipeline to support .safetensors file…",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-08T23:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45d83bdfcfc8d8ed5bd6a81bce61d32b64b395ec",
          "body": "* revert default response format to mp3\n\n* fix tests",
          "is_bot": false,
          "headline": "revert default response format to mp3 (#356)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-08T23:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b248fec16c6e499d1a55d274f50b6b0146a75c84",
          "body": "* fix(generate.py): correct model_type attribute access for normalization logic\n\n* refactor(tts): streamline input preparation for voice cloning\n\n* streaming support\n\n* fix tests",
          "is_bot": false,
          "headline": "Fix model type, refactor orpheus style models (#358)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-08T23:28:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5cdafcb555934a74c47f46991e89216c36fbd201",
          "body": "* accept customizable kernel sizes for depthwise and input convolutions\n\n* add soprano\n\n* fix inference and loading\n\n* ensuring decoder weights are converted to float32\n\n* add tests\n\n* remove duplicate\n\n* remove torch decoder weights loading\n\n* formatting",
          "is_bot": false,
          "headline": "Add Soprano (#359)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-08T23:28:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a7cfa1a81c910e8e30d39967f52f96b60193ef2",
          "body": "* refactor(SAMAudio): simplify from_pretrained method by removing dtype parameter and associated casting logic\n\n* add basic streaming\n\n* fix streaming and add write to file callback\n\n* support generator mode and improve documentation\n\n* Improve SeparationResult class to support batch and streaming\n\n\n[…]\no accept file paths.\n\n* - Updated attention mask handling in `T5TextEncoder` to align with PyTorch conventions.\n- Improved comments in `Attention` class to clarify key padding mask usage.\n\n* fix tests",
          "is_bot": false,
          "headline": "Add streaming and refactor Sam Audio API (#360)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-08T23:28:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "32af5567df4c322dc429d6a0fc7dc7c4954089c2",
          "body": null,
          "is_bot": false,
          "headline": "use chatterbox MTLTokenizer for multilingual. (#362)",
          "author_name": "Litmudoc",
          "author_login": "litmudoc",
          "committed_at": "2026-01-08T23:28:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "008bf4cd84dc1eb62d253fb0e67ff0a2559c0898",
          "body": "* Add MossFormer2 SE speech enhancement model\n\n- 48kHz speech enhancement\n- 30x real-time on base M4 (fp32)\n- Supports fp32, fp16, int8, int6, int4 precision\n- 55.3M parameters\n\n* Add Contributions.md\n\n* Rename from processor to model\n\n* Refactor STFT\n\n* Update fbank.py\n\n* Infer precision from confi\n[…]\npy from mossformer2_se\n- Update model.py to use dsp functions directly\n- Add torchaudio comparison tests (verified: deltas diff < 1e-7)\n\n---------\n\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "Add MossFormer2 SE (Speech Enhancement) (#351)",
          "author_name": "Dmitry Starkov",
          "author_login": "starkdmi",
          "committed_at": "2026-01-08T23:28:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9fbe47967661c32ec4211277ccc6fd9100d2519f",
          "body": "…t.toml (#355)\n\n- Changed required Python version from 3.9 to 3.10.\n- Added new dependencies: tqdm, sounddevice, soundfile, and pyloudnorm.\n- Removed sounddevice, soundfile, tqdm, and mistral-common[audio] from the TTS dependencies section.\n- Updated optional STT dependencies to include mistral-common[audio].",
          "is_bot": false,
          "headline": "chore: update Python version requirement and dependencies in pyprojec…",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-08T23:28:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48a94b08daecb6dc8af644ad1171d505419fd5a0",
          "body": "* Allow using DACVAE as a codec independent of SAM Audio model.\n\n* Fix tests.\n\n---------\n\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "Allow using DACVAE as a codec independent of SAM Audio model (#357)",
          "author_name": "Lucas Newman",
          "author_login": "lucasnewman",
          "committed_at": "2026-01-08T23:28:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d09390cd4881f45febc28575be4ae0b09be497b3",
          "body": null,
          "is_bot": false,
          "headline": "fix stft args (#354)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-08T23:28:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9056dac5f565d9620b75a5366a20b4abc278304",
          "body": "Implements low-latency streaming transcription using the AlignAtt algorithm,\nwhich monitors cross-attention weights to determine when decoded tokens are\nstable enough to emit.\n\nFeatures:\n- StreamingConfig: Configure frame_threshold, min_chunk_duration, emit_partial\n- StreamingResult: Rich result wit\n[…]\nulates mel spectrograms across chunks (up to 30s window)\nand uses cross-attention alignment heads to decide when tokens are stable.\n\nReference: https://arxiv.org/abs/2211.00895 (SimulMT with AlignAtt)",
          "is_bot": false,
          "headline": "feat(stt): add AlignAtt streaming transcription for Whisper (#321)",
          "author_name": "Aleksandr Beshkenadze",
          "author_login": "beshkenadze",
          "committed_at": "2026-01-08T23:28:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "afbdc39bb4eab97af8e04a403cb839e184528c1b",
          "body": null,
          "is_bot": false,
          "headline": "Remove loguru reconfiguration on Kokoro import (#348)",
          "author_name": "joshwhiton",
          "author_login": "joshwhiton",
          "committed_at": "2026-01-08T23:28:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "89e666aa747489fff9f7b680f874553b93cb26a1",
          "body": "* fix: Add missing mlx-lm dependency\n\nmlx-lm is imported throughout the codebase but not declared in\npyproject.toml, causing ModuleNotFoundError for users:\n\n- convert.py: quantize_model, dequantize_model, save_model\n- TTS models: LlamaModel, Qwen2/3Model, KVCache, stream_generate, make_sampler\n- STT\n[…]\npyproject.toml\n\n---------\n\nCo-authored-by: joshwhiton <joshwhiton@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.5 <noreply@anthropic.com>\nCo-authored-by: Prince Canuma <prince.gdt@gmail.com>",
          "is_bot": false,
          "headline": "fix: Add missing mlx-lm dependency (#344)",
          "author_name": "joshwhiton",
          "author_login": "joshwhiton",
          "committed_at": "2026-01-01T08:02:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "81174557cdd8e88c81dd3c84f2b16a0103fdcccb",
          "body": "* update gitignore\n\n* add sam audio\n\n* move to sts\n\n* load safetensors\n\n* Add T5 model components and weight sanitization\n\n* Refactor Watermark model\n\n* add ode chunking to lower memory (50 is best) and tests\n\n* bump version\n\n* fix separate_long\n\n* update readme\n\n* fix missing chunk start\n\n* reduce test load\n\n* Validate step size in SAMAudio model and update README with detailed step size options",
          "is_bot": false,
          "headline": "Add Sam Audio (#338)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2026-01-01T08:02:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2cf761fee7b5efcc9be1b5a1a0756ab19aab09c",
          "body": "* fix mapping\n\n* add exaggeration\n\n* fix mapping\n\n* add support for string",
          "is_bot": false,
          "headline": "Fix marvis, chatterbox and args (#342)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2025-12-29T07:36:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fbea3339dcda1ad61f75fe801444a94bff763e22",
          "body": null,
          "is_bot": false,
          "headline": "Add maya1 fixes to Llama (#340)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2025-12-29T07:36:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d008159d6402b8b84666a0ef3c3bbdf4dfc3234",
          "body": "* refactor glmasr\n\n* Refactor rope and audio embedding handling\n\n* add rope traditional\n\n* Add STTOutput dataclass to base model and refactor glmasr and voxtral to use it\n\n* revert save order\n\n* add  better logging for LM style ASR\n\n* fix tests",
          "is_bot": false,
          "headline": "Refactor GLMASR and improve LM style ASR logging (#332)",
          "author_name": "Prince Canuma",
          "author_login": null,
          "committed_at": "2025-12-29T07:36:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25554c27c0b64e077837514a6fd6e1d9b169643f",
          "body": null,
          "is_bot": false,
          "headline": "Improve publish script",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2025-12-22T19:24:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d023e0d75a42cebfd1b602a56056a5f4f42bbf2",
          "body": null,
          "is_bot": false,
          "headline": "Fix pyproject.toml",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2025-12-22T19:24:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5e553a5ee29c8051f3aa0ed4a6e14a0db7c105e",
          "body": null,
          "is_bot": false,
          "headline": "Publish v0.1.7",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2025-12-22T14:56:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5803d1ad3091e5dedd5f2faf05aa6ab1c34dce9f",
          "body": null,
          "is_bot": false,
          "headline": "Optimize Chatterbox Turbo",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2025-12-22T14:30:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd5e93214c3b0524ceace7e2dbd9c58dbd5bfddf",
          "body": null,
          "is_bot": false,
          "headline": "Clean up Chatterbox Turbo",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2025-12-22T14:30:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76c46cf74e8136c062fc490e7261a13e631c1f67",
          "body": null,
          "is_bot": false,
          "headline": "Add Chatterbox Turbo conversion script",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2025-12-22T14:30:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16cb7d73f43ee5b90bd582da1366a8bdf0715f49",
          "body": "- Use separate conversion scripts for S3 tokenizer\n- Use default Hugging Face Hub cache",
          "is_bot": false,
          "headline": "Update conversion scripts",
          "author_name": "Anthony DePasquale",
          "author_login": "DePasqualeOrg",
          "committed_at": "2025-12-22T14:30:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 9,
      "commits_last_year": 194,
      "latest_release_at": "2026-01-08T23:31:22Z",
      "latest_release_tag": "v0.1.8",
      "releases_from_tags": false,
      "days_since_last_push": 82,
      "active_weeks_last_year": 26,
      "days_since_latest_release": 203,
      "mean_days_between_releases": 4.3
    },
    "community": {
      "has_readme": false,
      "has_license": false,
      "has_description": false,
      "has_contributing": false,
      "health_percentage": null,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "mlx-audio-plus",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "License :: OSI Approved :: MIT License",
            "Operating System :: OS Independent",
            "Programming Language :: Python :: 3"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/mlx-audio-plus/",
          "is_deprecated": false,
          "latest_version": "0.1.8",
          "repository_url": "https://github.com/DePasqualeOrg/mlx-audio-plus",
          "versions_count": 9,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2025-12-04T17:35:10.374289Z",
          "latest_published_at": "2026-01-08T23:23:43.707301Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 203
        }
      ]
    },
    "popularity": {
      "forks": 6,
      "stars": 44,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2025-12-20",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 1
          },
          {
            "date": "2026-01-06",
            "count": 1
          },
          {
            "date": "2026-02-27",
            "count": 1
          },
          {
            "date": "2026-05-09",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 6,
        "total_forks": 6
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 119408,
      "source_files_sampled": 390,
      "oversized_source_files": 3,
      "agent_instruction_files": [
        ".claude/CLAUDE.md",
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 1892
    },
    "dependencies": {
      "manifests": [
        "pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "transformers",
            "direct": true,
            "version": "4.57.6",
            "severity": "critical",
            "ecosystem": "pypi",
            "cvss_score": 9.6,
            "advisory_ids": [
              "GHSA-29pf-2h5f-8g72",
              "GHSA-69w3-r845-3855",
              "GHSA-fgcw-684q-jj6r",
              "PYSEC-2025-217",
              "PYSEC-2026-2288",
              "PYSEC-2026-2289",
              "PYSEC-2026-2290"
            ],
            "fixed_version": "5.5.0",
            "advisory_count": 7,
            "oldest_advisory_days": 219
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "critical": 1
        },
        "advisory_count": 7,
        "affected_count": 1,
        "assessed_count": 50,
        "malicious_count": 0,
        "assessed_package": "pypi:mlx-audio-plus@0.1.8",
        "unassessed_count": 0,
        "direct_affected_count": 1
      },
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [
        {
          "name": "mlx",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.25.2"
        },
        {
          "name": "numpy",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.26.4"
        },
        {
          "name": "huggingface_hub",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.27.0"
        },
        {
          "name": "transformers",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.49.0,<5.0.0"
        },
        {
          "name": "hf_transfer",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "mlx-lm",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.18.0,<0.30.0"
        },
        {
          "name": "tqdm",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.67.1"
        },
        {
          "name": "sounddevice",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.5.1"
        },
        {
          "name": "soundfile",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.13.1"
        },
        {
          "name": "pyloudnorm",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.1.1"
        },
        {
          "name": "librosa",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==0.11.0"
        },
        {
          "name": "protobuf",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.33.5"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 1,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 1,
        "closed_unmerged_prs": 2
      },
      "bus_factor": 2,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "Blaizzy",
          "commits": 122,
          "avatar_url": "https://avatars.githubusercontent.com/u/23445657?v=4"
        },
        {
          "type": "User",
          "login": "DePasqualeOrg",
          "commits": 69,
          "avatar_url": "https://avatars.githubusercontent.com/u/25420077?v=4"
        },
        {
          "type": "User",
          "login": "lucasnewman",
          "commits": 55,
          "avatar_url": "https://avatars.githubusercontent.com/u/30198451?v=4"
        },
        {
          "type": "User",
          "login": "ivanfioravanti",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/1069210?v=4"
        },
        {
          "type": "User",
          "login": "beshkenadze",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/167288?v=4"
        },
        {
          "type": "User",
          "login": "rudrankriyam",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/30552772?v=4"
        },
        {
          "type": "User",
          "login": "senstella",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/203319295?v=4"
        },
        {
          "type": "User",
          "login": "joshwhiton",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/217690071?v=4"
        },
        {
          "type": "User",
          "login": "orbitalquark",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/70453897?v=4"
        },
        {
          "type": "User",
          "login": "mnoukhov",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/3391297?v=4"
        }
      ],
      "contributors_sampled": 39,
      "top_contributor_share": 0.394
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "python-publish.yml",
        "tests.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 0,
            "reason": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 5 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 1,
            "reason": "1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "4c9ec6a8489e790b5ba8964ab1f1d63150476f9f",
        "ran_at": "2026-07-31T11:17:25Z",
        "aggregate_score": 3.3,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-05-09T17:11:10Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-02-28T19:05:19Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/DePasqualeOrg/mlx-audio-plus",
    "host": "github.com",
    "name": "mlx-audio-plus",
    "owner": "DePasqualeOrg"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": "The weighted overall 52 is calibrated to 53 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 52,
            "calibrated": 53,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 53,
      "inputs": {
        "security": 39,
        "vitality": 64,
        "community": 29,
        "governance": 63,
        "calibration": "2026-08-02",
        "engineering": 58,
        "ai_readiness": 56,
        "weighted_overall_raw": 52
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 64,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "commits_last_year": 194,
              "human_commit_share": 1,
              "days_since_last_push": 82,
              "active_weeks_last_year": 26
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 82 days ago",
                "points": 18,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 82
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "26/52 weeks with commits",
                "points": 18,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 26
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "194 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 194
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 78,
            "inputs": {
              "releases_count": 9,
              "latest_release_tag": "v0.1.8",
              "releases_from_tags": false,
              "days_since_latest_release": 203,
              "mean_days_between_releases": 4.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "9 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 203 days ago",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 203
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~4.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 4.3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 87,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 87 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 87
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 29,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 32,
            "inputs": {
              "forks": 6,
              "stars": 44,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "44 stars",
                "points": 26.5,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 44
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "6 forks",
                "points": 5.8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "at_risk",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": false,
              "has_license": false,
              "readme_badges": null,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 63,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 39,
              "top_contributor_share": 0.394
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 39% of commits",
                "points": 13.6,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 39
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "39 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 39
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "merged_prs": 1,
              "open_issues": 0,
              "closed_issues": 1,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 2,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 42,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "1/3 decided PRs merged",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1,
                      "decided": 3
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "weak",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 44,
            "inputs": {
              "followers": 0,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "DePasqualeOrg",
              "public_repos": 189,
              "account_age_days": 3469
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "0 followers of DePasqualeOrg",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "DePasqualeOrg"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "189 public repos, account ~9 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 189
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 9
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 91,
            "inputs": {
              "packages": [
                "mlx-audio-plus"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 203
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 203 days ago",
                "points": 26,
                "status": "partial",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 203
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "9 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 58,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "weak",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 35,
            "inputs": {
              "topics": [
                "ai",
                "audio",
                "machine-learning",
                "mlx",
                "python",
                "speech-to-speech",
                "speech-to-text",
                "sst",
                "sts",
                "text-to-speech",
                "tts",
                "macos"
              ],
              "has_wiki": false,
              "homepage": null,
              "has_readme": false,
              "has_docs_dir": true,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "12 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "weak",
        "name": "Security",
        "value": 39,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 33,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.3
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "good",
            "name": "Dependency advisories",
            "note": "Matched the pypi:mlx-audio-plus@0.1.8 runtime dependency closure — what installing the published package pulls in — 50 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:mlx-audio-plus@0.1.8",
                  "assessed": 50
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 65,
            "inputs": {
              "source": "osv",
              "advisories": 7,
              "affected_packages": 1,
              "assessed_packages": 50,
              "unassessed_packages": 0,
              "affected_by_severity": "critical 1",
              "direct_affected_packages": 1
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "1 affected: transformers 4.57.6 (critical 9.6)",
                "points": 8.1,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "transformers 4.57.6 (critical 9.6)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 219 days ago",
                "points": 32.3,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 1,
                      "oldest": 219
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 50,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 9
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 56,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.79,
              "agent_instruction_files": [
                ".claude/CLAUDE.md",
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 1892
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".claude/CLAUDE.md, AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".claude/CLAUDE.md, AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "79 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 79,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "weak",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 41,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.04,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "4 of the last 100 commits agent-authored or agent-credited",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 4,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 119408,
              "source_files_sampled": 390,
              "oversized_source_files": 3
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "3/390 source files over 60KB",
                "points": 54.6,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 390,
                      "oversized": 3
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "weak",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "top": [
        "library"
      ],
      "labels": [
        "library"
      ],
      "scores": {
        "library": 6
      },
      "primary": "library",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:pypi",
          "weight": 6
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": false,
      "consumed_by_code": true
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Community profile unavailable",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-31T11:17:42.784474Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/d/DePasqualeOrg/mlx-audio-plus.svg",
  "full_name": "DePasqualeOrg/mlx-audio-plus",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v2.5.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenPyPI.