Skip to main content Overview > Audio Dispatch Module
Class: AudioDispatchModule | Inherits from: InworldAudioModule | Implements: ISendAudioHandler
Audio dispatch module responsible for sending processed audio data to the Inworld service. Manages the transmission of audio samples and handles queuing, debugging, and test mode functionality. This module serves as the final stage in the audio processing pipeline before data reaches the server.
Properties
Methods
Reference
ShortBufferToSend
Gets the audio buffer to use for sending data to the Inworld service.
Returns either the processed buffer from an audio processor module or the raw input buffer.
Returns
Type: CircularBuffer<float>
IsReadyToSend
Gets a value indicating whether the audio data is ready to be sent to the Inworld service.
Checks if the Inworld controller is available and properly initialized.
Returns
Type: bool
Samples
Gets all the current audio samples ready for transmission.
Returns
Type: List<float>
OnStartSendAudio
Called when the player starts being allowed to send audio into the buffer.
Implemented in the child class for custom behavior.
Returns
Type: void
OnStopSendAudio
Called when the player stops being allowed to send audio into the buffer.
Automatically sends any remaining audio data and clears the queue.
Returns
Type: void
Audio Dispatching Process
The AudioDispatchModule performs the following operations:
Continuous Processing
Runs a coroutine that executes every 0.1 seconds while the module is active
Monitors the Audio.IsPlayerSpeaking state to determine when to process audio
Converts buffer data to audio chunks when the player is speaking
Buffer Management
Uses ShortBufferToSend to determine the appropriate audio source
Prioritizes processed audio buffer from IProcessAudioHandler if available
Falls back to raw input buffer if no processor is present
Tracks position to avoid processing the same data multiple times
Audio Chunk Creation
Converts audio samples to AudioChunk format with 16kHz sample rate
Uses InworldVector<float> for data storage
Queues audio data for transmission to the Inworld service
Debug and Test Features
Audio Debugging : When enabled, stores audio data in m_DebugInput for analysis
Test Mode : Available for testing audio transmission without actual server communication
Serialized Fields
The following fields are configurable in the Unity Inspector:
m_IsAudioDebugging (bool) - Enables audio debugging mode to store input data for analysis
m_TestMode (bool) - Enables test mode for audio transmission testing
Important Notes
Integration with Inworld Service
This module serves as the final stage in the audio processing pipeline, responsible for:
Converting processed audio data into the format expected by the Inworld service
Managing the transmission queue to ensure reliable data delivery
Handling the transition between speaking and non-speaking states
Buffer Priority
The module intelligently selects the audio source:
Processed Buffer : Uses IProcessAudioHandler.ProcessedBuffer if available
Raw Buffer : Falls back to Audio.InputBuffer if no processor is present
Automatic Lifecycle Management
OnEnable : Automatically starts the audio dispatching coroutine
OnDisable : Stops the coroutine and cleans up resources
OnStopSendAudio : Automatically sends remaining data and clears the queue
Ready State Validation
The IsReadyToSend property validates that:
InworldController instance exists
STT module is available
Audio queue contains data
Module is properly initialized