Speaking Multiple Languages

When working with multinational callers, American English might not be the language or accent you want to use for your application's prompts. Tropo provides many different voice options to choose from, and it's all controlled using the voice parameter:

require 'tropo-webapi-ruby'
require 'sinatra'

post '/index.json' do
  t = Tropo::Generator.new
  t.say "Hello, how are you?", :voice => "kate"

var http = require('http');
var tropo_webapi = require('tropo-webapi');

var server = http.createServer(function (request, response) {
	var tropo = new TropoWebAPI();

	// (value, as, name, required, voice)
	tropo.say("Hello, how are you?.", null, null, null, null, "kate");


require 'tropo.class.php';

$tropo = new Tropo();
$tropo->say("Hello, how are you?", array("voice" => "kate"));

from itty import *
from tropo import Tropo

def index(request):

    t = Tropo()
    t.say("Hello, how are you?", voice = "kate")
    return t.RenderJson()

run_itty(server='wsgiref', host='', port=8888)
               "value":"Hello, how are you?",

The previous example shows how to speak using Kate, our British English voice. We also have Simon, Jorge, Katrin, Paola and quite a few others ready for you. A complete list appears below.

Tropo is upgrading our voices. Many of our voices will retain the same name, but the voice name will change. To allow production applications time to test and evaluate the new voices, they only appear in our free developer applications currently. After a few weeks, they'll be available in production as well. Both lists are presented here. The voices Vanessa, Veronica, and Victor are being retired. They still appear in the Developer application list, but will be changed to play one of the other voices shortly. All voices that are removed from the platform will be aliased to other voices in the same language so that applications continue to work.

Developer Voices

Language Female Voice Male Voice
Arabic Laila Maged, Tarik
Bahasa Damayanti
Basque Miren
Bulgarian Daria
Cantonese Sin-ji
Catalan Montserrat Jordi
Czech Iveta, Zuzana
Danish Sara Magnus
Dutch Claire Xander
English (Australian) Karen Lee
English (Indian) Veena
English (Irish) Moira
English (Scottish) Fiona
English (South African) Tessa
English (UK) Kate, Serena Daniel, Oliver
English (US) Allison, Ava, Samantha, Susan, Veronica, Vanessa (Default) Tom, Victor
Finnish Satu Onni
French Audrey, Aurelie Thomas
French (Canadian) Amelie, Chantal Nicolas
Galician Carmela
German Anna Markus, Petr, Yannick
Greek Melina Nikos
Hebrew Carmit
Hindi Lekha
Hungarian Mariska
Italian Alice, Federica Luca, Paola
Japanese Kyoko Otoya
Korean Sora
Mandarin Tian-tian
Mandarin (Taiwanese) Mei-jia
Norwegian Nora Henrik
Polish Ewa, Zosia Krzysztof
Portuguese Catarina, Joana Joaquim
Portuguese (Brazilian) Luciana Felipe
Russian Katya, Milena Yuri
Slovak Laura
Spanish (Argentinean) Diego
Spanish (Castillian) Monica Jorge
Spanish (Colombian) Soledad Carlos
Spanish (Mexican) Angelica, Paulina Juan
Swedish Alva, Klara Oskar
Thai Kanya
Turkish Yelda Cem
Valencian Empar

Production Voices

Language Female Voice(s) Male Voice(s)
U.S. English Allison, Susan, Vanessa (Default), Veronica Dave, Steven, Victor
British English Elizabeth, Kate Simon
Australian English Grace Alan
Catalan Montserrat Jordi
Danish Frida Magnus
Dutch Saskia Willem
Finnish Milla Mikko
French Florence, Juliette Bernard
French (Canadian) Charlotte Olivier
Galacian Carmela (none)
German Katrin Stefan
Greek Afroditi Nikos
Italian Giulia, Paola, Silvana, Valentina Luca, Marcello, Matteo, Roberto
Mandarian Chinese Linlin, Lisheng (none)
Norwegian Vilde Henrik
Polish Zosia Krzysztof
Russian Olga Dmitri
Spanish (Castilian) Carmen, Leonor Jorge, Juan
Spanish (Argentine) (none) Diego
Spanish (Chilean) Francisca (none)
Spanish (Mexican) Soledad, Ximena, Esperanza Carlos
Portugese Amalia Eusebio
Portugese (Brazilian) Fernanda, Gabriela Felipe
Swedish Annika Sven
Valencian Empar (none)

If you need to recognize voice input as well, you probably need to define which language Tropo is listening for using the recognizer parameter, which we cover next.

Additionally, if you're looking to switch voices within a single say, you can utilize SSML in the text of the say:

"<speak>For English please press 1.<voice name='Carlos' xml:lang='es'>para el español por favor pulse 2</voice></speak>"

For more information on SSML, please review this documentation page.