> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://onepin.ai/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://onepin.ai/docs/_mcp/server.

# Phoneme Injector

> The Onepin Phoneme Injector node (operator_phoneme_injector) — names the words worth checking, looks them up in the built-in pronunciation reference, and attaches per-word pronunciation to each line.

**Family: Operator · `type: operator_phoneme_injector` · canvas name "Phoneme Injector" · beta**

The Phoneme Injector works out how each word should be pronounced *in context*, so the [Pronunciation validator](/docs/workflow/pronunciation-validator) has something to grade against. Without it, that check has to judge pronunciation unaided; with it, the check knows what the name was supposed to sound like.

It reads the whole script in one pass, names the words worth looking up — proper nouns, brands, terms — along with the spans they occupy, and queries Onepin's built-in pronunciation reference for all of them at once. The per-word pronunciations ride along with each line to the check downstream.

> **Warning**
>
> **English-only, and no CJK.** Because it exists to feed the [Pronunciation validator](/docs/workflow/pronunciation-validator), and that check only scores US and British English, this node is usable only on `en-us` / `en-gb` Generator branches. Separately, the built-in reference carries no Korean, Japanese, or Chinese data, so a CJK branch is rejected for that reason too.

## Where it goes

**Immediately before a [Pronunciation validator](/docs/workflow/pronunciation-validator)** — every one of its outgoing `lines` edges must go there, because nothing else reads the pronunciations it attaches. Wiring it to a Generator, to Export, or to a different check is rejected.

Its input must already carry generated audio, since the check it feeds scores audio. So a [Generator](/docs/workflow/generator), or any validator's `pass` or `fail` port, may feed it — a [Normalizer](/docs/workflow/normalizer) or the [Script](/docs/workflow/script) source may not. That also rules out placing it before the Generator.

```
   Generator ──▶ Phoneme Injector ──▶ Pronunciation ──pass──▶ Export
```

## Config

| Config key             | Default | Meaning                                                                                                                                              |
| ---------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `exclude_address_rows` | `true`  | Skip street-address records in the reference, so a capitalised run like "Thompson Corner Road" isn't annotated with a pronunciation nobody asked for |

```python
node["config"] = {"exclude_address_rows": True}
```

> **Note**
>
> `max_ngram` and `llm_candidate_filter` are still accepted so that workflows saved before the 2026-08 redesign keep loading, but they are **inert** — they no longer select anything. Everything else about this node (placement, language coverage, and where the pronunciations come from) is fixed by the graph rules rather than configurable, and an unrecognized config key is a `422` rather than a silent no-op.

## What it costs

Billed per input character, at the rate in the live catalog. Use `onepin workflows preview-run <WORKFLOW_ID>` for a run's actual estimate.

## Inspect this node

#### Python

```python
client.nodes.get_node_detail(node_type="operator_phoneme_injector").data
```

#### CLI

```bash
onepin nodes show operator_phoneme_injector
```

#### API

```bash
curl https://api.onepin.ai/api/v2/nodes/operator_phoneme_injector \
  -H "Authorization: Bearer $ONEPIN_API_KEY"
```

## Related

* [Pronunciation validator](/docs/workflow/pronunciation-validator) — the only node this may feed
* [Pronunciation Corrector](/docs/workflow/pronunciation-corrector) — fixes the words the check flags
* [Fix pronunciations](/docs/guides/fix-pronunciations) — the whole chain, end to end