{"slug": "grok-tts-speech-tags-tested-what-loud-singing-and-laugh-actually-do", "title": "Grok TTS speech tags, tested: what <loud>, <singing> and [laugh] actually do", "summary": "A developer measured how xAI's Grok text-to-speech API speech tags affect output, finding that the <loud> tag raises median pitch from 195 Hz to 253 Hz while leaving loudness essentially unchanged (-20.7 to -20.9 dBFS RMS), making it more of an urgent delivery cue than a volume control. The <singing> tag stretched a 6.5-second clip to 8.4 seconds and pushed pitch from 189 Hz to 250 Hz. The developer also built a free, unaffiliated front-end for auditioning the tags across Grok's 28 voices, priced at $15 per million characters.", "body_md": "xAI's Grok text to speech API (`POST https://api.x.ai/v1/tts`) has 28 built-in voices, 20 languages and a set of speech tags you put straight into the text. The docs list the tags; they don't say how much each one changes. I measured a couple.\n\n``` js\nconst res = await fetch('https://api.x.ai/v1/tts', {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${process.env.XAI_API_KEY}`,\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    text: 'Stand back. <loud>This is not a drill.</loud>',\n    voice_id: 'eve',\n    language: 'en',\n    output_format: { codec: 'mp3', sample_rate: 24000, bit_rate: 128000 },\n  }),\n});\nconst mp3 = Buffer.from(await res.arrayBuffer());\n```\n\n`language` also takes `auto`. Price is $15 per million characters (xAI pricing page, checked 2026-10-30).\n\n`[pause]`, `[long-pause]`, `[hum-tune]`, `[laugh]`, `[chuckle]`, `[giggle]`, `[cry]`, `[tsk]`, `[tongue-click]`, `[lip-smack]`, `[breath]`, `[inhale]`, `[exhale]`, `[sigh]`.`<soft>`, `<whisper>`, `<loud>`, `<build-intensity>`, `<decrease-intensity>`, `<higher-pitch>`, `<lower-pitch>`, `<slow>`, `<fast>`, `<sing-song>`, `<singing>`, `<emphasis>`.\nSame sentence, voice Eve, English, one clip with and one without the tag. One clip each, so this is a quick check rather than a benchmark.\n\n| Tag | Length | Loudness (RMS) | Median pitch | \n|---|---|---|---|\n| none → `<loud>` | 5.5 s → 5.5 s | -20.7 → -20.9 dBFS | 195 → 253 Hz | \n| none → `<singing>` | 6.5 s → 8.4 s | — | 189 → 250 Hz | \n\nSo `<loud>` is closer to \"raised, urgent delivery\" than a volume control: if you need a louder file, normalise it afterwards. `<singing>` stretches the words into a melody, which also makes the clip longer (and, on a per-character price, not more expensive).\n\nIf you want to hear the tags on all 28 voices before wiring up the API, I built a free front-end: [Grok Text to Speech](https://groktexttospeech.com/). The [speech tag reference](https://groktexttospeech.com/grok-tts-speech-tags/) has a before/after sample for each group, and there are preset pages for [whisper](https://groktexttospeech.com/whisper-text-to-speech/), [shouting](https://groktexttospeech.com/shouting-text-to-speech/) and [singing](https://groktexttospeech.com/singing-text-to-speech/). It's an independent project, not affiliated with xAI.", "url": "https://wpnews.pro/news/grok-tts-speech-tags-tested-what-loud-singing-and-laugh-actually-do", "canonical_source": "https://dev.to/zhiwei_224e5e15600342dc0b/grok-tts-speech-tags-tested-what-and-laugh-actually-do-1jda", "published_at": "2026-11-01 03:02:49+00:00", "updated_at": "2026-11-01 03:23:04.215851+00:00", "lang": "en", "topics": ["ai-tools", "generative-ai", "ai-products"], "entities": ["xAI", "Grok", "Grok Text to Speech"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/grok-tts-speech-tags-tested-what-loud-singing-and-laugh-actually-do", "markdown": "https://wpnews.pro/news/grok-tts-speech-tags-tested-what-loud-singing-and-laugh-actually-do.md", "text": "https://wpnews.pro/news/grok-tts-speech-tags-tested-what-loud-singing-and-laugh-actually-do.txt", "jsonld": "https://wpnews.pro/news/grok-tts-speech-tags-tested-what-loud-singing-and-laugh-actually-do.jsonld"}}