PyRadio features comprehensive Text-to-Speech (TTS) support, providing intelligent auditory feedback for an enhanced radio streaming experience. This advanced system delivers contextual information with priority-based management, supporting multiple platforms and extensive configuration options.
The TTS system provides spoken feedback for:
Enable TTS permanently through the configuration menu: Config → TTS → Enable TTS
This setting is saved in your configuration file and persists across sessions.
Toggle TTS during runtime by pressing \T (backslash + T). This setting is session-only and resets when restarting PyRadio.
Utilizes speech-dispatcher configured for English language by default. Provides robust, interruptible speech synthesis with priority-based queue management.
Leverages Windows SAPI (Speech API) with automatic selection of English voices when available. Features immediate speech interruption and consistent volume control.
Employs the native say command using the system’s default voice. Most macOS voices support multiple languages natively, handling mixed-language content seamlessly.
Control how much speech feedback you receive:
The system intelligently manages speech priorities:
TTS voices generally fall into two categories:
Monolingual Voices (typical on Linux/Windows):
Multilingual Voices (common on macOS):
When enabled, PyRadio provides spoken feedback for volume adjustments using a debounce mechanism.
A “volume change session” begins with the first volume modification and ends after no further changes occur within the configured delay period. At the end of the session, the system announces:
“Volume set to XX%”
The debounce delay (300–3000 ms) prevents repetitive announcements while rapidly adjusting the volume.
Optionally, an additional start notification:
“Volume change initiated”
can be enabled to indicate the beginning of a volume adjustment session.
Typical values: 300–500 ms for responsive feedback.
| Setting | Values | Default | Description |
|---|---|---|---|
| enable_tts | True/False | False | Master switch for TTS functionality |
| tts_context | limited/window/all | all | Controls how much information is spoken |
| tts_volume | 0-100 | 50 | Speech volume (Linux/Windows only) |
| tts_rate | -100 to 100 | 0 | Speech speed (negative=slower, positive=faster) |
| tts_pitch | -100 to 100 | 0 | Voice pitch adjustment |
| tts_verbosity | default/punctuation | default | Controls how punctuation is spoken |
| tts_speak_volume_change | 0, 300 to 3000 | 0 | Enables announcements during volume changes |
| tts_speak_volume_shange_start | True / False | False | Enables “Volume change initiated” announcement |
The TTS support in PyRadio is continuously evolving. Currently, TTS is available for:
To assist users in configuring the program, special rules apply when using the Configuration windows, provided the TTS system is already enabled:
Full TTS Access: When navigating through the Configuration menus and windows (including all sub-windows), the TTS system operates at its fullest capacity, temporarily overriding the tts_context setting to provide complete auditory feedback about all interface elements.
Voice Sample: While in the TTS configuration group, pressing “T” (uppercase) will speak a voice sample using the current TTS settings, allowing you to preview how your configuration sounds.
Detailed Help: In all configuration windows (currently implemented in the “Keyboard Shortcuts” window), pressing “t” (lowercase) provides additional spoken information about the current setting being configured.
This special behavior ensures that all users can effectively configure the program to their preferences, regardless of their current TTS context settings.
Note: The TTS system is designed to be unobtrusive yet informative. If you encounter issues with speech feedback or have suggestions for improvement, please report them via the PyRadio issue tracker.