@@ -5,130 +5,6 @@ if (queryString.t) {
55 location . href = location . href . split ( "?" ) [ 0 ] ;
66}
77
8- var voices = [
9- { "voice_name" : "Amazon Australian English (Nicole)" , "lang" : "en-AU" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
10- { "voice_name" : "Amazon Australian English (Russell)" , "lang" : "en-AU" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
11- { "voice_name" : "Amazon Brazilian Portuguese (Ricardo)" , "lang" : "pt-BR" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
12- { "voice_name" : "Amazon Brazilian Portuguese (Vitoria)" , "lang" : "pt-BR" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
13- { "voice_name" : "Amazon British English (Amy)" , "lang" : "en-GB" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
14- { "voice_name" : "Amazon British English (Brian)" , "lang" : "en-GB" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
15- { "voice_name" : "Amazon British English (Emma)" , "lang" : "en-GB" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
16- { "voice_name" : "Amazon Canadian French (Chantal)" , "lang" : "fr-CA" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
17- { "voice_name" : "Amazon Castilian Spanish (Conchita)" , "lang" : "es-ES" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
18- { "voice_name" : "Amazon Castilian Spanish (Enrique)" , "lang" : "es-ES" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
19- { "voice_name" : "Amazon Danish (Mads)" , "lang" : "da-DK" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
20- { "voice_name" : "Amazon Danish (Naja)" , "lang" : "da-DK" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
21- { "voice_name" : "Amazon Dutch (Lotte)" , "lang" : "nl-NL" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
22- { "voice_name" : "Amazon Dutch (Ruben)" , "lang" : "nl-NL" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
23- { "voice_name" : "Amazon French (Celine)" , "lang" : "fr-FR" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
24- { "voice_name" : "Amazon French (Mathieu)" , "lang" : "fr-FR" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
25- { "voice_name" : "Amazon German (Hans)" , "lang" : "de-DE" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
26- { "voice_name" : "Amazon German (Marlene)" , "lang" : "de-DE" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
27- { "voice_name" : "Amazon Icelandic (Dora)" , "lang" : "is-IS" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
28- { "voice_name" : "Amazon Icelandic (Karl)" , "lang" : "is-IS" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
29- { "voice_name" : "Amazon Indian English (Raveena)" , "lang" : "en-IN" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
30- { "voice_name" : "Amazon Italian (Carla)" , "lang" : "it-IT" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
31- { "voice_name" : "Amazon Italian (Giorgio)" , "lang" : "it-IT" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
32- { "voice_name" : "Amazon Norwegian (Liv)" , "lang" : "nb-NO" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
33- { "voice_name" : "Amazon Polish (Ewa)" , "lang" : "pl-PL" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
34- { "voice_name" : "Amazon Polish (Jacek)" , "lang" : "pl-PL" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
35- { "voice_name" : "Amazon Polish (Jan)" , "lang" : "pl-PL" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
36- { "voice_name" : "Amazon Polish (Maja)" , "lang" : "pl-PL" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
37- { "voice_name" : "Amazon Portuguese (Cristiano)" , "lang" : "pt-PT" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
38- { "voice_name" : "Amazon Portuguese (Ines)" , "lang" : "pt-PT" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
39- { "voice_name" : "Amazon Romanian (Carmen)" , "lang" : "ro-RO" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
40- { "voice_name" : "Amazon Russian (Maxim)" , "lang" : "ru-RU" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
41- { "voice_name" : "Amazon Russian (Tatyana)" , "lang" : "ru-RU" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
42- { "voice_name" : "Amazon Swedish (Astrid)" , "lang" : "sv-SE" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
43- { "voice_name" : "Amazon Turkish (Filiz)" , "lang" : "tr-TR" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
44- { "voice_name" : "Amazon US English (Ivy)" , "lang" : "en-US" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
45- { "voice_name" : "Amazon US English (Joey)" , "lang" : "en-US" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
46- { "voice_name" : "Amazon US English (Justin)" , "lang" : "en-US" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
47- { "voice_name" : "Amazon US English (Kendra)" , "lang" : "en-US" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
48- { "voice_name" : "Amazon US English (Kimberly)" , "lang" : "en-US" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
49- { "voice_name" : "Amazon US English (Salli)" , "lang" : "en-US" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
50- { "voice_name" : "Amazon US Spanish (Miguel)" , "lang" : "es-US" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
51- { "voice_name" : "Amazon US Spanish (Penelope)" , "lang" : "es-US" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
52- { "voice_name" : "Amazon Welsh (Gwyneth)" , "lang" : "cy-GB" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
53- { "voice_name" : "Amazon Welsh English (Geraint)" , "lang" : "en-GB-WLS" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
54-
55- { "voice_name" : "Microsoft Australian English (Catherine)" , "lang" : "en-AU" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
56- { "voice_name" : "Microsoft Australian English (James)" , "lang" : "en-AU" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
57- { "voice_name" : "Microsoft Austrian German (Michael)" , "lang" : "de-AT" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
58- { "voice_name" : "Microsoft Belgian Dutch (Bart)" , "lang" : "nl-BE" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
59- { "voice_name" : "Microsoft Brazilian Portuguese (Daniel)" , "lang" : "pt-BR" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
60- { "voice_name" : "Microsoft Brazilian Portuguese (Maria)" , "lang" : "pt-BR" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
61- { "voice_name" : "Microsoft British English (George)" , "lang" : "en-GB" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
62- { "voice_name" : "Microsoft British English (Hazel)" , "lang" : "en-GB" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
63- { "voice_name" : "Microsoft British English (Susan)" , "lang" : "en-GB" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
64- { "voice_name" : "Microsoft Bulgarian (Ivan)" , "lang" : "bg-BG" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
65- { "voice_name" : "Microsoft Canadian English (Linda)" , "lang" : "en-CA" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
66- { "voice_name" : "Microsoft Canadian English (Richard)" , "lang" : "en-CA" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
67- { "voice_name" : "Microsoft Canadian French (Caroline)" , "lang" : "fr-CA" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
68- { "voice_name" : "Microsoft Canadian French (Claude)" , "lang" : "fr-CA" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
69- { "voice_name" : "Microsoft Canadian French (Nathalie)" , "lang" : "fr-CA" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
70- { "voice_name" : "Microsoft Catalan (Herena)" , "lang" : "ca-ES" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
71- { "voice_name" : "Microsoft Chinese (Huihui)" , "lang" : "zh-CN" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
72- { "voice_name" : "Microsoft Chinese (Kangkang)" , "lang" : "zh-CN" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
73- { "voice_name" : "Microsoft Chinese (Yaoyao)" , "lang" : "zh-CN" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
74- { "voice_name" : "Microsoft ChineseHK (Danny)" , "lang" : "zh-HK" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
75- { "voice_name" : "Microsoft ChineseHK (Tracy)" , "lang" : "zh-HK" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
76- { "voice_name" : "Microsoft Croatian (Matej)" , "lang" : "hr-HR" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
77- { "voice_name" : "Microsoft Czech (Jakub)" , "lang" : "cs-CZ" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
78- { "voice_name" : "Microsoft Danish (Helle)" , "lang" : "da-DK" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
79- { "voice_name" : "Microsoft Dutch (Frank)" , "lang" : "nl-NL" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
80- { "voice_name" : "Microsoft Egyptian Arabic (Hoda)" , "lang" : "ar-EG" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
81- { "voice_name" : "Microsoft Finnish (Heidi)" , "lang" : "fi-FI" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
82- { "voice_name" : "Microsoft French (Hortense)" , "lang" : "fr-FR" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
83- { "voice_name" : "Microsoft French (Julie)" , "lang" : "fr-FR" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
84- { "voice_name" : "Microsoft French (Paul)" , "lang" : "fr-FR" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
85- { "voice_name" : "Microsoft German (Hedda)" , "lang" : "de-DE" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
86- { "voice_name" : "Microsoft German (Katja)" , "lang" : "de-DE" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
87- { "voice_name" : "Microsoft German (Stefan)" , "lang" : "de-DE" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
88- { "voice_name" : "Microsoft Greek (Stefanos)" , "lang" : "el-GR" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
89- { "voice_name" : "Microsoft Hebrew (Asaf)" , "lang" : "he-IL" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
90- { "voice_name" : "Microsoft Hindi (Hemant)" , "lang" : "hi-IN" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
91- { "voice_name" : "Microsoft Hindi (Kalpana)" , "lang" : "hi-IN" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
92- { "voice_name" : "Microsoft Hungarian (Szabolcs)" , "lang" : "hu-HU" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
93- { "voice_name" : "Microsoft Indian English (Heera)" , "lang" : "en-IN" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
94- { "voice_name" : "Microsoft Indian English (Ravi)" , "lang" : "en-IN" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
95- { "voice_name" : "Microsoft Indonesian (Andika)" , "lang" : "id-ID" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
96- { "voice_name" : "Microsoft Irish English (Sean)" , "lang" : "en-IE" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
97- { "voice_name" : "Microsoft Italian (Cosimo)" , "lang" : "it-IT" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
98- { "voice_name" : "Microsoft Italian (Elsa)" , "lang" : "it-IT" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
99- { "voice_name" : "Microsoft Japanese (Ayumi)" , "lang" : "ja-JP" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
100- { "voice_name" : "Microsoft Japanese (Haruka)" , "lang" : "ja-JP" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
101- { "voice_name" : "Microsoft Japanese (Ichiro)" , "lang" : "ja-JP" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
102- { "voice_name" : "Microsoft Japanese (Sayaka)" , "lang" : "ja-JP" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
103- { "voice_name" : "Microsoft Korean (Heami)" , "lang" : "ko-KR" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
104- { "voice_name" : "Microsoft Malay (Rizwan)" , "lang" : "ms-MY" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
105- { "voice_name" : "Microsoft Mexican Spanish (Raul)" , "lang" : "es-MX" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
106- { "voice_name" : "Microsoft Mexican Spanish (Sabina)" , "lang" : "es-MX" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
107- { "voice_name" : "Microsoft Norwegian (Jon)" , "lang" : "nb-NO" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
108- { "voice_name" : "Microsoft Polish (Adam)" , "lang" : "pl-PL" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
109- { "voice_name" : "Microsoft Polish (Paulina)" , "lang" : "pl-PL" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
110- { "voice_name" : "Microsoft Portuguese (Helia)" , "lang" : "pt-PT" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
111- { "voice_name" : "Microsoft Romanian (Andrei)" , "lang" : "ro-RO" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
112- { "voice_name" : "Microsoft Russian (Irina)" , "lang" : "ru-RU" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
113- { "voice_name" : "Microsoft Russian (Pavel)" , "lang" : "ru-RU" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
114- { "voice_name" : "Microsoft Saudi Arabic (Naayf)" , "lang" : "ar-SA" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
115- { "voice_name" : "Microsoft Slovak (Filip)" , "lang" : "sk-SK" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
116- { "voice_name" : "Microsoft Slovenian (Lado)" , "lang" : "sl-SI" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
117- { "voice_name" : "Microsoft Spanish (Helena)" , "lang" : "es-ES" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
118- { "voice_name" : "Microsoft Spanish (Laura)" , "lang" : "es-ES" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
119- { "voice_name" : "Microsoft Spanish (Pablo)" , "lang" : "es-ES" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
120- { "voice_name" : "Microsoft Swedish (Bengt)" , "lang" : "sv-SE" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
121- { "voice_name" : "Microsoft Swiss French (Guillaume)" , "lang" : "fr-CH" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
122- { "voice_name" : "Microsoft Swiss German (Karsten)" , "lang" : "de-CH" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
123- { "voice_name" : "Microsoft Tamil (Valluvar)" , "lang" : "ta-IN" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
124- { "voice_name" : "Microsoft Thai (Pattara)" , "lang" : "th-TH" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
125- { "voice_name" : "Microsoft Turkish (Tolga)" , "lang" : "tr-TR" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
126- { "voice_name" : "Microsoft US English (David)" , "lang" : "en-US" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
127- { "voice_name" : "Microsoft US English (Mark)" , "lang" : "en-US" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
128- { "voice_name" : "Microsoft US English (Zira)" , "lang" : "en-US" , "gender" : "female" , "event_types" : [ "start" , "end" , "error" ] } ,
129- { "voice_name" : "Microsoft Vietnamese (An)" , "lang" : "vi-VI" , "gender" : "male" , "event_types" : [ "start" , "end" , "error" ] } ,
130- ]
131-
1328var audio = document . createElement ( "AUDIO" ) ;
1339selectedVoice = null ;
13410
@@ -175,14 +51,21 @@ $(function() {
17551
17652
17753
178- function populateTestVoices ( elem ) {
179- voices . forEach ( function ( voice ) {
180- $ ( "<option>" )
181- . text ( voice . voice_name )
182- . val ( JSON . stringify ( voice ) )
183- . appendTo ( elem )
184- } )
185- selectedVoice = JSON . parse ( elem . value ) ;
54+ async function populateTestVoices ( elem ) {
55+ try {
56+ const res = await fetch ( config . serviceUrl + "/read-aloud/list-voices/premium" )
57+ if ( ! res . ok ) throw new Error ( "Failed to fetch voices, status " + res . status )
58+ const voices = await res . json ( )
59+ voices . forEach ( function ( voice ) {
60+ $ ( "<option>" )
61+ . text ( voice . voiceName )
62+ . val ( JSON . stringify ( voice ) )
63+ . appendTo ( elem )
64+ } )
65+ selectedVoice = JSON . parse ( elem . value ) ;
66+ } catch ( err ) {
67+ error = err
68+ }
18669}
18770
18871function createCheckoutSession ( qty ) {
@@ -223,7 +106,7 @@ function onTestVoice(elem) {
223106 $ ( elem ) . text ( "Test" ) ;
224107 }
225108 else {
226- audio . src = config . serviceUrl + "/read-aloud/speak/" + selectedVoice . lang + "/" + encodeURIComponent ( selectedVoice . voice_name ) + "?q=demo" ;
109+ audio . src = config . serviceUrl + "/read-aloud/speak/" + selectedVoice . lang + "/" + encodeURIComponent ( selectedVoice . voiceName ) + "?q=demo" ;
227110 audio . onended = onTestVoice . bind ( null , arguments ) ;
228111 audio . play ( ) ;
229112 $ ( elem ) . text ( "Stop" ) ;
0 commit comments