I’ve been using gpt-realtime-1.5 for a couple of days now and ran into an interesting issue. When using output_modalities=[“audio”] , the model works great. But when I switch to
output_modalities=[“text”] with tools enabled and rely on an external TTS, the performance drops significantly compared to gpt-realtime.
Issues I’m seeing in text-only mode:
Model wraps normal conversational responses in curly braces {} as if it’s outputting JSON
Function call arguments leak into the text output channel (the TTS literally tries to speak the function call JSON)
Internal control tokens leak into the output, e.g.: <|aesthetics_3|><|has_watermark|>
Ignores language instructions that gpt-realtime followed perfectly
None of these issues exist with gpt-realtime in the same configuration, or with gpt-realtime-1.5 in audio output mode. Seems specific to text mode + tools.
I would like to second that there is something very very wrong with output_modalities=[”text”] on the new model. Almost every response it gives is somehow wrong, or is a tool call at the incorrect time. After an incorrect tool call or response, it follows up with an “oops, I messed that up, let’s try again” and tries to continue.
I can also reproduce several of the behaviors you described:
In text-only mode, the model does return JSON-like content (for example, normal replies wrapped in { ... }) instead of a natural conversational answer.
I also see tool-related JSON leaking into the user-facing text output in this setup, which would cause an external TTS that reads the text stream to literally speak JSON.
In the same configuration, I see weaker adherence to instructions compared to audio output mode.
Will ping the team to take a look!
Ps. I did not capture the “internal control tokens” leak (<|aesthetics_3|><|has_watermark|>) in my tests. If anyone can share request IDs that will be helpful.
Unfortunately I didn’t capture the specific request IDs for the control token leak at the time I’ll start logging them and share as soon as I can reproduce it again.
I can also confirm all these bugs happen in almost any conversation, regardless of the instructions the model gets. For me, as of now, gpt-realtime is superior.
Model wraps normal conversational responses in curly braces {} as if it’s outputting JSON
Function call arguments leak into the text output channel (the TTS literally tries to speak the function call JSON)
Internal control tokens leak into the output, e.g.: <|aesthetics_3|><|has_watermark|>
Ignores language instructions that gpt-realtime followed perfectly
I just saw this on session: sess_DDe8ALUUKkXHDI1OPQcmC . I don’t think I have a request ID, but that session is an example where it returns weird control tokens in the output, and not much else happens.
I checked internally and our engineers have pushed a fix for this to production. Would someone be willing to try again and update me if your still seeing the same issues?
I wanted to follow up as I’m still experiencing a related issue as of April 17th.
I am not using function calling, but I am using modalities:[‘text’]. The model wraps normal conversational responses in curly braces {} as if it’s outputting JSON.
This issue only occurs with gpt-realtime-1.5 and does not reproduce on gpt-realtime.
Sample session IDs for reference:
• sess_DVUR4gc9b8FQElVIMIlWG
• sess_DVCtlEJfVpYbAIEIHk7ZV
Could you please take another look? Happy to provide additional details if needed.
This original issue has indeed been fixed for me as well. However, I noticed a related issue that I started a new post for where the text responses include the word “analysis”. I thought I’d post here to see if anyone else in this topic has been seeing the “analysis” issue as well. - Gpt-realtime-1.5 text output_modality - drops words and replaces with "analysis"