Text-to-speech destinations
Text-to-speech (TTS) messages are injected to destinations. Destinations determine two factors: output and mechanism.
Output is where the synthesized speech plays to and decides who hears the TTS message. Each destination uses one of the following outputs:
- Local Playback - messages injected here play back locally on the user’s default render device (for example, loudspeakers or headphones).
- Remote Transmission - messages injected here are sent to remote participants in connected sessions according to transmission policies (the same sessions that basic voice transmits to).
- Local and Remote - messages injected here are simultaneously injected to Local Playback and Remote Transmission.
Mechanism is how new messages are handled when there is an ongoing message playing. Each destination uses one of the following injection mechanisms:
- Simple - destinations using this mechanism mix together new messages and ongoing messages to play them concurrently.
- Queue - destinations using this mechanism queue new messages in the order they are sent. When the ongoing message finishes playing, this mechanism auto-triggers the message that is next in line.
- Replace - destinations using this mechanism cancel any ongoing message and then replaces it with the new message.
You can inject synthesized speech into the following destinations:
Note: Most destinations are independent and do not affect the behavior of any other destinations. However, the two queued destinations involving remote transmission share a queue.
Remote Transmission
- Enum value:
TTSDestination::RemoteTransmission
- Output: Remote Transmission
- Mechanism: Simple
- Enum value:
Local Playback
- Enum value:
TTSDestination::LocalPlayback
- Output: Local Playback
- Mechanism: Simple
- Enum value:
Remote Transmission with Local Playback
- Enum value:
TTSDestination::RemoteTransmissionWithLocalPlayback
- Output: Local and Remote
- Mechanism: Simple
- Enum value:
Queued Remote Transmission
- Enum value:
TTSDestination::QueuedRemoteTransmission
- Output: Remote Transmission
- Mechanism: Queue
- Caveat: Shares queue with Queued Remote Transmission with Local Playback.
- Enum value:
Queued Local Playback
- Enum value:
TTSDestination::QueuedLocalPlayback
- Output: Local Playback
- Mechanism: Queue
- Enum value:
Queued Remote Transmission with Local Playback
- Enum value:
TTSDestination::QueuedRemoteTransmissionWithLocalPlayback
- Output: Local and Remote
- Mechanism: Queue
- Caveat: Shares queue with Queued Remote Transmission
- Enum value:
Screen Reader
- Enum value:
TTSDestination::ScreenReader
- Output: Local Playback
- Mechanism: Replace
- Enum value:
You can obtain the state and content of all messages that are playing or are enqueued in any destination by using ITextToSpeech::GetMessages(TTSDestination Destination)
. Queued destinations return their TArray<ITTSMessage\*>
in queue order, and others in the order that speech was injected.