Documentation

​
​

Development

User Acquisition

Monetization

Industry

Vivox Core SDK

Vivox Core SDK

Vivox
​
​
Vivox Core SDK
  • Overview
  • Before you begin
  • Get started
  • Release notes
  • Developer Guide
    • Client SDK basics
    • Channels
    • Presence management
    • Messaging
    • Manage audio
    • Couch co-op
    • Android app development
    • iOS app development
    • macOS app development
    • Windows app development
    • Real-time recording
    • Speech-to-text audio transcription
    • Text-to-speech
      • Initialize text-to-speech
      • Text-to-speech voice options
      • Text-to-speech destinations
      • Inject a text-to-speech message
      • Queue a text-to-speech message
      • Cancel a text-to-speech message
      • Text-to-speech events
      • Get raw audio of synthesized speech
      • Use text-to-speech for incoming messages
      • Shut down text-to-speech
    • Troubleshooting
  • Reference
  • Privacy overview
  1. Vivox Core SDK documentation
  2. Text-to-speech

Use text-to-speech for incoming messages

How to synthesize incoming text messages as speech.
Read time 1 minute
Last updated 8 months ago

After you set up message polling for the Vivox SDK, you receive events whenever the Vivox SDK receives a message.
  • When a text channel message is received, the
    vx_evt_message
    event is raised.
  • When a direct message is received, the
    vx_evt_user_to_user_message
    event is raised.
If you want to use text-to-speech (TTS) to read incoming messages, use the
vx_tts_speak
function in the message event handler. The
tts_dest_queued_local_playback
destination is an ideal choice because it ensures that the messages are queued and that they are only played locally.
The following code displays an example of how to use TTS to read incoming messages:
case evt_message:{ vx_evt_message *evt_message = (vx_evt_message *)evt; string sessionHandle = string(evt_message->session_handle); string username; if (evt_message->participant_displayname != NULL) { username = string(evt_message->participant_displayname); } else { username = string("Anonymous"); } string text = username + " says " + string(evt_message->message_body); vx_tts_utterance_id utteranceID; vx_tts_status status = vx_tts_speak(*m_ttsManagerId, m_ttsVoiceID, text.c_str(), tts_dest_queued_local_playback, &utteranceID); break;}
Note
You can use the
evt_message->is_current_user
flag to speak only to other users' messages.

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.


    Report a problem with this page