I’d like to get the output volume of an AudioComponent on the current frame. Not the “volume setting”, but the ACTUAL output volume from the WaveParam being played. Currently these AudioComponents have a SoundCue that only plays a WaveParam.
I am using this with dialogue, and my current goal is to trying to detect spaces between words - if any. So that during playback if the output volume drops to a specific point, I can flag this as a “space” and stop the dialogue, or do whatever else I’d hope to do.
Things like attenuation, AudioVolumes etc. etc. doesn’t really matter in this case. Preferably it’d be nice to not factor any of these things in since the purpose of detecting low output volume is for detecting spaces between words.
Can anyone point me in the right direction? C++ or Blueprint is fine. I’ve done a bunch of research but can’t seem to find what I need.
There isn’t a way to get the real-world volume of audio yet in UE4. As in, the volume of the waveforms playing for a given voice. You can get (what I call) the logical volume of a wave instance using GetVolume() (at head revision) or GetActualVolume() (at earlier revisions). But that’s not exposed to BP.
However, I think you should be able to get what it sounds like you want doing OnAudioFinished delegates, which triggers a BP delegate/event when a sound on an audio component finishes playing.
Thanks for the reply! I’ll look into GetVolume/GetActualVolume now and see how I go.
OnAudioFinished is not what I want. I don’t want to detect the end of a dialogue line, I’d like to detect spaces between words (if at all possible, this is what I’m researching).
Looks like GetActualVolume is not what I need. This just returns the volume set for the AudioComponent (in my case, constantly 0.75 - so this is obviously not representative of the wave data). I would like to get the volume/levels/wave amplitude of the actual wave file as it is being played.
I found the solution. After enabling Sound Visualizations Plugin (I believe this comes with the engine) in the editor, there was a new GetAmplitude() global function exposed. This does what I need.