Skip to content

TTS API

The text-to-speech system provides voice synthesis for radio communications. See Audio & Radio Effects for full documentation.

ttsService.speak(request)

Trigger custom speech.

Parameters:

SpeechRequest object:

javascript
{
  type: 'atc' | 'pilot',     // Speaker type
  text: string,               // Text to speak
  callsign?: string,          // Pilot callsign (for voice selection)
  priority?: 'normal' | 'high', // Queue priority
  onStart?: () => void,       // Called when speech starts
  onEnd?: () => void          // Called when speech ends
}

Example:

javascript
// Speak as ATC
ttsService.speak({
  type: 'atc',
  text: 'All aircraft, expect delays due to weather'
});

// Speak as pilot
ttsService.speak({
  type: 'pilot',
  text: 'Roger, holding as published',
  callsign: 'DAL456'
});

ttsService.setSettings(settings)

Configure TTS settings.

Parameters:

TTSSettings object:

javascript
{
  enabled: boolean,         // Master on/off (default: false)
  volume: number,           // Volume 0-1 (default: 0.8)
  speechRate: number,       // Speed 0.5-2 (default: 1.1)
  radioEffects: boolean,    // PTT click sounds (default: false)
  pilotReadbacks: boolean,  // Speak pilot responses (default: true)
  atcVoiceName?: string     // Preferred ATC voice
}

Example:

javascript
ttsService.setSettings({
  enabled: true,
  volume: 0.7,
  speechRate: 1.2,
  radioEffects: true
});

ttsService.getSettings()

Get current TTS settings.

Returns: TTSSettings

Example:

javascript
const settings = ttsService.getSettings();
log(`TTS enabled: ${settings.enabled}`);
log(`Radio effects: ${settings.radioEffects}`);

ttsService.toggle()

Toggle TTS on/off.

Returns: boolean - New enabled state

Example:

javascript
const nowEnabled = ttsService.toggle();
log(`TTS is now ${nowEnabled ? 'on' : 'off'}`);

ttsService.getEnglishVoices()

Get available English voices.

Returns: TTSVoiceInfo[]

Example:

javascript
const voices = ttsService.getEnglishVoices();
voices.forEach(v => log(`Voice: ${v.name}`));

Queue control

javascript
// Check queue status
const queueLength = ttsService.getQueueLength();
const isSpeaking = ttsService.isSpeaking();

// Control playback
ttsService.pause();   // Pause current speech
ttsService.resume();  // Resume playback
ttsService.stop();    // Stop and clear queue

// Reset (clears pilot voice assignments)
ttsService.reset();