Implementing Text-to-Speech with Amazon Polly - Neural Voices and SSML Speech Control
Generate natural-sounding speech with the Neural TTS engine and control speech rate, pitch, and pauses with SSML tags. Learn how to build diverse audio content using real-time streaming and asynchronous synthesis to S3.
Overview of Polly
Amazon Polly is a text-to-speech (TTS) service that converts text into natural-sounding speech. The Neural TTS engine uses deep learning models to produce significantly more natural speech compared to the traditional Standard TTS engine. Supported languages, language variants, and voices are added continuously, so be sure to check the voices you can actually choose in the Available voices list in the official AWS documentation. The Japanese (ja-JP) neural voices are the 3 voices Takumi (male), Kazuha (female), and Tomoko (female). Adding Mizuki (female), which is offered only on the Standard engine, gives Japanese 4 voices to choose from (values listed in the official documentation as of August 2026). Because Takumi supports both the Standard engine and the Neural engine, neural-quality reading is possible even with a male voice. Note that the official list has only two gender categories, female and male; the voices presented as child voices are limited to some English voices, and there is no such voice for Japanese. The Generative engine produces the highest-quality voices using the latest foundation models, and the official documentation lists 23 locales and 43 voices, but Japanese (ja-JP) is not included. The Regions where it can be used are also limited to 10 Regions, including Tokyo (ap-northeast-1), so check in advance whether your Region is covered. The Long-Form engine is optimized for long-form content such as books and news articles, and it automatically adjusts the natural pauses and intonation between paragraphs.
SSML and Speech Control
SSML (Speech Synthesis Markup Language) tags provide fine-grained control over how text is read aloud. The tag adjusts speech rate, pitch, and volume, while the tag inserts pauses at any position. The tag specifies pronunciation for specific words using IPA (International Phonetic Alphabet), preventing mispronunciation of proper nouns and technical terms. The tag specifies how numbers are read (phone numbers, dates, currency), and the tag adds stress. Registering a lexicon lets you globally override pronunciation for specific words and phrases, eliminating the need to write SSML each time. With the Neural engine, the NTTS-specific tag can apply newscaster or conversational styles, but it can be applied only to some voices that support these styles. As of August 2026, the official documentation lists some English and Spanish voices as supported (such as Amy for en-GB and Lupe for es-US), and none of the Japanese voices are supported. So a design that aims for newscaster-style reading in Japanese content is not possible. The newscaster style is not supported on the Generative engine either.
Synthesis Methods and Integration
Polly offers two synthesis methods. The SynthesizeSpeech API converts text to speech in real time and returns an audio stream. The response is played directly or saved to a file. A single request is limited to 3,000 billed characters (6,000 characters in total including SSML tags), and the output audio stream is also limited to 10 minutes. Up to 5 lexicons can be applied in a single request. The StartSpeechSynthesisTask API performs asynchronous synthesis, outputting long text to an S3 bucket in MP3 or OGG format. A single request is limited to 100,000 billed characters (200,000 characters in total including SSML tags). Because SSML tags are not counted as billed characters, the actual limit for plain text is 100,000 characters (values listed in the official documentation as of August 2026). If you confuse these two tiers of limits and submit 150,000 characters of plain text, the task is not accepted, so you need to estimate the billed character count before submitting. It is suited to batch generation of audiobook narration and large volumes of announcement audio. The SpeechMark feature can retrieve timing information between text and audio (word-level, sentence-level), which can be used for automatic subtitle synchronization and lip-syncing. Integration with Connect enables dynamic IVR voice prompts, and combining with Lex builds voice-interactive bots.
Polly Pricing
Polly pricing is pay-per-use based on the number of characters processed. The Neural engine costs approximately $16.00 per 1 million characters, and the Standard engine costs approximately $4.00 per 1 million characters (as of August 2026). The Generative engine costs approximately $30.00 per 1 million characters. The Long-Form engine costs approximately $100.00 per 1 million characters, which is expensive but specialized for high-quality long-form audio such as audiobooks. Under the legacy 12-month free tier (accounts created before July 15, 2025), 1 million Neural engine characters per month and 5 million Standard engine characters per month were included. New accounts created on or after that date get the credit-based free plan of up to $200 (for up to 6 months) (see the official AWS site for the latest terms). SSML tags are not counted toward character usage, so leveraging SSML does not increase costs.
Choosing Voices and Engines
Polly offers voices in many languages and from many speakers, and you can choose them to suit your purpose. There are several kinds of speech synthesis engines, and they differ in naturalness and purpose. Engines that produce smoother, more human-like voices are suited to narration and dialogue. There are also engines optimized for reading long texts and engines with high expressiveness. Because supported languages and pricing differ by engine, choose based on the balance between the quality you need and your budget. Choosing a speaker who fits the atmosphere of your brand also affects the impression on listeners. Identify the optimal combination of voice and engine from the perspectives of use case, language, and cost.
Customizing Pronunciation
Proper nouns, technical terms, and abbreviations are sometimes not read as intended as they are. Polly provides mechanisms for customizing pronunciation. With the markup called SSML, you can finely control readings, breaks, emphasis, and pauses. If you prepare a dictionary that defines the readings of specific words in advance, you can have company names and product names read correctly and consistently. You can also specify how numbers and dates are read. Such adjustments prevent mechanical misreadings and let you produce audio that sounds natural and is easy for listeners to understand. The care put into pronunciation determines the quality of audio content.
Use Cases and Delivery
Polly can be used in a wide range of situations. Typical examples include voice prompts in automated phone answering, narration for e-learning materials, accessibility support that reads articles aloud, and news- or podcast-style audio content. There is a method that streams audio in real time for immediate playback and a method that synthesizes long text in bulk and saves it to S3, and you use them according to the purpose. Distributing the generated audio files through CloudFront lets you deliver them efficiently to many users. Because all it takes is text to produce diverse audio, you can greatly broaden the range of content you offer.
Operations and Cost Optimization
Polly charges according to the number of characters synthesized. When the same wording is read aloud repeatedly, you can keep down the number of syntheses and the cost by saving and reusing the generated audio files rather than synthesizing them again each time. For fixed announcements and standard messages, a caching strategy of synthesizing them in advance works well. For large volumes of text, asynchronous batch synthesis is efficient. Another option is a combination in which only the dynamically changing parts are synthesized in real time and the fixed parts are returned from the cache. Designing with the amount of text to be read in mind is the key to providing speech features while managing costs.
Summary
Amazon Polly is a service that generates natural-sounding speech using the Neural TTS engine. It supports diverse audio content creation through fine-grained SSML speech control, two synthesis methods (real-time streaming and asynchronous synthesis), and subtitle synchronization via SpeechMark. It can also be used to build voice interaction systems through integration with Connect and Lex.
References (Official AWS Resources)
The primary sources for this page are the official AWS website and documentation. Check the official pages below for the latest specifications and pricing.
- Amazon Polly official page
- Amazon S3 official page
- AWS Lambda official page
- AWS Documentation (official)
If this page and the official documentation disagree, treat the official documentation as authoritative.