In 2019, Amazon Polly launched neural text-to-speech (NTTS) voices in US English and UK English. Neural voices use machine learning and provide a richer, more lifelike speech quality. Since the initial launch of NTTS, Amazon Polly has extended its neural offering by adding new voices in US Spanish, Brazilian Portuguese, Australian English, Canadian French, German and Korean. Some of them also are available in a Newscaster speaking style tailored to the specific needs of publishers.
If you’ve been using the standard voices in Amazon Polly, upgrading to neural voices is easy. No matter which programming language you use, the upgrade process only requires a simple addition or modification of the Engine parameter wherever you use the SynthesizeSpeech and StartSynthesizeSpeechTask method in your code. In this post, you’ll learn about the benefits of neural voices and how to migrate your voices to NTTS.
Because neural voices provide a more expressive, natural-sounding quality than standard, migrating to neural improves the user experience and boosts engagement.
“We rely on speech synthesis to drive dynamic narrations for our educational content,” says Paul S. Ziegler, Chief Executive Officer at Reflare. “The switch from Amazon Polly’s standard to neural voices has allowed us to create narrations that are so good as to consistently be indistinguishable from human speech to non-native speakers and to occasionally even fool native speakers.”
The following is an example of Joanna’s standard voice.
The following is an example of the same words, but using Joanna’s neural voice.
“Switching to neural voices is as easy as switching to other non-neural voices,” Ziegler says. “Since our systems were already set up to automatically generate voiceovers on the fly, implementing the changes took less than 5 minutes.”
Not all SSML tags, Regions, and languages support neural voices. Before making the switch, use this checklist to verify that NTTS is available for your specific business needs:
The following table summarizes additional considerations before you switch to NTTS.
Standard | Neural | |
Cost | $4 per million characters | $16 per million characters |
Free Tier | 5 million characters per month | 1 million characters per month |
Default Sample Rate | 22 kHz | 24 kHz |
Usage Quota | Quotas in Amazon Polly |
If you’re already using Amazon Polly standard, the following samples demonstrate how to switch to neural for all SDKs. The required change is highlighted in bold.
Go:
input := &polly.SynthesizeSpeechInput{ OutputFormat: aws.String(“mp3”), Text: aws.String(“Hello World!”), VoiceId: aws.String(“Joanna”), Engine: “neural”}
Java:
SynthesizeSpeechRequest synthReq = SynthesizeSpeechRequest.builder() .text(‘Hello World!’) .voiceId(‘Joanna’) .outputFormat(‘mp3’) .engine(‘neural’) .build(); ResponseInputStream
Javascript:
polly.synthesizeSpeech({ Text: “Hello World!”, OutputFormat: “mp3”, VoiceId: “Joanna”, TextType: “text”, Engine: “neural”});
.NET:
var response = client.SynthesizeSpeech(new SynthesizeSpeechRequest { Text = “Hello World!”, OutputFormat = “mp3”, VoiceId = “Joanna” Engine = “neural” });
PHP:
$result = $client->synthesizeSpeech([ ‘Text’ => ‘Hello world!’, ‘OutputFormat’ => ‘mp3, ‘VoiceId’ => ‘Joanna’, ‘Engine’ => ‘neural’]);
Python:
polly.synthesize_speech( Text=”Hello world!”, OutputFormat=”mp3″, VoiceId=”Joanna”, Engine=”neural”)
Ruby:
resp = polly.synthesize_speech({ text: “Hello World!”, output_format: “mp3”, voice_id: “Joanna”, engine: “neural” })
You can start playing with neural voices immediately on the Amazon Polly console. If you have any questions or concerns, please post it to the AWS Forum for Amazon Polly, or contact your AWS Support team.
Marta Smolarek is a Senior Program Manager in the Amazon Text-to-Speech team. Outside of work, she loves to go camping with her family