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:
request: SpeechRequest
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:
settings: Partial<TTSSettings>
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();