diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_ElevenLabsComponent.cpp b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_ElevenLabsComponent.cpp index a2db8d2..a42ad9c 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_ElevenLabsComponent.cpp +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_ElevenLabsComponent.cpp @@ -638,6 +638,19 @@ void UPS_AI_ConvAgent_ElevenLabsComponent::HandleAudioReceived(const TArray(GetOwnerRole()), static_cast(ROLE_Authority), + OpusEncoder.IsValid() ? TEXT("VALID") : TEXT("NULL"), + FVoiceModule::IsAvailable() ? TEXT("available") : TEXT("UNAVAILABLE")); + } + } if (GetOwnerRole() == ROLE_Authority && OpusEncoder.IsValid()) { uint32 CompressedSize = static_cast(OpusWorkBuffer.Num()); @@ -1453,10 +1466,16 @@ void UPS_AI_ConvAgent_ElevenLabsComponent::MulticastAgentStartedGenerating_Imple // ───────────────────────────────────────────────────────────────────────────── void UPS_AI_ConvAgent_ElevenLabsComponent::InitOpusCodec() { - if (!FVoiceModule::IsAvailable()) return; + if (!FVoiceModule::IsAvailable()) + { + UE_LOG(LogPS_AI_ConvAgent_ElevenLabs, Warning, + TEXT("[OPUS] FVoiceModule NOT available — Opus codec disabled. Network audio will NOT work.")); + return; + } FVoiceModule& VoiceModule = FVoiceModule::Get(); - if (GetOwnerRole() == ROLE_Authority) + const ENetRole Role = GetOwnerRole(); + if (Role == ROLE_Authority) { OpusEncoder = VoiceModule.CreateVoiceEncoder( PS_AI_ConvAgent_Audio_ElevenLabs::SampleRate, @@ -1469,6 +1488,12 @@ void UPS_AI_ConvAgent_ElevenLabsComponent::InitOpusCodec() PS_AI_ConvAgent_Audio_ElevenLabs::Channels); OpusWorkBuffer.SetNumUninitialized(8 * 1024); // 8 KB scratch buffer for Opus encode/decode + + UE_LOG(LogPS_AI_ConvAgent_ElevenLabs, Log, + TEXT("[OPUS] Init complete — Role=%d Encoder=%s Decoder=%s"), + static_cast(Role), + OpusEncoder.IsValid() ? TEXT("OK") : TEXT("NULL"), + OpusDecoder.IsValid() ? TEXT("OK") : TEXT("NULL")); } // ─────────────────────────────────────────────────────────────────────────────