Amazon Polly Diagnostics
When to use
Any Amazon Polly investigation — speech synthesis, SSML markup, neural voices, lexicons, async tasks, or streaming troubleshooting.
Investigation workflow
Step 1 — Collect and triage
aws polly describe-voices --language-code en-US
aws polly list-lexicons
aws polly list-speech-synthesis-tasks --status inProgress
Step 2 — Domain deep dive
aws polly get-lexicon --name <lexicon-name>
aws polly get-speech-synthesis-task --task-id <task-id>
aws polly synthesize-speech --text "test" --output-format mp3 --voice-id Joanna output.mp3
Step 3 — Detailed investigation
aws polly synthesize-speech --text-type ssml --text '<speak>test</speak>' --output-format mp3 --voice-id Joanna output.mp3
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=polly.amazonaws.com --max-results 20
aws cloudwatch get-metric-statistics --namespace AWS/Polly --metric-name RequestCharacters --start-time <start> --end-time <end> --period 300 --statistics Sum
Read references/guardrails.md before concluding on any Polly issue.
Tool quick reference
| Tool / API | When to use |
|---|---|
describe-voices |
List available voices and engines |
synthesize-speech |
Test speech synthesis |
get-lexicon |
Check lexicon content |
get-speech-synthesis-task |
Check async task status |
list-speech-synthesis-tasks |
List pending/completed tasks |
| CloudWatch Metrics | Check request rates and errors |
Anti-hallucination rules
- Always cite specific voice IDs, task IDs, or API responses as evidence.
- Neural voices are NOT available for all languages. Check availability first.
- SSML tags must be valid XML. Never assume HTML-like tolerance.
- Lexicons use PLS format, not plain text. Never confuse formats.
- Async synthesis requires S3 output. Never assume local file output.
- Spend no more than 2 minutes on any single hypothesis. Pivot if inconclusive.
12 runbooks
| Category | IDs | Covers |
|---|---|---|
| A — Synthesis | A1-A2 | Synthesis failures, output format |
| B — SSML | B1-B2 | SSML errors, tag issues |
| C — Voices | C1-C2 | Neural voices, voice selection |
| D — Lexicons | D1-D2 | Lexicon errors, pronunciation |
| E — Async | E1-E2 | Task failures, S3 output |
| Z — Catch-All | Z1-Z2 | General troubleshooting, streaming |