---
title: "TTS Websocket"
slug: "dataflow-nodes-tts-websocket"
updated: 2026-02-16T12:02:36Z
published: 2026-02-16T12:02:36Z
canonical: "docs.knovvu.com/dataflow-nodes-tts-websocket"
---

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

# TTS Websocket

Text To Speech Websocket Integration Node

## Parameters
| <div style="width:170px">name</div> | description | <div style="width:120px">default</div> |
|---|---|---|
| Address | Address of the SESTEK TTS service  | http://core-tts |
| IgnoreSslErrors | Ignores SSL certificate validation errors (applies to both https and wss) | false |
| ConnectionTimeoutMsec | Timeout for establishing the WebSocket connection | 10000 |
| Language | Used at startup to determine which voice to select from the Voices list | -|
| Credential | Id of the credential that will be used for TTS requests. This parameter is only necessary if a cloud TTS deployment is used. You must leave this empty for on-premise deployments | None(On-Prem)|
|Voices|The list of available voices|-|
|Volume| Controls the output loudness of the synthesized speech. Accepts values between 0.0 (muted) and 2.0|1.0|
|Rate|Controls the playback speed of the synthesized speech. Accepts values between 0.33 (slower) and 3.0 (faster).|1.0|
| Force Synthesis On Every Text | If true, tts will try to synthesize a TTS sound on every "Text". |false|


## Inputs

### Audio
none


### Events
| name | description | known nodes that generate this event |
|---|---|---|
| Every Event that Contains the `Data.Text` field | A TTS Synthesis audio can be generated from any event that is text based. Users can also generate their custom event that has `Data.Text` and send it through the [Entry](/v1/docs/dataflow-nodes-entry), or [External Relay](/v1/docs/dataflow-nodes-external-relay) nodes.  | [SR Http](/v1/docs/dataflow-nodes-speech-recognition-sr-http), [SR WebSocket](/v1/docs/dataflow-nodes-speech-recognition-sr-websocket), [Translate](/v1/docs/dataflow-nodes-translate)|

## Outputs

### Audio
&emsp;Synthesized speech is sent to output
&emsp;Audio format is 16-bit PCM at the project’s audio sample rate.
&emsp;Audio is sent without a WAV header; downstream nodes should respect the `HasWaveHeader = false` flag
### Events
| name | description |
|---|---|
| [Start of TTS Fragment](/v1/docs/events#start-of-tts-fragment) | Sent just before a TTS audio fragment is written to the Audio output. Contains metadata about the fragment. This event includes `Data.HasWaveHeader = false` .  |
| [End of TTS Fragment](/v1/docs/events#end-of-tts-fragment) | Sent just after a TTS fragment has been fully written to the Audio output. |

## Remarks

### Custom TTS Event

A sample tts-request event would look as follows.
```json
{
    "Event": {
        "Name": "Custom TTS Event",
        "Data" : {
            "Text": "hello world"
        }
    }
}
```
`Data.Text`: The text that will be synthesized.

 :::(Info) (Sending Custom Events to Projects)
To learn more about sending `Events` to projects, you can check the [HTTP](/v1/docs/dataflow-integrations-http) and [External Relay](/v1/docs/dataflow-nodes-external-relay) pages.
:::

### Project Structure
A minimum viable TTS websocket project  can be built as such:
<center>

![Image](https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image-IPSGM3PJ.png){height="" width=""}
</center>

### Supported flow types 
Stream, Batch


## Release Notes 

<div style="max-height: 200px; overflow-y: auto; overflow-x: hidden"> 
     <details>
        <summary> <strong> v4.8.0</strong> </summary>
        <ul>
          <li>Added volume and rate support.</li>
          <li>Added force synthesis on each text option.</li>
        </ul>
    </details>
<details>
        <summary> <strong> v4.6.0</strong> </summary>
        <ul>
          <li>Introduced node.</li>
        </ul>
    </details>
</div>
