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.IsPlayerSpeakingstate to determine when to process audio - Converts buffer data to audio chunks when the player is speaking
Buffer Management
- Uses
ShortBufferToSendto determine the appropriate audio source - Prioritizes processed audio buffer from
IProcessAudioHandlerif 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
AudioChunkformat 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_DebugInputfor 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.ProcessedBufferif available - Raw Buffer: Falls back to
Audio.InputBufferif 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
TheIsReadyToSend property validates that:
- InworldController instance exists
- STT module is available
- Audio queue contains data
- Module is properly initialized