> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mosaic.so/llms.txt
> Use this file to discover all available pages before exploring further.

# 20. Voice

> Modify spoken audio in your video using AI — including dubbing, word swapping, and lip-sync.

Modify spoken audio in your video using AI — including dubbing into different languages, swapping specific words, and generating lip-synced speech. This is valuable for repurposing videos globally, correcting misspoken words, or adjusting terminology without re-recording.

## How It Works

The Voice tile analyzes your video's speech, generates replacement audio based on your selections, and merges it back into the timeline. If enabled, it also adjusts lip movements to match the new audio.

<img src="https://mintcdn.com/mosaic/qT-iiDoPQ_UEgBBW/images/voice-ui.png?fit=max&auto=format&n=qT-iiDoPQ_UEgBBW&q=85&s=7c179b7d6f53e68579837b4aee1f6395" alt="Voice UI" width="1920" height="1080" data-path="images/voice-ui.png" />

## Input and Settings

### Target Language

Choose the output language for the voice.

Use cases:

* Global distribution (English → Spanish → French, etc.)
* Multilingual short-form content
* Translating educational or tutorial content

### Preserve Background Audio

Choose whether to keep original ambient sounds or music.

* **Yes** — keeps natural room tone, gameplay audio, background music
* **No** — outputs clean isolated speech for controlled mixing

### Lip Sync

Aligns mouth movements to match the new speech. Essential when dubbing to another language, replacing script sections, or creating seamless speech edits.

<Note>**Advanced features (limited provider support):** The Voice tile also supports **Safewords** (words that should never be modified, like brand names) and a **Translation Dictionary** (custom word/phrase replacements for fine-tuned localization). Availability depends on your selected voice provider.</Note>

Voice pairs well with [Captions](/tiles/captions) (add subtitles in the new language), [Reframe](/tiles/reframe) (adapt for different platforms), and [Audio Enhance](/tiles/audio-enhance) (polish the final audio).

***

## API Info

<AccordionGroup>
  <Accordion title="Node Params & API Details" icon="code">
    * **Node ID:** `14abd0c1-402c-40b8-8ec8-defd951efe01`

    ### Node params

    | Param                       | Type                                                                                                                                                                                                                                                                                                                                                                               | Required | Default                         | Notes                                                                                       |
    | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------- | ------------------------------------------------------------------------------------------- |
    | `target_language`           | `"english" \| "hindi" \| "portuguese" \| "mandarin" \| "spanish" \| "french" \| "german" \| "japanese" \| "arabic" \| "russian" \| "korean" \| "indonesian" \| "italian" \| "dutch" \| "turkish" \| "polish" \| "swedish" \| "tagalog" \| "malay" \| "romanian" \| "ukrainian" \| "greek" \| "czech" \| "danish" \| "finnish" \| "bulgarian" \| "croatian" \| "slovak" \| "tamil"` | No       | metadata/UI default `"english"` | Backend flow fallback is `"spanish"` if missing. Set explicitly for deterministic behavior. |
    | `preserve_background_audio` | `boolean`                                                                                                                                                                                                                                                                                                                                                                          | No       | `true`                          | If false, background mix is dropped.                                                        |
    | `enable_lipsync`            | `boolean`                                                                                                                                                                                                                                                                                                                                                                          | No       | `true`                          | Lip sync control for dubbed output.                                                         |
    | `safewords`                 | `string`                                                                                                                                                                                                                                                                                                                                                                           | No       | `""`                            | Present in schema; currently marked unsupported in ElevenLabs path.                         |
    | `translation_dictionary`    | `{source:string,target:string}[]`                                                                                                                                                                                                                                                                                                                                                  | No       | unset                           | Present in schema; currently marked unsupported in ElevenLabs path.                         |

    ### Parameter groups

    * **Language & output:** `target_language`, `preserve_background_audio`, `enable_lipsync`
    * **Advanced lexical controls:** `safewords`, `translation_dictionary`

    ### Runtime notes

    * There is a known default mismatch across layers (`target_language`, `enable_lipsync`), so API agents should always send both explicitly.
    * ElevenLabs language normalization happens server-side before synthesis request.

    ### Example

    ```json theme={null}
    {
      "target_language": "spanish",
      "preserve_background_audio": true,
      "enable_lipsync": false
    }
    ```
  </Accordion>
</AccordionGroup>
