1// responsive voice 2if ("undefined" != typeof responsiveVoice) console.log("ResponsiveVoice already loaded"), console.log(responsiveVoice); else var ResponsiveVoice = function () { 3 var a = this; 4 a.version = "1.5.12", console.log("ResponsiveVoice r" + a.version), a.responsivevoices = [{ 5 name: "UK English Female", 6 flag: "gb", 7 gender: "f", 8 lang: "en-GB", 9 voiceIDs: [3, 7, 171, 278, 201, 5, 1, 257, 286, 342, 258, 287, 343, 8] 10 }, { 11 name: "UK English Male", 12 flag: "gb", 13 gender: "m", 14 lang: "en-GB", 15 voiceIDs: [0, 277, 202, 75, 4, 2, 256, 285, 341, 159, 6, 7] 16 }, { 17 name: "US English Female", 18 flag: "us", 19 gender: "f", 20 lang: "en-US", 21 voiceIDs: [39, 40, 41, 42, 383, 205, 204, 43, 173, 235, 283, 339, 408, 44] 22 }, { 23 name: "US English Male", 24 flag: "us", 25 gender: "m", 26 lang: "en-US", 27 voiceIDs: [234, 282, 338, 236, 284, 340, 237, 382, 2, 4, 0, 6, 7, 75, 195, 169] 28 }, { 29 name: "Arabic Male", 30 flag: "ar", 31 gender: "m", 32 lang: "ar-SA", 33 voiceIDs: [96, 95, 97, 196, 388] 34 }, {name: "Arabic Female", flag: "ar", gender: "f", lang: "ar-SA", voiceIDs: [98]}, { 35 name: "Armenian Male", 36 flag: "hy", 37 gender: "f", 38 lang: "hy-AM", 39 voiceIDs: [99] 40 }, { 41 name: "Australian Female", 42 flag: "au", 43 gender: "f", 44 lang: "en-AU", 45 voiceIDs: [276, 201, 87, 5, 88] 46 }, { 47 name: "Australian Male", 48 flag: "au", 49 gender: "m", 50 lang: "en-AU", 51 voiceIDs: [86, 381, 386] 52 }, { 53 name: "Brazilian Portuguese Female", 54 flag: "br", 55 gender: "f", 56 lang: "pt-BR", 57 voiceIDs: [245, 124, 123, 125, 186, 223, 126] 58 }, { 59 name: "Brazilian Portuguese Male", 60 flag: "br", 61 gender: "m", 62 lang: "pt-BR", 63 voiceIDs: [315, 332, 371, 399] 64 }, { 65 name: "Chinese Female", 66 flag: "cn", 67 gender: "f", 68 lang: "zh-CN", 69 voiceIDs: [249, 58, 59, 380, 281, 231, 155, 60, 191, 268, 297, 353, 269, 298, 354, 409, 61] 70 }, { 71 name: "Chinese Male", 72 flag: "cn", 73 gender: "m", 74 lang: "zh-CN", 75 voiceIDs: [317, 334, 373, 389] 76 }, { 77 name: "Chinese (Hong Kong) Female", 78 flag: "hk", 79 gender: "f", 80 lang: "zh-HK", 81 voiceIDs: [192, 193, 232, 250, 251, 270, 299, 355, 409, 252] 82 }, { 83 name: "Chinese (Hong Kong) Male", 84 flag: "hk", 85 gender: "m", 86 lang: "zh-HK", 87 voiceIDs: [318, 335, 374, 390] 88 }, { 89 name: "Chinese Taiwan Female", 90 flag: "tw", 91 gender: "f", 92 lang: "zh-TW", 93 voiceIDs: [194, 233, 253, 254, 305, 322, 361, 384, 319, 336, 375, 409, 255] 94 }, { 95 name: "Chinese Taiwan Male", 96 flag: "tw", 97 gender: "m", 98 lang: "zh-TW", 99 voiceIDs: [320, 337, 376, 391] 100 }, { 101 name: "Czech Female", 102 flag: "cz", 103 gender: "f", 104 lang: "cs-CZ", 105 voiceIDs: [101, 100, 102, 197, 103] 106 }, {name: "Czech Male", flag: "cz", gender: "m", lang: "cs-CZ", voiceIDs: [161]}, { 107 name: "Danish Female", 108 flag: "dk", 109 gender: "f", 110 lang: "da-DK", 111 voiceIDs: [105, 104, 106, 198, 107] 112 }, {name: "Danish Male", flag: "da", gender: "m", lang: "da-DK", voiceIDs: [162]}, { 113 name: "Deutsch Female", 114 flag: "de", 115 gender: "f", 116 lang: "de-DE", 117 voiceIDs: [27, 28, 29, 30, 78, 170, 275, 199, 31, 261, 290, 346, 262, 291, 347, 32] 118 }, { 119 name: "Deutsch Male", 120 flag: "de", 121 gender: "m", 122 lang: "de-DE", 123 voiceIDs: [307, 324, 363, 377, 393] 124 }, { 125 name: "Dutch Female", 126 flag: "nl", 127 gender: "f", 128 lang: "nl-NL", 129 voiceIDs: [243, 219, 84, 157, 158, 184, 45] 130 }, {name: "Dutch Male", flag: "nl", gender: "m", lang: "nl-NL", voiceIDs: [157, 220, 407]}, { 131 name: "Finnish Female", 132 flag: "fi", 133 gender: "f", 134 lang: "fi-FI", 135 voiceIDs: [90, 89, 91, 209, 92] 136 }, {name: "Finnish Male", flag: "fi", gender: "m", lang: "fi-FI", voiceIDs: [160]}, { 137 name: "French Female", 138 flag: "fr", 139 gender: "f", 140 lang: "fr-FR", 141 voiceIDs: [240, 21, 22, 23, 77, 178, 279, 210, 266, 295, 351, 304, 321, 360, 26] 142 }, {
143 name: "French Male", 144 flag: "fr", 145 gender: "m", 146 lang: "fr-FR", 147 voiceIDs: [311, 328, 367, 378, 392] 148 }, { 149 name: "Greek Female", 150 flag: "gr", 151 gender: "f", 152 lang: "el-GR", 153 voiceIDs: [62, 63, 80, 200, 64] 154 }, {name: "Greek Male", flag: "gr", gender: "m", lang: "el-GR", voiceIDs: [163]}, { 155 name: "Hindi Female", 156 flag: "hi", 157 gender: "f", 158 lang: "hi-IN", 159 voiceIDs: [247, 66, 154, 179, 213, 259, 288, 344, 67] 160 }, {name: "Hindi Male", flag: "hi", gender: "m", lang: "hi-IN", voiceIDs: [394]}, { 161 name: "Hungarian Female", 162 flag: "hu", 163 gender: "f", 164 lang: "hu-HU", 165 voiceIDs: [9, 10, 81, 214, 11] 166 }, {name: "Hungarian Male", flag: "hu", gender: "m", lang: "hu-HU", voiceIDs: [164]}, { 167 name: "Indonesian Female", 168 flag: "id", 169 gender: "f", 170 lang: "id-ID", 171 voiceIDs: [241, 111, 112, 180, 215, 113] 172 }, {name: "Indonesian Male", flag: "id", gender: "m", lang: "id-ID", voiceIDs: [395]}, { 173 name: "Italian Female", 174 flag: "it", 175 gender: "f", 176 lang: "it-IT", 177 voiceIDs: [242, 33, 34, 35, 36, 37, 79, 181, 216, 271, 300, 356, 38] 178 }, { 179 name: "Italian Male", 180 flag: "it", 181 gender: "m", 182 lang: "it-IT", 183 voiceIDs: [312, 329, 368, 406] 184 }, { 185 name: "Japanese Female", 186 flag: "jp", 187 gender: "f", 188 lang: "ja-JP", 189 voiceIDs: [248, 50, 51, 280, 217, 52, 153, 182, 273, 302, 358, 274, 303, 359, 53] 190 }, { 191 name: "Japanese Male", 192 flag: "jp", 193 gender: "m", 194 lang: "ja-JP", 195 voiceIDs: [313, 330, 369, 379, 396] 196 }, { 197 name: "Korean Female", 198 flag: "kr", 199 gender: "f", 200 lang: "ko-KR", 201 voiceIDs: [54, 55, 56, 156, 183, 218, 306, 323, 362, 384, 57] 202 }, {name: "Korean Male", flag: "kr", gender: "m", lang: "ko-KR", voiceIDs: [397]}, { 203 name: "Latin Female", 204 flag: "va", 205 gender: "f", 206 lang: "la", 207 voiceIDs: [114], 208 deprecated: !0 209 }, {name: "Latin Male", flag: "va", gender: "m", lang: "la", voiceIDs: [165]}, { 210 name: "Norwegian Female", 211 flag: "no", 212 gender: "f", 213 lang: "nb-NO", 214 voiceIDs: [72, 73, 221, 74] 215 }, {name: "Norwegian Male", flag: "no", gender: "m", lang: "nb-NO", voiceIDs: [166]}, { 216 name: "Polish Female", 217 flag: "pl", 218 gender: "f", 219 lang: "pl-PL", 220 voiceIDs: [244, 120, 119, 121, 185, 222, 267, 296, 352, 122] 221 }, { 222 name: "Polish Male", 223 flag: "pl", 224 gender: "m", 225 lang: "pl-PL", 226 voiceIDs: [314, 331, 370, 398] 227 }, { 228 name: "Portuguese Female", 229 flag: "br", 230 gender: "f", 231 lang: "pt-BR", 232 voiceIDs: [128, 127, 129, 187, 224, 272, 301, 357, 130] 233 }, {name: "Portuguese Male", flag: "br", gender: "m", lang: "pt-BR", voiceIDs: [400]}, { 234 name: "Romanian Female", 235 flag: "ro", 236 gender: "f", 237 lang: "ro-RO", 238 voiceIDs: [151, 150, 152, 225, 46] 239 }, { 240 name: "Russian Female", 241 flag: "ru", 242 gender: "f", 243 lang: "ru-RU", 244 voiceIDs: [246, 47, 48, 83, 188, 226, 260, 289, 345, 49] 245 }, { 246 name: "Russian Male", 247 flag: "ru", 248 gender: "m", 249 lang: "ru-RU", 250 voiceIDs: [316, 333, 372, 387] 251 }, { 252 name: "Slovak Female", 253 flag: "sk", 254 gender: "f", 255 lang: "sk-SK", 256 voiceIDs: [133, 132, 134, 227, 135] 257 }, { 258 name: "Slovak Male", 259 flag: "sk", 260 gender: "m", 261 lang: "sk-SK", 262 voiceIDs: [167], 263 deprecated: !0 264 }, { 265 name: "Spanish Female", 266 flag: "es", 267 gender: "f", 268 lang: "es-ES", 269 voiceIDs: [19, 238, 16, 17, 18, 20, 76, 174, 207, 263, 292, 348, 264, 293, 349, 15] 270 }, { 271 name: "Spanish Male", 272 flag: "es", 273 gender: "m", 274 lang: "es-ES", 275 voiceIDs: [309, 326, 365, 401] 276 }, {
277 name: "Spanish Latin American Female", 278 flag: "es", 279 gender: "f", 280 lang: "es-MX", 281 voiceIDs: [239, 137, 136, 138, 175, 208, 265, 294, 350, 139] 282 }, { 283 name: "Spanish Latin American Male", 284 flag: "es", 285 gender: "m", 286 lang: "es-MX", 287 voiceIDs: [136, 310, 327, 366, 402] 288 }, { 289 name: "Swedish Female", 290 flag: "sv", 291 gender: "f", 292 lang: "sv-SE", 293 voiceIDs: [85, 149, 228, 65] 294 }, {name: "Swedish Male", flag: "sv", gender: "m", lang: "sv-SE", voiceIDs: [148, 168]}, { 295 name: "Tamil Male", 296 flag: "hi", 297 gender: "m", 298 lang: "hi-IN", 299 voiceIDs: [141] 300 }, { 301 name: "Thai Female", 302 flag: "th", 303 gender: "f", 304 lang: "th-TH", 305 voiceIDs: [143, 142, 144, 189, 229, 145] 306 }, {name: "Thai Male", flag: "th", gender: "m", lang: "th-TH", voiceIDs: [403]}, { 307 name: "Turkish Female", 308 flag: "tr", 309 gender: "f", 310 lang: "tr-TR", 311 voiceIDs: [69, 70, 82, 190, 230, 71] 312 }, {name: "Turkish Male", flag: "tr", gender: "m", lang: "tr-TR", voiceIDs: [404]}, { 313 name: "Vietnamese Female", 314 flag: "vi", 315 gender: "f", 316 lang: "vi-VN", 317 voiceIDs: [405] 318 }, {name: "Vietnamese Male", flag: "vi", gender: "m", lang: "vi-VN", voiceIDs: [146]}, { 319 name: "Afrikaans Male", 320 flag: "af", 321 gender: "m", 322 lang: "af-ZA", 323 voiceIDs: [93] 324 }, {name: "Albanian Male", flag: "sq", gender: "m", lang: "sq-AL", voiceIDs: [94]}, { 325 name: "Bosnian Male", 326 flag: "bs", 327 gender: "m", 328 lang: "bs", 329 voiceIDs: [14] 330 }, {name: "Catalan Male", flag: "catalonia", gender: "m", lang: "ca-ES", voiceIDs: [68]}, { 331 name: "Croatian Male", 332 flag: "hr", 333 gender: "m", 334 lang: "hr-HR", 335 voiceIDs: [13] 336 }, {name: "Esperanto Male", flag: "eo", gender: "m", lang: "eo", voiceIDs: [108]}, { 337 name: "Icelandic Male", 338 flag: "is", 339 gender: "m", 340 lang: "is-IS", 341 voiceIDs: [110] 342 }, {name: "Latvian Male", flag: "lv", gender: "m", lang: "lv-LV", voiceIDs: [115]}, { 343 name: "Macedonian Male", 344 flag: "mk", 345 gender: "m", 346 lang: "mk-MK", 347 voiceIDs: [116] 348 }, {name: "Moldavian Female", flag: "md", gender: "f", lang: "md", voiceIDs: [117]}, { 349 name: "Moldavian Male", 350 flag: "md", 351 gender: "m", 352 lang: "md", 353 voiceIDs: [117], 354 deprecated: !0 355 }, {name: "Montenegrin Male", flag: "me", gender: "m", lang: "me", voiceIDs: [118]}, { 356 name: "Serbian Male", 357 flag: "sr", 358 gender: "m", 359 lang: "sr-RS", 360 voiceIDs: [12] 361 }, {name: "Serbo-Croatian Male", flag: "hr", gender: "m", lang: "hr-HR", voiceIDs: [131]}, { 362 name: "Swahili Male", 363 flag: "sw", 364 gender: "m", 365 lang: "sw-KE", 366 voiceIDs: [140] 367 }, {name: "Welsh Male", flag: "cy", gender: "m", lang: "cy", voiceIDs: [147]}, { 368 name: "Fallback UK Female", 369 flag: "gb", 370 gender: "f", 371 lang: "en-GB", 372 voiceIDs: [8] 373 }], a.voicecollection = [{name: "Google UK English Male"}, {name: "Agnes"}, {name: "Daniel Compact"}, {name: "Google UK English Female"}, { 374 name: "en-GB", 375 rate: .25, 376 pitch: 1 377 }, { 378 name: "en-AU", 379 rate: .25, 380 pitch: 1 381 }, {name: "ingl\xE9s Reino Unido"}, {name: "English United Kingdom"}, { 382 name: "Fallback en-GB Female", 383 lang: "en-GB", 384 fallbackvoice: !0, 385 service: "g1", 386 gender: "female" 387 }, {name: "Eszter Compact"}, {name: "hu-HU", rate: .4}, { 388 name: "Fallback Hungarian Female", 389 lang: "hu", 390 fallbackvoice: !0, 391 service: "g1" 392 }, { 393 name: "Fallback Serbian Male", 394 lang: "sr", 395 fallbackvoice: !0, 396 service: "g1", 397 gender: "male" 398 }, {
399 name: "Fallback Croatian Male", 400 lang: "hr", 401 fallbackvoice: !0, 402 service: "g1", 403 gender: "male" 404 }, { 405 name: "Fallback Bosnian Male", 406 lang: "bs", 407 fallbackvoice: !0, 408 service: "g1", 409 gender: "male" 410 }, { 411 name: "Fallback Spanish Female", 412 lang: "es", 413 fallbackvoice: !0, 414 service: "g1", 415 gender: "female" 416 }, {name: "Spanish Spain"}, {name: "espa\xF1ol Espa\xF1a"}, { 417 name: "Diego Compact", 418 rate: .3 419 }, {name: "Google Espa\xF1ol"}, { 420 name: "es-ES", 421 rate: .2 422 }, {name: "Google Fran\xE7ais"}, {name: "French France"}, {name: "franc\xE9s Francia"}, { 423 name: "Virginie Compact", 424 rate: .5 425 }, {name: "fr-FR", rate: .25}, { 426 name: "Fallback French Female", 427 lang: "fr", 428 fallbackvoice: !0, 429 service: "g1", 430 gender: "female" 431 }, {name: "Google Deutsch"}, {name: "German Germany"}, {name: "alem\xE1n Alemania"}, { 432 name: "Yannick Compact", 433 rate: .5 434 }, {name: "de-DE", rate: .25}, { 435 name: "Fallback Deutsch Female", 436 lang: "de", 437 fallbackvoice: !0, 438 service: "g1", 439 gender: "female" 440 }, {name: "Google Italiano"}, {name: "Italian Italy"}, {name: "italiano Italia"}, { 441 name: "Paolo Compact", 442 rate: .5 443 }, {name: "it-IT", rate: .25}, { 444 name: "Fallback Italian Female", 445 lang: "it", 446 fallbackvoice: !0, 447 service: "g1", 448 gender: "female" 449 }, {
450 name: "Google US English", 451 timerSpeed: 1 452 }, {name: "English United States"}, {name: "ingl\xE9s Estados Unidos"}, {name: "Vicki"}, { 453 name: "en-US", 454 rate: .2, 455 pitch: 1, 456 timerSpeed: 1.3 457 }, { 458 name: "Fallback US English", 459 lang: "en-US", 460 fallbackvoice: !0, 461 timerSpeed: 0, 462 service: "g1", 463 gender: "female" 464 }, { 465 name: "Fallback Dutch Female", 466 lang: "nl", 467 fallbackvoice: !0, 468 timerSpeed: 0, 469 service: "g1", 470 gender: "female" 471 }, { 472 name: "Fallback Romanian", 473 lang: "ro", 474 fallbackvoice: !0, 475 service: "g1", 476 gender: "female" 477 }, {name: "Milena Compact"}, {name: "ru-RU", rate: .25}, { 478 name: "Fallback Russian", 479 lang: "ru", 480 fallbackvoice: !0, 481 service: "g1", 482 gender: "female" 483 }, {name: "Google \u65E5\u672C\u4EBA", timerSpeed: 1}, {name: "Kyoko Compact"}, { 484 name: "ja-JP", 485 rate: .25 486 }, { 487 name: "Fallback Japanese Female", 488 lang: "ja", 489 fallbackvoice: !0, 490 service: "g1", 491 gender: "female" 492 }, {name: "Google \uD55C\uAD6D\uC758", timerSpeed: 1}, {name: "Narae Compact"}, { 493 name: "ko-KR", 494 rate: .25 495 }, { 496 name: "Fallback Korean Female", 497 lang: "ko", 498 fallbackvoice: !0, 499 service: "g1", 500 gender: "female" 501 }, {name: "Google \u4E2D\u56FD\u7684", timerSpeed: 1}, {name: "Ting-Ting Compact"}, { 502 name: "zh-CN", 503 rate: .25 504 }, { 505 name: "Fallback Chinese", 506 lang: "zh-CN", 507 fallbackvoice: !0, 508 service: "g1", 509 gender: "female" 510 }, {name: "Alexandros Compact"}, {name: "el-GR", rate: .25}, { 511 name: "Fallback Greek", 512 lang: "el", 513 fallbackvoice: !0, 514 service: "g2", 515 gender: "female" 516 }, {name: "Fallback Swedish", lang: "sv", fallbackvoice: !0, service: "g2", gender: "female"}, { 517 name: "hi-IN", 518 rate: .25 519 }, { 520 name: "Fallback Hindi Female", 521 lang: "hi", 522 fallbackvoice: !0, 523 service: "g1", 524 gender: "female" 525 }, {
526 name: "Fallback Catalan", 527 lang: "ca", 528 fallbackvoice: !0, 529 service: "g1", 530 gender: "male" 531 }, {name: "Aylin Compact"}, {name: "tr-TR", rate: .25}, { 532 name: "Fallback Turkish", 533 lang: "tr", 534 fallbackvoice: !0, 535 service: "g1", 536 gender: "female" 537 }, {name: "Stine Compact"}, {name: "no-NO", rate: .25}, { 538 name: "Fallback Norwegian", 539 lang: "no", 540 fallbackvoice: !0, 541 service: "g1", 542 gender: "female" 543 }, {name: "Daniel"}, {name: "Monica"}, {name: "Amelie"}, {name: "Anna"}, {name: "Alice"}, {name: "Melina"}, {name: "Mariska"}, {name: "Yelda"}, {name: "Milena"}, {name: "Xander"}, {name: "Alva"}, {name: "Lee Compact"}, {name: "Karen"}, { 544 name: "Fallback Australian Female", 545 lang: "en-AU", 546 fallbackvoice: !0, 547 service: "g1", 548 gender: "female" 549 }, {name: "Mikko Compact"}, {name: "Satu"}, {name: "fi-FI", rate: .25}, { 550 name: "Fallback Finnish", 551 lang: "fi", 552 fallbackvoice: !0, 553 service: "g1", 554 gender: "female" 555 }, {
556 name: "Fallback Afrikans", 557 lang: "af", 558 fallbackvoice: !0, 559 service: "g1", 560 gender: "male" 561 }, { 562 name: "Fallback Albanian", 563 lang: "sq", 564 fallbackvoice: !0, 565 service: "g1", 566 gender: "male" 567 }, {name: "Maged Compact"}, {name: "Tarik"}, {name: "ar-SA", rate: .25}, { 568 name: "Fallback Arabic", 569 lang: "ar", 570 fallbackvoice: !0, 571 service: "g1", 572 gender: "female" 573 }, { 574 name: "Fallback Armenian", 575 lang: "hy", 576 fallbackvoice: !0, 577 service: "g1", 578 gender: "male" 579 }, {name: "Zuzana Compact"}, {name: "Zuzana"}, {name: "cs-CZ", rate: .25}, { 580 name: "Fallback Czech", 581 lang: "cs", 582 fallbackvoice: !0, 583 service: "g1", 584 gender: "female" 585 }, {name: "Ida Compact"}, {name: "Sara"}, {name: "da-DK", rate: .25}, { 586 name: "Fallback Danish", 587 lang: "da", 588 fallbackvoice: !0, 589 service: "g1", 590 gender: "female" 591 }, { 592 name: "Fallback Esperanto", 593 lang: "eo", 594 fallbackvoice: !0, 595 service: "g1", 596 gender: "male" 597 }, {name: "Fallback Haitian Creole", lang: "ht", fallbackvoice: !0}, { 598 name: "Fallback Icelandic", 599 lang: "is", 600 fallbackvoice: !0, 601 service: "g1", 602 gender: "male" 603 }, {name: "Damayanti"}, {name: "id-ID", rate: .25}, { 604 name: "Fallback Indonesian Female", 605 lang: "id", 606 fallbackvoice: !0, 607 service: "g1", 608 gender: "female" 609 }, {
610 name: "Fallback Latin Female", 611 lang: "la", 612 fallbackvoice: !0, 613 service: "g2", 614 gender: "female" 615 }, { 616 name: "Fallback Latvian Male", 617 lang: "lv", 618 fallbackvoice: !0, 619 service: "g1", 620 gender: "male" 621 }, { 622 name: "Fallback Macedonian Male", 623 lang: "mk", 624 fallbackvoice: !0, 625 service: "g1", 626 gender: "male" 627 }, { 628 name: "Fallback Moldavian Female", 629 lang: "mo", 630 fallbackvoice: !0, 631 service: "g2", 632 gender: "female" 633 }, { 634 name: "Fallback Montenegrin Male", 635 lang: "sr-ME", 636 fallbackvoice: !0, 637 service: "g1", 638 gender: "male" 639 }, {name: "Agata Compact"}, {name: "Zosia"}, {name: "pl-PL", rate: .25}, { 640 name: "Fallback Polish Female", 641 lang: "pl", 642 fallbackvoice: !0, 643 service: "g1", 644 gender: "female" 645 }, {name: "Raquel Compact"}, {name: "Luciana"}, { 646 name: "pt-BR", 647 rate: .25 648 }, { 649 name: "Fallback Brazilian Portuguese Female", 650 lang: "pt-BR", 651 fallbackvoice: !0, 652 service: "g1", 653 gender: "female" 654 }, {name: "Joana Compact"}, {name: "Joana"}, {name: "pt-PT", rate: .25}, { 655 name: "Fallback Portuguese", 656 lang: "pt-PT", 657 fallbackvoice: !0, 658 service: "g1", 659 gender: "female" 660 }, {
661 name: "Fallback Serbo-Croation", 662 lang: "sh", 663 fallbackvoice: !0, 664 service: "g1", 665 gender: "male" 666 }, {name: "Laura Compact"}, {name: "Laura"}, {name: "sk-SK", rate: .25}, { 667 name: "Fallback Slovak", 668 lang: "sk", 669 fallbackvoice: !0, 670 service: "g1", 671 gender: "female" 672 }, {name: "Javier Compact"}, {name: "Paulina"}, { 673 name: "es-MX", 674 rate: .25 675 }, { 676 name: "Fallback Spanish (Latin American) Female", 677 lang: "es-419", 678 fallbackvoice: !0, 679 service: "g1", 680 gender: "female" 681 }, { 682 name: "Fallback Swahili", 683 lang: "sw", 684 fallbackvoice: !0, 685 service: "g1", 686 gender: "male" 687 }, { 688 name: "Fallback Tamil", 689 lang: "ta", 690 fallbackvoice: !0, 691 service: "g1", 692 gender: "male" 693 }, {name: "Narisa Compact"}, {name: "Kanya"}, {name: "th-TH", rate: .25}, { 694 name: "Fallback Thai Female", 695 lang: "th", 696 fallbackvoice: !0, 697 service: "g1", 698 gender: "female" 699 }, {
700 name: "Fallback Vietnamese Male", 701 lang: "vi", 702 fallbackvoice: !0, 703 service: "g1", 704 gender: "male" 705 }, { 706 name: "Fallback Welsh", 707 lang: "cy", 708 fallbackvoice: !0, 709 service: "g1", 710 gender: "male" 711 }, {name: "Oskar Compact"}, {name: "sv-SE", rate: .25}, {name: "Simona Compact"}, {name: "Ioana"}, { 712 name: "ro-RO", 713 rate: .25 714 }, {name: "Kyoko"}, {name: "Lekha"}, {name: "Ting-Ting"}, {name: "Yuna"}, {name: "Xander Compact"}, { 715 name: "nl-NL", 716 rate: .25 717 }, { 718 name: "Fallback UK English Male", 719 lang: "en-GB", 720 fallbackvoice: !0, 721 service: "g1", 722 voicename: "rjs", 723 gender: "male" 724 }, { 725 name: "Finnish Male", 726 lang: "fi", 727 fallbackvoice: !0, 728 service: "g1", 729 voicename: "", 730 gender: "male" 731 }, { 732 name: "Czech Male", 733 lang: "cs", 734 fallbackvoice: !0, 735 service: "g1", 736 voicename: "", 737 gender: "male" 738 }, {
739 name: "Danish Male", 740 lang: "da", 741 fallbackvoice: !0, 742 service: "g1", 743 voicename: "", 744 gender: "male" 745 }, { 746 name: "Greek Male", 747 lang: "el", 748 fallbackvoice: !0, 749 service: "g1", 750 voicename: "", 751 gender: "male" 752 }, { 753 name: "Hungarian Male", 754 lang: "hu", 755 fallbackvoice: !0, 756 service: "g1", 757 voicename: "", 758 gender: "male" 759 }, { 760 name: "Latin Male", 761 lang: "la", 762 fallbackvoice: !0, 763 service: "g2", 764 voicename: "", 765 gender: "male" 766 }, { 767 name: "Norwegian Male", 768 lang: "no", 769 fallbackvoice: !0, 770 service: "g1", 771 voicename: "", 772 gender: "male" 773 }, { 774 name: "Slovak Male", 775 lang: "sk", 776 fallbackvoice: !0, 777 service: "g1", 778 voicename: "", 779 gender: "male" 780 }, { 781 name: "Swedish Male", 782 lang: "sv", 783 fallbackvoice: !0, 784 service: "g1", 785 voicename: "", 786 gender: "male" 787 }, {
788 name: "Fallback US English Male", 789 lang: "en-US", 790 fallbackvoice: !0, 791 service: "g1", 792 voicename: "", 793 gender: "male" 794 }, {name: "German Germany", lang: "de_DE"}, {name: "English United Kingdom", lang: "en_GB"}, { 795 name: "English India", 796 lang: "en_IN" 797 }, {name: "English United States", lang: "en_US"}, {name: "Spanish Spain", lang: "es_ES"}, { 798 name: "Spanish Mexico", 799 lang: "es_MX" 800 }, {name: "Spanish United States", lang: "es_US"}, {name: "French Belgium", lang: "fr_BE"}, { 801 name: "French France", 802 lang: "fr_FR" 803 }, {name: "Hindi India", lang: "hi_IN"}, {name: "Indonesian Indonesia", lang: "in_ID"}, { 804 name: "Italian Italy", 805 lang: "it_IT" 806 }, {name: "Japanese Japan", lang: "ja_JP"}, {name: "Korean South Korea", lang: "ko_KR"}, { 807 name: "Dutch Netherlands", 808 lang: "nl_NL" 809 }, {name: "Polish Poland", lang: "pl_PL"}, {name: "Portuguese Brazil", lang: "pt_BR"}, { 810 name: "Portuguese Portugal", 811 lang: "pt_PT" 812 }, {name: "Russian Russia", lang: "ru_RU"}, {name: "Thai Thailand", lang: "th_TH"}, { 813 name: "Turkish Turkey", 814 lang: "tr_TR" 815 }, {name: "Chinese China", lang: "zh_CN_#Hans"}, { 816 name: "Chinese Hong Kong", 817 lang: "zh_HK_#Hans" 818 }, {name: "Chinese Hong Kong", lang: "zh_HK_#Hant"}, { 819 name: "Chinese Taiwan", 820 lang: "zh_TW_#Hant" 821 }, {name: "Alex"}, {name: "Maged", lang: "ar-SA"}, {name: "Zuzana", lang: "cs-CZ"}, { 822 name: "Sara", 823 lang: "da-DK" 824 }, {name: "Anna", lang: "de-DE"}, {name: "Melina", lang: "el-GR"}, {name: "Karen", lang: "en-AU"}, { 825 name: "Daniel", 826 lang: "en-GB" 827 }, {name: "Moira", lang: "en-IE"}, {name: "Samantha (Enhanced)", lang: "en-US"}, { 828 name: "Samantha", 829 lang: "en-US" 830 }, {name: "Tessa", lang: "en-ZA"}, {name: "Monica", lang: "es-ES"}, {name: "Paulina", lang: "es-MX"}, { 831 name: "Satu", 832 lang: "fi-FI" 833 }, {name: "Amelie", lang: "fr-CA"}, {name: "Thomas", lang: "fr-FR"}, { 834 name: "Carmit", 835 lang: "he-IL" 836 }, {name: "Lekha", lang: "hi-IN"}, {name: "Mariska", lang: "hu-HU"}, { 837 name: "Damayanti", 838 lang: "id-ID" 839 }, {name: "Alice", lang: "it-IT"}, {name: "Kyoko", lang: "ja-JP"}, {name: "Yuna", lang: "ko-KR"}, { 840 name: "Ellen", 841 lang: "nl-BE" 842 }, {name: "Xander", lang: "nl-NL"}, {name: "Nora", lang: "no-NO"}, {name: "Zosia", lang: "pl-PL"}, { 843 name: "Luciana", 844 lang: "pt-BR" 845 }, {name: "Joana", lang: "pt-PT"}, {name: "Ioana", lang: "ro-RO"}, {name: "Milena", lang: "ru-RU"}, { 846 name: "Laura", 847 lang: "sk-SK" 848 }, {name: "Alva", lang: "sv-SE"}, {name: "Kanya", lang: "th-TH"}, { 849 name: "Yelda", 850 lang: "tr-TR" 851 }, {name: "Ting-Ting", lang: "zh-CN"}, {name: "Sin-Ji", lang: "zh-HK"}, { 852 name: "Mei-Jia", 853 lang: "zh-TW" 854 }, { 855 name: "Microsoft David Mobile - English (United States)", 856 lang: "en-US" 857 }, { 858 name: "Microsoft Zira Mobile - English (United States)", 859 lang: "en-US" 860 }, {name: "Microsoft Mark Mobile - English (United States)", lang: "en-US"}, { 861 name: "native", 862 lang: "" 863 }, {name: "Google espa\xF1ol"}, {name: "Google espa\xF1ol de Estados Unidos"}, {name: "Google fran\xE7ais"}, {name: "Google Bahasa Indonesia"}, {name: "Google italiano"}, {name: "Google Nederlands"}, {name: "Google polski"}, {name: "Google portugu\xEAs do Brasil"}, {name: "Google \u0440\u0443\u0441\u0441\u043A\u0438\u0439"}, {name: "Google \u0939\u093F\u0928\u094D\u0926\u0940"}, {name: "Google \u65E5\u672C\u8A9E"}, {name: "Google \u666E\u901A\u8BDD\uFF08\u4E2D\u56FD\u5927\u9646\uFF09"}, {name: "Google \u7CA4\u8A9E\uFF08\u9999\u6E2F\uFF09"}, { 864 name: "zh-HK", 865 rate: .25 866 }, { 867 name: "Fallback Chinese (Hong Kong) Female", 868 lang: "zh-HK", 869 fallbackvoice: !0, 870 service: "g1", 871 gender: "female" 872 }, {name: "Google \u7CA4\u8A9E\uFF08\u9999\u6E2F\uFF09"}, { 873 name: "zh-TW", 874 rate: .25 875 }, {
876 name: "Fallback Chinese (Taiwan) Female", 877 lang: "zh-TW", 878 fallbackvoice: !0, 879 service: "g1", 880 gender: "female" 881 }, { 882 name: "Microsoft George Mobile - English (United Kingdom)", 883 lang: "en-GB" 884 }, { 885 name: "Microsoft Susan Mobile - English (United Kingdom)", 886 lang: "en-GB" 887 }, { 888 name: "Microsoft Hazel Mobile - English (United Kingdom)", 889 lang: "en-GB" 890 }, { 891 name: "Microsoft Heera Mobile - English (India)", 892 lang: "en-In" 893 }, { 894 name: "Microsoft Irina Mobile - Russian (Russia)", 895 lang: "ru-RU" 896 }, { 897 name: "Microsoft Hedda Mobile - German (Germany)", 898 lang: "de-DE" 899 }, { 900 name: "Microsoft Katja Mobile - German (Germany)", 901 lang: "de-DE" 902 }, { 903 name: "Microsoft Helena Mobile - Spanish (Spain)", 904 lang: "es-ES" 905 }, { 906 name: "Microsoft Laura Mobile - Spanish (Spain)", 907 lang: "es-ES" 908 }, { 909 name: "Microsoft Sabina Mobile - Spanish (Mexico)", 910 lang: "es-MX" 911 }, { 912 name: "Microsoft Julie Mobile - French (France)", 913 lang: "fr-FR" 914 }, { 915 name: "Microsoft Paulina Mobile - Polish (Poland)", 916 lang: "pl-PL" 917 }, { 918 name: "Microsoft Huihui Mobile - Chinese (Simplified, PRC)", 919 lang: "zh-CN" 920 }, { 921 name: "Microsoft Yaoyao Mobile - Chinese (Simplified, PRC)", 922 lang: "zh-CN" 923 }, { 924 name: "Microsoft Tracy Mobile - Chinese (Traditional, Hong Kong S.A.R.)", 925 lang: "zh-CN" 926 }, { 927 name: "Microsoft Elsa Mobile - Italian (Italy)", 928 lang: "it-IT" 929 }, { 930 name: "Microsoft Maria Mobile - Portuguese (Brazil)", 931 lang: "pt-BR" 932 }, { 933 name: "Microsoft Ayumi Mobile - Japanese (Japan)", 934 lang: "ja-JP" 935 }, {name: "Microsoft Haruka Mobile - Japanese (Japan)", lang: "ja-JP"}, { 936 name: "Helena", 937 lang: "de-DE" 938 }, {name: "Catherine", lang: "en-AU"}, {name: "Arthur", lang: "en-GB"}, { 939 name: "Martha", 940 lang: "en-GB" 941 }, {name: "Marie", lang: "fr-FR"}, {name: "O-ren", lang: "ja-JP"}, { 942 name: "Yu-shu", 943 lang: "zh-CN" 944 }, { 945 name: "Microsoft David - English (United States)", 946 lang: "en-US" 947 }, { 948 name: "Microsoft Zira - English (United States)", 949 lang: "en-US" 950 }, { 951 name: "Microsoft Mark - English (United States)", 952 lang: "en-US" 953 }, { 954 name: "Microsoft George - English (United Kingdom)", 955 lang: "en-GB" 956 }, { 957 name: "Microsoft Susan - English (United Kingdom)", 958 lang: "en-GB" 959 }, {name: "Microsoft Hazel - English (United Kingdom)", lang: "en-GB"}, { 960 name: "Microsoft Heera - English (India)", 961 lang: "en-In" 962 }, {name: "Microsoft Irina - Russian (Russia)", lang: "ru-RU"}, { 963 name: "Microsoft Hedda - German (Germany)", 964 lang: "de-DE" 965 }, {name: "Microsoft Katja - German (Germany)", lang: "de-DE"}, { 966 name: "Microsoft Helena - Spanish (Spain)", 967 lang: "es-ES" 968 }, {name: "Microsoft Laura - Spanish (Spain)", lang: "es-ES"}, { 969 name: "Microsoft Sabina - Spanish (Mexico)", 970 lang: "es-MX" 971 }, {name: "Microsoft Julie - French (France)", lang: "fr-FR"}, { 972 name: "Microsoft Paulina - Polish (Poland)", 973 lang: "pl-PL" 974 }, { 975 name: "Microsoft Huihui - Chinese (Simplified, PRC)", 976 lang: "zh-CN" 977 }, { 978 name: "Microsoft Yaoyao - Chinese (Simplified, PRC)", 979 lang: "zh-CN" 980 }, { 981 name: "Microsoft Tracy - Chinese (Traditional, Hong Kong S.A.R.)", 982 lang: "zh-CN" 983 }, {name: "Microsoft Elsa - Italian (Italy)", lang: "it-IT"}, { 984 name: "Microsoft Maria - Portuguese (Brazil)", 985 lang: "pt-BR" 986 }, {name: "Microsoft Ayumi - Japanese (Japan)", lang: "ja-JP"}, { 987 name: "Microsoft Haruka - Japanese (Japan)", 988 lang: "ja-JP" 989 }, { 990 name: "Microsoft Hortense - French (France)", 991 lang: "fr-FR" 992 }, { 993 name: "Microsoft Hanhan - Chinese (Traditional, Taiwan)", 994 lang: "zh-TW" 995 }, {name: "Microsoft Heami - Korean (Korean)", lang: "ko-KR"}, { 996 name: "Microsoft Stefan - German (Germany)", 997 lang: "de-DE" 998 }, {name: "Microsoft Ravi - English (India)", lang: "en-IN"}, {
999 name: "Microsoft Pablo - Spanish (Spain)", 1000 lang: "es-ES" 1001 }, {name: "Microsoft Raul - Spanish (Mexico)", lang: "es-MX"}, { 1002 name: "Microsoft Paul - French (France)", 1003 lang: "fr-FR" 1004 }, {name: "Microsoft Cosimo - Italian (Italy)", lang: "it-IT"}, { 1005 name: "Microsoft Ichiro - Japanese (Japan)", 1006 lang: "ja-JP" 1007 }, {name: "Microsoft Adam - Polish (Poland)", lang: "pl-PL"}, { 1008 name: "Microsoft Daniel - Portuguese (Brazil)", 1009 lang: "pt-BR" 1010 }, { 1011 name: "Microsoft Pavel - Russian (Russia)", 1012 lang: "ru-RU" 1013 }, { 1014 name: "Microsoft Kangkang - Chinese (Simplified, PRC)", 1015 lang: "zh-CN" 1016 }, { 1017 name: "Microsoft Danny - Chinese (Traditional, Hong Kong S.A.R.)", 1018 lang: "zh-HK" 1019 }, { 1020 name: "Microsoft Yating - Chinese (Traditional, Taiwan)", 1021 lang: "zh-TW" 1022 }, { 1023 name: "Microsoft Zhiwei - Chinese (Traditional, Taiwan)", 1024 lang: "zh-TW" 1025 }, { 1026 name: "Microsoft Hortense Mobile - French (France)", 1027 lang: "fr-FR" 1028 }, { 1029 name: "Microsoft Hanhan Mobile - Chinese (Traditional, Taiwan)", 1030 lang: "zh-TW" 1031 }, { 1032 name: "Microsoft Heami Mobile - Korean (Korean)", 1033 lang: "ko-KR" 1034 }, { 1035 name: "Microsoft Stefan Mobile - German (Germany)", 1036 lang: "de-DE" 1037 }, { 1038 name: "Microsoft Ravi Mobile - English (India)", 1039 lang: "en-IN" 1040 }, { 1041 name: "Microsoft Pablo Mobile - Spanish (Spain)", 1042 lang: "es-ES" 1043 }, { 1044 name: "Microsoft Raul Mobile - Spanish (Mexico)", 1045 lang: "es-MX" 1046 }, { 1047 name: "Microsoft Paul Mobile - French (France)", 1048 lang: "fr-FR" 1049 }, { 1050 name: "Microsoft Cosimo Mobile - Italian (Italy)", 1051 lang: "it-IT" 1052 }, { 1053 name: "Microsoft Ichiro Mobile - Japanese (Japan)", 1054 lang: "ja-JP" 1055 }, { 1056 name: "Microsoft Adam Mobile - Polish (Poland)", 1057 lang: "pl-PL" 1058 }, { 1059 name: "Microsoft Daniel Mobile - Portuguese (Brazil)", 1060 lang: "pt-BR" 1061 }, { 1062 name: "Microsoft Pavel Mobile - Russian (Russia)", 1063 lang: "ru-RU" 1064 }, { 1065 name: "Microsoft Kangkang Mobile - Chinese (Simplified, PRC)", 1066 lang: "zh-CN" 1067 }, { 1068 name: "Microsoft Danny Mobile - Chinese (Traditional, Hong Kong S.A.R.)", 1069 lang: "zh-HK" 1070 }, { 1071 name: "Microsoft Yating Mobile - Chinese (Traditional, Taiwan)", 1072 lang: "zh-TW" 1073 }, { 1074 name: "Microsoft Zhiwei Mobile - Chinese (Traditional, Taiwan)", 1075 lang: "zh-TW" 1076 }, { 1077 name: "Microsoft David Desktop - English (United States)", 1078 lang: "en-US" 1079 }, { 1080 name: "Microsoft Zira Desktop - English (United States)", 1081 lang: "en-US" 1082 }, { 1083 name: "Microsoft Mark Desktop - English (United States)", 1084 lang: "en-US" 1085 }, { 1086 name: "Microsoft George Desktop - English (United Kingdom)", 1087 lang: "en-GB" 1088 }, { 1089 name: "Microsoft Susan Desktop - English (United Kingdom)", 1090 lang: "en-GB" 1091 }, { 1092 name: "Microsoft Hazel Desktop - English (United Kingdom)", 1093 lang: "en-GB" 1094 }, { 1095 name: "Microsoft Heera Desktop - English (India)", 1096 lang: "en-In" 1097 }, { 1098 name: "Microsoft Irina Desktop - Russian (Russia)", 1099 lang: "ru-RU" 1100 }, { 1101 name: "Microsoft Hedda Desktop - German (Germany)", 1102 lang: "de-DE" 1103 }, { 1104 name: "Microsoft Katja Desktop - German (Germany)", 1105 lang: "de-DE" 1106 }, { 1107 name: "Microsoft Helena Desktop - Spanish (Spain)", 1108 lang: "es-ES" 1109 }, { 1110 name: "Microsoft Laura Desktop - Spanish (Spain)", 1111 lang: "es-ES" 1112 }, { 1113 name: "Microsoft Sabina Desktop - Spanish (Mexico)", 1114 lang: "es-MX" 1115 }, { 1116 name: "Microsoft Julie Desktop - French (France)", 1117 lang: "fr-FR" 1118 }, { 1119 name: "Microsoft Paulina Desktop - Polish (Poland)", 1120 lang: "pl-PL" 1121 }, { 1122 name: "Microsoft Huihui Desktop - Chinese (Simplified, PRC)", 1123 lang: "zh-CN" 1124 }, {
1125 name: "Microsoft Yaoyao Desktop - Chinese (Simplified, PRC)", 1126 lang: "zh-CN" 1127 }, { 1128 name: "Microsoft Tracy Desktop - Chinese (Traditional, Hong Kong S.A.R.)", 1129 lang: "zh-CN" 1130 }, { 1131 name: "Microsoft Elsa Desktop - Italian (Italy)", 1132 lang: "it-IT" 1133 }, { 1134 name: "Microsoft Maria Desktop - Portuguese (Brazil)", 1135 lang: "pt-BR" 1136 }, { 1137 name: "Microsoft Ayumi Desktop - Japanese (Japan)", 1138 lang: "ja-JP" 1139 }, { 1140 name: "Microsoft Haruka Desktop - Japanese (Japan)", 1141 lang: "ja-JP" 1142 }, { 1143 name: "Microsoft Hortense Desktop - French (France)", 1144 lang: "fr-FR" 1145 }, { 1146 name: "Microsoft Hanhan Desktop - Chinese (Traditional, Taiwan)", 1147 lang: "zh-TW" 1148 }, { 1149 name: "Microsoft Heami Desktop - Korean (Korean)", 1150 lang: "ko-KR" 1151 }, { 1152 name: "Microsoft Stefan Desktop - German (Germany)", 1153 lang: "de-DE" 1154 }, { 1155 name: "Microsoft Ravi Desktop - English (India)", 1156 lang: "en-IN" 1157 }, { 1158 name: "Microsoft Pablo Desktop - Spanish (Spain)", 1159 lang: "es-ES" 1160 }, { 1161 name: "Microsoft Raul Desktop - Spanish (Mexico)", 1162 lang: "es-MX" 1163 }, { 1164 name: "Microsoft Paul Desktop - French (France)", 1165 lang: "fr-FR" 1166 }, { 1167 name: "Microsoft Cosimo Desktop - Italian (Italy)", 1168 lang: "it-IT" 1169 }, { 1170 name: "Microsoft Ichiro Desktop - Japanese (Japan)", 1171 lang: "ja-JP" 1172 }, { 1173 name: "Microsoft Adam Desktop - Polish (Poland)", 1174 lang: "pl-PL" 1175 }, { 1176 name: "Microsoft Daniel Desktop - Portuguese (Brazil)", 1177 lang: "pt-BR" 1178 }, { 1179 name: "Microsoft Pavel Desktop - Russian (Russia)", 1180 lang: "ru-RU" 1181 }, { 1182 name: "Microsoft Kangkang Desktop - Chinese (Simplified, PRC)", 1183 lang: "zh-CN" 1184 }, { 1185 name: "Microsoft Danny Desktop - Chinese (Traditional, Hong Kong S.A.R.)", 1186 lang: "zh-HK" 1187 }, { 1188 name: "Microsoft Yating Desktop - Chinese (Traditional, Taiwan)", 1189 lang: "zh-TW" 1190 }, {name: "Microsoft Zhiwei Desktop - Chinese (Traditional, Taiwan)", lang: "zh-TW"}, { 1191 name: "Martin", 1192 lang: "de-DE" 1193 }, {name: "Daniel", lang: "fr-FR"}, {name: "Hattori", lang: "ja-JP"}, { 1194 name: "Li-mu", 1195 lang: "zh-CN" 1196 }, {name: "Gordon", lang: "en-AU"}, {name: "Aaron", lang: "en-US"}, { 1197 name: "Nicky", 1198 lang: "en-US" 1199 }, {name: "Microsoft Hanhan Desktop - Chinese (Taiwan)", lang: "zh-TW"}, { 1200 name: "Microsoft Heami Desktop - Korean", 1201 lang: "ko-KR" 1202 }, { 1203 name: "Fallback Australian Male", 1204 lang: "en-AU", 1205 fallbackvoice: !0, 1206 service: "g1", 1207 gender: "male" 1208 }, {
1209 name: "Fallback Russian Male", 1210 lang: "ru", 1211 fallbackvoice: !0, 1212 service: "g1", 1213 gender: "male" 1214 }, { 1215 name: "Fallback Arabic Male", 1216 lang: "ar", 1217 fallbackvoice: !0, 1218 service: "g1", 1219 gender: "male" 1220 }, { 1221 name: "Fallback Chinese", 1222 lang: "zh-CN", 1223 fallbackvoice: !0, 1224 service: "g1", 1225 gender: "male" 1226 }, { 1227 name: "Fallback Chinese HK", 1228 lang: "zh-HK", 1229 fallbackvoice: !0, 1230 service: "g1", 1231 gender: "male" 1232 }, { 1233 name: "Fallback Chinese TW", 1234 lang: "zh-TW", 1235 fallbackvoice: !0, 1236 service: "g1", 1237 gender: "male" 1238 }, { 1239 name: "Fallback French Male", 1240 lang: "fr", 1241 fallbackvoice: !0, 1242 service: "g1", 1243 gender: "male" 1244 }, { 1245 name: "Fallback Deutsch Male", 1246 lang: "de", 1247 fallbackvoice: !0, 1248 service: "g1", 1249 gender: "male" 1250 }, { 1251 name: "Fallback Hindi Male", 1252 lang: "hi", 1253 fallbackvoice: !0, 1254 service: "g1", 1255 gender: "male" 1256 }, {
1257 name: "Fallback Indonesian Male", 1258 lang: "id", 1259 fallbackvoice: !0, 1260 service: "g1", 1261 gender: "male" 1262 }, { 1263 name: "Fallback Japanese Male", 1264 lang: "ja", 1265 fallbackvoice: !0, 1266 service: "g1", 1267 gender: "male" 1268 }, { 1269 name: "Fallback Korean Male", 1270 lang: "ko", 1271 fallbackvoice: !0, 1272 service: "g1", 1273 gender: "male" 1274 }, { 1275 name: "Fallback Polish Male", 1276 lang: "pl", 1277 fallbackvoice: !0, 1278 service: "g1", 1279 gender: "male" 1280 }, { 1281 name: "Fallback Brazilian Portuguese Male", 1282 lang: "pt-BR", 1283 fallbackvoice: !0, 1284 service: "g1", 1285 gender: "male" 1286 }, { 1287 name: "Fallback Portuguese Male", 1288 lang: "pt-PT", 1289 fallbackvoice: !0, 1290 service: "g1", 1291 gender: "male" 1292 }, { 1293 name: "Fallback Spanish Male", 1294 lang: "es", 1295 fallbackvoice: !0, 1296 service: "g1", 1297 gender: "male" 1298 }, { 1299 name: "Fallback Spanish (Latin American) Male", 1300 lang: "es-419", 1301 fallbackvoice: !0, 1302 service: "g1", 1303 gender: "male" 1304 }, {
1305 name: "Fallback Thai Male", 1306 lang: "th", 1307 fallbackvoice: !0, 1308 service: "g1", 1309 gender: "male" 1310 }, { 1311 name: "Fallback Turkish Male", 1312 lang: "tr", 1313 fallbackvoice: !0, 1314 service: "g1", 1315 gender: "male" 1316 }, { 1317 name: "Fallback Vietnamese Female", 1318 lang: "vi", 1319 fallbackvoice: !0, 1320 service: "g1", 1321 gender: "female" 1322 }, { 1323 name: "Fallback Italian Male", 1324 lang: "it", 1325 fallbackvoice: !0, 1326 service: "g1", 1327 gender: "male" 1328 }, { 1329 name: "Fallback Dutch Male", 1330 lang: "nl", 1331 fallbackvoice: !0, 1332 timerSpeed: 0, 1333 service: "g1", 1334 gender: "male" 1335 }, { 1336 name: "Microsoft Anna - English (United States)", 1337 lang: "en-US", 1338 gender: "female" 1339 }, { 1340 name: "Microsoft Lili - Chinese (China)", 1341 lang: "zh-CN", 1342 gender: "female" 1343 }], a.iOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent), a.iOS9 = /(iphone|ipod|ipad).* os 9_/.test(navigator.userAgent.toLowerCase()), a.iOS10 = /(iphone|ipod|ipad).* os 10_/.test(navigator.userAgent.toLowerCase()), a.iOS11 = /(iphone|ipod|ipad).* os 11_/.test(navigator.userAgent.toLowerCase()), a.iOS9plus = /(iphone|ipod|ipad).* os 10_/.test(navigator.userAgent.toLowerCase()) || /(iphone|ipod|ipad).* os 10_/.test(navigator.userAgent.toLowerCase()), a.iOS12_0 = /(iphone|ipod|ipad).* os 12_0/.test(navigator.userAgent.toLowerCase()), a.iOS12 = /(iphone|ipod|ipad).* os 12_/.test(navigator.userAgent.toLowerCase()), a.is_chrome = -1 < navigator.userAgent.indexOf("Chrome"), a.is_safari = -1 < navigator.userAgent.indexOf("Safari"), a.is_chrome && a.is_safari && (a.is_safari = !1), a.is_opera = !!window.opera || 0 <= navigator.userAgent.indexOf(" OPR/"), a.is_android = -1 < navigator.userAgent.toLowerCase().indexOf("android"), a.iOS_initialized = !1, a.iOS9_initialized = !1, a.iOS10_initialized = !1, a.iOS11_initialized = !1, a.cache_ios_voices = [{ 1344 name: "he-IL", 1345 voiceURI: "he-IL", 1346 lang: "he-IL" 1347 }, {name: "th-TH", voiceURI: "th-TH", lang: "th-TH"}, { 1348 name: "pt-BR", 1349 voiceURI: "pt-BR", 1350 lang: "pt-BR" 1351 }, {name: "sk-SK", voiceURI: "sk-SK", lang: "sk-SK"}, { 1352 name: "fr-CA", 1353 voiceURI: "fr-CA", 1354 lang: "fr-CA" 1355 }, {name: "ro-RO", voiceURI: "ro-RO", lang: "ro-RO"}, { 1356 name: "no-NO", 1357 voiceURI: "no-NO", 1358 lang: "no-NO" 1359 }, {name: "fi-FI", voiceURI: "fi-FI", lang: "fi-FI"}, { 1360 name: "pl-PL", 1361 voiceURI: "pl-PL", 1362 lang: "pl-PL" 1363 }, {name: "de-DE", voiceURI: "de-DE", lang: "de-DE"}, { 1364 name: "nl-NL", 1365 voiceURI: "nl-NL", 1366 lang: "nl-NL" 1367 }, {name: "id-ID", voiceURI: "id-ID", lang: "id-ID"}, { 1368 name: "tr-TR", 1369 voiceURI: "tr-TR", 1370 lang: "tr-TR" 1371 }, {name: "it-IT", voiceURI: "it-IT", lang: "it-IT"}, { 1372 name: "pt-PT", 1373 voiceURI: "pt-PT", 1374 lang: "pt-PT" 1375 }, {name: "fr-FR", voiceURI: "fr-FR", lang: "fr-FR"}, { 1376 name: "ru-RU", 1377 voiceURI: "ru-RU", 1378 lang: "ru-RU" 1379 }, {name: "es-MX", voiceURI: "es-MX", lang: "es-MX"}, { 1380 name: "zh-HK", 1381 voiceURI: "zh-HK", 1382 lang: "zh-HK" 1383 }, {name: "sv-SE", voiceURI: "sv-SE", lang: "sv-SE"}, { 1384 name: "hu-HU", 1385 voiceURI: "hu-HU", 1386 lang: "hu-HU" 1387 }, {name: "zh-TW", voiceURI: "zh-TW", lang: "zh-TW"}, { 1388 name: "es-ES", 1389 voiceURI: "es-ES", 1390 lang: "es-ES" 1391 }, {name: "zh-CN", voiceURI: "zh-CN", lang: "zh-CN"}, { 1392 name: "nl-BE", 1393 voiceURI: "nl-BE", 1394 lang: "nl-BE" 1395 }, {name: "en-GB", voiceURI: "en-GB", lang: "en-GB"}, { 1396 name: "ar-SA", 1397 voiceURI: "ar-SA", 1398 lang: "ar-SA" 1399 }, {name: "ko-KR", voiceURI: "ko-KR", lang: "ko-KR"}, { 1400 name: "cs-CZ", 1401 voiceURI: "cs-CZ", 1402 lang: "cs-CZ" 1403 }, {name: "en-ZA", voiceURI: "en-ZA", lang: "en-ZA"}, { 1404 name: "en-AU", 1405 voiceURI: "en-AU", 1406 lang: "en-AU" 1407 }, {name: "da-DK", voiceURI: "da-DK", lang: "da-DK"}, { 1408 name: "en-US", 1409 voiceURI: "en-US", 1410 lang: "en-US" 1411 }, {name: "en-IE", voiceURI: "en-IE", lang: "en-IE"}, { 1412 name: "hi-IN", 1413 voiceURI: "hi-IN", 1414 lang: "hi-IN" 1415 }, {name: "el-GR", voiceURI: "el-GR", lang: "el-GR"}, { 1416 name: "ja-JP", 1417 voiceURI: "ja-JP", 1418 lang: "ja-JP" 1419 }], a.cache_ios9_voices = [{ 1420 name: "Maged", 1421 voiceURI: "com.apple.ttsbundle.Maged-compact", 1422 lang: "ar-SA", 1423 localService: !0, 1424 default: !0 1425 }, {
1426 name: "Zuzana", 1427 voiceURI: "com.apple.ttsbundle.Zuzana-compact", 1428 lang: "cs-CZ", 1429 localService: !0, 1430 default: !0 1431 }, { 1432 name: "Sara", 1433 voiceURI: "com.apple.ttsbundle.Sara-compact", 1434 lang: "da-DK", 1435 localService: !0, 1436 default: !0 1437 }, { 1438 name: "Anna", 1439 voiceURI: "com.apple.ttsbundle.Anna-compact", 1440 lang: "de-DE", 1441 localService: !0, 1442 default: !0 1443 }, { 1444 name: "Melina", 1445 voiceURI: "com.apple.ttsbundle.Melina-compact", 1446 lang: "el-GR", 1447 localService: !0, 1448 default: !0 1449 }, { 1450 name: "Karen", 1451 voiceURI: "com.apple.ttsbundle.Karen-compact", 1452 lang: "en-AU", 1453 localService: !0, 1454 default: !0 1455 }, { 1456 name: "Daniel", 1457 voiceURI: "com.apple.ttsbundle.Daniel-compact", 1458 lang: "en-GB", 1459 localService: !0, 1460 default: !0 1461 }, { 1462 name: "Moira", 1463 voiceURI: "com.apple.ttsbundle.Moira-compact", 1464 lang: "en-IE", 1465 localService: !0, 1466 default: !0 1467 }, { 1468 name: "Samantha (Enhanced)", 1469 voiceURI: "com.apple.ttsbundle.Samantha-premium", 1470 lang: "en-US", 1471 localService: !0, 1472 default: !0 1473 }, { 1474 name: "Samantha", 1475 voiceURI: "com.apple.ttsbundle.Samantha-compact", 1476 lang: "en-US", 1477 localService: !0, 1478 default: !0 1479 }, { 1480 name: "Tessa", 1481 voiceURI: "com.apple.ttsbundle.Tessa-compact", 1482 lang: "en-ZA", 1483 localService: !0, 1484 default: !0 1485 }, { 1486 name: "Monica", 1487 voiceURI: "com.apple.ttsbundle.Monica-compact", 1488 lang: "es-ES", 1489 localService: !0, 1490 default: !0 1491 }, { 1492 name: "Paulina", 1493 voiceURI: "com.apple.ttsbundle.Paulina-compact", 1494 lang: "es-MX", 1495 localService: !0, 1496 default: !0 1497 }, { 1498 name: "Satu", 1499 voiceURI: "com.apple.ttsbundle.Satu-compact", 1500 lang: "fi-FI", 1501 localService: !0, 1502 default: !0 1503 }, { 1504 name: "Amelie", 1505 voiceURI: "com.apple.ttsbundle.Amelie-compact", 1506 lang: "fr-CA", 1507 localService: !0, 1508 default: !0 1509 }, { 1510 name: "Thomas", 1511 voiceURI: "com.apple.ttsbundle.Thomas-compact", 1512 lang: "fr-FR", 1513 localService: !0, 1514 default: !0 1515 }, { 1516 name: "Carmit", 1517 voiceURI: "com.apple.ttsbundle.Carmit-compact", 1518 lang: "he-IL", 1519 localService: !0, 1520 default: !0 1521 }, { 1522 name: "Lekha", 1523 voiceURI: "com.apple.ttsbundle.Lekha-compact", 1524 lang: "hi-IN", 1525 localService: !0, 1526 default: !0 1527 }, { 1528 name: "Mariska", 1529 voiceURI: "com.apple.ttsbundle.Mariska-compact", 1530 lang: "hu-HU", 1531 localService: !0, 1532 default: !0 1533 }, { 1534 name: "Damayanti", 1535 voiceURI: "com.apple.ttsbundle.Damayanti-compact", 1536 lang: "id-ID", 1537 localService: !0, 1538 default: !0 1539 }, { 1540 name: "Alice", 1541 voiceURI: "com.apple.ttsbundle.Alice-compact", 1542 lang: "it-IT", 1543 localService: !0, 1544 default: !0 1545 }, { 1546 name: "Kyoko", 1547 voiceURI: "com.apple.ttsbundle.Kyoko-compact", 1548 lang: "ja-JP", 1549 localService: !0, 1550 default: !0 1551 }, { 1552 name: "Yuna", 1553 voiceURI: "com.apple.ttsbundle.Yuna-compact", 1554 lang: "ko-KR", 1555 localService: !0, 1556 default: !0 1557 }, { 1558 name: "Ellen", 1559 voiceURI: "com.apple.ttsbundle.Ellen-compact", 1560 lang: "nl-BE", 1561 localService: !0, 1562 default: !0 1563 }, { 1564 name: "Xander", 1565 voiceURI: "com.apple.ttsbundle.Xander-compact", 1566 lang: "nl-NL", 1567 localService: !0, 1568 default: !0 1569 }, { 1570 name: "Nora", 1571 voiceURI: "com.apple.ttsbundle.Nora-compact", 1572 lang: "no-NO", 1573 localService: !0, 1574 default: !0 1575 }, { 1576 name: "Zosia", 1577 voiceURI: "com.apple.ttsbundle.Zosia-compact", 1578 lang: "pl-PL", 1579 localService: !0, 1580 default: !0 1581 }, {
1582 name: "Luciana", 1583 voiceURI: "com.apple.ttsbundle.Luciana-compact", 1584 lang: "pt-BR", 1585 localService: !0, 1586 default: !0 1587 }, { 1588 name: "Joana", 1589 voiceURI: "com.apple.ttsbundle.Joana-compact", 1590 lang: "pt-PT", 1591 localService: !0, 1592 default: !0 1593 }, { 1594 name: "Ioana", 1595 voiceURI: "com.apple.ttsbundle.Ioana-compact", 1596 lang: "ro-RO", 1597 localService: !0, 1598 default: !0 1599 }, { 1600 name: "Milena", 1601 voiceURI: "com.apple.ttsbundle.Milena-compact", 1602 lang: "ru-RU", 1603 localService: !0, 1604 default: !0 1605 }, { 1606 name: "Laura", 1607 voiceURI: "com.apple.ttsbundle.Laura-compact", 1608 lang: "sk-SK", 1609 localService: !0, 1610 default: !0 1611 }, { 1612 name: "Alva", 1613 voiceURI: "com.apple.ttsbundle.Alva-compact", 1614 lang: "sv-SE", 1615 localService: !0, 1616 default: !0 1617 }, { 1618 name: "Kanya", 1619 voiceURI: "com.apple.ttsbundle.Kanya-compact", 1620 lang: "th-TH", 1621 localService: !0, 1622 default: !0 1623 }, { 1624 name: "Yelda", 1625 voiceURI: "com.apple.ttsbundle.Yelda-compact", 1626 lang: "tr-TR", 1627 localService: !0, 1628 default: !0 1629 }, { 1630 name: "Ting-Ting", 1631 voiceURI: "com.apple.ttsbundle.Ting-Ting-compact", 1632 lang: "zh-CN", 1633 localService: !0, 1634 default: !0 1635 }, { 1636 name: "Sin-Ji", 1637 voiceURI: "com.apple.ttsbundle.Sin-Ji-compact", 1638 lang: "zh-HK", 1639 localService: !0, 1640 default: !0 1641 }, { 1642 name: "Mei-Jia", 1643 voiceURI: "com.apple.ttsbundle.Mei-Jia-compact", 1644 lang: "zh-TW", 1645 localService: !0, 1646 default: !0 1647 }], a.cache_ios10_voices = [{ 1648 name: "Maged", 1649 voiceURI: "com.apple.ttsbundle.Maged-compact", 1650 lang: "ar-SA" 1651 }, {name: "Zuzana", voiceURI: "com.apple.ttsbundle.Zuzana-compact", lang: "cs-CZ"}, { 1652 name: "Sara", 1653 voiceURI: "com.apple.ttsbundle.Sara-compact", 1654 lang: "da-DK" 1655 }, {name: "Anna", voiceURI: "com.apple.ttsbundle.Anna-compact", lang: "de-DE"}, { 1656 name: "Helena", 1657 voiceURI: "com.apple.ttsbundle.siri_female_de-DE_compact", 1658 lang: "de-DE" 1659 }, { 1660 name: "Martin", 1661 voiceURI: "com.apple.ttsbundle.siri_male_de-DE_compact", 1662 lang: "de-DE" 1663 }, {name: "Nikos (Enhanced)", voiceURI: "com.apple.ttsbundle.Nikos-premium", lang: "el-GR"}, { 1664 name: "Melina", 1665 voiceURI: "com.apple.ttsbundle.Melina-compact", 1666 lang: "el-GR" 1667 }, {name: "Nikos", voiceURI: "com.apple.ttsbundle.Nikos-compact", lang: "el-GR"}, { 1668 name: "Catherine", 1669 voiceURI: "com.apple.ttsbundle.siri_female_en-AU_compact", 1670 lang: "en-AU" 1671 }, {name: "Gordon", voiceURI: "com.apple.ttsbundle.siri_male_en-AU_compact", lang: "en-AU"}, { 1672 name: "Karen", 1673 voiceURI: "com.apple.ttsbundle.Karen-compact", 1674 lang: "en-AU" 1675 }, {name: "Daniel (Enhanced)", voiceURI: "com.apple.ttsbundle.Daniel-premium", lang: "en-GB"}, { 1676 name: "Arthur", 1677 voiceURI: "com.apple.ttsbundle.siri_male_en-GB_compact", 1678 lang: "en-GB" 1679 }, {name: "Daniel", voiceURI: "com.apple.ttsbundle.Daniel-compact", lang: "en-GB"}, { 1680 name: "Martha", 1681 voiceURI: "com.apple.ttsbundle.siri_female_en-GB_compact", 1682 lang: "en-GB" 1683 }, {name: "Moira", voiceURI: "com.apple.ttsbundle.Moira-compact", lang: "en-IE"}, { 1684 name: "Nicky (Enhanced)", 1685 voiceURI: "com.apple.ttsbundle.siri_female_en-US_premium", 1686 lang: "en-US" 1687 }, {name: "Samantha (Enhanced)", voiceURI: "com.apple.ttsbundle.Samantha-premium", lang: "en-US"}, { 1688 name: "Aaron", 1689 voiceURI: "com.apple.ttsbundle.siri_male_en-US_compact", 1690 lang: "en-US" 1691 }, {name: "Fred", voiceURI: "com.apple.speech.synthesis.voice.Fred", lang: "en-US"}, { 1692 name: "Nicky", 1693 voiceURI: "com.apple.ttsbundle.siri_female_en-US_compact", 1694 lang: "en-US" 1695 }, {name: "Samantha", voiceURI: "com.apple.ttsbundle.Samantha-compact", lang: "en-US"}, {
1696 name: "Tessa", 1697 voiceURI: "com.apple.ttsbundle.Tessa-compact", 1698 lang: "en-ZA" 1699 }, {name: "Monica", voiceURI: "com.apple.ttsbundle.Monica-compact", lang: "es-ES"}, { 1700 name: "Paulina", 1701 voiceURI: "com.apple.ttsbundle.Paulina-compact", 1702 lang: "es-MX" 1703 }, {name: "Satu", voiceURI: "com.apple.ttsbundle.Satu-compact", lang: "fi-FI"}, { 1704 name: "Amelie", 1705 voiceURI: "com.apple.ttsbundle.Amelie-compact", 1706 lang: "fr-CA" 1707 }, {name: "Daniel", voiceURI: "com.apple.ttsbundle.siri_male_fr-FR_compact", lang: "fr-FR"}, { 1708 name: "Marie", 1709 voiceURI: "com.apple.ttsbundle.siri_female_fr-FR_compact", 1710 lang: "fr-FR" 1711 }, {name: "Thomas", voiceURI: "com.apple.ttsbundle.Thomas-compact", lang: "fr-FR"}, { 1712 name: "Carmit", 1713 voiceURI: "com.apple.ttsbundle.Carmit-compact", 1714 lang: "he-IL" 1715 }, {name: "Lekha", voiceURI: "com.apple.ttsbundle.Lekha-compact", lang: "hi-IN"}, { 1716 name: "Mariska", 1717 voiceURI: "com.apple.ttsbundle.Mariska-compact", 1718 lang: "hu-HU" 1719 }, {name: "Damayanti", voiceURI: "com.apple.ttsbundle.Damayanti-compact", lang: "id-ID"}, { 1720 name: "Alice", 1721 voiceURI: "com.apple.ttsbundle.Alice-compact", 1722 lang: "it-IT" 1723 }, {name: "Hattori", voiceURI: "com.apple.ttsbundle.siri_male_ja-JP_compact", lang: "ja-JP"}, { 1724 name: "Kyoko", 1725 voiceURI: "com.apple.ttsbundle.Kyoko-compact", 1726 lang: "ja-JP" 1727 }, {name: "O-ren", voiceURI: "com.apple.ttsbundle.siri_female_ja-JP_compact", lang: "ja-JP"}, { 1728 name: "Yuna", 1729 voiceURI: "com.apple.ttsbundle.Yuna-compact", 1730 lang: "ko-KR" 1731 }, {name: "Ellen", voiceURI: "com.apple.ttsbundle.Ellen-compact", lang: "nl-BE"}, { 1732 name: "Xander", 1733 voiceURI: "com.apple.ttsbundle.Xander-compact", 1734 lang: "nl-NL" 1735 }, {name: "Nora", voiceURI: "com.apple.ttsbundle.Nora-compact", lang: "no-NO"}, { 1736 name: "Zosia", 1737 voiceURI: "com.apple.ttsbundle.Zosia-compact", 1738 lang: "pl-PL" 1739 }, {name: "Luciana", voiceURI: "com.apple.ttsbundle.Luciana-compact", lang: "pt-BR"}, { 1740 name: "Joana", 1741 voiceURI: "com.apple.ttsbundle.Joana-compact", 1742 lang: "pt-PT" 1743 }, {name: "Ioana", voiceURI: "com.apple.ttsbundle.Ioana-compact", lang: "ro-RO"}, { 1744 name: "Milena", 1745 voiceURI: "com.apple.ttsbundle.Milena-compact", 1746 lang: "ru-RU" 1747 }, {name: "Laura", voiceURI: "com.apple.ttsbundle.Laura-compact", lang: "sk-SK"}, { 1748 name: "Alva", 1749 voiceURI: "com.apple.ttsbundle.Alva-compact", 1750 lang: "sv-SE" 1751 }, {name: "Kanya", voiceURI: "com.apple.ttsbundle.Kanya-compact", lang: "th-TH"}, { 1752 name: "Yelda", 1753 voiceURI: "com.apple.ttsbundle.Yelda-compact", 1754 lang: "tr-TR" 1755 }, {name: "Li-mu", voiceURI: "com.apple.ttsbundle.siri_male_zh-CN_compact", lang: "zh-CN"}, { 1756 name: "Ting-Ting", 1757 voiceURI: "com.apple.ttsbundle.Ting-Ting-compact", 1758 lang: "zh-CN" 1759 }, {name: "Yu-shu", voiceURI: "com.apple.ttsbundle.siri_female_zh-CN_compact", lang: "zh-CN"}, { 1760 name: "Sin-Ji", 1761 voiceURI: "com.apple.ttsbundle.Sin-Ji-compact", 1762 lang: "zh-HK" 1763 }, { 1764 name: "Mei-Jia", 1765 voiceURI: "com.apple.ttsbundle.Mei-Jia-compact", 1766 lang: "zh-TW" 1767 }], a.cache_ios11_voices = [{ 1768 name: "Maged", 1769 voiceURI: "com.apple.ttsbundle.Maged-compact", 1770 lang: "ar-SA" 1771 }, {name: "Zuzana", voiceURI: "com.apple.ttsbundle.Zuzana-compact", lang: "cs-CZ"}, { 1772 name: "Sara", 1773 voiceURI: "com.apple.ttsbundle.Sara-compact", 1774 lang: "da-DK" 1775 }, {name: "Anna", voiceURI: "com.apple.ttsbundle.Anna-compact", lang: "de-DE"}, { 1776 name: "Helena", 1777 voiceURI: "com.apple.ttsbundle.siri_female_de-DE_compact", 1778 lang: "de-DE" 1779 }, {name: "Martin", voiceURI: "com.apple.ttsbundle.siri_male_de-DE_compact", lang: "de-DE"}, { 1780 name: "Melina", 1781 voiceURI: "com.apple.ttsbundle.Melina-compact", 1782 lang: "el-GR" 1783 }, {name: "Catherine", voiceURI: "com.apple.ttsbundle.siri_female_en-AU_compact", lang: "en-AU"}, { 1784 name: "Gordon", 1785 voiceURI: "com.apple.ttsbundle.siri_male_en-AU_compact", 1786 lang: "en-AU" 1787 }, {name: "Karen", voiceURI: "com.apple.ttsbundle.Karen-compact", lang: "en-AU"}, { 1788 name: "Arthur", 1789 voiceURI: "com.apple.ttsbundle.siri_male_en-GB_compact", 1790 lang: "en-GB" 1791 }, {name: "Daniel", voiceURI: "com.apple.ttsbundle.Daniel-compact", lang: "en-GB"}, { 1792 name: "Martha", 1793 voiceURI: "com.apple.ttsbundle.siri_female_en-GB_compact", 1794 lang: "en-GB" 1795 }, {name: "Moira", voiceURI: "com.apple.ttsbundle.Moira-compact", lang: "en-IE"}, { 1796 name: "Aaron", 1797 voiceURI: "com.apple.ttsbundle.siri_male_en-US_compact", 1798 lang: "en-US" 1799 }, {name: "Fred", voiceURI: "com.apple.speech.synthesis.voice.Fred", lang: "en-US"}, {
1800 name: "Nicky", 1801 voiceURI: "com.apple.ttsbundle.siri_female_en-US_compact", 1802 lang: "en-US" 1803 }, {name: "Samantha", voiceURI: "com.apple.ttsbundle.Samantha-compact", lang: "en-US"}, { 1804 name: "Tessa", 1805 voiceURI: "com.apple.ttsbundle.Tessa-compact", 1806 lang: "en-ZA" 1807 }, {name: "Monica", voiceURI: "com.apple.ttsbundle.Monica-compact", lang: "es-ES"}, { 1808 name: "Paulina", 1809 voiceURI: "com.apple.ttsbundle.Paulina-compact", 1810 lang: "es-MX" 1811 }, {name: "Satu", voiceURI: "com.apple.ttsbundle.Satu-compact", lang: "fi-FI"}, { 1812 name: "Amelie", 1813 voiceURI: "com.apple.ttsbundle.Amelie-compact", 1814 lang: "fr-CA" 1815 }, {name: "Daniel", voiceURI: "com.apple.ttsbundle.siri_male_fr-FR_compact", lang: "fr-FR"}, { 1816 name: "Marie", 1817 voiceURI: "com.apple.ttsbundle.siri_female_fr-FR_compact", 1818 lang: "fr-FR" 1819 }, {name: "Thomas", voiceURI: "com.apple.ttsbundle.Thomas-compact", lang: "fr-FR"}, { 1820 name: "Carmit", 1821 voiceURI: "com.apple.ttsbundle.Carmit-compact", 1822 lang: "he-IL" 1823 }, {name: "Lekha", voiceURI: "com.apple.ttsbundle.Lekha-compact", lang: "hi-IN"}, { 1824 name: "Mariska", 1825 voiceURI: "com.apple.ttsbundle.Mariska-compact", 1826 lang: "hu-HU" 1827 }, {name: "Damayanti", voiceURI: "com.apple.ttsbundle.Damayanti-compact", lang: "id-ID"}, { 1828 name: "Alice", 1829 voiceURI: "com.apple.ttsbundle.Alice-compact", 1830 lang: "it-IT" 1831 }, {name: "Hattori", voiceURI: "com.apple.ttsbundle.siri_male_ja-JP_compact", lang: "ja-JP"}, { 1832 name: "Kyoko", 1833 voiceURI: "com.apple.ttsbundle.Kyoko-compact", 1834 lang: "ja-JP" 1835 }, {name: "O-ren", voiceURI: "com.apple.ttsbundle.siri_female_ja-JP_compact", lang: "ja-JP"}, { 1836 name: "Yuna", 1837 voiceURI: "com.apple.ttsbundle.Yuna-compact", 1838 lang: "ko-KR" 1839 }, {name: "Ellen", voiceURI: "com.apple.ttsbundle.Ellen-compact", lang: "nl-BE"}, { 1840 name: "Xander", 1841 voiceURI: "com.apple.ttsbundle.Xander-compact", 1842 lang: "nl-NL" 1843 }, {name: "Nora", voiceURI: "com.apple.ttsbundle.Nora-compact", lang: "no-NO"}, { 1844 name: "Zosia", 1845 voiceURI: "com.apple.ttsbundle.Zosia-compact", 1846 lang: "pl-PL" 1847 }, {name: "Luciana", voiceURI: "com.apple.ttsbundle.Luciana-compact", lang: "pt-BR"}, { 1848 name: "Joana", 1849 voiceURI: "com.apple.ttsbundle.Joana-compact", 1850 lang: "pt-PT" 1851 }, {name: "Ioana", voiceURI: "com.apple.ttsbundle.Ioana-compact", lang: "ro-RO"}, { 1852 name: "Milena", 1853 voiceURI: "com.apple.ttsbundle.Milena-compact", 1854 lang: "ru-RU" 1855 }, {name: "Laura", voiceURI: "com.apple.ttsbundle.Laura-compact", lang: "sk-SK"}, { 1856 name: "Alva", 1857 voiceURI: "com.apple.ttsbundle.Alva-compact", 1858 lang: "sv-SE" 1859 }, {name: "Kanya", voiceURI: "com.apple.ttsbundle.Kanya-compact", lang: "th-TH"}, { 1860 name: "Yelda", 1861 voiceURI: "com.apple.ttsbundle.Yelda-compact", 1862 lang: "tr-TR" 1863 }, {name: "Li-mu", voiceURI: "com.apple.ttsbundle.siri_male_zh-CN_compact", lang: "zh-CN"}, { 1864 name: "Ting-Ting", 1865 voiceURI: "com.apple.ttsbundle.Ting-Ting-compact", 1866 lang: "zh-CN" 1867 }, {name: "Yu-shu", voiceURI: "com.apple.ttsbundle.siri_female_zh-CN_compact", lang: "zh-CN"}, { 1868 name: "Sin-Ji", 1869 voiceURI: "com.apple.ttsbundle.Sin-Ji-compact", 1870 lang: "zh-HK" 1871 }, { 1872 name: "Mei-Jia", 1873 voiceURI: "com.apple.ttsbundle.Mei-Jia-compact", 1874 lang: "zh-TW" 1875 }], a.systemvoices = null, a.CHARACTER_LIMIT = 100, a.VOICESUPPORT_ATTEMPTLIMIT = 5, a.voicesupport_attempts = 0, a.fallbackMode = !1, a.WORDS_PER_MINUTE = 130, a.fallback_audio = null, a.fallback_playbackrate = 1, a.def_fallback_playbackrate = a.fallback_playbackrate, a.fallback_audiopool = [], a.msgparameters = null, a.timeoutId = null, a.OnLoad_callbacks = [], a.useTimer = !1, a.utterances = [], a.userInteractionEvents = ["mousedown", "mouseup", "mousewheel", "keydown"], a.fallbackBufferLength = 5, a.tstCompiled = function (a) { 1876 return eval("typeof xy === 'undefined'") 1877 }, a.fallbackServicePath = "https://code.responsivevoice.org/" + (a.tstCompiled() ? "" : "develop/") + "getvoice.php", a.default_rv = a.responsivevoices[0], a.debug = !1, a.rvsMapped = !1, a.forcedFallbackMode = !1, a.speechAllowedByUser = !0, a.log = function (c) { 1878 a.debug && console.log(c) 1879 }, a.init = function () {
1880 a.is_android && (a.useTimer = !0), a.is_opera || "undefined" == typeof speechSynthesis ? (console.log("RV: Voice synthesis not supported"), a.enableFallbackMode()) : setTimeout(function () { 1881 var d = setInterval(function () { 1882 var b = window.speechSynthesis.getVoices(); 1883 0 != b.length || null != a.systemvoices && 0 != a.systemvoices.length ? (console.log("RV: Voice support ready"), a.systemVoicesReady(b), clearInterval(d)) : (console.log("Voice support NOT ready"), a.voicesupport_attempts++, a.voicesupport_attempts > a.VOICESUPPORT_ATTEMPTLIMIT && (clearInterval(d), null == window.speechSynthesis ? a.enableFallbackMode() : a.iOS ? (a.iOS11 ? a.systemVoicesReady(a.cache_ios11_voices) : a.iOS10 ? a.systemVoicesReady(a.cache_ios10_voices) : a.iOS9 ? a.systemVoicesReady(a.cache_ios9_voices) : a.systemVoicesReady(a.cache_ios_voices), console.log("RV: Voice support ready (cached)")) : (console.log("RV: speechSynthesis present but no system voices found"), a.enableFallbackMode()))) 1884 }, 100) 1885 }, 100), (a.iOS || a.is_android || a.is_safari) && a.enableWindowClickHook(), a.Dispatch("OnLoad") 1886 }, a.systemVoicesReady = function (c) { 1887 a.systemvoices = c, a.mapRVs(), null != a.OnVoiceReady && a.OnVoiceReady.call(), a.Dispatch("OnReady"), window.hasOwnProperty("dispatchEvent") && window.dispatchEvent(new Event("ResponsiveVoice_OnReady")) 1888 }, a.enableFallbackMode = function () { 1889 a.fallbackMode = !0, a.forcedFallbackMode = !0, console.log("RV: Enabling fallback mode"), a.mapRVs(), null != a.OnVoiceReady && a.OnVoiceReady.call(), a.Dispatch("OnReady"), window.hasOwnProperty("dispatchEvent") && window.dispatchEvent(new Event("ResponsiveVoice_OnReady")), a.Dispatch("OnServiceSwitched") 1890 }, a.getVoices = function () { 1891 for (var d = [], b = 0; b < a.responsivevoices.length; b++) d.push({name: a.responsivevoices[b].name}); 1892 return d 1893 }, a.speak = function (i, j, c) { 1894 if (a.rvsMapped) { 1895 var d = null; 1896 if (a.isPlaying()) a.log("Cancelling previous speech"), a.cancel(), setTimeout(function () { 1897 a.speak(i, j, c) 1898 }, 50); else { 1899 i = i.replace(/["`]/gm, "'"), a.msgparameters = c || {}, a.msgtext = i, a.msgvoicename = j, a.onstartFired = !1; 1900 var o = []; 1901 if (i.length > a.CHARACTER_LIMIT) { 1902 for (var k = i; k.length > a.CHARACTER_LIMIT;) { 1903 var p = k.search(/([:!\u00a1?\u00bf;\(\)\[\]\u2014\u00ab\u00bb\n]+|\.[^0-9]+)/), q = ""; 1904 if ((-1 == p || p >= a.CHARACTER_LIMIT) && (p = k.search(/,[^0-9]+/)), -1 == p || p >= a.CHARACTER_LIMIT) { 1905 var r = k.split(" "); 1906 for (p = 0; p < r.length; p++) { 1907 if (q.length + r[p].length + 1 > a.CHARACTER_LIMIT) { 1908 r[p].length >= a.CHARACTER_LIMIT && (q += r[p].substr(0, a.CHARACTER_LIMIT - q.length - 1)); 1909 break 1910 } 1911 q += (0 == p ? "" : " ") + r[p] 1912 } 1913 } else q = k.substr(0, p + 1); 1914 k = k.substr(q.length, k.length - q.length), o.push(q) 1915 } 1916 0 < k.length && o.push(k) 1917 } else o.push(i); 1918 if (console.log(o), a.multipartText = o, null == j ? (p = a.default_rv, a.setDefaultVoice(p.name)) : p = a.getResponsiveVoice(j), !0 === p.deprecated && console.warn("ResponsiveVoice: Voice " + p.name + " is deprecated and will be removed in future releases"), k = {}, null != p.mappedProfile) k = p.mappedProfile; else if (k.systemvoice = a.getMatchedVoice(p), k.collectionvoice = {}, null == k.systemvoice) return void console.log("RV: ERROR: No voice found for: " + j); 1919 if (a.checkSpeechAllowed()) { 1920 for (a.fallbackMode && 0 < a.fallback_audiopool.length && a.clearFallbackPool(), a.msgprofile = k, a.log("Voice picked: " + a.msgprofile.systemvoice.name), a.utterances = [], a.fallbackChunks = [], p
1920= 0; p < o.length; p++) if (!a.fallbackMode && a.getServiceEnabled(a.services.NATIVE_TTS)) a.log("Using SpeechSynthesis"), d = a.services.NATIVE_TTS, q = new SpeechSynthesisUtterance, q.voiceURI = k.systemvoice.voiceURI, q.volume = a.selectBest([k.collectionvoice.volume, k.systemvoice.volume, 1]), q.rate = a.selectBest([a.iOS9plus ? 1 : null, k.collectionvoice.rate, k.systemvoice.rate, 1]), q.pitch = a.selectBest([k.collectionvoice.pitch, k.systemvoice.pitch, 1]), q.text = o[p], q.lang = a.selectBest([k.collectionvoice.lang, k.systemvoice.lang]), q.rvIndex = p, q.rvTotal = o.length, 0 == p && (q.onstart = a.speech_onstart), a.msgparameters.onendcalled = !1, null == c ? (a.log("No Params received for current Utterance"), q.voice = k.systemvoice, q.onend = a.speech_onend, q.onboundary = a.onboundary, q.onerror = function (c) { 1921 a.log("RV: Unknow Error"), a.log(c) 1922 }) : (q.voice = "undefined" == typeof c.voice ? k.systemvoice : c.voice, p < o.length - 1 && 1 < o.length ? (q.onend = a.onPartEnd, q.hasOwnProperty("addEventListener") && q.addEventListener("end", a.onPartEnd)) : (q.onend = a.speech_onend, q.hasOwnProperty("addEventListener") && q.addEventListener("end", a.speech_onend)), q.onerror = c.onerror || function (c) { 1923 a.log("RV: Unknow Error"), a.log(c) 1924 }, c.rate = a.validateParameters(c, "rate"), c.pitch = a.validateParameters(c, "pitch"), c.volume = a.validateParameters(c, "volume"), q.onpause = c.onpause, q.onresume = c.onresume, q.onmark = c.onmark, q.onboundary = c.onboundary || a.onboundary, q.pitch = null == c.pitch ? q.pitch : c.pitch, q.rate = a.iOS ? (null == c.rate ? 1 : c.rate * c.rate) * q.rate : (null == c.rate ? 1 : c.rate) * q.rate, q.volume = null == c.volume ? q.volume : c.volume), a.utterances.push(q), 0 == p && (a.currentMsg = q), console.log(q), a.tts_speak(q); else if (a.fallbackMode && a.getServiceEnabled(a.services.FALLBACK_AUDIO)) { 1925 d = a.services.FALLBACK_AUDIO, a.fallback_playbackrate = a.def_fallback_playbackrate, q = a.selectBest([k.collectionvoice.pitch, k.systemvoice.pitch, 1]), r = a.selectBest([a.iOS9plus ? 1 : null, k.collectionvoice.rate, k.systemvoice.rate, 1]); 1926 var s = a.selectBest([k.collectionvoice.volume, k.systemvoice.volume, 1]); 1927 if (null != c) { 1928 q *= null == c.pitch ? 1 : c.pitch, r *= null == c.rate ? 1 : c.rate, s *= null == c.volume ? 1 : c.volume; 1929 var t = c.extraParams || null 1930 } 1931 q /= 2, r /= 2, s *= 2, q = Math.min(Math.max(q, 0), 1), r = Math.min(Math.max(r, 0), 1), s = Math.min(Math.max(s, 0), 1), q = a.fallbackServicePath + "?t=" + encodeURIComponent(o[p]) + "&tl=" + (k.collectionvoice.lang || k.systemvoice.lang || "en-US") + "&sv=" + (k.collectionvoice.service || k.systemvoice.service || "") + "&vn=" + (k.collectionvoice.voicename || k.systemvoice.voicename || "") + "&pitch=" + q.toString() + "&rate=" + r.toString() + "&vol=" + s.toString(), void 0 !== k.collectionvoice.gender && (q += "&gender=" + k.collectionvoice.gender), t && (q += "&extraParams=" + JSON.stringify(t)), a.fallbackChunks.push({ 1932 text: o[p], 1933 url: q, 1934 audio: null 1935 }) 1936 } 1937 a.fallbackMode && a.getServiceEnabled(a.services.FALLBACK_AUDIO) && (a.fallbackChunkIndex = 0, a.fallback_startPart()), a.log("Service used: " + d) 1938 } else a.scheduledSpeak = {text: i, voicename: j, parameters: c} 1939 } 1940 } else setTimeout(function () { 1941 a.speak(i, j, c) 1942 }, 15) 1943 }, a.startTimeout = function (e, b) { 1944 var c = a.msgprofile.collectionvoice.timerSpeed; 1945 null == a.msgprofile.collectionvoice.timerSpeed && (c = 1), 0 >= c || (a.timeoutId = setTimeout(b, a.getEstimatedTimeLength(e, c)), a.log("Timeout ID: " + a.timeoutId)) 1946 }, a.checkAndCancelTimeout = function () { 1947 null != a.timeoutId && (clearTimeout(a.timeoutId), a.timeoutId = null) 1948 }, a.speech_timedout = function () { 1949 a.cancel(), a.cancelled = !1, a.speech_onend() 1950 }, a.speech_onend = function () { 1951 a.checkAndCancelTimeout(), !0 === a.cancelled ? a.cancelled = !1 : (a.log("on end fired"), null != a.msgparameters && null != a.msgparameters.onend && 1 != a.msgparameters.onendcalled && (a.log("Speech on end called -" + a.msgtext), a.msgparameters.onendcalled = !0, a.msgparameters.onend())) 1952 }, a.speech_onstart = function () { 1953 a.onstartFired || (a.onstartFired = !0, a.log("Speech start"), (a.iOS || a.is_safari || a.useTimer) && (a.fallbackMode || a.startTimeout(a.msgtext, a.speech_timedout)), a.msgparameters.onendcalled = !1, null != a.msgparameters && null != a.msgparameters.onstart && a.msgparameters.onstart()) 1954 }, a.fallback_startPart = function () { 1955 0 == a.fallbackChunkIndex && a.speech_onstart(), a.fallback_updateChunksBuffer(), a.fallback_audio = a.fallbackChunks[a.fallbackChunkIndex].audio, null == a.fallback_audio ? a.log("RV: Fallback Audio is not available") : (function () { 1956 var d = a.fallback_audio; 1957 if (setTimeout(function () { 1958 d.playbackRate = a.fallback_playbackrate 1959 }, 50), d.onloadedmetadata = function () { 1960 d.playbackRate = a.fallback_playbackrate 1961 }, 2 <= d.readyState) d.play(); else { 1962 var b = function () { 1963 d.play(), d.removeEventListener("canplaythrough", b) 1964 }; 1965 d.addEventListener("canplaythrough", b, !1) 1966 } 1967 }(), a.fallback_errors && (a.log("RV: Speech cancelled due to errors"), a.speech_onend()), a.fallback_audio.addEventListener("ended", a.fallback_finishPart), a.useTimer && a.startTimeout(a.multipartText[a.fallbackChunkIndex], a.fallback_finishPart)) 1968 }, a.isFallbackAudioPlaying = function () { 1969 var d; 1970 for (d = 0; d < a.fallback_audiopool.length; d++) { 1971 var e = a.fallback_audiopool[d]; 1972 if (!e.paused && !e.ended && e.currentTime != e.duration) return !0 1973 } 1974 return !1 1975 }, a.fallback_finishPart = function () { 1976 a.isFallbackAudioPlaying() ? (a.checkAndCancelTimeout(), a.timeoutId = setTimeout(a.fallback_finishPart, 1E3 * (a.fallback_audio.duration - a.fallback_audio.currentTime))) : (a.checkAndCancelTimeout(), a.fallbackChunkIndex < a.fallbackChunks.length - 1 ? (
1976a.fallbackChunkIndex++, a.fallback_startPart()) : a.speech_onend()) 1977 }, a.cancel = function () { 1978 a.checkAndCancelTimeout(), a.fallbackMode ? (null != a.fallback_audio && a.fallback_audio.pause(), a.clearFallbackPool()) : (a.cancelled = !0, speechSynthesis.cancel()) 1979 }, a.voiceSupport = function () { 1980 return "speechSynthesis" in window 1981 }, a.OnFinishedPlaying = function () { 1982 null != a.msgparameters && null != a.msgparameters.onend && a.msgparameters.onend() 1983 }, a.setDefaultVoice = function (d) { 1984 if (a.rvsMapped) { 1985 var b = a.getResponsiveVoice(d); 1986 null != b && (a.default_rv = b) 1987 } else setTimeout(function () { 1988 a.setDefaultVoice(d) 1989 }, 15) 1990 }, a.mapRVs = function () { 1991 if ("object" == typeof navigator) { 1992 var e, g = "anguage", i = navigator; 1993 i = (e = i["l" + g + "s"], e && e.length ? e : (g = i["l" + g] || i["browserL" + g] || i["userL" + g]) ? [g] : g) 1994 } else i = void 0; 1995 for (e = i[0], g = 0; g < a.responsivevoices.length; g++) { 1996 i = a.responsivevoices[g]; 1997 for (var j, l = 0; l < i.voiceIDs.length; l++) if (j = a.voicecollection[i.voiceIDs[l]], 1 != j.fallbackvoice) { 1998 var m = a.getSystemVoice(j.name); 1999 if (a.forcedFallbackMode && (m = null), a.iOS12_0 && i.lang.toLowerCase() != e.toLowerCase() && i.lang.toLowerCase().split("-")[0] != e.toLowerCase() && (m = null), null != m) { 2000 i.mappedProfile = {systemvoice: m, collectionvoice: j}; 2001 break 2002 } 2003 } else { 2004 i.mappedProfile = {systemvoice: {}, collectionvoice: j}; 2005 break 2006 } 2007 } 2008 a.rvsMapped = !0 2009 }, a.getMatchedVoice = function (e) { 2010 for (var b, f = 0; f < e.voiceIDs.length; f++) if (b = a.getSystemVoice(a.voicecollection[e.voiceIDs[f]].name), null != b) return b; 2011 return null 2012 }, a.getSystemVoice = function (e) { 2013 var b = String.fromCharCode(160), c = e.replace(/\s+|A?aâ¬s /g, ""); 2014 if ("undefined" == typeof a.systemvoices || null === a.systemvoices) return null; 2015 for (var d = 0; d < a.systemvoices.length; d++) if (0 === a.systemvoices[d].name.localeCompare(e) || 0 === a.systemvoices[d].name.replace(/\s+|A?aâ¬s /g, "").replace(/ *\([^)]*\) */g, "").localeCompare(c)) return a.systemvoices[d]; 2016 return null 2017 }, a.getResponsiveVoice = function (d) { 2018 for (var e = 0; e < a.responsivevoices.length; e++) if (a.responsivevoices[e].name == d) return d = a.fallbackMode, a.fallbackMode = !(!0 !== a.responsivevoices[e].mappedProfile.collectionvoice.fallbackvoice && !0 !== a.forcedFallbackMode), d != a.fallbackMode && (a.mapRVs(), a.Dispatch("OnServiceSwitched")), a.responsivevoices[e]; 2019 return null 2020 }, a.Dispatch = function (e) { 2021 if (a.hasOwnProperty(e + "_callbacks") && null != a[e + "_callbacks"] && 0 < a[e + "_callbacks"].length) { 2022 for (var b = a[e + "_callbacks"], c = 0; c < b.length; c++) b[c](); 2023 return !0 2024 } 2025 var f = e + "_callbacks_timeout", g = e + "_callbacks_timeoutCount"; 2026 return a.hasOwnProperty(f) || (a[g] = 10, a[f] = setInterval(function () { 2027 --a[g], (a.Dispatch(e) || 0 > a[g]) && clearTimeout(a[f]) 2028 }, 50)), !1 2029 }, a.AddEventListener = function (d, b) { 2030 a.hasOwnProperty(d + "_callbacks") || (a[d + "_callbacks"] = []), a[d + "_callbacks"].push(b) 2031 }, a.addEventListener = a.AddEventListener, a.RemoveEventListener = function (d, b) { 2032 a[d + "_callbacks"] && -1 != a[d + "_callbacks"].indexOf(b) && a[d + "_callbacks"].splice(a[d + "_callbacks"].indexOf(b), 1) 2033 }, a.clickEvent = function () { 2034 a.log("Click event"), a.click_event_detected = !0, a.initializePermissions(), a.userInteractionEvents.forEach(function (c) { 2035 window.removeEventListener(c, a.clickEvent, !1) 2036 }), a.Dispatch("OnClickEvent") 2037 }, a.initializePermissions = function () { 2038 if (a.iOS && !a.iOS_initialized) { 2039 a.log("Initializing iOS click event"); 2040 var c = new SpeechSynthesisUtterance(" "); 2041 speechSynthesis.speak(c), a.iOS_initialized = !0 2042 } 2043 a.is_android && !a.android_initialized && (a.log("Initializing Android click event"), c = new SpeechSynthesisUtterance(" "), speechSynthesis.speak(c)), a.initFallbackPool() 2044 }, a.isPlaying = function () { 2045 return a.fallbackMode ? null != a.fallback_audio && !a.fallback_audio.ended && !a.fallback_audio.paused : speechSynthesis.speaking 2046 }, a.clearFallbackPool = function () { 2047 for (var c = 0; c < a.fallback_audiopool.length; c++) null != a.fallback_audiopool[c] && (a.fallback_audiopool[c].pause(), a.fallback_audiopool[c].src = ""); 2048 a.fallback_audiopool_index = 0, a.fallbackChunks = [] 2049 }, a.initFallbackPool = function () { 2050 if (!a.fallback_audiopool || 0 == a.fallback_audiopool.length) { 2051 for (var e = 0; 10 > e; e++) { 2052 var f = e, c = document.createElement("AUDIO"); 2053 c.preload = "auto", a.is_android && (c.src = "", c.load(), 9 == f && (a.log("Android HTML audio initialized"), a.android_initialized = !0)), a.iOS && (c.src = "", c.load(), 9 == f && (a.log("iOS HTML audio initialized"), a.iOS_initialized = !0)), a.fallback_audiopool.push(c) 2054 } 2055 a.fallback_audiopool_index = 0 2056 } 2057 }, a.allowSpeechClicked = function (c) { 2058 a.allowSpeechDiv.parentNode.removeChild(a.allowSpeechDiv), a.allowSpeechDiv = null, (a.speechAllowedByUser = c) && (a.clickEvent(), a.scheduledSpeak && (a.speak(a.scheduledSpeak.text, a.scheduledSpeak.voicename, a.scheduledSpeak.parameters), a.scheduledSpeak = null)), a.Dispatch("OnAllowSpeechClicked") 2059 }, a.checkSpeechAllowed = function (d) { 2060 if (0 == a.speechAllowedByUser) return !1; 2061 if ((a.is_android || a.iOS || a.is_safari && (a.fallbackMode || a.forcedFallbackMode)) && !a.click_event_detected) { 2062 if (a.allowSpeechDiv) return; 2063 if (a.allowSpeechDiv_appearances = null == a.allowSpeechDiv_appearances ? 1 : ++a.allowSpeechDiv_appearances, 2 < a.allowSpeechDiv_appearances) return console.log("ResponsiveVoice: Speech not allowed by user"), !1; 2064 var e = document.createElement("style"); 2065 return e.innerHTML = ".rvNotification{position:fixed;background-color:#fff;text-align:center;font-family:-apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;font-weight:400;line-height:1.5;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);z-index:10000;width:100vw;left:0;bottom:0;font-size:1rem;padding-bottom:.5em;padding-right:.5em}.rvButtonRow{padding-right:2em;padding-bottom:1em;text-align:right;font-size:medium}
2065.rvButton{cursor:pointer;display:inline-block;margin-left:1em;padding:.8em 2em;border-radius:3px;font-size:small}.rvButtonAllow{border:none;background-color:#2b8cff;color:#fff}.rvButtonDeny{border:1px solid #2b8cff;color:#2b8cff;background-color:#fff}.rvTextRow{padding-top:1em;padding-bottom:2em}@media (min-width:576px){.rvNotification{width:60vw;left:20vw}}@media (min-width:768px){.rvNotification{width:50vw;left:25vw}}@media (min-width:992px){.rvNotification{width:40vw;left:30vw}}@media (min-width:1200px){.rvNotification{width:30vw;left:35vw}}", document.body.appendChild(e), a.allowSpeechDiv = document.createElement("div"), a.allowSpeechDiv.classList.add("rvNotification"), null == d && (d = {}), a.allowSpeechDiv.innerHTML = "<div class=\"rvTextRow\"><strong>" + (null == d.urlOverride ? window.location.hostname : d.urlOverride) + "</strong> " + (null == d.textOverride ? "wants to play speech" : d.textOverride) + "</div><div class=\"rvButtonRow\"><div onclick=\"responsiveVoice.allowSpeechClicked(false);\" class=\"rvButton rvButtonDeny\">DENY</div><div onclick=\"responsiveVoice.allowSpeechClicked(true);\" class=\"rvButton rvButtonAllow\">ALLOW</div></div>", document.body.appendChild(a.allowSpeechDiv), !1 2066 } 2067 return !0 2068 }, a.fallback_audioPool_getAudio = function () { 2069 return a.initFallbackPool(), a.fallback_audiopool_index >= a.fallback_audiopool.length && (a.fallback_audiopool_index = 0), a.fallback_audiopool[a.fallback_audiopool_index++] 2070 }, a.fallback_updateChunksBuffer = function () { 2071 for (var d, e = a.fallbackChunkIndex; e < Math.min(a.fallbackChunks.length, a.fallbackChunkIndex + a.fallbackBufferLength); e++) d = a.fallbackChunks[e], null == d.audio && (d.audio = a.fallback_audioPool_getAudio(), d.audio.src = d.url, d.audio.playbackRate = a.fallback_playbackrate, d.audio.preload = "auto", d.audio.load()) 2072 }, a.selectBest = function (c) { 2073 for (var a = 0; a < c.length; a++) if (null != c[a]) return c[a]; 2074 return null 2075 }, a.pause = function () { 2076 a.fallbackMode ? null != a.fallback_audio && a.fallback_audio.pause() : speechSynthesis.pause() 2077 }, a.resume = function () { 2078 a.fallbackMode ? null != a.fallback_audio && a.fallback_audio.play() : speechSynthesis.resume() 2079 }, a.tts_speak = function (c) { 2080 setTimeout(function () { 2081 a.cancelled = !1, speechSynthesis.speak(c) 2082 }, .01) 2083 }, a.setVolume = function (d) { 2084 if (a.isPlaying()) if (a.fallbackMode) { 2085 for (var b = 0; b < a.fallback_audiopool.length; b++) a.fallback_audiopool[b].volume = d; 2086 a.fallback_audio.volume = d 2087 } else for (b = 0; b < a.utterances.length; b++) a.utterances[b].volume = d 2088 }, a.onPartEnd = function (c) { 2089 null != a.msgparameters && null != a.msgparameters.onchuckend && a.msgparameters.onchuckend(), a.Dispatch("OnPartEnd"), c = a.utterances.indexOf(c.utterance), a.currentMsg = a.utterances[c + 1] 2090 }, a.onboundary = function () { 2091 a.log("On Boundary"), a.iOS && !a.onstartFired && a.speech_onstart() 2092 }, a.numToWords = function (g) { 2093 function i(d) { 2094 if (Array.isArray(d)) { 2095 for (var a = 0, e = Array(d.length); a < d.length; a++) e[a] = d[a]; 2096 return e 2097 } 2098 return Array.from(d) 2099 } 2100 2101 var j = function () { 2102 return function (i, a) { 2103 if (Array.isArray(i)) return i; 2104 if (Symbol.iterator in Object(i)) { 2105 var b, j = [], c = !0, k = !1; 2106 try { 2107 for (var l, m = i[Symbol.iterator](); !(c = (l = m.next()).done) && (j.push(l.value), !a || j.length !== a); c = !0) ; 2108 } catch (a) { 2109 k = !0, b = a 2110 } finally { 2111 try { 2112 !c && m["return"] && m["return"]() 2113 } finally { 2114 if (k) throw b 2115 } 2116 } 2117 return j 2118 }
2119 throw new TypeError("Invalid attempt to destructure non-iterable instance") 2120 } 2121 }(), c = function (b) { 2122 return 0 === b.length 2123 }, d = function (c) { 2124 return function (a) { 2125 return a.slice(0, c) 2126 } 2127 }, h = function (c) { 2128 return function (a) { 2129 return a.slice(c) 2130 } 2131 }, b = function (d) { 2132 return function (a) { 2133 return function (b) { 2134 return d(a(b)) 2135 } 2136 } 2137 }, 2138 e = ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"], 2139 f = ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"], 2140 k = ["", "thousand", "million", "billion", "trillion", "quadrillion", "quintillion", "sextillion", "septillion", "octillion", "nonillion"]; 2141 return "number" == typeof g ? a.numToWords(g + "") : "0" === g ? "zero" : b(function e(f) { 2142 return function (a) { 2143 return c(a) ? [] : [d(f)(a)].concat(i(e(f)(h(f)(a)))) 2144 } 2145 }(3))(function (b) { 2146 return b.slice(0).reverse() 2147 })(Array.from(g)).map(function (d) { 2148 var g = j(d, 3); 2149 d = g[0]; 2150 var h = g[1]; 2151 return g = g[2], [0 === (+g || 0) ? "" : e[g] + " hundred ", 0 === (+d || 0) ? f[h] : f[h] && f[h] + " " || "", e[h + d] || e[d]].join("") 2152 }).map(function (c, a) { 2153 return "" === c ? c : c + " " + k[a] 2154 }).filter(b(function (b) { 2155 return !b 2156 })(c)).reverse().join(" ").trim() 2157 }, a.getWords = function (e) { 2158 e = e.replace(/$|\u00a5|\u20a1|\u20ac|\u00a3|\u20aa|\u20b9|\uffe5|\u17db|\u20a9|\u20a6|\u0e3f|\u20b4|\u20ab/gi, " dummy currency "); 2159 var f = e.split(/(\s*[\s,]\s*|\?|;|:|\.|\(|\)|!)/); 2160 f = f.filter(function (b) { 2161 return /[^\s]/.test(b) 2162 }); 2163 for (var g = 0; g < f.length; g++) null != (e = f[g].toString().match(/\d+/)) && (f.splice(g, 1), a.numToWords(+e[0]).split(/\s+/).map(function (b) { 2164 f.push(b) 2165 })); 2166 return f 2167 }, a.getEstimatedTimeLength = function (e, b) { 2168 var i = a.getWords(e), d = 0, j = a.fallbackMode ? 1300 : 700; 2169 b = b || 1, i.map(function (b) { 2170 d += (b.toString().match(/[^ ]/igm) || b).length 2171 }); 2172 var k = i.length, f = 1E3 * (60 / a.WORDS_PER_MINUTE * b) * k; 2173 return 5 > k && (f = b * (j + 50 * d)), a.log("Estimated time length: " + f + " ms, words: [" + i + "], charsCount: " + d), f 2174 }, a.validateParameters = function (d, a) { 2175 if ("undefined" == typeof d[a]) return d[a]; 2176 switch (a) { 2177 case"rate": 2178 case"pitch": 2179 case"volume": 2180 var c = +d[a]; 2181 isNaN(c) && console.warn("ResponsiveVoice: the parameter " + a + " has a wrong value \"" + d[a] + "\". Defaults were used."), d[a] = isNaN(c) ? "1" : d[a]; 2182 } 2183 return d[a] 2184 }, a.services = { 2185 NATIVE_TTS: 0, 2186 FALLBACK_AUDIO: 1 2187 }, a.servicesPriority = [0, 1], a.servicesEnabled = [], a.setServiceEnabled = function (d, b) { 2188 a.servicesEnabled[d] = b 2189 }, a.getServiceEnabled = function (c) { 2190 return a.servicesEnabled[c] || !1 2191 }, a.setServiceEnabled(a.services.NATIVE_TTS, !0), a.setServiceEnabled(a.services.FALLBACK_AUDIO, !0),a.forceFallbackMode = function (c) { 2192 a.forcedFallbackMode = c, a.fallbackMode = c, a.mapRVs(), a.Dispatch("OnServiceSwitched") 2193 },a.enableWindowClickHook = function () { 2194 a.userInteractionEvents.forEach(function (c) { 2195 window.addEventListener(c, a.clickEvent, !1) 2196 }) 2197 },"interactive" === document.readyState ? a.init() : document.addEventListener("DOMContentLoaded", function () { 2198 a.init() 2199 }) 2200}, responsiveVoice = new ResponsiveVoice;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.