> For the full page index, fetch https://echonova.ai/llms.txt

# FAQ: Text to Speech

The questions readers ask about generating speech in the portal, from voices and dialects to what a generation costs and why one failed.

## Which dialects and languages can I generate?

Every voice speaks exactly one dialect, and you choose the dialect by
choosing the voice. The library can carry **Egyptian**, **Emirati**,
**Saudi**, **Kuwaiti**, **Qatari**, **Omani**, **Lebanese**, **Syrian**,
**Iraqi** and **Fusha** (Modern Standard Arabic) voices, and **English**
voices; under **Voices**, the chips before the **Coming Soon** divider are
the dialects that have voices today. See
[Dialects](/docs/playground/dialects#a-voice-speaks-one-dialect).

## Can I generate English speech?

Yes. Click **Change voice** and pick an English voice. A voice reads your
text in its own language and accent whatever the text is, so Arabic text on
an English voice comes out with English pronunciation; pick the voice for
the language the text is written in. See
[Dialects](/docs/playground/dialects#what-a-dialect-changes-when-you-generate-speech).

## How do I try a voice before I spend credits?

Open **Voices**, press the orb on a row to hear its preview clip, then press
**Use this voice** to open **Text to Speech** with that voice selected.
Previews are free and only a generation is charged, so test the voice on
one short sentence before you paste the full passage. See
[Browse the voice library](/docs/playground/voice-library#step-3-preview-a-voice).

## Where do my saved voices show up?

Press **More voice actions** on a row, then **Save voice**. The voice is
listed under **My Saved Voices** in the library and under the
**My Saved Voices** tab of the voice picker on **Text to Speech**; the list
is yours and belongs to your account. See
[Filters, previews and favourites](/docs/playground/filters-previews-favourites#step-6-use-your-saved-voices).

## What does the Tashkeel switch do?

With an Arabic voice selected, switching **Tashkeel** on marks the Arabic text
in the writing area with diacritics so the voice reads vowels and endings
right; switching it off takes the marks out again. Any word you marked
yourself is kept exactly as you typed it, the marking costs nothing, and the
text in the writing area is what is spoken and charged. See
[Add diacritics](/docs/playground/add-diacritics#step-2-mark-the-words-you-want-to-control-yourself).

## Why is the Tashkeel switch missing or greyed out?

The switch is shown above the writing area for every voice except an English
one, and it needs a voice to be selected. With text that has no Arabic
letters it is greyed out and its tip reads **For Arabic text**. Select an
Arabic voice, or click **Change voice** and pick one, and type Arabic text.
See
[Add diacritics](/docs/playground/add-diacritics#the-tashkeel-switch-is-not-there).

## What do speed, cfg and num_steps change?

**speed** sets the reading pace, 0.5 to 2.0 in steps of 0.5, with 1.0 as
the voice's normal pace. **cfg** (1.0 to 5.0, default 2.0) and
**num_steps** (16, 32, 48, 64 or 128, default 48) tune the synthesis; leave
both at their defaults unless you are comparing renders of the same text,
and move one control at a time. None of the three changes the charge. See
[Voice settings](/docs/playground/voice-settings#options).

## What are the Tags buttons for?

Each of the eight **Tags** buttons, such as **[laugh]** or **[sigh]**,
appends a cue in square brackets to the end of your text for the voice to
act out at that point. Move the cue to where you want it, or type one by
hand anywhere in the text; cues count toward the character limit and are
charged like any other characters. See
[Voice settings](/docs/playground/voice-settings#tags).

## What audio format do I get?

WAV, one file per generation. There is no format, bit-rate or sample-rate
control; to get MP3, download the WAV file and convert it with a tool of
your choice. See
[Formats, quality and download](/docs/playground/formats-quality-download#output-format).

## How long can my text be?

1 to 5,000 characters, counted with spaces; the counter under the writing
area reads `n / 5000`. Typing stops at 5,000, a paste is cut at the
5,000th character, and text that grows past the limit after
**Tashkeel** is rejected, so generate a longer passage in parts. Over
the API the limit is 500 characters per request. See
[Text to Speech limits and credits](/docs/playground/tts-limits-and-credits#limits).

## How much does a generation cost?

A generation costs 1 credit per character of text, spaces and line breaks included, so 3,000 characters cost 3,000 credits. The voice and the settings do not change the charge; diacritics and **Tags** cues do, because each one is a character. See
[Credits](/docs/developers/credits#rates) for the rate and
[Text to Speech limits and credits](/docs/playground/tts-limits-and-credits#what-a-generation-costs)
for what the portal shows.

## Is the Credits figure my account balance?

No. The editor shows an approximate generation estimate before generation
and the returned cost afterward. Open **Subscription** for your balance.
See [Text to Speech limits and credits](/docs/playground/tts-limits-and-credits).

## Am I charged when a generation fails?

No. The charge is taken from the workspace balance when you click
**Generate** and returned if the generation fails, and nothing is
added to **History**. If the balance cannot cover the charge, the
generation does not run and a notification reads
**Insufficient subscription balance**; add credits under **Subscription**,
then generate again. See
[Text to Speech limits and credits](/docs/playground/tts-limits-and-credits#when-you-are-charged).

## Where do my earlier generations go?

Every completed generation made from the portal is kept on the **History**
tab of the settings panel, grouped by day and loaded 8 at a time, and on
the **Assets** page; every member of the workspace sees the same list, and
replaying or downloading is free. Generations made with an API key are not
listed there; see
[Where do my API jobs show up in the portal?](/docs/help/faq-api#where-do-my-api-jobs-show-up-in-the-portal).
For the panel itself, see
[Text to Speech history](/docs/playground/tts-history#step-2-find-the-generation).

## What is the downloaded file called?

From the Text to Speech page and the **History** tab, `speech-` followed by
the generation's identifier and `.wav`. From the **Assets** page, `tts-`
followed by the same identifier and `.mp3`; the content is WAV audio
whatever the name says, so change the extension to `.wav` if a tool refuses
it. Rename the file afterwards, because the identifier alone does not tell
you which take it was. See
[Formats, quality and download](/docs/playground/formats-quality-download#download).

## Can I delete a generation?

Yes. Press **Delete** on it in the **History** panel or on the **Assets**
page, then confirm at **Delete for good?**. Deletion is final. Items stay
until you delete them. To make the same audio again, press
**Recreate** on the **Assets** page, which starts a new generation and is
charged again. See
[Text to Speech history](/docs/playground/tts-history#can-i-delete-a-generation).

## Why did my generation fail?

The notification names the reason. **Insufficient subscription balance**
means the workspace balance is short;
**Speech generation is temporarily unavailable. Please try again.** means
the generation did not run and the charge was returned; **Voice not found**
means the selected voice was withdrawn, so pick another; and
**text must be shorter than or equal to 5000 characters** means the marked
text grew past the limit, so shorten it. Each message and what to do is on
[Generate speech](/docs/playground/generate-speech#troubleshooting).

## Can I generate speech from my own code?

Yes. The Developer API uses the same voices, a 500-character limit per
request, and the same `speed`, `cfg` and `numSteps` options, and returns a WAV file;
`tashkeel: true` on the synchronous call adds diacritics for a Fusha voice.
See [Text to Speech quickstart](/docs/developers/tts-quickstart).

## Related

- [Generate speech](/docs/playground/generate-speech): the steps from text to audio, and every message the page shows
- [Browse the voice library](/docs/playground/voice-library): preview a voice and send it to Text to Speech
- [Dialects](/docs/playground/dialects): what each dialect means and how to pick one for a region
- [Add diacritics](/docs/playground/add-diacritics): mark Modern Standard Arabic before you generate with a Fusha voice
- [Voice settings](/docs/playground/voice-settings): every control with its range and default
- [Formats, quality and download](/docs/playground/formats-quality-download): the WAV file and how it is named
- [Text to Speech history](/docs/playground/tts-history): replay and download earlier generations
- [Text to Speech limits and credits](/docs/playground/tts-limits-and-credits): the text limit and what a generation costs
- [Credits](/docs/developers/credits): what a credit is and the rates
- [Text to Speech quickstart](/docs/developers/tts-quickstart): the same generation from your own code
- [FAQ: Speech to Text](/docs/help/faq-speech-to-text): transcription and Sound Cleaning
- [Troubleshooting](/docs/help/troubleshooting): every Text to Speech message in one table
