Combat sports fight weeks generate dense spoken media: press conferences, open workouts, embedded interviews, and weigh-in theatrics. Quotes travel faster than official transcripts, and narrative frames harden before communications teams finish clip review.
Dantani applies ASR, speaker diarization, and LLM frame analysis so PR desks see claim maps, rivalry heat, and brand-risk language as structured events rather than raw audio. Eagle Eye speech and language stacks power the extraction; Sports PR owns escalation.
Promotions run multi-fighter cards. One main-event stare-down and three undercard pressers can share a room and a microphone. Without speaker-aware structure, desks cannot tell which claim belongs to which camp.
Motivation
Manual logging of pressers cannot keep pace with multi-fighter cards. Promotional heat, medical concerns, and sponsorship mentions all sit in the same audio stream and need different escalation paths. Talent managers, promotion PR, and broadcast partners each need a different slice of the same transcript.
Clip culture accelerates risk. A ten-second rivalry soundbite outruns the full answer that softened it. Structured claim extraction lets desks respond to what was actually said, with timestamp evidence.
Methodology
Audio ingest feeds ASR with sports-tuned vocabularies for fighter names and promotion jargon. Diarization attributes turns to fighters, coaches, moderators, and interpreters. LLM extractors pull claims, threats, medical references, and sponsor name-drops into a structured presser graph.
Claim nodes link to speakers, opponents named, and severity tags. Rivalry heat is a frame label, not a fake engagement score. Medical and weight-cut language triggers quiet escalation paths that never auto-post.
Open workouts and embedded shows reuse the same schema with looser turn-taking. The graph stays consistent so Monday media day and Thursday weigh-ins compare cleanly.
Desk workflow
- Ingest: attach card ID, bout ID, and participant roster (fighters, coaches, moderators, interpreters) before audio lands.
- Live presser: partial transcripts stream with provisional speaker labels.
- Post-presser: claim graph review; rivalry vs medical vs sponsor buckets.
- Talent path (intended rule): camps receive their fighter's claims and opponent mentions only—product posture, not a live access-control guarantee in every deployment.
- Broadcast path: cleared soundbites with timestamps for package producers.
Koba summarises claim graphs for quick camp briefs inside Eagle Eye dashboards. It never publishes quotes unsupervised.
Schemas and code
Illustrative pseudocode
type PresserTurn = {
turnId: string;
boutId: string;
speakerId: string;
role: "fighter" | "coach" | "moderator" | "interpreter" | "other";
startMs: number;
endMs: number;
text: string;
};
type ExtractedClaim = {
turnId: string;
frame: "rivalry" | "medical" | "sponsor" | "claim" | "other";
targets: string[]; // entity ids
severity: "low" | "medium" | "high";
quoteSpan: [number, number]; // offsets into turn.text
};
type ParticipantRoster = {
boutId: string;
speakers: Array<{ speakerId: string; role: PresserTurn["role"] }>;
};Illustrative pseudocode
def presser_frames(transcript_turns, llm):
claims = []
for t in transcript_turns:
extracted = llm.extract(
frame_types=["rivalry", "medical", "sponsor", "claim"],
turn=t,
)
# Normalise to ExtractedClaim objects (not nested bare lists).
for c in extracted:
claims.append({
"turnId": t.turn_id,
"frame": c.frame,
"targets": c.targets,
"severity": c.severity,
"quoteSpan": c.quote_span,
})
return claims
def route_claim(claim, rules):
if claim["frame"] == "medical" or claim["severity"] == "high":
return "secure_queue"
if claim["frame"] == "sponsor":
return "commercial_reconcile"
return "comms_watch"Failure modes
- Speaker swap: diarization confuses fighters with similar timbre in noisy rooms.
- ASR proper-noun misses: new prospects and regional nicknames fall out of vocabulary.
- Sarcasm and kayfabe (scripted promotional heat): promotional heat misread as genuine threat language.
- Overlapping talk: stare-down audio destroys turn boundaries.
- Clip-only ingest: missing pre-context flips claim polarity.
- Auto-post temptation: structured quotes must never publish without human clearance.
Illustrative combat patterns
- Main-event pressers where rivalry language spikes ticket and PPV narrative.
- Media-day asides that introduce medical or weight-cut concerns needing quiet escalation.
- Coach comments that shift betting and editorial framing overnight.
- Sponsor mentions during open workouts that should reconcile with contracted inventory.
- Undercard fighters whose breakout quotes get ignored until creator clips force a response.
Where Dantani products fit
Sports PR and talent communications run on the claim graph. Monitoring folds presser events into the wider fight-week media picture. Promotion systems can consume structured events once desks clear them.
Roster and vocabulary ops
Fight-week vocabulary packs update when cards finalise. New prospects, regional nicknames, and promotion-specific jargon must land in ASR before media day—not after the first missed claim. Diarization rosters should include coaches and interpreters when they share the dais; the ParticipantRoster schema encodes that requirement up front.
Claim severity is policy configuration. A rivalry boast that sells a card can be low severity for PR and high value for broadcast packages; a medical aside is the opposite. Eagle Eye extracts; Sports PR routes.
Takeaways
Fight-week media is a speech-to-structure problem. Dantani and Eagle Eye turn press conferences into claim graphs so combat PR teams respond with context, not clip chaos.
