Skip to main content
View source

Text To Speech

View as Markdown

A RocketRide audio node that turns incoming text, documents, questions, or answers into a WAV audio stream through Kokoro.

About Kokoro

Kokoro is the text-to-speech backend used by this node. The node can construct its pipeline locally or ask a configured model server to load the Kokoro backend.

What it does

The node synthesizes non-empty text and streams a audio/wav file on its audio lane. Choose it when a pipeline needs to make text audible rather than play already-produced media or turn speech into text. It extracts text from the four supported input lanes, so it can speak data already moving through a pipeline without an agent-tool interface.

Lanes

Lane inLane outDescription
textaudioSynthesize the supplied text.
documentsaudioJoin eligible document page_content values with newlines, then synthesize it.
questionsaudioJoin question text with spaces, then synthesize it.
answersaudioSynthesize the answer text.

Configuration

Choose the single kokoro profile and its voice. Most users only need to choose a voice appropriate for their text; the profile selector does not offer an alternative backend.

Voice

The voice is required at startup; a blank value raises Kokoro: choose a voice from the list. Its first character is passed to the local or remote Kokoro pipeline as the language code, so select a voice with the appropriate prefix for the language you need. The default af_heart starts with a; change it when the desired voice or its language-code prefix differs.

Notes

Local and model-server execution

When a model-server address is configured, the node connects a ModelClient, loads the kokoro loader there, and writes the returned base64 WAV data to a temporary file. Without one, it installs the local requirements, ensures the en_core_web_sm spaCy model is present when spaCy is importable, and creates a local KPipeline. Both paths synthesize at speed 1; the local path writes mono, 16-bit, 24 kHz WAV output.

Input and cleanup behavior

Whitespace-only input produces no audio. Document input excludes documents of type Image, Audio, and Video; the remaining page content is joined with newlines. A temporary WAV file is removed after streaming and is also removed if synthesis raises an exception.

Upstream docs

Schema

FieldTypeDescriptionDefault
audio_tts.kokoro_voicestringVoice
Kokoro voice. The language is derived automatically from the voice prefix (af_/am_ → American, bf_/bm_ → British, ef_/em_ → Spanish, etc.).
"af_heart"
audio_tts.profilestringTTS profile"kokoro"

Dependencies

  • numpy
  • --only-binary docopt
  • --only-binary num2words
  • kokoro >=0.9.4
  • soundfile >=0.13.1