# lipsync

> Talos 0.7 · Since 0.7

Moves the mouth shapes (morph targets) of this entity's animated model with the voice its `audio` component plays.

Needs an `animator` and an `audio` on the same entity. The model's shapes are found by name: the 15 visemes (`viseme_aa`, ...), else the ARKit set, else a jaw (`jawOpen`, `mouth_open`); a model with fewer than the visemes is reported once as `lipsync-degraded`.

Use it in a scene entity's `components` list as `{ "type": "lipsync", … }`. The contract writes the fields flat and refuses unknown keys.

## Fields

| Field | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
| `track` | `string` | no |  |  | A key of scene.assets whose kind is "visemes" (a `*.visemes.json` track, docs/LIPSYNC.md): the mouth makes the track's shapes, in time with the voice. Absent: the mouth opens with the voice's loudness. A track that will not load, or that was made for another sound, falls back to loudness with a `lipsync-degraded` warning. |
| `gain` | `number` | no | `1` |  | How far the voice's loudness opens the mouth, 0 to 4. Default 1. Used without a `track`. |

## Rules that can refuse it

- `lipsync-invalid`
- `lipsync-track-unknown`
