
Twilio ConversationRelay: Comparing How ElevenLabs v4 and Amazon Polly Read Out Names and Numbers
This page has been translated by machine translation. View original
Introduction
With Twilio ConversationRelay, you can easily build an AI that talks over the phone. Twilio handles speech recognition and text-to-speech, so developers only need to receive text over a WebSocket and send back text as the reply.
The phone reception AI I am building reads back the names and phone numbers it has heard, in the form "Is your answer ~, correct?", so the other party can confirm them. I use Amazon Polly for text-to-speech, and to prevent misreadings I had been converting names and numbers into hiragana readings before sending them.
In October 2026, ElevenLabs v4 became generally available (GA) in ConversationRelay. So I decided to have Polly and ElevenLabs v4 read 20 sentences used in phone reception and compare how they sound.
As a result, ElevenLabs v4 showed improved ability to read out names and numbers compared with Polly. However, v4 does not support SSML or speed settings. I have introduced how to fix Polly's pronunciation with SSML in a previous article. Please refer to it as well.
What is ElevenLabs v4?
ElevenLabs v4 is a text-to-speech model that ElevenLabs released in September 2026. It supports Japanese. In ConversationRelay, it became GA on October 28, 2026 (Twilio changelog).
To use it in ConversationRelay, add -v4 after the voice ID in the voice attribute. Writing -v4_turbo also reads aloud with the same v4 engine (Picking a voice).
<ConversationRelay url="wss://example.com/ws" language="ja-JP"
ttsProvider="ElevenLabs" voice="3JDquces8E8bkmvbh6Bc-v4" />
Test environment
- Twilio ConversationRelay (language: ja-JP)
- Amazon Polly
Takumi-Neural(ttsProviderisAmazon) - ElevenLabs v4 (the default ja-JP voice
3JDquces8E8bkmvbh6Bc) - One Node.js test server process
- Test date: November 2, 2026
Target audience
- Those building a Japanese phone AI with Twilio ConversationRelay
- Those who carefully craft the text to be read aloud in order to prevent misreadings of names and numbers
References
Background
Among the sentences to be read aloud, the guidance and question sentences are fixed. If there is a part that gets misread, I can check it in advance and fix it with SSML.
On the other hand, the content of the sentences that confirm names and numbers changes from call to call depending on the other party's answer. It cannot be checked and fixed in advance. Also, the reading of the kanji in a name is not uniquely determined.
In addition, in my AI I also wanted numbers to be read one digit at a time.
So I had the LLM that analyzes the answer produce the reading in hiragana, and sent that hiragana to Polly instead of the written form, as follows.
表記: ご回答は、XYZ5678、でよろしいですか。
送る文: ご回答は、えっくす わい ぜっと、ごー ろく なな はち、でよろしいですか。
This requires the effort of instructing how to produce the reading for each type of value, such as names, numbers, and dates, and of checking the results.
Test method
Assuming a general reservation reception, I prepared 20 sentences to be read aloud and divided them into the following 2 experiments.
| Experiment | Target sentences | Number of sentences | Conditions compared |
|---|---|---|---|
| Experiment 1 | Fixed sentences such as guidance and questions | 13 sentences | Polly and v4 |
| Experiment 2 | Sentences confirming names and numbers | 7 sentences | For each of Polly and v4, converting to hiragana vs. passing the written form as is |
Experiment 1: Fixed sentences
The following 13 sentences were read by Polly and v4 using the same strings.
1. お電話ありがとうございます。ご用件をお聞かせください。
2. お名前をフルネームでお聞かせください。
3. ご連絡のつくお電話番号をお聞かせください。
4. ご予約番号をお聞かせください。英字 3 文字と数字 4 桁です。
5. ご希望の日時をお聞かせください。
6. 何名様でご利用になりますか。
7. ご予約の変更についてのお問い合わせですね。こちらのご用件でよろしいですか。
15. 恐れ入ります。もう一度お聞かせいただけますでしょうか。
16. キャンセルでしょうか、日時の変更でしょうか。
17. 確認のため担当者におつなぎします。少々お待ちください。
18. 本日の受付は午後六時までです。
19. ご予約の変更を承りました。確認のメールをお送りします。
20. お電話ありがとうございました。失礼いたします。
Experiment 2: Sentences confirming names and numbers
The following 7 sentences were read under 4 conditions. Every sentence has the form "Is your answer ○○, correct?", and only the ○○ part differs.
| Sentence | Written form of ○○ | String converted to hiragana |
|---|---|---|
| 8 | 090-1234-5678 | zero nine zero, one two three four, five six seven eight |
| 9 | Sato Hanako-sama (written in katakana) | Sato Hanako-sama (written in hiragana) |
| 10 | Suzuki Ichiro-sama (written in kanji) | Suzuki Ichiro-sama (written in hiragana) |
| 11 | XYZ5678 | X Y Z, five six seven eight |
| 12 | 3 people | three people |
| 13 | 3 p.m. on November 15th | November fifteenth, three p.m. |
| 14 | Shibuya (written in kanji) | Shibuya (written in hiragana) |
| Condition | Text-to-speech | How ○○ is passed |
|---|---|---|
| A | Polly | Converted to hiragana (my current method) |
| B | Polly | Written form as is |
| C | ElevenLabs v4 | Converted to hiragana |
| D | ElevenLabs v4 | Written form as is |
Evaluation criteria
I evaluated on the following 3 levels.
- Good: No sense of unnaturalness in pronunciation
- Acceptable: Pronunciation sounds somewhat off, but it is barely usable for business
- Unacceptable: Not usable for business (in this test, for example, splitting a phone number at positions without a break, or reading the digits of a reservation number as a number, like "five thousand six hundred seventy-eight")
Time until reading starts
I measured, on the server side, the time from sending a sentence until receiving on of agentSpeaking. This is not the time until the sound starts being heard on the handset, but it serves as a guide for comparing the models.
Results
Experiment 1: Fixed sentences
For fixed sentences, v4 was Good for all of them, and about 30% of Polly's were Acceptable. Neither had any Unacceptable results, so for fixed sentences, both models provided speech usable for business.
| Condition | Good (%) | Acceptable (%) | Unacceptable (%) |
|---|---|---|---|
| Polly | 69.2 | 30.8 | 0.0 |
| v4 | 100.0 | 0.0 | 0.0 |
Judgment per sentence
| Sentence | Polly | v4 |
|---|---|---|
| 1 | Good | Good |
| 2 | Good | Good |
| 3 | Good | Good |
| 4 | Acceptable | Good |
| 5 | Good | Good |
| 6 | Acceptable | Good |
| 7 | Acceptable | Good |
| 15 | Good | Good |
| 16 | Good | Good |
| 17 | Good | Good |
| 18 | Good | Good |
| 19 | Good | Good |
| 20 | Acceptable | Good |
Experiment 2: Sentences confirming names and numbers
For sentences confirming names and numbers, v4 was Good for 80% or more regardless of how the text was passed, and all were Good when passed in the written form as is. For Polly, converting to hiragana did not raise the proportion of Good, and the phone number (sentence 8) and the reservation number (sentence 11) were Unacceptable with either way of passing.
| Condition | Good (%) | Acceptable (%) | Unacceptable (%) |
|---|---|---|---|
| A Polly / hiragana | 28.6 | 42.9 | 28.6 |
| B Polly / written form as is | 42.9 | 28.6 | 28.6 |
| C v4 / hiragana | 85.7 | 14.3 | 0.0 |
| D v4 / written form as is | 100.0 | 0.0 | 0.0 |
Judgment per sentence
| Sentence | Written form of ○○ | A Polly / hiragana | B Polly / written form as is | C v4 / hiragana | D v4 / written form as is |
|---|---|---|---|---|---|
| 8 | 090-1234-5678 | Unacceptable | Unacceptable | Good | Good |
| 9 | Sato Hanako-sama (written in katakana) | Good | Acceptable | Good | Good |
| 10 | Suzuki Ichiro-sama (written in kanji) | Acceptable | Acceptable | Good | Good |
| 11 | XYZ5678 | Unacceptable | Unacceptable | Good | Good |
| 12 | 3 people | Acceptable | Good | Good | Good |
| 13 | 3 p.m. on November 15th | Acceptable | Good | Good | Good |
| 14 | Shibuya (written in kanji) | Good | Good | Acceptable | Good |
Time until reading starts
| Experiment | Condition | Median (ms) | Max (ms) |
|---|---|---|---|
| Experiment 1 | Polly | 288 | 302 |
| Experiment 1 | v4 | 314 | 346 |
| Experiment 2 | A Polly / hiragana | 300 | 352 |
| Experiment 2 | B Polly / written form as is | 308 | 356 |
| Experiment 2 | C v4 / hiragana | 308 | 324 |
| Experiment 2 | D v4 / written form as is | 308 | 324 |
In both experiments, the difference in medians was within 30 ms.
Time per sentence in Experiment 1
| Sentence | Polly (ms) | v4 (ms) |
|---|---|---|
| 1 | 282 | 301 |
| 2 | 293 | 288 |
| 3 | 290 | 319 |
| 4 | 278 | 319 |
| 5 | 283 | 313 |
| 6 | 296 | 306 |
| 7 | 302 | 314 |
| 15 | 265 | 314 |
| 16 | 290 | 302 |
| 17 | 288 | 346 |
| 18 | 284 | 319 |
| 19 | 288 | 312 |
| 20 | 267 | 314 |
Time per sentence in Experiment 2
| Sentence | A Polly / hiragana (ms) | B Polly / written form as is (ms) | C v4 / hiragana (ms) | D v4 / written form as is (ms) |
|---|---|---|---|---|
| 8 | 352 | 356 | 324 | 311 |
| 9 | 300 | 286 | 307 | 303 |
| 10 | 298 | 308 | 308 | 301 |
| 11 | 330 | 310 | 306 | 308 |
| 12 | 299 | 290 | 310 | 308 |
| 13 | 324 | 311 | 304 | 324 |
| 14 | 289 | 275 | 313 | 301 |
Discussion
At least within the range I tested, v4 played back without any problem even when I passed the sentences without converting them to hiragana, so I think switching to it may reduce the work of crafting the text to be read aloud.
However, after switching, SSML and speed settings can no longer be used. When you want numbers read slowly, you would have to choose a voice whose way of speaking fits. Also, the only fix I tried with Polly was one kind of hiragana notation, and I did not try things like SSML say-as. The judgments were made by me alone, and the speakers also differ between Polly and v4. I think the most reliable approach is to listen to the voices and compare them yourself.
Summary
If you are carefully crafting the text to be read aloud in order to prevent misreadings of names and numbers, please try comparing by ear with ElevenLabs v4 once. When doing so, prepare both the crafted sentences and the sentences in the written form as is, and judge them using recordings with the condition names hidden; this will also let you check whether continuing the crafting is worthwhile. I hope this serves as a reference when choosing a text-to-speech model for a phone AI.
