[WORKAROUND] Restore “Read Aloud” (TTS) Controls in ChatGPT — Tampermonkey Userscript (One-Click Install)

Recent updates to ChatGPT’s web and desktop UI have seriously degraded the “Read aloud”/listen feature for accessibility and workflows with long messages. As a power user who relies on listen mode for long programming or technical conversations, I found the new UI/UX is basically broken:


:loudspeaker: The Problem

  • “Read aloud” is now hidden in the ⋮ menu and no longer available as a persistent, one-click button under each response.

  • Playback stops instantly if you click elsewhere in the app—no persistent controls remain visible.

  • This breaks accessibility and makes the feature useless for anyone who needs to listen while interacting with the conversation.

  • The problem affects both chat.openai.com and the desktop client (likely because both use the same UI components).

  • Using the web or desktop app, there is currently no way to continuously listen to responses, and Windows Narrator does not fill the gap.

I shared these concerns and frustrations in detail in the main bug thread:
https://community.openai.com/t/bug-read-aloud-stops-playback-when-switching-tabs-regression/1356400/7


:trophy: Temporary Solution: Userscript with Tampermonkey

Until OpenAI restores proper, persistent TTS controls, here’s a fully-featured userscript that brings back per-message playback, “Auto” mode, and more, using your local system voices.


Features

  • Per-message :play_button: Speak button directly under assistant messages.

  • Auto mode: Automatically reads each new response aloud.

  • Persistent, floating playback controls—never hidden!

  • Voice selector: Choose & persist your favorite system TTS voice (Windows/SAPI, etc).

  • “Test” button to preview your selection, and “Stop” button at any time.

  • Dark mode friendly.

  • Smart code block handling: When a message has code, it says “…please see code in conversation history…” (so you don’t get a mess of code read aloud).

  • No duplicate reads if you revisit/reload the page.

  • Supports chat.openai.com and chatgpt.com

  • Everything is local—no cloud calls, just your browser’s SpeechSynthesis API.


Direct Install/Preview Links


:vertical_traffic_light: How to Install and Use

1. Install Tampermonkey

Get Tampermonkey for Chrome
(works on Edge, Chromium browsers too)

2. Install the Script

  • Click the One-click Install link above (must have Tampermonkey installed).

  • Approve installation; the script will be active immediately.

3. Refresh ChatGPT

  • Open or refresh chat.openai.com or chatgpt.com.

  • You’ll see a small dark floating toolbar at the top right.

  • Under each assistant message, you’ll have a :play_button: Speak button.

4. Usage Tips

  • Auto Mode: Turn on for automatic reading of every new assistant message.

  • Voice Selection: Drop-down lets you pick the Windows/system voice you prefer (David, Zira, etc).

  • “Test” button ensures TTS works.

  • Stops code blocks: Instead of reading code, it will say “…please see code in conversation history…”

  • Stop button cancels speech at any time!


:red_exclamation_mark: Notes and Caveats

  • This is a user-contributed workaround, not official OpenAI code. Always review scripts you install.

  • Uses your browser’s built-in voices (quality will differ from OpenAI’s “Read aloud”).

  • Designed for accessibility and productivity—makes long conversations MUCH more usable.

  • Keeps no data; everything runs locally in your browser.


If you want more details about this regression and why accessibility advocates are flagging it, see the bug thread.

If you find this script useful, or have requests or feedback, reply below or at the Gist page.

This topic was automatically closed after 22 hours. New replies are no longer allowed.