> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://onepin.ai/docs/workflow/normalizer/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://onepin.ai/_mcp/server. # Normalizer > The Onepin Normalizer node (operator_normalizer) — expands numbers, dates, and symbols into their spoken form before generation. **Family: Operator · `type: operator_normalizer`** The Normalizer rewrites text into spoken form so it reads naturally — expanding numbers, dates, and symbols ("\$5" → "five dollars"). Place it between the [Script](/docs/workflow/script) (or [Translator](/docs/workflow/translator)) and the [Generator](/docs/workflow/generator). Pronunciation control — your workspace dictionary and phonetic fixes — is a separate concern handled at generation, not here: see [Fix pronunciations](/docs/guides/fix-pronunciations). ## Config | Config key | Default | Values | | ---------- | ------- | ------------------------------------------------------------------------------------------ | | `engine` | `llm` | `llm` — a model rewrites each line, reading context to resolve ambiguity (the only engine) | ```python node["config"] = {"engine": "llm"} ``` Normalization is billed per input character regardless of content. ## Inspect this node #### Python ```python client.nodes.get_node_detail(node_type="operator_normalizer").data ``` #### CLI ```bash onepin nodes show operator_normalizer ``` #### API ```bash curl https://api.onepin.ai/api/v2/nodes/operator_normalizer \ -H "Authorization: Bearer $ONEPIN_API_KEY" ``` ## Related * [Generator](/docs/workflow/generator) — the next node * [Script](/docs/workflow/script) — where the text comes from > Onepin is a voice workflow platform that orchestrates, validates, and ships production-ready audio across 33 TTS models.