Twilio ConversationRelay: Comparing How ElevenLabs v4 and Amazon Polly Read Out Names and Numbers

Twilio ConversationRelay: Comparing How ElevenLabs v4 and Amazon Polly Read Out Names and Numbers

My phone-answering AI converted names and numbers into hiragana readings before sending them to Polly to read back for confirmation. A new model reads them better, so this extra processing can likely be reduced.
2026.11.02

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.

https://dev.classmethod.jp/articles/twilio-conversationrelay-polly-ssml-japanese-pronunciation/

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 (ttsProvider is Amazon)
  • 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.


Twilioの導入支援はクラスメソッドにお任せください!

クラスメソッドでは、Twilioの導入から運用までしっかりサポートいたします。
コミュニケーションツールの導入や最適化をお考えの方は、ぜひお気軽にご相談ください。

Twilioの詳細を見る

Share this article

AWSのお困り事はクラスメソッドへ