> For the complete documentation index, see [llms.txt](https://docs.vntranslator.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vntranslator.com/features/extensions/text-to-speech.md).

# Text to Speech

<figure><img src="/files/6IjsbThog2C78NOuiZnJ" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The TTS (Text-to-Speech) Extension is available starting from **VNTranslator Pro v1.0.0**, accessible for **Supporter+** tier and above.
{% endhint %}

***

### Enabling the TTS Extension

To enable the TTS Extension, follow these steps:

* Go to **Settings -> Extensions -> Text to Speech**
* Toggle the switch to **On**
* Relaunch the app

***

### Creating a New TTS List

* Open the **TTS Window**
* Click the **New List** button to create a new TTS list

***

### Adding Voices to a TTS List

* Click on the **TTS name** to open the **Voice Editor**
* Click the **Add Voice** button to add a new voice entry
* In the **Character Name** field, enter the character name associated with the voice
* In the **Text Source** field, select the input source for the TTS voice. You can choose between:
  * **Source Text** - Uses the original text as the TTS input
  * **Target Text (Translation)** - Uses the translated text as the TTS input

#### About Character Names

The character name is used to determine which voice will be played based on the text source. Below are the available options:

* **Default** or **None** - Defines the default voice that will be played when no matching character name is found in the source text or translation
* **"%" Pattern (Wildcard)**  - Use the `%` wildcard to define a dynamic name pattern. For example, if the source text contains `Anita: Hello World`, you can enter `Anita%` as the character name to match it
* **Multiple Character Names** - You can enter more than one character name by separating them with a comma (`,`). For example: `Ani%, Amelia%`

***

### Supported TTS Engines

VNTranslator supports the following TTS engines:

#### Online

<figure><img src="/files/AsU88YYozSebFiumjPJf" alt=""><figcaption></figcaption></figure>

* ElevenLabs
  * <https://elevenlabs.io/app/developers>
* Google Cloud TTS
  * <https://docs.cloud.google.com/text-to-speech/docs>
* Speechify
  * <https://console.speechify.ai/>
* Inworld TTS
  * <https://platform.inworld.ai/>

#### Offline

<figure><img src="/files/m7yi8tX2suOp4VLCJPK8" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:** Offline TTS engines must be installed on your computer before use.
{% endhint %}

* [Pocket TTS (English Only)](/features/extensions/text-to-speech/pocket-tts.md)
* [Kokoro TTS](/features/extensions/text-to-speech/kokoro-tts.md)
* [VoiceVox (Japanese Only)](/features/extensions/text-to-speech/voicevox.md)
* ~~Piper TTS~~
* ~~Web Speech API (Browser)~~

***

### Custom Engine

* Endpoint
* ContentType
  * `application/json`
  * `multipart/form-data`
* Headers
* Body
* ResponseType
  * `Audio Format`
  * `Base64 Format`
* ResponseQuery


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.vntranslator.com/features/extensions/text-to-speech.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
