Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 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 estrellas⑂ 6 forksdesde nov 2025forkVer en GitHub ↗
TipoBibliotecacómo se determina

DePasqualeOrg/mlx-audio-plus tiene un índice de salud de 53 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Vitality (64/100) y la más baja, Community & Adoption (29/100). Se actualizó por última vez hace 82 días. 2 personas concentran la mayor parte del trabajo reciente.

53
global / 100
Moderado

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala estandarizada de 1 a 100. El resultado global parte de su media ponderada, calibrada contra la distribución del registro público para que las bandas tengan significado percentil; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe un límite «En riesgo» de 34.

53
Excepcional93-100El nivel más alto del registro (≈ el 5% superior); cumple prácticamente todos los criterios evaluados
Excelente80-92Sólido en todos los frentes; carencias menores
Bueno65-79Saludable; carencias limitadas y manejables
Moderado50-64Aceptable con carencias notables; se recomienda revisión
Débil35-49Debilidades sustanciales en varias áreas
En riesgo20-34Debilidades significativas; su adopción exige cautela
Crítico1-19Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

El resultado global ponderado 52 se calibra a 53 en la escala publicada del índice (calibración del registro 2026-08-02).

Titularidad

AnthonyCuenta personal
0 seguidores189 repositorios públicosdesde ene 2017

Este repositorio pertenece a una cuenta personal. Un proyecto con un único propietario conlleva más riesgo de continuidad que uno respaldado por una organización.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicación
PyPImlx-audio-plus0.1.8-9hace 203 días

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

64Moderado · 21% del índice global
Cómo se puntúa
18/36Recencia de push — último push hace 82 días
18/36Cadencia de commits — 26/52 semanas con commits
18/18Volumen de commits — 194 commits en el último año
1/10OpenSSF Scorecard: Maintained — 1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1
Datos de entrada utilizados
commits_last_year194
human_commit_share1
days_since_last_push82
active_weeks_last_year26
Cómo se puntúa
27/27Publica versiones — 9 versiones publicadas
16.2/36Recencia de las versiones — última versión hace 203 días
27/27Cadencia de publicación — una versión cada ~4,3 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count9
latest_release_tagv0.1.8
releases_from_tagsno
days_since_latest_release203
mean_days_between_releases4,3
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

29En riesgo · 17% del índice global
Cómo se puntúa
26.5/60Estrellas — 44 estrellas
5.8/25Forks — 6 forks
0/15Observadores — 1 observadores
Datos de entrada utilizados
forks6
stars44
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
0/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readmeno
has_licenseno
readme_badges
has_contributingno
has_issue_templateno
has_code_of_conductno
readme_badge_services
has_pull_request_templateno

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

63Moderado · 23% del índice global
Cómo se puntúa
25.2/54Factor bus — la mitad de los commits recae en 2 contribuyente(s)
13.6/22.5Distribución de commits — el principal contribuyente firma el 39% de los commits
13.5/13.5Amplitud de contribuyentes — 39 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 5 contributing companies or organizations
Datos de entrada utilizados
bus_factor2
contributors_sampled39
top_contributor_share0,394
Cómo se puntúa
42/42Resolución de issues — 100% de issues cerradas
10/30Aceptación de PR — 1/3 PR decididos fusionados
0/13Newcomer PR acceptance — ningún PR de un contribuyente primerizo decidido en 30 d
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Datos de entrada utilizados
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
Excluidos de la puntuación (sin datos o no aplicable): newcomer_pr_acceptance. Los pesos restantes se han renormalizado.
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
0/25Alcance del propietario — 0 seguidores de DePasqualeOrg
25/25Trayectoria — 189 repos públicos, cuenta de ~9 años
Datos de entrada utilizados
followers0
owner_typeUser
is_verified
owner_loginDePasqualeOrg
public_repos189
account_age_days3469
Excluidos de la puntuación (sin datos o no aplicable): Dominio verificado. Los pesos restantes se han renormalizado.
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en pypi
26/35Recencia de publicación — última publicación hace 203 días
20/20Historial de versiones — 9 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesmlx-audio-plus
ecosystemspypi
any_deprecatedno
min_days_since_publish203

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

58Moderado · 19% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 2 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter
9.6/9.6Hooks de pre-commit
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 1 merged PRs checked by a CI test -- score normalized to 0
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_config
has_precommit_config
Cómo se puntúa
0/30README
25/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
0/10Descripción del repositorio
10/10Topics — 12 topics
0/10Wiki
Datos de entrada utilizados
topicsai, audio, machine-learning, mlx, python, speech-to-speech, speech-to-text, sst, sts, text-to-speech, tts, macos
has_wikino
homepage
has_readmeno
has_docs_dir
has_descriptionno

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

39Débil · 16% del índice global
Cómo se puntúa
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.5Licencia — 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 — sin datos
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 — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,3
Excluidos de la puntuación (sin datos o no aplicable): packaging, signed_releases. Los pesos restantes se han renormalizado.
Cómo se puntúa
8.1/35Dependencias directas libres de avisos conocidos — 1 afectados: transformers 4.57.6 (critical 9.6)
25/25Dependencias indirectas libres de avisos conocidos — ninguna dependencia indirecta tiene un aviso conocido
32.3/40Sin avisos pendientes — 1 paquete(s) con avisos sin atender más allá de 90 días; el más antiguo publicado hace 219 días
Datos de entrada utilizados
sourceosv
advisories7
affected_packages1
assessed_packages50
unassessed_packages0
affected_by_severitycritical 1
direct_affected_packages1
Se cotejó el cierre de dependencias en tiempo de ejecución de pypi:mlx-audio-plus@0.1.8 —lo que arrastra la instalación del paquete publicado—: 50 paquetes. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Tiene un peso deliberadamente pequeño (4%): las herramientas para agentes son una señal real de mantenimiento, pero un repositorio sin ninguna puede alcanzar igualmente 100/100.

56Moderado · 4% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — .claude/CLAUDE.md, AGENTS.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 79 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,79
agent_instruction_files.claude/CLAUDE.md, AGENTS.md
agent_instruction_max_bytes1892
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
11/11Configuración de lint / formato
0/11Verificación estática de tipos
0/10Entorno reproducible
8/10Práctica demostrada con agentes — 4 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_tests
lockfiles
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_config
typecheck_configs
agent_commit_share0,04
toolchain_manifests
dependency_bot_commit_share0
Cómo se puntúa
0/45Código verificable por tipos — Python sin configuración de verificación de tipos
54.6/55Tamaños de archivo manejables — 3/390 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languagePython
largest_source_bytes119.408
source_files_sampled390
oversized_source_files3
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
0/20Servidor MCP
40/40Ejemplos ejecutables — examples
Datos de entrada utilizados
example_dirsexamples
has_mcp_signalno
api_schema_files

Datos clave

44estrellas de GitHub
39contribuidores
194commits en los últimos 12 meses
82días desde el último push
9versiones publicadas
2factor bus
0issues abiertas
PyPIecosistemas de paquetes

Advertencias de recopilación de datos

  • 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

Más detalle

Historial de estrellas y forks 0 ★ / 6 ⇿
0Estrellas
6Forks
2Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

123456612025-122026-032026-07
Mayor 0Menor 0Parche 2
OpenSSF Scorecard 3.3 / 10
3.3agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).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
n/dPackagingpackaging 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
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Dependencias directas 12
RegistroPaqueteRestricción de versiónManifiesto
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
Todas las dependencias no recopilado

No fue posible recopilar el conjunto de dependencias resuelto para este informe: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Avisos de dependencias 1

Instalar pypi:mlx-audio-plus@0.1.8 arrastra 50 paquetes, directos y transitivos: 1 tienen avisos conocidos, de los cuales 1 son dependencias directas.

PaqueteVersiónRelaciónGravedadAvisosCorregido en
transformers4.57.6directacrítica75.5.0

Un aviso significa que la versión registrada en el grafo de dependencias cae dentro del rango afectado de un aviso. No se analiza la alcanzabilidad, y el grafo incluye fijaciones de desarrollo y prueba: un hallazgo puede referirse al utillaje y no al software distribuido.

Informe JSON sin procesar legible por máquina
{
  "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"
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v2.5.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasPyPI.