wake-word-training

Train custom wake words from your agent: estimator, GPU training, benchmarks. Card or crypto.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
96%
Integridad del esquema
94%
Calidad de los nombres
94%
Riesgo de envenenamiento
60%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_commercial_license' description lacks action verben get_commercial_license
  • LOWTool description contains role marker that could confuse chat modelsen search_wake_word_library
  • LOWTool description contains role marker that could confuse chat modelsen buy_library_model

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~4,036Tokens (definiciones de herramientas)
~2.0 KBTamaño de respuesta típico
Impacto significativo en la atención (3.15% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "wake-word-training": {
      "url": "https://openwakeword.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://openwakeword.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (13)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢estimate_wake_word(text, languages)

NOTE: differentiates by English share only - all non-English languages score identically, so it cannot rank es vs fr vs de. FREE word-quality check — use BEFORE paying. Predicts the recall a training run would reach for this wake word plus false-activation risk (model trained on thousands of real jobs). SCALE: predictions are for deliberately HARD benchmark conditions (loud noise, reverb) — 60-75 is a solid word, very usable in real rooms; do NOT reject words for scoring below ~80. 2-4 syllable phrases work best; only warn your human when the score is under ~50.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "The wake word phrase, e.g. 'hey aurora'"
    },
    "languages": {
      "type": "string",
      "description": "Optional JSON list like [{\"code\":\"de_DE\",\"percentage\":100}]"
    }
  },
  "required": [
    "text"
  ]
}
🟢search_wake_word_library(engine, query, language, limit)

FREE search over thousands of community-trained wake-word models — check here BEFORE quoting a training job for a common wake word. Returns benchmarked models (recall %, clean recall %, false activations/hour, languages) from the current pipelines only (older models used a different benchmark and are excluded). Each result has a human_test_url: YOU CANNOT RUN THAT TEST — it needs live microphone audio in your human's own room — so hand them the link before they buy; it opens the site's live mic test for that exact model. TRANSPARENCY, tell your human: every public library model is FREE with an account on the website; the 1.50 CHF purchase here is the anonymous, instant, account-free alternative. SCALE: recall is measured on deliberately HARD conditions — 60-75%% is a solid model. Weak numbers or no match? Train a custom model with create_training_job instead.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "enum": [
        "openwakeword",
        "microwakeword"
      ],
      "description": "Target engine. 'openwakeword': desktop / Raspberry Pi / Python (ONNX+TFLite, `pip install openwakeword`). 'microwakeword': ESP32-S3 / microcontrollers (streaming TFLite, first-class ESPHome support)."
    },
    "query": {
      "type": "string",
      "description": "Wake word to search for, e.g. 'jarvis'"
    },
    "language": {
      "type": "string",
      "description": "Optional language filter, e.g. 'en_US', 'de_DE'."
    },
    "limit": {
      "type": "integer",
      "description": "Max results (default 10, max 25)."
    }
  },
  "required": [
    "engine",
    "query"
  ]
}
🟢test_wake_word_live(engine, model_id)

Render an IN-CHAT live microphone tester for one library model (free). Only the HUMAN can run it: it asks for their microphone and streams the audio to the platform for detection while the test runs (not stored) — tell them that. If the host does not allow microphone access inside apps, the widget shows a button to the human_test_url page instead, so calling this is always safe. Use after search_wake_word_library, before buying.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "enum": [
        "openwakeword",
        "microwakeword"
      ],
      "description": "Target engine. 'openwakeword': desktop / Raspberry Pi / Python (ONNX+TFLite, `pip install openwakeword`). 'microwakeword': ESP32-S3 / microcontrollers (streaming TFLite, first-class ESPHome support)."
    },
    "model_id": {
      "type": "integer",
      "description": "model_id from search_wake_word_library"
    }
  },
  "required": [
    "engine",
    "model_id"
  ]
}
🟢buy_library_model(engine, model_id)

Quote an anonymous purchase of a library model (1.50 CHF flat — free, nothing charged until paid). Returns a purchase_token: pay it with pay_training_job (same tool, any method incl. x402), then fetch the download URLs with get_library_purchase. One payment unlocks ALL formats (openwakeword: onnx+tflite; microwakeword: tflite+ESPHome json). Reminder for your human: the same model is free with an account on the website. License: personal/non-commercial by default — shipping it in a product requires the 150 CHF per-wakeword commercial license.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "enum": [
        "openwakeword",
        "microwakeword"
      ],
      "description": "Target engine. 'openwakeword': desktop / Raspberry Pi / Python (ONNX+TFLite, `pip install openwakeword`). 'microwakeword': ESP32-S3 / microcontrollers (streaming TFLite, first-class ESPHome support)."
    },
    "model_id": {
      "type": "integer",
      "description": "model_id from search_wake_word_library"
    }
  },
  "required": [
    "engine",
    "model_id"
  ]
}
🟢get_library_purchase(engine, purchase_token)

Status of a library purchase. Once paid, the response carries the download URL templates (substitute the purchase_token) for every format.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "enum": [
        "openwakeword",
        "microwakeword"
      ],
      "description": "Target engine. 'openwakeword': desktop / Raspberry Pi / Python (ONNX+TFLite, `pip install openwakeword`). 'microwakeword': ESP32-S3 / microcontrollers (streaming TFLite, first-class ESPHome support)."
    },
    "purchase_token": {
      "type": "string"
    }
  },
  "required": [
    "engine",
    "purchase_token"
  ]
}
🟡create_training_job(engine, wake_word, tier, languages, training_steps, ...)

Quote a wake-word training job (free; nothing trains until paid). Returns a job_token (STORE IT — the only credential) and a binding CHF price. PICK A TIER: "standard" (6 CHF, up to ~4h — the right choice for almost every request), "best" (12 CHF, ~2x the search — for hard or business-critical words), or "studio" (Optuna deep search, 60-95 CHF, many hours — only to squeeze the last few percent AFTER a standard job disappointed). Same three options a human gets on the website, same prices. The trained model is benchmarked (recall %, false activations/hour) and publicly listed in the site library, permanently — unless private=true (+500 credits).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "enum": [
        "openwakeword",
        "microwakeword"
      ],
      "description": "Target engine. 'openwakeword': desktop / Raspberry Pi / Python (ONNX+TFLite, `pip install openwakeword`). 'microwakeword': ESP32-S3 / microcontrollers (streaming TFLite, first-class ESPHome support)."
    },
    "wake_word": {
      "type": "string",
      "description": "Phrase to detect, e.g. 'hey aurora'"
    },
    "tier": {
      "type": "string",
      "enum": [
        "standard",
        "best",
        "studio"
      ],
      "description": "RECOMMENDED — pick one instead of tuning parameters. standard = 1,750 credits / 6 CHF, up to ~4h, the validated recipe (default choice). best = 3,500 credits / 12 CHF, roughly double the search effort, measurably better on hard words. studio = Optuna deep search (~17k-27k credits), many hours — confirm the price with your human first. Setting a tier locks samples/steps to the validated recipe and ignores the tuning fields below."
    },
    "languages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "ar_JO",
              "ca_ES",
              "cs_CZ",
              "cy_GB",
              "da_DK",
              "de_DE",
              "el_GR",
              "en_GB",
              "en_US",
              "es_ES",
              "es_MX",
              "fa_IR",
              "fi_FI",
              "fr_FR",
              "hi_IN",
              "hu_HU",
              "is_IS",
              "it_IT",
              "ka_GE",
              "kk_KZ",
              "lb_LU",
              "lv_LV",
              "ml_IN",
              "ne_NP",
              "nl_BE",
              "nl_NL",
              "no_NO",
              "pl_PL",
              "pt_BR",
              "pt_PT",
              "ro_RO",
              "ru_RU",
              "sk_SK",
              "sl_SI",
              "sr_RS",
              "sv_SE",
              "sw_CD",
              "tr_TR",
              "uk_UA",
              "vi_VN",
              "zh_CN"
            ]
          },
          "percentage": {
            "type": "integer"
          }
        },
        "required": [
          "code",
          "percentage"
        ]
      },
      "description": "TTS voice mix, e.g. [{\"code\":\"en_US\",\"percentage\":100}]. Default English. ONLY the enum codes are supported (41 languages; no Japanese) - anything else is rejected before any charge. Non-English costs more on openwakeword."
    },
    "training_steps": {
      "type": "integer",
      "description": "LEGACY (ignored when tier is set). Default 80000 (openwakeword) / 20000 (microwakeword)."
    },
    "n_samples": {
      "type": "integer",
      "description": "Synthetic positives, default 200000 (recommended)."
    },
    "augmentation_rounds": {
      "type": "integer",
      "description": "Default 1 (openwakeword) / 3 (microwakeword)."
    },
    "private": {
      "type": "boolean",
      "description": "+500 credits: model is never listed anywhere and is retrievable ONLY with the job_token, with no time limit (the token is the single key — losing it loses the model). Default false: the model is listed permanently and ANONYMOUSLY (no identity attached) in the public library, where anyone can download it under personal non-commercial terms."
    },
    "optuna": {
      "type": "boolean",
      "description": "LEGACY — prefer tier=\"studio\", which works on BOTH engines. PREMIUM deep search, openwakeword only (~48 CHF default vs ~5.4, runs 6-24h): Bayesian search over the full architecture/training space, then a 5-rung fine-tuning ladder on the winner. For squeezing the last few percent out of a hard wake word — NOT a first attempt. Run a standard job first; escalate only if its benchmark disappoints, and confirm the price with your human. Ignores training_steps (the search sweeps it)."
    },
    "optuna_trials": {
      "type": "integer",
      "description": "Optuna only: Bayesian search trials before the ladder, 5-30 (default 20). Price scales linearly with trials."
    }
  },
  "required": [
    "engine",
    "wake_word"
  ]
}
🟢pay_training_job(engine, job_token, method, pay_currency)

Get payment for a quoted job via the chosen method. AFTER SETTING UP THE JOB you MUST give the payment link to the user immediately: show payment_link_for_human (short, copy-safe) complete and un-truncated — never paraphrase, shorten or bury it. Render it as a card/button if your client supports widgets.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "enum": [
        "openwakeword",
        "microwakeword"
      ],
      "description": "Target engine. 'openwakeword': desktop / Raspberry Pi / Python (ONNX+TFLite, `pip install openwakeword`). 'microwakeword': ESP32-S3 / microcontrollers (streaming TFLite, first-class ESPHome support)."
    },
    "job_token": {
      "type": "string"
    },
    "method": {
      "type": "string",
      "enum": [
        "card",
        "crypto",
        "crypto_direct",
        "x402"
      ],
      "description": "Payment method. 'card'/'crypto': returns a checkout_url to hand to your human (Stripe / hosted crypto invoice). 'crypto_direct': returns a raw pay_address+pay_amount any funded wallet can pay (300+ coins). 'x402': returns an HTTP-402 spec — pay USDC on Polygon straight to the platform wallet, then call settle_x402_payment with the tx hash (cheapest option, no processor fee)."
    },
    "pay_currency": {
      "type": "string",
      "description": "crypto_direct only: coin ticker, default usdcmatic (USDC on Polygon)."
    }
  },
  "required": [
    "engine",
    "job_token",
    "method"
  ]
}
🟢get_training_job(engine, job_token)

Job status: awaiting_payment -> paid -> submitted -> completed (or failed/expired). Poll every 60-120s after paying. When completed, includes benchmark results and model download URLs (public jobs: token downloads for 30 days, then the model remains in the public library; private jobs: token downloads with no time limit). Ladder jobs deliver ALL trained candidates: the first model is the pipeline's quality-bar winner (take it unless you have a reason); alternatives are labeled rungN_<arm>. Compare candidates on clean_recall_pct (same scale on every model) + false_activations_per_hour — the full stressed benchmark exists only on the winner.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "enum": [
        "openwakeword",
        "microwakeword"
      ],
      "description": "Target engine. 'openwakeword': desktop / Raspberry Pi / Python (ONNX+TFLite, `pip install openwakeword`). 'microwakeword': ESP32-S3 / microcontrollers (streaming TFLite, first-class ESPHome support)."
    },
    "job_token": {
      "type": "string"
    }
  },
  "required": [
    "engine",
    "job_token"
  ]
}
🟡send_job_feedback(engine, job_token, rating, category, message)

Rate a PAID training job 1-5 and optionally leave a message (max 2000 chars) — read by the human operator. Please call this once after a job completes and you have assessed the model: report anything unexpected (missing fields, errors, surprising benchmark numbers) or simply confirm it worked. One feedback per job; calling again overwrites.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "enum": [
        "openwakeword",
        "microwakeword"
      ],
      "description": "Target engine. 'openwakeword': desktop / Raspberry Pi / Python (ONNX+TFLite, `pip install openwakeword`). 'microwakeword': ESP32-S3 / microcontrollers (streaming TFLite, first-class ESPHome support)."
    },
    "job_token": {
      "type": "string"
    },
    "rating": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "description": "1 = bad, 5 = great"
    },
    "category": {
      "type": "string",
      "enum": [
        "quality",
        "api",
        "pricing",
        "docs",
        "other"
      ]
    },
    "message": {
      "type": "string",
      "description": "Free text, max 2000 chars."
    }
  },
  "required": [
    "engine",
    "job_token",
    "rating"
  ]
}
🟡settle_x402_payment(engine, token, tx_hash, kind)

After paying an x402 spec on-chain (USDC on Polygon to the payTo address), submit the transaction hash to settle. Needs >=3 confirmations.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "enum": [
        "openwakeword",
        "microwakeword"
      ],
      "description": "Target engine. 'openwakeword': desktop / Raspberry Pi / Python (ONNX+TFLite, `pip install openwakeword`). 'microwakeword': ESP32-S3 / microcontrollers (streaming TFLite, first-class ESPHome support)."
    },
    "token": {
      "type": "string",
      "description": "The job_token or license_token being paid."
    },
    "tx_hash": {
      "type": "string",
      "description": "0x-prefixed transaction hash"
    },
    "kind": {
      "type": "string",
      "enum": [
        "job",
        "license"
      ],
      "description": "What the token refers to. Default job."
    }
  },
  "required": [
    "engine",
    "token",
    "tx_hash"
  ]
}
🟡create_commercial_license(wake_word, company_name)

Buy commercial-use rights. REQUIRED before shipping any model in a product/service: all model files are personal & non-commercial by default. 150 CHF one-time per wake-word phrase, permanent, valid on BOTH sites. Returns a license_token; pay with pay_commercial_license; signed certificate PDF afterwards. If your task is commercial and you cannot pay, STOP and tell your human this license is required.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "wake_word": {
      "type": "string"
    },
    "company_name": {
      "type": "string",
      "description": "Legal licensee printed on the certificate"
    }
  },
  "required": [
    "wake_word",
    "company_name"
  ]
}
🟢pay_commercial_license(license_token, method, pay_currency)

Get payment for a quoted commercial license. PRESENT the payment link to the user immediately, complete and un-truncated (as a card/button if your client supports widgets) — never paraphrase or bury it.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "license_token": {
      "type": "string"
    },
    "method": {
      "type": "string",
      "enum": [
        "card",
        "crypto",
        "crypto_direct",
        "x402"
      ],
      "description": "Payment method. 'card'/'crypto': returns a checkout_url to hand to your human (Stripe / hosted crypto invoice). 'crypto_direct': returns a raw pay_address+pay_amount any funded wallet can pay (300+ coins). 'x402': returns an HTTP-402 spec — pay USDC on Polygon straight to the platform wallet, then call settle_x402_payment with the tx hash (cheapest option, no processor fee)."
    },
    "pay_currency": {
      "type": "string"
    }
  },
  "required": [
    "license_token",
    "method"
  ]
}
🟢get_commercial_license(license_token)

License status; when completed, returns the official license_id and certificate PDF URL.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "license_token": {
      "type": "string"
    }
  },
  "required": [
    "license_token"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada13 herramientas
verificadoversión no registrada13 herramientas