Commentary

The Commentary page brings your iRacing sessions to life with AI-generated, real-time voice commentary powered by ElevenLabs text-to-speech. A full broadcast crew of up to five distinct voice roles — Crew Chief, Spotter, Sportscaster 1, Sportscaster 2, and Pit Reporter — reacts to on-track events as they happen.

This feature requires an ElevenLabs account and a valid API key. See the Account section below for setup instructions.

Note: Currently only the Spotter role is fully implemented and visible in the UI. The Crew Chief, Sportscaster 1, Sportscaster 2, and Pit Reporter roles are still in development and are not yet available.

Master

Enabled

Master on/off switch for the entire Commentary system. When off, no voices will speak and no ElevenLabs API calls will be made, even if individual roles are enabled.

Default: OFF

Language

Selects the language used for all generated commentary phrases. MAIRA ships with phrase templates for 25 languages. Changing this setting takes effect immediately — no restart required.

Default: English (US)

Master Volume

Global volume multiplier applied on top of each individual voice slot’s own volume setting.

Default: 85%

Account

MAIRA uses the ElevenLabs API to generate speech. You need a free or paid ElevenLabs account and an API key to use this feature.

Step 1 — Create an ElevenLabs account

  1. Go to elevenlabs.io and click Sign Up.
  2. Complete registration (email or Google/GitHub login).
  3. Verify your email address if prompted.

The free tier gives you a limited number of characters per month. Because MAIRA caches generated audio to disk, repeated phrases (especially common spotter calls like “car left” and “clear”) are played back from cache without consuming any additional API characters. The Spotter’s phrase set is small and repetitive by nature, so the cache fills up quickly and very few new API characters are consumed after the first session. This means the free tier is more than sufficient for the vast majority of MAIRA users who just want the Spotter. The sportscaster and crew chief roles — when they become available — will produce a much wider variety of unique phrases, so a paid plan may be worth considering at that point.

Step 2 — Create an API key

  1. Log in and click your profile icon (bottom-left), then choose Profile + API key.
  2. Under the API Keys section, click Create API Key.
  3. Give it a name (e.g. “MAIRA”) and click Create.
  4. Copy the key — you will only see it once.

Step 3 — Required API key permissions

MAIRA needs the following permissions to function correctly. When creating your API key, make sure all four of these are enabled:

  • Voices — Read (so MAIRA can populate the voice picker)
  • Models — Read (so MAIRA can populate the model picker)
  • Text-to-Speech (so MAIRA can generate speech)
  • User — Read (so MAIRA can display your subscription usage)

Step 4 — Enter your API key in MAIRA

  1. Paste your API key into the API Key field on this page.
  2. Click the Verify Key button. MAIRA will check all four required permissions and report the result.
  3. If verification passes, the voice and model pickers will populate automatically.

Your API key is stored encrypted on your PC using Windows DPAPI (Data Protection API). It is never written to MAIRA’s settings file in plain text and never leaves your machine except to reach the ElevenLabs API.

Model

Selects the ElevenLabs speech model used for all voice slots. Different models offer different trade-offs between speed, quality, and cost (characters per API call).

The Eleven v3 model is strongly recommended. It is the only model that supports emotion cues — the expressive tags embedded in MAIRA’s phrase templates (such as [excitedly], [urgently], and [seriously]) that give each voice role its personality. Without v3, those cues are ignored and the delivery will be noticeably flatter. The free tier is sufficient for Spotter-only use with the v3 model.

Default: Eleven v3 (recommended — required for emotion cue support)

MAIRA also displays your current session character usage and ElevenLabs subscription billing-period usage beneath the model selector, so you can keep an eye on your quota.

Voice Roster

The Voice Roster contains five role slots, each representing a different on-air personality. You can assign any ElevenLabs voice to any slot, tune the voice parameters independently, and enable or disable each role separately.

The five roles are:

  • Crew Chief — Tactical, authoritative, calm. Speaks directly to you about your own car: fuel warnings, tire warnings, pit window, incidents.
  • Spotter — Clipped, fast, safety-critical. Calls proximity (car left / car right / clear) and flag conditions in real time.
  • Sportscaster 1 — Warm, theatrical, lead play-by-play. Calls session starts/ends, overtakes, and fastest laps.
  • Sportscaster 2 — Analytical, measured, colour commentary. Calls overtakes for other drivers, close battles, and caution flags.
  • Pit Reporter — Energetic, on-the-ground, breathless. Calls pit stop entries and exits for other cars in the field.

Each slot expands to show the following settings:

Voice

Selects the ElevenLabs voice assigned to this role. The list is populated from your ElevenLabs account and includes all voices available to you — both ElevenLabs stock voices and any custom voices you have created. See the section below on creating your own custom voice.

Consistency

Controls how consistent the voice sounds from phrase to phrase (ElevenLabs “Stability” parameter). Higher values make the voice more predictable and uniform. Lower values allow more natural variation and expressiveness between takes, but can occasionally produce unexpected results.

Dramatic

Controls how much the voice exaggerates emotion and delivery (ElevenLabs “Style Exaggeration” parameter). Higher values produce a more theatrical, punchy performance. Lower values give a flatter, more neutral delivery.

Similarity Boost

Controls how closely the output sticks to the original trained voice sample. Higher values hew more tightly to the voice’s characteristic timbre. Lower values give the model more freedom to vary the delivery.

Slot Volume

Per-slot volume level. This is multiplied with the Master Volume to produce the final playback level for this role.

Default: 100%

Enabled

Enables or disables this individual voice slot. When a slot is disabled, no API calls are made for it and it will not speak even if the Master switch is on.

Speaker Boost

Enables ElevenLabs speaker-boost processing on this slot. Can improve clarity and presence for some voices. Not all models support this option.

Test Voice

Sends a short test phrase to ElevenLabs using the current voice and parameter settings for this slot so you can audition it without needing to be in a race session. The master switch and this slot must both be enabled for the button to be active.

Creating Your Own Custom Voice

ElevenLabs lets you clone or design your own voices using their Voice Design (AI-generated) or Voice Clone (from recordings) tools — both are accessible from your ElevenLabs account under Voices → Add Voice.

Once you create a custom voice in your ElevenLabs account it will appear automatically in MAIRA’s voice picker the next time you open the page (or re-verify your key).

Example: Creating a NASCAR-style spotter voice

Go to Voices → Add Voice → Voice Design in ElevenLabs and paste in a prompt like this:

A NASCAR spotter with a thick Southern American accent — Tennessee or Alabama. Male voice, mid-thirties. Talks fast, punchy, and direct. Short clipped sentences. Alert and focused, never slow. The kind of voice that has called a thousand races from a spotter’s stand at Talladega. Slightly gravelly, confident, with just a hint of urgency always in the background.

You can experiment with the accent, age, and personality description until you get something you like. Generate a few previews and pick the best one, then save it to your Voice Library. It will show up in MAIRA’s voice picker right away.

Some tips for a great spotter or crew chief voice:

  • Short, punchy sentences work better with a fast-talking voice than long flowing ones.
  • Set Consistency high (80–95%) for the Spotter slot — you want it to sound exactly the same every time it calls “car left.”
  • Set Dramatic lower (10–20%) for the Spotter — over-exaggerated delivery on a safety call sounds strange.
  • Sportscaster voices benefit from a lower Consistency (30–50%) and higher Dramatic (60–80%) to give more natural, varied energy across play-by-play calls.

Spotter Commentary

Controls the real-time spotter calls made by the Spotter voice slot.

Car Proximity

Enables proximity calls — “car left”, “car right”, “car on both sides”, and “clear” — whenever another car is alongside you on track. These calls are made in real time every tick while a car is present, with a configurable reminder interval to avoid repeating the same call too rapidly.

Default: ON

Flag Calls

Enables the spotter to announce flag conditions such as caution flags and green flag restarts.

Default: ON

Car Proximity Reminder Interval

How often (in seconds) the spotter will repeat a proximity call while a car remains alongside you. Setting this lower makes the spotter more insistent; higher makes it more relaxed.

Default: 3.0 seconds

How Commentary Works

MAIRA monitors iRacing telemetry every frame and fires commentary events when specific on-track situations occur. Each event type has an independent cooldown timer to prevent the same call from triggering too frequently. When an event fires, MAIRA picks a random phrase from its built-in template library (available in 25 languages), substitutes in the relevant driver names, positions, and lap times, and sends the text to ElevenLabs.

Generated audio is cached to disk so that repeated phrases (especially common spotter calls) are played back instantly from cache without making another API call. The cache lives in:

Documents\MarvinsAIRA Refactored\TTS\Cache\


Previous page: Sounds

Next page: Speech to Text