Best use of Artificial Intelligence

How We Built a Real-Time AI Commentary System for Visually Impaired NBA Fans

FCB New York, Lead Agency
Michelob Ultra, end client
New York Knicks, the participating team
Madison Square Garden, the ring fenced arena

No App, Nothing to Install, Just a mobile phone, Wi-Fi or Data and standard Browser.

AFB, Accessibility isn't a constraint on ambition. In this case, it was the brief that forced a better system than anyone had built before.

01

The Data Problem

Play data from SportRadar doesn’t arrive as a single complete event. A made basket comes through in sequential packets — the play type first, then the shot classification, then the player identity. Waiting for all of it adds 3–4 seconds the budget doesn’t have. The filtering engine — a Node.js service sitting between the SportRadar feed and the rest of the system — was built to act on the minimum viable information: play confirmed, event type confirmed, primary player resolved. Everything after that is discarded for latency-sensitive paths.

02

Dead air problem

SportRadar sends a heartbeat signal every 5 seconds when no plays are coming through. The system uses this as a clock: 5 seconds of silence that doesn’t coincide with a timeout or period end triggers color commentary automatically. Timeouts and period ends trigger pre-loaded stat scripts. This is how the system maintains a constant audio presence throughout the game without requiring a human operator.

03

Audio Assembly

Once a play is classified, a pre-rendered audio library does the heavy lifting. Generating voice from a language model in real time would eat the entire latency budget. Instead, hundreds of scripts covering every play type, delivery mode, and score-call variation were produced and indexed in advance. At runtime, FFMPEG stitches the relevant clips into a single track, LiquidSoap manages the stream switch, and SRS distributes the audio across HLS, WebRTC, and SRT simultaneously.


Scroll to Top