Push to Talk Errors

I didn’t catch that ok now I have to refactor a ton of my code because I have structs, data tables and BPs all using your base class. I will try to knock out a quick test first though to see if that is the root cause. I will follow up once that is done.

I’m still unclear however, how this is going to fix anything because the execution pins going into the “Talking” collapsed graph are not connected, so what are those function calls even doing?

Ok I followed the instructions exactly and everything matches the install video. As I expected, it still isn’t working because the function calls link to nothing.

So I completely removed Convai from the engine, downloaded the Github version and pasted it right into the correct engine folder listed on Git. Before I did anything, I went to look at the base player BP and this is the message I got:

Here is the new character for prudency

You don’t need to make any changes in ConvaiBasePlayer. Please show me your player BP.

I am using a button in a widget to call these events in my Player BP. I assume this is how you call the PTT functions in the new setup?

First, please don’t change anything and try it with the default settings. Let’s see if it works.

Ok I got it working, but it is very slow. Is there any way to speed this up? It used to be much faster.

Also, the PTT is staying “open” meaning when I release the key it continues to receive voice input but this is not expected behavior for PTT.

What was the issue? and what do you mean by slow? Could you share a video if possible?

I’m not 100% sure but my guess is that I was starting the app with a legacy convai base player and then when a level opens, a character with the new component was getting possessed. But Convai was still referencing the first player somewhere on the backend and stopping the functionality. Again just a guess though.

Sure here is a video. You can see I’m holding the PTT button and releasing it to end what I want to say. But on the next thing I say, I don’t touch the button at all. This is the same behavior when I use the “T” key as well. I can code my own functionality and put in a get/set branch condition in there, but I assume this is not what it’s supposed to be doing from the start right?

Also notice how slow it is. It doesn’t feel like a natural conversation at all. I know there have always been delays but this is exceptionally longer than in the past. Breaks any kind of immersion pretty quickly.

As I mentioned earlier, please test it in a new project first. Otherwise, we won’t be able to clearly identify the issue. Since you’ve made customizations, they might be affecting the results.

Create a new project, move the Convai folder into the Plugins folder (not the Engine folder), and then run the test again.

I didn’t make any changes after I reinstalled everything. I made a new project and it’s still pretty much the same speed. Empty styarter level, 1 metahuman and a first person player. It seemed like PTT was working this time but it stopped talking in the middle of the 3rd reply and it wasn’t registering any buttons presses or voices anymore. I didn’t move the player at all and did nothing but try to press the T button to talk. This is the output log of it failing.

ConvaiChatbotComponentLog: onAudioFinished - IsConnectionTalking: true
ConvaiChatbotComponentLog: Pausing lipsync - more audio expected
ConvaiFaceSyncLog: ConvaiPauseLipSync: Pausing lipsync - TotalFrames: 26, FramesRemaining: 0, TotalDuration: 0.433, TimePlayed: 21.770, TimeRemaining: 0.000, TotalPausedDuration: 0.000
LogEOSSDK: LogEOS: Updating Product SDK Config, Time: 688.201111
LogEOSSDK: LogEOS: SDK Config Product Update Request Completed - No Change
LogEOSSDK: LogEOS: ScheduleNextSDKConfigDataUpdate - Time: 688.281128, Update Interval: 331.050140
ConvaiSubsystemLog: :microphone: Active speaker changed: User
ConvaiSubsystemLog: :microphone: Active speaker changed: User
ConvaiSubsystemLog: :microphone: Active speaker changed: User
LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden
LogWorld: BeginTearingDown for /Game/FirstPerson/UEDPIE_0_Lvl_FirstPerson
ConvaiSubsystemLog: Disconnecting character session
ConvaiChatbotComponentLog: Session stopped for character ID: 9a0040c8-08f7-11f1-bbd1-42010a7be02c
ConvaiPlayerLog: Stopped Streaming Audio
ConvaiSubsystemLog: Disconnecting player session
ConvaiReferenceAudioThread: Stopped recording reference audio
ConvaiReferenceAudioThread: Reference audio capture stopped
ConvaiReferenceAudioThread: Warning: Reference audio capture not active
ConvaiReferenceAudioThread: ConvaiReferenceAudioThread stop requested
ConvaiReferenceAudioThread: ConvaiReferenceAudioThread stopped running
ConvaiReferenceAudioThread: ConvaiReferenceAudioThread exiting
ConvaiReferenceAudioThread: Warning: Reference audio capture not active
ConvaiReferenceAudioThread: ConvaiReferenceAudioThread stop requested
ConvaiReferenceAudioThread: ConvaiReferenceAudioThread destroyed
ConvaiSubsystemLog: Stopped and cleaned up reference audio capture thread
LogWorld: UWorld::CleanupWorld for Lvl_FirstPerson, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
LogWorldPartition: UWorldPartition::Uninitialize : World = /Game/FirstPerson/UEDPIE_0_Lvl_FirstPerson.Lvl_FirstPerson
LogPlayLevel: Display: Shutting down PIE online subsystems
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
ConvaiUtilsLog: Warning: Could not get pointer to a GameInstance
LogScript: Warning: Script Msg: No world was found for object (/Game/FirstPerson/UEDPIE_0_Lvl_FirstPerson.Lvl_FirstPerson:PersistentLevel.BP_FirstPersonCharacter_C_0.BP_ConvaiPlayerComponent.ConvaiConnectionSessionProxy_0) passed in to UEngine::GetWorldFromContextObject().
ConvaiUtilsLog: Warning: Could not get pointer to a GameInstance
LogScript: Warning: Script Msg: No world was found for object (/Game/FirstPerson/UEDPIE_0_Lvl_FirstPerson.Lvl_FirstPerson:PersistentLevel.BP_Ant0n_C_UAID_D8CB8ACD55AE7CC202_1406374183.BP_ConvaiChatbotComponent.ConvaiConnectionSessionProxy_0) passed in to UEngine::GetWorldFromContextObject().
ConvaiUtilsLog: Warning: Could not get pointer to a GameInstance
LogScript: Warning: Script Msg: No world was found for object (/Game/FirstPerson/UEDPIE_0_Lvl_FirstPerson.Lvl_FirstPerson:PersistentLevel.BP_FirstPersonCharacter_C_0.BP_ConvaiPlayerComponent) passed in to UEngine::GetWorldFromContextObject().
ConvaiUtilsLog: Warning: Could not get pointer to a GameInstance

The PTT works properly in the new build but is still “staying open” in my production build. I dirctly copied the exact folder from 1 project to another so they are identical files. I can’t remake the entire project, so I need to fix it in this one.

To be clear, this isn’t usable in its current state. Anytime the character speaks it interrupts itself and ends up in an endless cycle of talking and cutting itself off. Stop Talking is getting triggered but it’s not muting or whatever it’s supposed to be doing on the back end. I have attached the logs for a session where it cuts itself off.

Tell me what you need from me to diagnose, because I need this working for a major conference tomorrow, where we will be selling AI characters as a product. Again, this was working fine before I upgraded to the new version so something must have changed.

20260224_182557_Default.log (10.7 KB)

From your description it sounds like Hands Free conversation is still enabled in your production build.

Since this is a beta version, we don’t recommend upgrading a production project right before a major conference.

I cannot access your logs.

How can I disable it? I had to upgrade to support Metahuman v 5.6 but that’s why I did it last week so i could have time to sort it out.

Try this for logs

log text.txt (10.8 KB)

I don’t see any interaction in the logs. You didn’t need to update any plugins for UE 5.6 support. It is supported in the previous version.

The version I was using wasn’t animating 5.6 properly but it was admittedly older.

If I am removing all of the Convai plugin and pulling in a new one how is it still keeping some of the old logic? I don’t understand how that’s possible.

Right now you are not using the old plugin.

I know but something is causing the PTT to not "shut off” right?

Can someone just tell me what to do to fix it in the code or a workaround for now? I just need it to work for the next 3 days.

There is no need for any code changes on our side. As you mentioned, it works in a new project and on our end as well. In your old project, I believe you are still using the old player and character blueprints. Please try creating a new character and player.

I mean code on my end. “Stop Talkin” is firing but it’s not muting the mic, how can I ensure that it does?

I switched them over as per the video. See attached screenshots of player and a character:

Also I did create a new char and player in a new project and it works which is why I’m so confused as to why it’s not working in this one. I even tried to create a new char and it’s doing the same thing so it has to be some legacy thing with Convai from the older plugin version. I just want a workaround for now dopesn’t need to be a major overhaul at the moment.