Automated Sports Commentary Generation using LLMs
wsc_sport · Media & Entertainment · 2023 · source Agentic: no · promotional bias: med · summary-only (no fetched source) · extracted with prompt 0.5.4 (schema v2)
Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.
Problem
Domain: Sports media automation
WSC Sport needed to produce narrated game recap videos quickly enough for post-game consumption while preserving sport-specific accuracy, video synchronization, and commentary variety across leagues and languages.
Constraints:
- recaps must be ready soon after games end
- commentary must stay synchronized with video highlights
- the system must avoid invented events and statistics
- sports terminology and league preferences differ by sport and competition
- multilingual output needs sport-aware translation and narration
Architecture
WSC Sport combined its existing automated highlight generation with an LLM script generator called Roger, a text-to-speech commentator called John, and a translation layer. Structured event metadata supplies actions, ratings, statistics, players, teams, and special attributes to the LLM so the script generator does not have to infer facts. The team moved away from a zero-shot whole-recap prompt toward per-event generation, dynamic example retrieval, and chain-of-thought guardrail checks to reduce repetition, synchronization failures, and hallucinated sports claims.
Diagram confidence: reconstructed (reconstructed from prose).
flowchart LR highlight-generator[Highlight generator] --> structured-event-metadata[Structured event metadata] structured-event-metadata --> roger-script-generator[Roger script generator] dynamic-example-selector[Dynamic example selector] --> roger-script-generator roger-script-generator --> guardrail-checker[Guardrail checker] guardrail-checker --> john-narration-engine[John narration engine] john-narration-engine --> translation-layer[Translation layer]
Components
| Component | Role | Interacts with |
|---|---|---|
Highlight generator |
Identifies and ranks important moments from sports broadcasts. | Structured event metadata, Roger script generator |
Structured event metadata |
Carries event ratings, action types, statistics, players, teams, and attributes into prompting. | Roger script generator, Guardrail checker |
Roger script generator |
Generates sports commentary scripts from event metadata and dynamic prompt examples. | Dynamic example selector, Guardrail checker, John narration engine |
Dynamic example selector |
Selects few-shot examples by action type, game time, attributes, and statistics to reduce repetitive language. | Roger script generator |
Guardrail checker |
Uses chain-of-thought verification prompts to compare generated claims with structured event data. | Roger script generator, John narration engine |
John narration engine |
Converts approved script text into synchronized synthetic commentary audio. | Translation layer |
Translation layer |
Localizes generated commentary into multiple target languages. | John narration engine |
Data flow
The pipeline starts with broadcast event data and highlight selection. Highlight metadata and background context feed Roger for event-level script generation, dynamically selected examples guide wording, guardrail prompts check claims against event data, text-to-speech turns approved copy into narration, and translation produces localized versions.
4 supporting quotes
Why this architecture
A pipeline architecture fit the problem because WSC already had structured highlight data, and each stage has a different failure mode: script quality, factual verification, narration timing, and localization. Per-event generation and dynamic examples trade whole-recap coherence for better length and synchronization control. Structured metadata reduces hallucination risk by giving the model facts explicitly.
3 supporting quotes
Models used: LLM script generator · text-to-speech model · translation model
Scale
- The company is described as roughly 400 employees operating globally.“WSC Sport, a sports technology company with approximately 400 employees operating globally, has developed an automated AI-powered sports commentary system that generates complete game recap videos with synthetic narration.”summary, stated
- The target output is a 5-10 minute summary rather than a full game.“The fundamental problem they're solving is meeting the demands of modern sports consumers, particularly younger audiences who don't want to watch entire games but instead prefer quick 5-10 minute summaries that tell the complete story with all the key moments and interesting statistics.”summary, stated
- The automation reduced recap production from 3-4 hours to about 1-2 minutes.“This case study, presented by Alik who leads the NLP team at WSC Sport, demonstrates how they built a production system that reduces the time to create narrated sports recaps from 3-4 hours to approximately 1-2 minutes.”summary, stated
- Production output included NBA app commentary in Spanish, French, and Portuguese.“The system is currently deployed in production, visible in the NBA app with Spanish, French, and Portuguese commentary.”summary, stated
Alternatives considered (roads not taken)
Human-only narrated recap production
Rejected because: Manual production took hours of data collection, writing, recording, and quality assurance.
Zero-shot whole-script generation
Rejected because: A single prompt over all events made length and video synchronization hard to control.
Static few-shot examples
Rejected because: The team needed examples matched to event type and context to reduce repetitive phrasing.
Patterns
structured-output-contract (reliability)
The system feeds structured game-event facts to the script generator so sports facts are provided rather than inferred.
prompt-versioning (prompting)
The system uses sport-, league-, and event-aware prompt instructions and dynamically selected examples.
guardrails-io-filtering (reliability)
Chain-of-thought verification prompts check generated assertions against actual event data before narration.
model-routing (architecture)
Different model stages handle script generation, text-to-speech narration, and translation.
Tradeoffs
Generate commentary per event
Chose event-by-event script generation over one complete-script generation pass.
Rationale: Per-event generation improved control over length and synchronization but introduced context and repetition challenges.
Prioritize script generation as the LLMOps bottleneck
Chose focus LLMOps effort on script quality over spread equal effort across TTS, translation, and video editing.
Rationale: The source identifies script generation as the critical quality bottleneck for the final recap.
Gotchas (what bit them)
Whole-recap prompting broke synchronization with video.
Root cause: The model could describe one event too verbosely while the highlight video had already moved on.
Resolution: The team moved to event-level processing for better control.
Generated sports language became repetitive across a two-minute recap.
Root cause: Similar replay events triggered similar stock phrases.
Resolution: Dynamic few-shot selection varied examples by event attributes.
LLMs could invent or misstate sports facts.
Root cause: Models may rely on stale training data or infer unsupported events.
Resolution: Structured event metadata and CoT guardrail checks compare claims with actual event data.
Evaluation
The available summary describes qualitative guardrail checks and production deployment but does not provide error-rate metrics.
Metrics: production time reduction · hallucination checks · language coverage · production deployment
Outcomes
- The system reduced narrated recap creation from hours to roughly one or two minutes.
- The system reached production in the NBA app with multiple commentary languages.
- Dynamic examples reportedly reduced repetitive commentary.
- Hallucination remained a significant production challenge.
Summary-only evidence reports global operations, several major leagues, multiple languages, and post-game generation in minutes.