Top

SillyTavern TTS (2026): Setup, the Best Free Voices, the Voice Map and Why It Stays Silent

SillyTavern’s TTS extension reads chat messages aloud by sending their text to a voice provider that you choose, and it uses a voice map to decide which voice speaks for which character. The extension is built in. The voice is not. SillyTavern makes no sound by itself.

Most people who search for help with it have the same problem: they chose a provider, ticked the box, and heard nothing. In most cases nothing is broken. The extension starts with every voice set to disabled, tells you once in a small notice, and then stays quiet.

We read SillyTavern’s documentation for the extension, and then the extension’s own source code on the release branch, which was version 1.19.0 on 7 October 2026. The default values, the order in which text is cleaned, and the messages below are from the code, not from memory or from forum posts.

New to SillyTavern? Start with the SillyTavern guide. For the other built-in extensions, see SillyTavern extensions. For voice in AI RPGs in general, see AI roleplay with voice.

The Short Answer

  • It is already installed. Extensions panel, then the TTS drawer.
  • It is off. Tick Enabled. The voice map does not even appear until you do.
  • Then choose a voice for [Default Voice]. It starts as disabled. This is the step most people miss.
  • The zero-setup free option is System. It uses the voices already on your computer or phone.
  • The better free option is Kokoro. It runs inside your browser. No key, no server, 28 English voices.
  • The paid standard is ElevenLabs. Local voice cloning is AllTalk, XTTS or Chatterbox, each on its own server.
  • The megaphone icon on a message reads that one message. The wand menu has Narrate All Chat and the stop button.
  • Voices are saved per provider and by character name. Change the provider and you start the map again.

How It Works

When a new message appears in the chat, this happens:

  1. SillyTavern takes the text of the message and cleans it: it can remove code blocks, tagged blocks, asterisks, or everything that is not inside quotation marks.
  2. It looks up the speaker’s name in the voice map to find a voice.
  3. It sends the cleaned text and the voice to the provider.
  4. The provider returns audio, and SillyTavern plays it.

There are three places where this stops, and they match the three kinds of “not working”:

  • Step 1 leaves no text. For example, “Only narrate quotes” is on and the reply has no quotation marks you would expect to hear.
  • Step 2 finds no voice, or finds the word disabled.
  • Step 3 fails. The provider is not running, has no key, or refuses the request.

Step 2 is the one that fails without a clear message, so we start there.

The First Fix: The Default Voice Is Disabled

This is how the voice map is built, as the code does it.

  • A character you have never given a voice gets the value [Default Voice]. That means “use whatever the Default Voice row says”.
  • The [Default Voice] row, if you have never set it, gets the value disabled.

So on a new setup, every character points to the default, and the default is off. When a message arrives, the extension shows a small notice, “TTS voice for (name) is disabled.”, and drops the message.

The notice is shown once for each character. The 1.18.0 release notes (3 May 2026) record the change: the “disabled” voice “now shows a toast only once per character”. That was done to stop the notice from appearing on every message. The side effect is that if you missed it the first time, you never see it again. You only see silence.

The fix takes ten seconds:

  1. Open a chat with the character.
  2. Open Extensions, then TTS.
  3. Find the voice map: a list of names, each with a dropdown.
  4. Set a voice on the [Default Voice] row, or on the character’s own row.

Setting [Default Voice] is the better habit. Every character without a voice of its own will use it, so new characters are never silent.

If you cannot see the voice map at all, one of three things is true:

  • Enabled is not ticked. The code does not build the map while TTS is off.
  • No chat is open. The map lists only the people in the current chat.
  • The provider is not ready. The map is not built, and the reason is printed in red at the top of the TTS drawer, starting with “TTS Provider not ready.” The code keeps these errors inside the drawer on purpose. A comment in the source says pop-up errors for TTS “are annoying”. So look in the drawer, not at the corner of the screen.

The Providers

SillyTavern’s documentation lists 16 providers and says the list “may change over time”. The provider list in the 1.19.0 code has 28. The table has all of them. “In the docs” means SillyTavern’s TTS documentation page describes it. For the others, we report only what the code shows.

ProviderWhere it runsCost, by SillyTavern’s documentationIn the docs
SystemYour browser and operating systemFreeYes
KokoroInside your browserFreeYes
Google TranslateGoogle, through the SillyTavern serverFree, one voice per languageYes
PollinationsCloudFree, with a rate limitYes
EdgeMicrosoft, through a server pluginFreeYes
AllTalkLocal serverFree, open sourceYes
XTTSv2Local serverFreeYes
SileroLocal serverFreeYes
CoquiSillyTavern ExtrasFree, marked deprecatedYes
ElevenLabsCloudPaid subscriptionYes
OpenAICloudPaid API keyYes
AzureCloudAzure account and paid subscriptionYes
NovelCloudPaid NovelAI subscriptionYes
Google Gemini TTSCloudAPI key from AI Studio or Vertex AIYes
MiniMaxCloudAPI keyYes
Electron HubCloudYour Electron Hub API keyYes
OpenAI CompatibleAny server you point it atDepends on the serverMentioned
ChatterboxLocal serverNot listedNo
TTS WebUILocal serverNot listedNo
ChutesCloudNot listedNo
CosyVoice (Unofficial)Local serverNot listedNo
GPT-SoVITS-V2 (Unofficial)Local serverNot listedNo
GPT-SoVITS-AdapterLocal serverNot listedNo
GSVILocal serverNot listedNo
SBVits2Local serverNot listedNo
VITSLocal serverNot listedNo
SpeechT5The SillyTavern serverNot listedNo
VolcengineCloudNot listedNo

Three notes on the table.

The default provider depends on where you look. The fallback in the extension’s code is ElevenLabs. The settings file that ships with a new install says System. A new install follows the shipped file, so you start on System, with TTS off.

“Deprecated” means SillyTavern Extras. Extras was a separate Python server that the project no longer develops. Coqui needs it. Silero and Edge can use it but have another route.

Gemini TTS moved in 1.19.0. The release notes for 14 September 2026 say the Gemini TTS model was updated to “Gemini 3.1 Flash TTS Preview”. The same release removed the Group ID requirement from MiniMax and added a choice of keyed or keyless endpoint for Pollinations. If one of these three stopped working on an older version, updating is the first thing to try.

The Two Free Voices With No Server

Most players want a voice tonight and do not want to install a second program. Two providers do that.

System

System uses the speech engine of your browser and operating system. There is nothing to download and no account.

  • The voices are whatever your device has. A Windows PC, a Mac and an Android phone each give a different list. The documentation says the quality “can vary widely depending on the OS”.
  • It has two sliders, Rate (0.1 to 2) and Pitch (0 to 2).
  • The Audio Playback Speed slider is hidden for System, because the browser speaks directly and there is no audio file to speed up.
  • It cannot be used with RVC voice conversion. The RVC documentation says so directly.
  • If the browser has no speech engine, the provider reports “Speech synthesis API is not supported”.

System is the right first test. If System speaks, then the extension, the voice map and your browser’s sound all work, and any later problem belongs to the other provider.

Kokoro

Kokoro is a small voice model that runs inside your browser tab. The documentation describes it as free and says it “uses kokoro.js to run the model locally in your browser”.

What the code shows:

  • The model is onnx-community/Kokoro-82M-v1.0-ONNX, downloaded by the browser on first use. Expect a wait the first time.
  • 28 voices, all English. 20 are American (names starting af_ and am_) and 8 are British (bf_ and bm_). The default is af_heart.
  • Data Type defaults to q8, which the panel labels “Recommended”. q4 is labelled “Low Memory” and fp32 “High Precision”.
  • Device defaults to WebAssembly (CPU). The other choice is WebGPU (GPU Acceleration). The documentation warns that “some browsers may not support WebGPU”. If Kokoro fails after you choose WebGPU, change it back.
  • Speaking Rate runs from 0.5x to 2.0x.
  • Long messages are cut into pieces of about 400 characters at paragraph and sentence ends, and each piece is spoken as it is ready.

Because the work happens on your own device, speed depends on your hardware. On a phone it may be slow. On a desktop it is the best free voice you can get without running a server.

The other free cloud voices

  • Google Translate is the voice from Google’s translation service. The documentation calls it “one per language” and says quality varies. The code cuts the text into pieces of 200 characters, so you will hear short pauses.
  • Pollinations is described in the documentation as “free of charge access to OpenAI TTS models, but with a rate limit”. The code cuts text at 1,000 characters.
  • Edge gives the Microsoft Edge voices for free, but it is not a no-setup option. See the next section.

Edge TTS: Two Switches, Both Off

Edge is one of the most searched providers and one of the most confusing, because two separate things must be changed and both start in the wrong position.

  1. Inside the Edge settings there is a “Provider” dropdown with two choices, Extras and Plugin. The code’s default is Extras, the deprecated server. Change it to Plugin.
  2. The plugin is a separate download. The message in the code names it: “Edge TTS Server plugin not loaded. Install it from https://github.com/SillyTavern/SillyTavern-EdgeTTS-Plugin and restart the SillyTavern server.”
  3. Server plugins are disabled in SillyTavern’s configuration by default. The shipped config.yaml has enableServerPlugins: false. A plugin that is installed but not allowed to load does nothing. Set it to true and restart the server. Remember that only the config.yaml in the SillyTavern root folder is read, not the copy in /default.

One caution from our reading of the code. The check that should print the “plugin not loaded” message calls a function that answers later and does not wait for the answer. If we read it correctly, the helpful message may never appear, and a missing plugin shows up as a plain HTTP error instead. We did not run this to confirm it. If Edge gives you an HTTP error and nothing else, check the three steps above before anything else.

Local Voices and Voice Cloning

If you have a graphics card and want a voice that sounds like a specific person or character, you need a voice server running beside SillyTavern. The extension connects to it by address. These are the default addresses in the code:

ProviderDefault address in SillyTavernWhat it is
AllTalkhttp://localhost:7851A voice server with several engines. The documentation names Coqui XTTS, F5-TTS, VITS and Piper, with voice cloning
XTTSv2http://localhost:8020A server for the XTTSv2 model, with voice cloning from short WAV clips
Chatterboxhttp://localhost:8004The panel links to the Chatterbox-TTS-Server project
TTS WebUIhttp://127.0.0.1:7778/v1/audio/speechA general voice web interface
Silerohttp://localhost:8001/ttsAn older, lighter model. The documentation says quality “can vary widely”
OpenAI Compatiblehttp://127.0.0.1:8000/v1/audio/speechAnything that copies OpenAI’s speech API

What SillyTavern’s own documentation says about the two it covers in detail:

  • AllTalk. On Windows, the SillyTavern Launcher can install it for you: Toolbox, then App Installer, then Voice Generation, then “Install AllTalk V2”. The documentation adds one practical rule: “If SillyTavern is loaded before AllTalk, reload the TTS extensions page.”
  • XTTS. It needs Miniconda, and on Windows the Visual C++ Build Tools. Voice samples must be WAV files of about 10 seconds, in the format the page gives: “PCM, Mono, 22050Hz, 16-bit”. The first start downloads a model of “about ~2 GB”. The page also warns you not to install it into the same Python environment as anything else.

For every local provider the pattern is the same. Start the voice server first. Then open the TTS drawer, check the address, and press Reload. If the status line is red, the server is not answering at that address.

OpenAI Compatible: the general door

Many voice tools copy OpenAI’s speech API, so one provider entry covers all of them. It has four fields: Provider Endpoint, Model, Available Voices and Speed.

The field that catches people is Available Voices. This provider does not ask the server what voices it has. You type the names yourself, separated by commas. The default text is the six classic OpenAI names: alloy, echo, fable, onyx, nova, shimmer. If your server uses other names and you leave the default, every request asks for a voice that does not exist. SillyTavern’s documentation says the same in general terms: some providers “require you to populate the voice list manually”.

This is also the route for KoboldCpp. Its README lists text to speech among its features and says it offers compatible endpoints for “OpenAI speech clients” and for XTTS. So if you already run KoboldCpp for text, as in our KoboldCpp setup guide, you may not need a second voice server. Point the OpenAI Compatible provider at the KoboldCpp address, with /v1/audio/speech at the end.

The Paid Voices

ElevenLabs. The documentation says a paid subscription is required. You paste an API key into the TTS drawer. The code’s defaults are the Turbo v2.5 model, Stability 0.75, Similarity Boost 0.75 and Speed 1.0 (the slider runs from 0.7 to 1.2). The model list also has Eleven v3, Multilingual v2 and Flash v2.5. The panel includes Instant Voice Cloning: a name, a description and uploaded audio files.

OpenAI. It uses the key you already saved in the OpenAI connection settings. The panel’s own hint says so. The models offered are tts-1, tts-1-hd and gpt-4o-mini-tts, and there are nine voices. With the newer model, the panel adds a box for each character where you can describe how to speak, with the example “Speak cheerfully and energetically”.

NovelAI. It needs a paid NovelAI subscription and uses the key from the NovelAI connection settings. This is one of the providers where you add the voice names yourself. Our NovelAI pricing guide covers what each plan includes.

Google Gemini TTS. It uses the key from your Google AI Studio or Vertex AI connection.

We do not quote these services’ prices here. They change, and each one publishes its own. One thing does not change: with Auto Generation on, every reply is sent to the voice service in full. On a service that charges by the character, a long roleplay is a long bill. The options in the next section are how you make it shorter.

The Options, Read From the Code

The TTS drawer has 13 checkboxes. Here is what each one does, and its value on a new install.

OptionOn a new installWhat it does
EnabledOffThe master switch
Narrate user messagesOffAlso reads what you write, in your persona’s voice
Auto GenerationOnReads each new message without a click
Narrate by paragraphs (when streaming)OffSpeaks each paragraph as soon as it is finished. Needs Auto Generation and streaming
Narrate by paragraphs (when not streaming)OffSplits a finished message at line breaks and sends each line as its own request
Only narrate “quotes”OffReads only the text inside quotation marks
Ignore *text, even “quotes”, inside asterisks*OffRemoves everything between asterisks before reading
Narrate only the translated textOffWith the Translate extension, reads the translation. Messages without one are skipped
Skip codeblocksOffRemoves fenced code blocks
Skip <tagged> blocksOffRemoves anything written as a tag pair with its content
Pass Asterisks to TTS EngineOffLeaves the asterisk characters in the text
Different voices for “quotes”, *text inside asterisks* and other textOffThree voices per character. See below
Apply regex filter to textOffRemoves whatever matches a pattern you write

Audio Playback Speed is a slider from 0 to 3, default 1. It changes how fast the finished audio is played, for every provider except System.

A few of these need more than one line.

Quotes and asterisks together. The documentation gives an example sentence and all four results. With the text *Cohee approaches you with a faint “nya”* “Good evening, senpai”, she says.:

Ignore text inside asterisksOnly narrate quotesWhat is read
OffOffCohee approaches you with a faint “nya” “Good evening, senpai”, she says.
OffOn”nya”… “Good evening, senpai”
OnOff”Good evening, senpai”, she says.
OnOn”Good evening, senpai”

For most roleplay, both on is the setting people want: you hear what characters say aloud and nothing else. It is also the cheapest setting on a paid voice.

Skip tagged blocks is the answer when the voice reads things it should not, such as a status block or reasoning text that the model wrote between tags. The pattern in the code removes an opening tag, a closing tag, and everything between them.

The regex filter arrived in version 1.16.0 (14 February 2026). It removes matches; it does not replace them. The panel’s own example pattern keeps only letters, numbers and basic punctuation, which is a quick way to stop a voice from trying to read emoji. If the pattern is not valid, the panel shows “Invalid regex pattern.” and the filter does nothing.

The order matters. The code cleans the text in this order: translation choice, macros, code blocks, tagged blocks, asterisks, your regex, quotes only, embedded images, then spaces. Your regex therefore sees the text after asterisks have been handled, and “only quotes” is applied after your regex. If a pattern seems to match nothing, this is often why.

The character’s name at the start of a line (as in Alice: Hello) is removed before reading, unless you have turned on the option to show names in messages.

The Voice Map in Detail

Four facts about the voice map explain most surprises.

It lists only the current chat. In a one-to-one chat you see three rows: [Default Voice], your persona’s name, and the character’s name. In a group chat you see every member. To give a voice to a character, open a chat with that character first.

It is saved per provider. The map is stored inside each provider’s own settings. If you set ten voices on Kokoro and then switch to ElevenLabs, you get an empty map, and everyone is back to the disabled default. Switch back and the Kokoro voices are still there.

It is saved by name, not by character card. The key is the character’s name as text. So:

  • Two characters with the same name share one voice.
  • If you rename a character, the voice does not follow.
  • Your persona’s row only matters when “Narrate user messages” is on.

Each row has two special values. [Default Voice] means “use the default row”. disabled means “never read this speaker”. Disabling one row is useful: in a group chat you can silence a narrator character and keep the rest.

Above the map, the Available voices button opens a list of every voice the provider reports, with a preview for each. Reload asks the provider again. Use Reload after you start a local server or add a cloned voice.

One Voice for Dialogue, Another for Narration

This is the feature that makes TTS sound like an audiobook and not like one person reading everything. Tick Different voices for “quotes”, *text inside asterisks* and other text.

Each character then has three rows in the voice map:

  • Name ("Quotes") for spoken dialogue
  • Name (*Text inside asterisks*) for actions
  • Name (Other text) for everything else

Give the character’s own voice to the Quotes row and a calm narrator voice to the other two.

The checkbox carries a tooltip with the conditions: it “works best when” Pass Asterisks to TTS Engine is enabled, and both Only narrate quotes and Ignore text inside asterisks are disabled. The code shows why. With Pass Asterisks off, the asterisk characters are removed from the text before it is split into parts. The splitter then finds no asterisks, so nothing is ever marked as an action, and the action voice is never used. If your narration voice never speaks, this is the reason.

Streaming: Why the Voice Waits

By default the voice starts after the whole reply has arrived. On a long reply that is a long silence, and it is why people search for “TTS streaming”.

Tick Narrate by paragraphs (when streaming). It needs two other things: Auto Generation on, and streaming turned on for your text model. Then the extension checks the reply once a second. Each time it finds the end of a paragraph, it sends everything up to that point to the voice provider. You hear the first paragraph while the model is still writing the third.

Two limits follow from how it works.

  • It needs line breaks. A reply written as one long block has no paragraph end until the last character, so nothing is sent early.
  • It sends more requests. One reply becomes several. On a provider with a rate limit, that can be the cause of a failure halfway through a message.

The other option, Narrate by paragraphs (when not streaming), does a simpler thing: it splits a finished message at every line break and sends each line alone. This helps providers that fail on long texts.

The /speak Command

The extension adds one slash command, /speak, with the aliases /narrate and /tts. It reads any text you give it.

  • /speak Hello there reads the text in the current character’s voice.
  • /speak voice="Character Name" Hello there uses that name’s voice from the voice map.

The help text in the code gives the example /speak voice="Donald Duck" Quack!. The voice argument takes a name from the voice map, not a provider’s voice name. If the name has no voice, you get the notice “Specified voice for (name) was not found. Check the TTS extension settings.”

Because it is a slash command, it can be put on a Quick Reply button or in a script.

Messages and Their Real Causes

What you seeWhat it meansWhat to do
Nothing at all, no errorThe speaker’s voice resolves to disabled, and the one-time notice has already been shownSet a voice on [Default Voice]
TTS voice for (name) is disabled.The same, seen the first timeThe same
No play and stop control for TTS in the wand menuEnabled is not tickedTick it
TTS Provider not ready. in red in the drawerThe provider’s own check failed. The rest of the line is the reasonRead the rest of the line. For a local server, start it and press Reload
(name) not in voicemap. Configure character in extension settings voice mapThe speaker has no row yetOpen the TTS drawer with this chat open, so the map is rebuilt
Specified voice for (name) was not found.The saved voice no longer exists at the providerPress Reload and choose again. Common after deleting a cloned voice
TTS Provider failed to return voice ids.The provider did not send a voice listCheck the key or the server address
TTS Generation Failed with an HTTP statusThe provider refused the request401 or 403 is usually the key. 429 is a rate limit. 404 on a local address is usually the wrong path or a missing plugin
TTS Voice name (name) not foundThe provider has no voice by that name. Typical for OpenAI Compatible with the default voice listType the server’s real voice names into Available Voices
TTS is disabled. Please enable it in the extension settings.You used Narrate All Chat with TTS offTick Enabled
The voice reads actions, code or status blocksThe cleaning options are offUse the quotes, asterisks, code block, tag and regex options above
Works on the PC, silent on the phoneWith System and Kokoro, the voice is made on the device you are looking atTest System on the phone. See SillyTavern on mobile

The last row needs one more sentence. System and Kokoro run in the browser. If you open SillyTavern on your phone while the server runs on your PC, the phone makes the voice, with the phone’s own voices and the phone’s own speed. ElevenLabs, OpenAI and the local servers make the audio elsewhere and only send it to the phone to be played.

For problems that are not about voice, see SillyTavern not working.

What TTS Is Not

Three related things are separate extensions, and searching for them under “TTS” leads nowhere.

  • Talking to the character with your own voice is the Speech Recognition extension. It is not built in. You install it from the “Download Extensions & Assets” menu. It can use your browser, or an API source, to turn your speech into text.
  • Making a TTS voice sound like someone else is RVC, also a separate download. The documentation is direct about what it is: “RVC is NOT TTS: it’s more like speech-to-speech.” It takes the audio that TTS made and changes the voice in a second step. TTS must already work before you add it.
  • A two-way voice call in the style of Character.AI does not exist as one feature. You can come close with Speech Recognition on auto send and TTS on Auto Generation, but it is two extensions taking turns, not a call. Our Character.AI voice guide covers the product that does it in one piece.

Is It Worth Setting Up?

Our reading, by the kind of player you are.

If you only want to try it, use System. It takes one minute and proves the whole chain works. Most people then move on, because system voices are flat.

If you want a good voice for free, use Kokoro. The limits are real: English only, and the speed is your own hardware’s. But there is no account, no key and nothing to run.

If you play long sessions and care about the voice, the choice is between paying ElevenLabs and running a local server such as AllTalk. The local route costs setup time and a graphics card that is probably also busy with your text model. The paid route costs money on every reply. In both cases, turn on “Only narrate quotes” and “Ignore text inside asterisks” first and see whether dialogue alone is enough. For many players it is, and it cuts the amount of audio to a fraction.

If your replies are long and you play fast, TTS may get in the way. A 400-word reply takes minutes to hear and seconds to read. The same thing happens in hosted AI RPGs with narration, as our voice guide describes. The players who keep TTS on tend to be the ones with short, dialogue-heavy replies.

Checklist

  1. Open Extensions, then TTS.
  2. Choose System as the provider for the first test.
  3. Tick Enabled.
  4. Open a chat.
  5. In the voice map, set a voice on [Default Voice].
  6. Click the megaphone icon on a message. If you hear it, the chain works.
  7. Change the provider to the one you want. Set the voice map again, because it is saved per provider.
  8. For a local server: start the server first, then press Reload. Read the status line.
  9. Tick Only narrate “quotes” and Ignore text inside asterisks if you want dialogue only.
  10. Tick Narrate by paragraphs (when streaming) if the wait before the voice is too long.
  11. For two voices per character, tick the Different voices option and Pass Asterisks to TTS Engine.

Frequently Asked Questions

Does SillyTavern have text to speech?

Yes. TTS is one of the extensions that ships inside SillyTavern, so there is nothing to install. It does not make the voice itself. It sends the text of a message to a voice provider that you choose, such as your browser’s own voice, Kokoro, ElevenLabs or a local server like AllTalk.

How do I enable TTS in SillyTavern?

Open the Extensions panel, open the TTS drawer, choose a provider and tick Enabled. Then open a chat, find the voice map in the same drawer and choose a voice for the character or for the Default Voice row. Until a voice is chosen, the default voice is set to disabled and nothing plays.

Why is SillyTavern TTS not working?

The most common cause is the voice map. A character with no voice of its own uses the Default Voice, and the Default Voice starts as disabled. SillyTavern shows one small notice about this for each character and then stays silent. Choose a voice for the Default Voice row, and check that Enabled is ticked and that the status line in the TTS drawer is not red.

What is the best free TTS for SillyTavern?

For no setup at all, use the System provider, which uses the voices already on your device. For a better voice that is still free, use Kokoro, which runs inside your browser and has 28 English voices. For voice cloning on your own graphics card, the documentation points to AllTalk and XTTS, which are free but need a separate server.

Is ElevenLabs free in SillyTavern?

SillyTavern does not charge for it, but its documentation lists ElevenLabs as a provider that needs a paid subscription and an API key. The key is entered in the TTS drawer. The extension’s default ElevenLabs model is Turbo v2.5.

How do I give each character a different voice in SillyTavern?

Use the voice map in the TTS drawer. Open the chat first, because the map only lists the characters in the current chat, plus your persona and a Default Voice row. Pick a voice from the dropdown beside each name. In a group chat every member gets a row.

Can SillyTavern use one voice for dialogue and another for narration?

Yes. Tick the option called Different voices for quotes, text inside asterisks and other text. Each character then gets three rows in the voice map. Also tick Pass Asterisks to TTS Engine, because otherwise the asterisks are removed before the text is split and the narration voice is never used.

Does SillyTavern TTS work while the reply is streaming?

Only if you tick Narrate by paragraphs (when streaming), which also needs Auto Generation. With it, SillyTavern checks the reply once a second and sends each finished paragraph to the voice provider. Without it, the voice starts after the whole reply has arrived.


The provider list, the default settings, the way the voice map is built and saved, the order of text cleaning, the paragraph check, the /speak command, the default addresses and the messages were read from the TTS extension’s source code on SillyTavern’s release branch (version 1.19.0) on 7 October 2026. The shipped default provider is from the settings file included with a new install. The provider descriptions and costs, the checkbox example, and the AllTalk, XTTS, RVC and Speech Recognition details are from SillyTavern’s documentation. Dated changes are from the project’s release notes. The KoboldCpp statement is from that project’s README. We did not generate audio for this guide, and we did not compare how the voices sound. The remark on the Edge plugin check, the advice on which options to turn on, and the section on whether it is worth setting up are our reading.

SillyTavern is an open-source project. Arcanum is not affiliated with SillyTavern, ElevenLabs, OpenAI, Microsoft, Google, NovelAI, KoboldCpp or any service named here. Product names and trademarks are the property of their respective owners.