Feature #273
openW3: Send audio buffer to backend
0%
Description
Implement logic in Unreal Engine to send the recorded microphone buffer to a backend server using HTTP or WebSocket.
Ensure proper data formatting and handle network errors.
This step is essential for triggering the STT pipeline.
Updated by Malek chrifi alaoui about 1 month ago
- Status changed from Re-opened to New
Updated by Malek chrifi alaoui 24 days ago
- Status changed from New to In Progress
Updated by Malek chrifi alaoui 23 days ago
- Status changed from In Progress to Resolved
Updated by Malek chrifi alaoui 15 days ago
"Send audio buffer to backend" – Unreal Engine 5
For this feature, I implemented the microphone-recording system inside Unreal Engine 5.
The goal was to reliably capture microphone audio and export it so the backend can process it later.
- Microphone Recording System
I created a dedicated Blueprint called BP_AudioManager which is responsible for handling microphone input.
Start Recording
Uses an AudioCapture component.
Calls StartRecordingOutput to begin capturing audio.
Stores the recorded data in a SoundWave variable.
Activates the microphone and starts listening.
Stop Recording
Calls FinishRecordingOutput, which finalizes the recording.
Unreal automatically exports the recording to a .wav file inside:
Saved/AudioCaptures/
The file path is stored in a Blueprint variable so it can be accessed by other systems.
This ensures that every recording session produces a usable audio file.
- Push-to-Talk Input Logic
To control recording, I added a Push-to-Talk input action using the Enhanced Input System:
First press → Start recording
Second press → Stop recording
A Blueprint boolean (bIsMicRecording) toggles between the two states.
This creates a simple and reliable record/stop workflow.
- What Is Completed for This Ticket
The following tasks are fully implemented:
Microphone audio is captured inside UE5
Audio is exported to disk as a WAV file
Recording can be triggered manually through a Push-to-Talk input action
The system is stable and ready to be connected to the backend in the next step