mespeak
Version:
Text to speech synthesizer
1,705 lines (1,607 loc) • 4.94 MB
JavaScript
module.exports = function ESpeak() {
// emscripten implementation
var vprint = console.warn
var Module = {
noInitialRun: true
};
// WARNING: .ll contains i64 or double values. These 64-bit values are dangerous in USE_TYPED_ARRAYS == 2.
// We store i64 as i32, and double as float. This can cause serious problems!
"use strict";
/*
// Capture the output of this into a variable, if you want
(function(Module, args) {
Module = Module || {};
Module.arguments = args || [];
*/
///*
// Runs much faster, for some reason
if (!this.Module) {
this.Module = {};
}
if (!Module.arguments) {
try {
Module.arguments = scriptArgs;
} catch(e) {
try {
Module.arguments = arguments;
} catch(e) {
Module.arguments = [];
}
}
}
//*/
// === Auto-generated preamble library stuff ===
//========================================
// Runtime code shared with compiler
//========================================
var Runtime = {
stackSave: function () {
return STACKTOP;
},
stackRestore: function (stackTop) {
STACKTOP = stackTop;
},
forceAlign: function (target, quantum) {
quantum = quantum || 4;
if (isNumber(target) && isNumber(quantum)) {
return Math.ceil(target/quantum)*quantum;
} else {
return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum;
}
},
isNumberType: function (type) {
return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES;
},
isPointerType: function isPointerType(type) {
return pointingLevels(type) > 0;
},
isStructType: function isStructType(type) {
if (isPointerType(type)) return false;
if (new RegExp(/^\[\d+\ x\ (.*)\]/g).test(type)) return true; // [15 x ?] blocks. Like structs
if (new RegExp(/<?{ [^}]* }>?/g).test(type)) return true; // { i32, i8 } etc. - anonymous struct types
// See comment in isStructPointerType()
return !Runtime.isNumberType(type) && type[0] == '%';
},
INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},
FLOAT_TYPES: {"float":0,"double":0},
or64: function (x, y) {
var l = (x | 0) | (y | 0);
var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296;
return l + h;
},
and64: function (x, y) {
var l = (x | 0) & (y | 0);
var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296;
return l + h;
},
xor64: function (x, y) {
var l = (x | 0) ^ (y | 0);
var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296;
return l + h;
},
getNativeFieldSize: function getNativeFieldSize(type) {
return Math.max(Runtime.getNativeTypeSize(type), 4);
},
getNativeTypeSize: function getNativeTypeSize(type) {
if (4 == 1) return 1;
var size = {
'_i1': 1,
'_i8': 1,
'_i16': 2,
'_i32': 4,
'_i64': 8,
"_float": 4,
"_double": 8
}['_'+type]; // add '_' since float&double confuse Closure compiler as keys.
if (!size && type[type.length-1] == '*') {
size = 4; // A pointer
}
return size;
},
dedup: function dedup(items, ident) {
var seen = {};
if (ident) {
return items.filter(function(item) {
if (seen[item[ident]]) return false;
seen[item[ident]] = true;
return true;
});
} else {
return items.filter(function(item) {
if (seen[item]) return false;
seen[item] = true;
return true;
});
}
},
set: function set() {
var args = typeof arguments[0] === 'object' ? arguments[0] : arguments;
var ret = {};
for (var i = 0; i < args.length; i++) {
ret[args[i]] = 0;
}
return ret;
},
calculateStructAlignment: function calculateStructAlignment(type) {
type.flatSize = 0;
type.alignSize = 0;
var diffs = [];
var prev = -1;
type.flatIndexes = type.fields.map(function(field) {
var size, alignSize;
if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) {
size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s.
alignSize = size;
} else if (Runtime.isStructType(field)) {
size = Types.types[field].flatSize;
alignSize = Types.types[field].alignSize;
} else {
dprint('Unclear type in struct: ' + field + ', in ' + type.name_ + ' :: ' + dump(Types.types[type.name_]));
assert(0);
}
alignSize = type.packed ? 1 : Math.min(alignSize, 4);
type.alignSize = Math.max(type.alignSize, alignSize);
var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory
type.flatSize = curr + size;
if (prev >= 0) {
diffs.push(curr-prev);
}
prev = curr;
return curr;
});
type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize);
if (diffs.length == 0) {
type.flatFactor = type.flatSize;
} else if (Runtime.dedup(diffs).length == 1) {
type.flatFactor = diffs[0];
}
type.needsFlattening = (type.flatFactor != 1);
return type.flatIndexes;
},
generateStructInfo: function (struct, typeName, offset) {
var type, alignment;
if (typeName) {
offset = offset || 0;
type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName];
if (!type) return null;
if (!struct) struct = (typeof Types === 'undefined' ? Runtime : Types).structMetadata[typeName.replace(/.*\./, '')];
if (!struct) return null;
assert(type.fields.length === struct.length, 'Number of named fields must match the type for ' + typeName + '. Perhaps due to inheritance, which is not supported yet?');
alignment = type.flatIndexes;
} else {
var type = { fields: struct.map(function(item) { return item[0] }) };
alignment = Runtime.calculateStructAlignment(type);
}
var ret = {
__size__: type.flatSize
};
if (typeName) {
struct.forEach(function(item, i) {
if (typeof item === 'string') {
ret[item] = alignment[i] + offset;
} else {
// embedded struct
var key;
for (var k in item) key = k;
ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]);
}
});
} else {
struct.forEach(function(item, i) {
ret[item[1]] = alignment[i];
});
}
return ret;
},
stackAlloc: function stackAlloc(size) { var ret = STACKTOP; _memset(STACKTOP, 0, size); STACKTOP += size;STACKTOP = Math.ceil((STACKTOP)/4)*4;; return ret; },
staticAlloc: function staticAlloc(size) { var ret = STATICTOP; STATICTOP += size;STATICTOP = Math.ceil((STATICTOP)/4)*4;; return ret; },
alignMemory: function alignMemory(size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 4))*(quantum ? quantum : 4);; return ret; },
__dummy__: 0
}
var CorrectionsMonitor = {
MAX_ALLOWED: 0, // XXX
corrections: 0,
sigs: {},
note: function(type, succeed, sig) {
if (!succeed) {
this.corrections++;
if (this.corrections >= this.MAX_ALLOWED) abort('\n\nToo many corrections!');
}
},
vprint: function() {
var items = [];
for (var sig in this.sigs) {
items.push({
sig: sig,
fails: this.sigs[sig][0],
succeeds: this.sigs[sig][1],
total: this.sigs[sig][0] + this.sigs[sig][1]
});
}
items.sort(function(x, y) { return y.total - x.total; });
for (var i = 0; i < items.length; i++) {
var item = items[i];
vprint(item.sig + ' : ' + item.total + ' hits, %' + (Math.ceil(100*item.fails/item.total)) + ' failures');
}
}
};
function cRound(x) {
return x >= 0 ? Math.floor(x) : Math.ceil(x);
}
//========================================
// Runtime essentials
//========================================
var __globalConstructor__ = function globalConstructor() {
};
var __THREW__ = false; // Used in checking for thrown exceptions.
var __ATEXIT__ = [];
var ABORT = false;
var undef = 0;
var tempValue, tempInt, tempBigInt;
function abort(text) {
vprint(text + ':\n' + (new Error).stack);
ABORT = true;
throw "Assertion: " + text;
}
function assert(condition, text) {
if (!condition) {
abort('Assertion failed: ' + text);
}
}
// Sets a value in memory in a dynamic way at run-time. Uses the
// type data. This is the same as makeSetValue, except that
// makeSetValue is done at compile-time and generates the needed
// code then, whereas this function picks the right code at
// run-time.
function setValue(ptr, value, type) {
if (type[type.length-1] === '*') type = 'i32'; // pointers are 32-bit
switch(type) {
case 'i1': HEAP8[(ptr)]=value;; break;
case 'i8': HEAP8[(ptr)]=value;; break;
case 'i16': HEAP16[((ptr)>>1)]=value;; break;
case 'i32': HEAP32[((ptr)>>2)]=value;; break;
case 'i64': HEAP32[((ptr)>>2)]=value;; break;
case 'float': HEAPF32[((ptr)>>2)]=value;; break;
case 'double': HEAPF32[((ptr)>>2)]=value;; break;
default: abort('invalid type for setValue: ' + type);
}
}
Module.setValue = setValue;
// Parallel to setValue.
function getValue(ptr, type) {
if (type[type.length-1] === '*') type = 'i32'; // pointers are 32-bit
switch(type) {
case 'i1': return HEAP8[(ptr)];
case 'i8': return HEAP8[(ptr)];
case 'i16': return HEAP16[((ptr)>>1)];
case 'i32': return HEAP32[((ptr)>>2)];
case 'i64': return HEAP32[((ptr)>>2)];
case 'float': return HEAPF32[((ptr)>>2)];
case 'double': return HEAPF32[((ptr)>>2)];
default: abort('invalid type for setValue: ' + type);
}
return null;
}
Module.getValue = getValue;
// Allocates memory for some data and initializes it properly.
var ALLOC_NORMAL = 0; // Tries to use _malloc()
var ALLOC_STACK = 1; // Lives for the duration of the current function call
var ALLOC_STATIC = 2; // Cannot be freed
Module.ALLOC_NORMAL = ALLOC_NORMAL;
Module.ALLOC_STACK = ALLOC_STACK;
Module.ALLOC_STATIC = ALLOC_STATIC;
function allocate(slab, types, allocator) {
var zeroinit, size;
if (typeof slab === 'number') {
zeroinit = true;
size = slab;
} else {
zeroinit = false;
size = slab.length;
}
var ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, 1));
var singleType = typeof types === 'string' ? types : null;
var i = 0, type;
while (i < size) {
var curr = zeroinit ? 0 : slab[i];
if (typeof curr === 'function') {
curr = Runtime.getFunctionIndex(curr);
}
type = singleType || types[i];
if (type === 0) {
i++;
continue;
}
setValue(ret+i, curr, type);
i += Runtime.getNativeTypeSize(type);
}
return ret;
}
Module.allocate = allocate;
function Pointer_stringify(ptr) {
var ret = "";
var i = 0;
var t;
var nullByte = String.fromCharCode(0);
while (1) {
t = String.fromCharCode(HEAPU8[(ptr+i)]);
if (t == nullByte) { break; } else {}
ret += t;
i += 1;
}
return ret;
}
Module.Pointer_stringify = Pointer_stringify;
function Array_stringify(array) {
var ret = "";
for (var i = 0; i < array.length; i++) {
ret += String.fromCharCode(array[i]);
}
return ret;
}
Module.Array_stringify = Array_stringify;
// Memory management
var FUNCTION_TABLE; // XXX: In theory the indexes here can be equal to pointers to stacked or malloced memory. Such comparisons should
// be false, but can turn out true. We should probably set the top bit to prevent such issues.
var PAGE_SIZE = 4096;
function alignMemoryPage(x) {
return Math.ceil(x/PAGE_SIZE)*PAGE_SIZE;
}
var HEAP;
var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32;
var STACK_ROOT, STACKTOP, STACK_MAX;
var STATICTOP;
var HAS_TYPED_ARRAYS = false;
var TOTAL_MEMORY = Module.TOTAL_MEMORY || 52428800;
var FAST_MEMORY = Module.FAST_MEMORY || 2097152;
// Initialize the runtime's memory
HAS_TYPED_ARRAYS = false;
try {
HAS_TYPED_ARRAYS = !!Int32Array && !!Float32Array && !!(new Int32Array(1).subarray); // check for full engine support (use string 'subarray' to avoid closure compiler confusion)
} catch(e) {}
if (HAS_TYPED_ARRAYS) {
var buffer = new ArrayBuffer(TOTAL_MEMORY);
HEAP8 = new Int8Array(buffer);
HEAP16 = new Int16Array(buffer);
HEAP32 = new Int32Array(buffer);
HEAPU8 = new Uint8Array(buffer);
HEAPU16 = new Uint16Array(buffer);
HEAPU32 = new Uint32Array(buffer);
HEAPF32 = new Float32Array(buffer);
// Endianness check (note: assumes compiler arch was little-endian)
HEAP32[0] = 255;
assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system');
} else
{
// Make sure that our HEAP is implemented as a flat array.
HEAP = new Array(TOTAL_MEMORY);
for (var i = 0; i < FAST_MEMORY; i++) {
HEAP[i] = 0; // XXX We do *not* use {{| makeSetValue(0, 'i', 0, 'null') |}} here, since this is done just to optimize runtime speed
}
abort('Cannot fallback to non-typed array case in USE_TYPED_ARRAYS == 2: Code is too specialized');
}
var base = intArrayFromString('(null)'); // So printing %s of NULL gives '(null)'
// Also this ensures we leave 0 as an invalid address, 'NULL'
for (var i = 0; i < base.length; i++) {
HEAP8[(i)]=base[i];
}
Module.HEAP = HEAP;
Module.HEAP8 = HEAP8;
Module.HEAP16 = HEAP16;
Module.HEAP32 = HEAP32;
Module.HEAPU8 = HEAPU8;
Module.HEAPU16 = HEAPU16;
Module.HEAPU32 = HEAPU32;
Module.HEAPF32 = HEAPF32;
STACK_ROOT = STACKTOP = alignMemoryPage(10);
var TOTAL_STACK = 1024*1024; // XXX: Changing this value can lead to bad perf on v8!
STACK_MAX = STACK_ROOT + TOTAL_STACK;
STATICTOP = alignMemoryPage(STACK_MAX);
function __shutdownRuntime__() {
while(__ATEXIT__.length > 0) {
var atexit = __ATEXIT__.pop();
var func = atexit.func;
if (typeof func === 'number') {
func = FUNCTION_TABLE[func];
}
func(atexit.arg === undefined ? null : atexit.arg);
}
// allow browser to GC, set heaps to null?
// Print summary of correction activity
CorrectionsMonitor.vprint();
}
// Copies a list of num items on the HEAP into a
// a normal JavaScript array of numbers
function Array_copy(ptr, num) {
// TODO: In the SAFE_HEAP case, do some reading here, for debugging purposes - currently this is an 'unnoticed read'.
if (HAS_TYPED_ARRAYS) {
return Array.prototype.slice.call(HEAP8.subarray(ptr, ptr+num)); // Make a normal array out of the typed 'view'
// Consider making a typed array here, for speed?
} else {
return HEAP8.slice(ptr, ptr+num);
}
return HEAP.slice(ptr, ptr+num);
}
Module.Array_copy = Array_copy;
function String_len(ptr) {
var i = 0;
while (HEAP8[(ptr+i)]) i++; // Note: should be |!= 0|, technically. But this helps catch bugs with undefineds
return i;
}
Module.String_len = String_len;
// Copies a C-style string, terminated by a zero, from the HEAP into
// a normal JavaScript array of numbers
function String_copy(ptr, addZero) {
var len = String_len(ptr);
if (addZero) len++;
var ret = Array_copy(ptr, len);
if (addZero) ret[len-1] = 0;
return ret;
}
Module.String_copy = String_copy;
// Tools
this.vprint = function(x) {console.warn(x)}
// This processes a JS string into a C-line array of numbers, 0-terminated.
// For LLVM-originating strings, see parser.js:parseLLVMString function
function intArrayFromString(stringy, dontAddNull) {
var ret = [];
var t;
var i = 0;
while (i < stringy.length) {
var chr = stringy.charCodeAt(i);
if (chr > 0xFF) {
chr &= 0xFF;
}
ret.push(chr);
i = i + 1;
}
if (!dontAddNull) {
ret.push(0);
}
return ret;
}
Module.intArrayFromString = intArrayFromString;
function intArrayToString(array) {
var ret = [];
for (var i = 0; i < array.length; i++) {
var chr = array[i];
if (chr > 0xFF) {
chr &= 0xFF;
}
ret.push(String.fromCharCode(chr));
}
return ret.join('');
}
Module.intArrayToString = intArrayToString;
function unSign(value, bits, ignore, sig) {
if (value >= 0) {
return value;
}
return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
: Math.pow(2, bits) + value;
// TODO: clean up previous line
}
function reSign(value, bits, ignore, sig) {
if (value <= 0) {
return value;
}
var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
: Math.pow(2, bits-1);
if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
}
return value;
}
// === Body ===
Runtime.QUANTUM_SIZE = 4
var $struct___sFILE___SIZE = 104; // %struct.__sFILE
var $struct___sFILE___FLATTENER = [0,4,8,12,14,16,24,28,32,36,40,44,48,56,60,64,67,68,76,80,84,88,92,100];
var $struct___sbuf___SIZE = 8; // %struct.__sbuf
var $struct__reent___SIZE = 1060; // %struct._reent
var $struct__reent___FLATTENER = [0,4,8,12,16,20,48,52,56,60,64,68,72,76,80,84,88,328,332,732,736,748];
var $struct__Bigint___SIZE = 24; // %struct._Bigint
var $union_anon_0___SIZE = 240; // %union.anon.0
var $struct_anon_1___SIZE = 240; // %struct.anon.1
var $struct__atexit___SIZE = 400; // %struct._atexit
var $struct__atexit___FLATTENER = [0,4,8,136];
var $struct__on_exit_args___SIZE = 264; // %struct._on_exit_args
var $struct__on_exit_args___FLATTENER = [0,128,256,260];
var $struct__glue___SIZE = 12; // %struct._glue
var $struct__mbstate_t___SIZE = 8; // %struct._mbstate_t
var $union_anon___SIZE = 4; // %union.anon
var $struct_option___SIZE = 16; // %struct.option
var $struct_MNEM_TAB___SIZE = 8; // %struct.MNEM_TAB
var $struct_MatchRecord___SIZE = 16; // %struct.MatchRecord
var $struct_TUNE___SIZE = 68; // %struct.TUNE
var $struct_TUNE___FLATTENER = [0,12,16,24,25,26,27,28,29,30,31,32,33,34,35,36,39,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,64];
var $struct_SYLLABLE___SIZE = 6; // %struct.SYLLABLE
var $struct_TONE_HEAD___SIZE = 16; // %struct.TONE_HEAD
var $struct_TONE_HEAD___FLATTENER = [0,1,2,3,4,8,9,10,12];
var $struct_SSML_STACK___SIZE = 76; // %struct.SSML_STACK
var $struct_SSML_STACK___FLATTENER = [0,4,8,12,16,56];
var $struct_PARAM_STACK_45___SIZE = 64; // %struct.PARAM_STACK.45
var $struct_ACCENTS___SIZE = 8; // %struct.ACCENTS
var $struct_MBROLA_TAB___SIZE = 24; // %struct.MBROLA_TAB
var $struct_PHONEME_TAB___SIZE = 16; // %struct.PHONEME_TAB
var $struct_PHONEME_TAB___FLATTENER = [0,4,8,10,11,12,13,14,15];
var $struct_PHONEME_TAB_LIST_106___SIZE = 48; // %struct.PHONEME_TAB_LIST.106
var $struct_PHONEME_TAB_LIST_106___FLATTENER = [0,32,36,40,44];
var $struct_frameref_t___SIZE = 8; // %struct.frameref_t
var $struct_frame_t___SIZE = 64; // %struct.frame_t
var $struct_frame_t___FLATTENER = [0,2,16,17,18,26,32,35,39,44,49,56,63];
var $struct_PHONEME_DATA___SIZE = 152; // %struct.PHONEME_DATA
var $struct_PHONEME_DATA___FLATTENER = [0,4,68,88,108,124,128,132];
var $struct_PHONEME_LIST___SIZE = 24; // %struct.PHONEME_LIST
var $struct_PHONEME_LIST___FLATTENER = [0,1,2,3,4,6,8,12,14,15,16,17,18,19,20,21];
var $struct_SPEED_FACTORS___SIZE = 64; // %struct.SPEED_FACTORS
var $struct_voice_t___SIZE = 1344; // %struct.voice_t
var $struct_voice_t___FLATTENER = [0,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,144,162,180,198,216,234,252,272,308,344];
var $struct_SOUND_ICON___SIZE = 16; // %struct.SOUND_ICON
var $struct_Translator___SIZE = 8328; // %struct.Translator
var $struct_Translator___FLATTENER = [0,280,284,288,292,332,632,652,656,660,668,676,692,696,700,704,708,964,968,1000,1048,1052,1056,5152,5256,6280,6792,7272,7752,7756,8012,8268,8272,8276,8280,8284,8288,8292,8296,8300,8304,8308,8312,8316,8320,8324];
var $struct_LANGUAGE_OPTIONS___SIZE = 280; // %struct.LANGUAGE_OPTIONS
var $struct_LANGUAGE_OPTIONS___FLATTENER = [0,4,8,12,16,20,24,100,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,240,244,248,249,250,251,252,256,260,264,268,272,276];
var $struct_PHONEME_LIST2___SIZE = 8; // %struct.PHONEME_LIST2
var $struct_PHONEME_LIST2___FLATTENER = [0,1,2,3,4,6];
var $struct_REPLACE_PHONEMES___SIZE = 3; // %struct.REPLACE_PHONEMES
var $struct_datablock___SIZE = 16; // %struct.datablock
var $struct_espeak_VOICE___SIZE = 24; // %struct.espeak_VOICE
var $struct_espeak_VOICE___FLATTENER = [0,4,8,12,13,14,15,16,20];
var $struct_wavegen_peaks_t___SIZE = 80; // %struct.wavegen_peaks_t
var $struct_wavegen_peaks_t___FLATTENER = [0,4,8,12,16,24,32,40,48,56,64,72];
var $struct_RESONATOR___SIZE = 40; // %struct.RESONATOR
var $struct_WGEN_DATA___SIZE = 64; // %struct.WGEN_DATA
var $struct_sonicStreamStruct___SIZE = 88; // %struct.sonicStreamStruct
var $struct_klatt_frame_t___SIZE = 288; // %struct.klatt_frame_t
var $struct_klatt_frame_t___FLATTENER = [0,4,8,48,88,128,168,172,176,180,184,188,192,196,200,204,208,248];
var $struct_klatt_global_t___SIZE = 2748; // %struct.klatt_global_t
var $struct_klatt_global_t___FLATTENER = [0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,64,72,80,88,96,104,112,120,128,136,144,152,160,164,172,176,180,184,188,1468];
var $struct_resonator_t___SIZE = 64; // %struct.resonator_t
var $struct_klatt_peaks_t___SIZE = 80; // %struct.klatt_peaks_t
var $struct_klatt_peaks_t___FLATTENER = [0,4,8,12,16,24,32,40,48,56,64,72];
var $struct_frame_t_199___SIZE = 64; // %struct.frame_t.199
var $struct_frame_t_199___FLATTENER = [0,2,16,17,18,26,32,35,39,44,49,56,63];
var $struct_stat___SIZE = 80; // %struct.stat
var $struct_stat___FLATTENER = [0,8,12,16,20,24,28,36,40,44,48,52,56,60,64,68,72];
var $struct_PARAM_STACK___SIZE = 64; // %struct.PARAM_STACK
var $struct_PHONEME_TAB_LIST___SIZE = 48; // %struct.PHONEME_TAB_LIST
var $struct_PHONEME_TAB_LIST___FLATTENER = [0,32,36,40,44];
var $struct_PHONEME_TAB_11___SIZE = 16; // %struct.PHONEME_TAB.11
var $struct_PHONEME_TAB_11___FLATTENER = [0,4,8,10,11,12,13,14,15];
var $struct_RGROUP___SIZE = 28; // %struct.RGROUP
var $struct_RGROUP___FLATTENER = [0,16,20,24];
var $struct_WORD_TAB___SIZE = 12; // %struct.WORD_TAB
var $struct_WORD_TAB___FLATTENER = [0,4,6,8,9,10];
var $struct_PHONEME_TAB_LIST_25___SIZE = 48; // %struct.PHONEME_TAB_LIST.25
var $struct_PHONEME_TAB_LIST_25___FLATTENER = [0,32,36,40,44];
var $struct_WORD_TAB_29___SIZE = 12; // %struct.WORD_TAB.29
var $struct_WORD_TAB_29___FLATTENER = [0,4,6,8,9,10];
var $struct_Translator_33___SIZE = 8328; // %struct.Translator.33
var $struct_Translator_33___FLATTENER = [0,280,284,288,292,332,632,652,656,660,668,676,692,696,700,704,708,964,968,1000,1048,1052,1056,5152,5256,6280,6792,7272,7752,7756,8012,8268,8272,8276,8280,8284,8288,8292,8296,8300,8304,8308,8312,8316,8320,8324];
var $struct_LANGUAGE_OPTIONS_32___SIZE = 280; // %struct.LANGUAGE_OPTIONS.32
var $struct_LANGUAGE_OPTIONS_32___FLATTENER = [0,4,8,12,16,20,24,100,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,240,244,248,249,250,251,252,256,260,264,268,272,276];
var $struct_TONE_NUCLEUS___SIZE = 16; // %struct.TONE_NUCLEUS
var $struct_TONE_NUCLEUS___FLATTENER = [0,1,2,3,4,5,8,12,13,14];
var $struct_PARAM_STACK_54___SIZE = 64; // %struct.PARAM_STACK.54
var $struct_FMT_PARAMS___SIZE = 48; // %struct.FMT_PARAMS
var $struct_FMT_PARAMS_111___SIZE = 48; // %struct.FMT_PARAMS.111
var $struct_SPECT_SEQ___SIZE = 1104; // %struct.SPECT_SEQ
var $struct_SPECT_SEQ___FLATTENER = [0,2,3,4];
var $struct_frame_t2___SIZE = 44; // %struct.frame_t2
var $struct_frame_t2___FLATTENER = [0,2,16,17,18,26,32,35,39];
var $struct_SPECT_SEQK___SIZE = 1604; // %struct.SPECT_SEQK
var $struct_SPECT_SEQK___FLATTENER = [0,2,3,4];
var $struct_pollfd___SIZE = 8; // %struct.pollfd
var $struct_pollfd___FLATTENER = [0,4,6];
var $struct_dirent___SIZE = 1040; // %struct.dirent
var $struct_dirent___FLATTENER = [0,4,1028,1032,1036];
var $struct_getopt_data___SIZE = 20; // %struct.getopt_data
var _path_home;
var _filetype;
var _wavefile;
var _uri_callback;
var _phoneme_callback;
var _f_wave;
var _quiet;
var _samples_total;
var _samples_split;
var _wavefile_count;
var _end_of_sentence;
var _voice_pcnt;
var __impure_ptr;
var __ZZ13DisplayVoicesP7__sFILEPcE7genders;
var __str1;
var __str3;
var __str4;
var __str5;
var __ZZ4mainE12long_options;
var __str6;
var __str7;
var __str8;
var __str9;
var __str10;
var __str11;
var __str12;
var __str13;
var __str14;
var __str15;
var __str16;
var __str17;
var __str18;
var __str19;
var __str21;
var __str23;
var __str25;
var __str27;
var __str28;
var __str29;
var __str30;
var __ZZL12OpenWaveFilePKciE8wave_hdr;
var __str32;
var __str33;
var __str35;
var __str36;
var __str37;
var __str38;
var __str39;
var __str40;
var __str41;
var __ZL5f_log;
var __str42;
var __str143;
var __str244;
var __str345;
var __str446;
var __str547;
var __str648;
var _mnem_rules;
var __str749;
var __str850;
var __str951;
var __str1052;
var __str1153;
var __str1254;
var __str1355;
var __str1456;
var __str1557;
var __str1658;
var __str1759;
var __str1860;
var __str1961;
var __str2062;
var __str2163;
var __str2264;
var __str2365;
var __str2466;
var __str2567;
var __str2668;
var __str2769;
var __str2870;
var __str2971;
var __str3072;
var __str3173;
var __str3274;
var __str3375;
var __str3476;
var __str3577;
var __str3678;
var __str3779;
var __str3880;
var __str3981;
var __str4082;
var __str4183;
var __str4284;
var __str43;
var __str44;
var __str45;
var __str46;
var __str47;
var __str48;
var __str49;
var __str50;
var __str51;
var __str52;
var __str53;
var __str54;
var __str55;
var __str56;
var __str57;
var _mnem_flags;
var __ZZ22print_dictionary_flagsPjE3buf;
var __str59;
var __ZZ10DecodeRulePKciPciE6output;
var __ZZ10DecodeRulePKciPciE7symbols;
var __ZZ10DecodeRulePKciPciE10symbols_lg;
var __str60;
var __str61;
var __str62;
var __str64;
var __str65;
var __ZL11error_count;
var __ZL21error_need_dictionary;
var __ZL19letterGroupsDefined;
var __ZL10debug_flag;
var __str66;
var __str67;
var __str69;
var __str71;
var __str72;
var __str73;
var __str74;
var __str75;
var __str76;
var __str77;
var __str78;
var __ZL7linenum;
var __ZL10group_name;
var __str79;
var __ZL9group3_ix;
var __str81;
var __str82;
var __str83;
var __str84;
var __str85;
var __str89;
var __ZL9rule_cond;
var __ZL8rule_pre;
var __ZL9rule_post;
var __ZL10rule_match;
var __ZL13rule_phonemes;
var __str90;
var __str91;
var __str92;
var __str93;
var __str94;
var __str95;
var __ZZL16copy_rule_stringPcRiE6outbuf;
var __ZZL16copy_rule_stringPcRiE10next_state;
var __ZZL16copy_rule_stringPcRiE16lettergp_letters;
var __str97;
var __str98;
var __str99;
var __str100;
var __str101;
var __str102;
var __str103;
var __ZL11hash_chains;
var __ZL11hash_counts;
var __ZL9text_mode_b;
var __str104;
var __str106;
var __str107;
var __ZZL12compile_linePcS_PiE10nullstring;
var __str108;
var __str109;
var __str110;
var __str111;
var __str112;
var __str113;
var __str114;
var __str115;
var _dictionary_skipwords;
var _dictionary_name;
var __ZL13remove_accent;
var __str116;
var __str2118;
var __str3119;
var __str4120;
var __str5121;
var __str7123;
var _ipa1;
var __str8124;
var __str9125;
var __ZL15stress_phonemes;
var __ZZ13SetWordStressP10TranslatorPcPjiiE15consonant_types;
var __ZZ13SetWordStressP10TranslatorPcPjiiE8guess_ru;
var __ZZ13SetWordStressP10TranslatorPcPjiiE10guess_ru_v;
var __ZZ13SetWordStressP10TranslatorPcPjiiE10guess_ru_t;
var __ZZ14TranslateRulesP10TranslatorPcS1_iS1_iPjE9str_pause;
var __str10126;
var __str11127;
var __ZL13diereses_list;
var __ZZ14LookupDictListP10TranslatorPPcS1_PjiP8WORD_TABE16word_replacement;
var __str15131;
var __str16132;
var __ZZ11LookupFlagsP10TranslatorPKcE5flags;
var __ZZ12RemoveEndingP10TranslatorPciS1_E6ending;
var __ZZ12RemoveEndingP10TranslatorPciS1_E16add_e_exceptions;
var __str17133;
var __ZZ12RemoveEndingP10TranslatorPciS1_E15add_e_additions;
var __str18134;
var __str19135;
var __str20136;
var __str21137;
var __str22138;
var __str23139;
var __str24140;
var __str25141;
var __str27143;
var __str28144;
var __str29145;
var __str30146;
var __str31147;
var __ZZL9MatchRuleP10TranslatorPPcS1_iS1_P11MatchRecordiiE4best;
var __str32148;
var __str34150;
var _env_fall;
var _env_rise;
var _env_frise;
var __ZL11env_r_frise;
var __ZL10env_frise2;
var __ZL12env_r_frise2;
var __ZL12env_risefall;
var __ZL13env_fallrise3;
var __ZL13env_fallrise4;
var __ZL9env_fall2;
var __ZL9env_rise2;
var __ZL16env_risefallrise;
var _envelope_data;
var __ZL18tone_nucleus_table;
var _punctuation_to_tone;
var _n_tunes;
var _tunes;
var __ZL12syllable_tab;
var __ZL8no_tonic_b;
var __ZL15tone_head_table;
var __ZL10number_pre;
var __ZL10tone_posn2;
var __ZL9tone_posn;
var __ZL11number_tail;
var __ZL14tone_pitch_env;
var __ZZL18calc_pitch_segmentiiP9TONE_HEADP12TONE_NUCLEUSiiE12continue_tab;
var __ZL8min_drop;
var __ZL7drops_0;
var __ZL5oflow;
var __ZL9oflow_emf;
var __ZL10oflow_less;
var __ZL12last_primary;
var _namedata;
var __ZL7f_input;
var _p_textinput;
var _p_wchar_input;
var __ZL10ungot_word;
var _count_characters;
var __ZL10ssml_stack;
var __ZL16current_voice_id;
var _param_stack;
var _param_defaults;
var _walpha_tab;
var __ZL10ungot_char;
var __ZL12end_of_input_b;
var __str167;
var __str1168;
var __str2169;
var __str3170;
var __str4171;
var __str5172;
var __str6173;
var __str7174;
var __str8175;
var __str9176;
var __str10177;
var __str11178;
var __str12179;
var __str13180;
var __str14181;
var __str15182;
var __str16183;
var __str17184;
var __str18185;
var __str19186;
var __str20187;
var __str21188;
var __str22189;
var __str23190;
var __str24191;
var __str25192;
var __str26193;
var __str27194;
var __str28195;
var __str29196;
var __str30197;
var __str31198;
var __ZL8ssmltags;
var __ZL10n_namedata;
var __ZL11namedata_ix;
var __str32199;
var __str33200;
var __str34201;
var __str35202;
var __str36203;
var __str37204;
var __ZL18xml_char_mnemonics;
var __ZZ10ReadClauseP10TranslatorP7__sFILEPcPsPiiS5_S3_E12ungot_string;
var __ZZ10ReadClauseP10TranslatorP7__sFILEPcPsPiiS5_S3_E15ungot_string_ix;
var __ZL19clear_skipping_text_b;
var __ZL11ungot_char2;
var __ZL19ssml_ignore_l_angle;
var __str38205;
var __ZL10sayas_mode;
var __ZL11ignore_text_b;
var __ZL11punct_chars;
var __ZL16punct_attributes;
var __str41208;
var __ZL12chars_ignore;
var __str42209;
var __ZL10audio_text_b;
var __ZL17speech_parameters;
var __ZL12n_ssml_stack;
var __ZL13n_param_stack;
var __ZL7xmlbase;
var __ZZL14LookupCharNameP10TranslatoriiE3buf;
var __str47214;
var __str48215;
var __str49216;
var __ZZL13WordToString2jE3buf;
var __str50217;
var __str51218;
var __str52219;
var __str53220;
var __str54221;
var __str55222;
var __str57224;
var __str58225;
var __str59226;
var __str60227;
var __ZZL14ProcessSsmlTagPwPcRiiiE10mnem_punct;
var __str61228;
var __str62229;
var __str63230;
var __ZZL14ProcessSsmlTagPwPcRiiiE13mnem_capitals;
var __str64231;
var __str65232;
var __str66233;
var __ZZL14ProcessSsmlTagPwPcRiiiE17mnem_interpret_as;
var __str68235;
var __str69236;
var __str70237;
var __str71238;
var __str72239;
var __ZZL14ProcessSsmlTagPwPcRiiiE17mnem_sayas_format;
var __str73240;
var __ZZL14ProcessSsmlTagPwPcRiiiE10mnem_break;
var __str74241;
var __str75242;
var __str76243;
var __str77244;
var __ZZL14ProcessSsmlTagPwPcRiiiE13mnem_emphasis;
var __str78245;
var __str79246;
var __ZZL14ProcessSsmlTagPwPcRiiiE12prosody_attr;
var __str80247;
var __str81248;
var __str82249;
var __ZL22ignore_if_self_closing;
var __str83250;
var __str84251;
var __str85252;
var __str86253;
var __str87254;
var __ZZL14ProcessSsmlTagPwPcRiiiE23emphasis_to_pitch_range;
var __ZZL14ProcessSsmlTagPwPcRiiiE18emphasis_to_volume;
var __str88255;
var __str89256;
var __str90257;
var __str91258;
var __ZL11sayas_start;
var __str92259;
var __str94261;
var __str95262;
var __str96263;
var __str97264;
var __str98265;
var __str99266;
var __ZZL14ProcessSsmlTagPwPcRiiiE11break_value;
var __str100267;
var __str101268;
var __str102269;
var __ZZL18GetVoiceAttributesPwiE11mnem_gender;
var __str105272;
var __str106273;
var __str108275;
var __ZZL14LoadSoundFile2PKcE4slot;
var __str111278;
var __str112279;
var __str113280;
var __str114281;
var __ZZL14ReplaceKeyNamePciRiE8keynames;
var __ZZL19SetProsodyParameteriPwP11PARAM_STACKE11mnem_volume;
var __str115282;
var __str116283;
var __str117;
var __str118;
var __str119;
var __ZZL19SetProsodyParameteriPwP11PARAM_STACKE9mnem_rate;
var __str120;
var __str121;
var __str122;
var __str123;
var __ZZL19SetProsodyParameteriPwP11PARAM_STACKE10mnem_pitch;
var __str124;
var __str125;
var __str126;
var __str127;
var __ZZL19SetProsodyParameteriPwP11PARAM_STACKE10mnem_range;
var __ZZL19SetProsodyParameteriPwP11PARAM_STACKE9mnem_tabs;
var __ZZL17ProcessParamStackPcRiE10cmd_letter;
var __str128;
var __ZZL16GetSsmlAttributePwPKcE5empty;
var __ZZL4GetCvE6ungot2;
var __ZZL4GetCvE5mask2;
var __ZL6speed1;
var __ZL6speed2;
var __ZL6speed3;
var __ZL12speed_lookup;
var __ZL14wav_factor_350;
var __ZL16pause_factor_350;
var __ZZ11CalcLengthsP10TranslatorE14more_syllables;
var __str294;
var __ZL18letter_accents_0e0;
var __ZL18letter_accents_250;
var __ZL13non_ascii_tab;
var __ZL11accents_tab;
var __str297;
var __str1298;
var __str2299;
var __ZZ12LookupLetterP10TranslatorjiPciE13single_letter;
var __str5302;
var __str6303;
var __str7304;
var __str8305;
var __str9306;
var __str10307;
var __str11308;
var __str12309;
var __ZZ14TranslateRomanP10TranslatorPcS1_P8WORD_TABE12roman_values;
var __str13310;
var __str14311;
var __ZZL17TranslateNumber_1P10TranslatorPcS1_PjP8WORD_TABiE9str_pause;
var __ZL14n_digit_lookup;
var __ZL12digit_lookup;
var __ZL14number_control;
var __ZL23speak_missing_thousands;
var __ZL11ph_ordinal2;
var __str15312;
var __str16313;
var __str17314;
var __str18315;
var __str19316;
var __str20317;
var __str21318;
var __str22319;
var __str23320;
var __str24321;
var __str25322;
var __str26323;
var __str27324;
var __str28325;
var __str29326;
var __str30327;
var __str31328;
var __str32329;
var __str33330;
var __str35332;
var __str36333;
var __str37334;
var __str39336;
var __str40337;
var __str41338;
var __str42339;
var __str43340;
var __str44341;
var __str45342;
var __str46343;
var __str47344;
var __str48345;
var __str49346;
var __str50347;
var __str51348;
var __str52349;
var __str53350;
var __str54351;
var __str55352;
var __str56353;
var __str57354;
var __str58355;
var __str59356;
var __str60357;
var __str61358;
var __str62359;
var __str63360;
var __str64361;
var __str65362;
var __str66363;
var __str67364;
var __str68365;
var __str69366;
var __str70367;
var __str71368;
var __str72369;
var __str73370;
var __str74371;
var __str75372;
var __str76373;
var __str77374;
var __str78375;
var _option_mbrola_phonemes;
var __ZL10mbrola_tab;
var __ZL15mbr_name_prefix;
var __str382;
var __str1383;
var __str2384;
var __str3385;
var __str4386;
var __ZL14mbrola_control;
var __ZZ15MbrolaTranslateP12PHONEME_LISTiiP7__sFILEE4phix;
var __ZZ15MbrolaTranslateP12PHONEME_LISTiiP7__sFILEE11embedded_ix;
var __ZZ15MbrolaTranslateP12PHONEME_LISTiiP7__sFILEE10word_count;
var __str6388;
var __str8390;
var __str9391;
var __str10392;
var __str11393;
var __str12394;
var __ZZ10MbrolaFilliiE9n_samples;
var __ZZL10WritePitchiiiiiE6output;
var __str13395;
var __str14396;
var __str15397;
var __str16398;
var __ZZL10GetMbrNameP12PHONEME_LISTP11PHONEME_TABS2_S2_PiS3_S3_E4mnem;
var __str399;
var _version_string;
var _version_phdata;
var _option_device_number;
var _f_logespeak;
var _logging_type;
var _n_phoneme_tab;
var _current_phoneme_table;
var _phoneme_tab;
var _phoneme_tab_flags;
var _phoneme_index;
var _phondata_ptr;
var _wavefile_data;
var __ZL16phoneme_tab_data;
var _n_phoneme_tables;
var _phoneme_tab_list;
var _phoneme_tab_number;
var _wavefile_ix;
var _wavefile_amp;
var _wavefile_ix2;
var _wavefile_amp2;
var _seq_len_adjust;
var _vowel_transition;
var _vowel_transition0;
var _vowel_transition1;
var __str1412;
var __str2413;
var __str3414;
var __str4415;
var __ZZ11LookupSpectP11PHONEME_TABiP10FMT_PARAMSPiP12PHONEME_LISTE10frames_buf;
var __str5416;
var __str7418;
var __str9420;
var __str10421;
var __str11422;
var __str13424;
var __str15426;
var __str16427;
var _this_ph_data;
var __ZZL13NumInstnWordsPtE7n_words;
var __ZZL18InterpretConditionP10TranslatoriP12PHONEME_LISTiE11ph_position;
var __ZZL15StressConditionP10TranslatorP12PHONEME_LISTiiE15condition_level;
var __str17428;
var __str18429;
var __str19430;
var _n_phoneme_list;
var _phoneme_list;
var _mbrola_delay;
var _mbrola_name;
var _speed;
var __ZL9new_voice;
var _n_soundicon_tab;
var _soundicon_tab;
var __ZZ12WordToStringjE3buf;
var __ZL14last_pitch_cmd;
var __ZL12last_amp_cmd;
var __ZL10last_frame;
var __ZL15syllable_centre;
var __ZZ18FormantTransition2P10frameref_tRijjP11PHONEME_TABiE10vcolouring;
var __ZL10modn_flags;
var __ZZ8DoSpect2P11PHONEME_TABiP10FMT_PARAMSP12PHONEME_LISTiE9wave_flag_b;
var __ZL13fmt_amplitude;
var __ZL10last_wcmdq;
var __ZL12pitch_length;
var __ZL10amp_length;
var __ZZ8GenerateP12PHONEME_LISTPiiE2ix;
var __ZZ8GenerateP12PHONEME_LISTPiiE11embedded_ix;
var __ZZ8GenerateP12PHONEME_LISTPiiE10word_count;
var __ZZ8GenerateP12PHONEME_LISTPiiE8sourceix;
var __ZL14syllable_start;
var __ZL12syllable_end;
var __ZL8timer_on_b;
var __ZL6paused_b;
var __ZZ15SpeakNextClauseP7__sFILEPKviE6f_text;
var __ZZ15SpeakNextClauseP7__sFILEPKviE6p_text;
var __str459;
var __str1460;
var __ZZL13set_frame_rmsP7frame_tiE8sqrt_tab;
var __ZZL10AllocFramevE2ix;
var __ZZL10AllocFramevE10frame_pool;
var _translator;
var _translator2;
var __ZL20translator2_language;
var _f_trans;
var _option_tone2;
var _option_tone_flags;
var _option_phonemes;
var _option_phoneme_events;
var _option_quiet;
var _option_endpause;
var _option_capitals;
var _option_punctuation;
var _option_sayas;
var _option_ssml;
var _option_phoneme_input;
var _option_phoneme_variants;
var _option_wordgap;
var _skip_sentences;
var _skip_words;
var _skip_characters;
var _skip_marker;
var _skipping_text;
var _end_character_position;
var _count_sentences;
var _count_words;
var _clause_start_char;
var _clause_start_word;
var _new_sentence;
var _pre_pause;
var _word_phonemes;
var _n_ph_list2;
var _ph_list2;
var _option_punctlist;
var _ctrl_embedded;
var _option_multibyte;
var _option_linelength;
var _embedded_list;
var _n_replace_phonemes;
var _replace_phonemes;
var __ZL10ISO_8859_1;
var __ZL10ISO_8859_2;
var __ZL10ISO_8859_3;
var __ZL10ISO_8859_4;
var __ZL10ISO_8859_5;
var __ZL10ISO_8859_7;
var __ZL10ISO_8859_9;
var __ZL11ISO_8859_14;
var __ZL6KOI8_R;
var __ZL5ISCII;
var _charsets;
var __ZL15length_mod_tabs;
var __ZZ7IsAlphajE18extra_indic_alphas;
var __ZL8brackets;
var __ZZ8utf8_outjPcE4code;
var __ZZ8utf8_in2PiPKciE4mask;
var __str543;
var __str1544;
var __ZZ13TranslateWordP10TranslatorPciP8WORD_TABE7word_zz;
var __ZZ13TranslateWordP10TranslatorPciP8WORD_TABE7word_iz;
var __ZZ13TranslateWordP10TranslatorPciP8WORD_TABE7word_ss;
var __str2545;
var __str4547;
var __str5548;
var __str6549;
var __ZL18any_stressed_words_b;
var __ZZ15TranslateClauseP10TranslatorP7__sFILEPKvPiPPcE17voice_change_name;
var __ZL11embedded_ix;
var __ZL13embedded_read;
var __ZL6source;
var __str7550;
var __str8551;
var __ZL16max_clause_pause;
var __ZL13option_sayas2;
var __ZL18count_sayas_digits;
var __ZL6breaks;
var __ZL13word_emphasis_b;
var __ZL15option_emphasis;
var __ZL13embedded_flag_b;
var __str9552;
var __str10553;
var __str11554;
var __ZZL13TranslateCharP10TranslatorPcijjPiE20hangul_compatibility;
var __ZZL14SubstituteCharP10TranslatorjjPiE11ignore_next_b;
var __str12555;
var __ZL14length_mods_en;
var __ZL15length_mods_en0;
var __ZL17length_mods_equal;
var __str580;
var __str1581;
var __str2582;
var __str3583;
var __str4584;
var __ZL14mbr_samplerate;
var __ZL14mbr_voice_path;
var __ZL10mbr_volume;
var __ZL9mbr_state;
var __ZL7mbr_pid;
var __ZL10mbr_cmd_fd;
var __str5585;
var __ZL12mbr_audio_fd;
var __ZL12mbr_errorbuf;
var __ZL12mbr_error_fd;
var __str7587;
var __str8588;
var __str9589;
var __str10590;
var __str11591;
var __str12592;
var __str13593;
var __str14594;
var __str15595;
var __str16596;
var __str17597;
var __ZL21mbr_pending_data_head;
var __ZL21mbr_pending_data_tail;
var __str18598;
var __str19599;
var __str20600;
var __str21601;
var __ZL13mbr_proc_stat;
var __str22602;
var __str23603;
var __str24604;
var __str25605;
var __str27607;
var __str28608;
var __str30610;
var __str31611;
var __str32612;
var __str33613;
var __str34614;
var __str35615;
var __ZZ15SetIndicLettersP10TranslatorE15dev_consonants2;
var __ZZ16SelectTranslatorPKcE17stress_lengths_fr;
var __ZZ16SelectTranslatorPKcE14stress_amps_fr;
var __ZZ16SelectTranslatorPKcE14stress_amps_sk;
var __ZZ16SelectTranslatorPKcE17stress_lengths_sk;
var __ZZ16SelectTranslatorPKcE17stress_lengths_ta;
var __ZZ16SelectTranslatorPKcE14stress_amps_ta;
var __ZZ16SelectTranslatorPKcE17stress_lengths_af;
var __ZZ16SelectTranslatorPKcE17stress_lengths_bn;
var __ZZ16SelectTranslatorPKcE14stress_amps_bn;
var __ZZ16SelectTranslatorPKcE17stress_lengths_cy;
var __ZZ16SelectTranslatorPKcE14stress_amps_cy;
var __ZZ16SelectTranslatorPKcE17stress_lengths_da;
var __ZZ16SelectTranslatorPKcE17stress_lengths_de;
var __ZZ16SelectTranslatorPKcE14stress_amps_de;
var __ZZ16SelectTranslatorPKcE17stress_lengths_en;
var __str630;
var __ZZ16SelectTranslatorPKcE17stress_lengths_el;
var __ZZ16SelectTranslatorPKcE14stress_amps_el;
var __ZZ16SelectTranslatorPKcE9el_vowels;
var __ZZ16SelectTranslatorPKcE10el_fvowels;
var __ZZ16SelectTranslatorPKcE12el_voiceless;
var __ZZ16SelectTranslatorPKcE13el_consonants;
var __ZZ16SelectTranslatorPKcE18el_char_apostrophe;
var __ZZ16SelectTranslatorPKcE17stress_lengths_eo;
var __ZZ16SelectTranslatorPKcE14stress_amps_eo;
var __ZZ16SelectTranslatorPKcE18eo_char_apostrophe;
var __ZZ16SelectTranslatorPKcE17stress_lengths_es;
var __ZZ16SelectTranslatorPKcE14stress_amps_es;
var __ZZ16SelectTranslatorPKcE20ca_punct_within_word;
var __ZZ16SelectTranslatorPKcE17stress_lengths_eu;
var __ZZ16SelectTranslatorPKcE14stress_amps_eu;
var __ZZ16SelectTranslatorPKcE14stress_amps_fi;
var __ZZ16SelectTranslatorPKcE17stress_lengths_fi;
var __ZZ16SelectTranslatorPKcE17stress_lengths_hi;
var __ZZ16SelectTranslatorPKcE14stress_amps_hi;
var __ZZ16SelectTranslatorPKcE14stress_amps_hr;
var __ZZ16SelectTranslatorPKcE17stress_lengths_hr;
var __ZZ16SelectTranslatorPKcE17stress_lengths_sr;
var __ZL22replace_cyrillic_latin;
var __ZZ16SelectTranslatorPKcE14stress_amps_hu;
var __ZZ16SelectTranslatorPKcE17stress_lengths_hu;
var __ZZ16SelectTranslatorPKcE17stress_lengths_hy;
var __ZZ16SelectTranslatorPKcE9hy_vowels;
var __ZZ16SelectTranslatorPKcE13hy_consonants;
var __ZZ16SelectTranslatorPKcE17stress_lengths_id;
var __ZZ16SelectTranslatorPKcE14stress_amps_id;
var __ZZ16SelectTranslatorPKcE17stress_lengths_is;
var __ZZ16SelectTranslatorPKcE16is_lettergroup_B;
var __str1631;
var __str2632;
var __ZZ16SelectTranslatorPKcE17stress_lengths_it;
var __ZZ16SelectTranslatorPKcE14stress_amps_it;
var __ZZ16SelectTranslatorPKcE18stress_lengths_jbo;
var __ZZ16SelectTranslatorPKcE21jbo_punct_within_word;
var __ZZ16SelectTranslatorPKcE9ka_vowels;
var __ZZ16SelectTranslatorPKcE13ka_consonants;
var __ZZ16SelectTranslatorPKcE10ko_ivowels;
var __ZZ16SelectTranslatorPKcE9ko_voiced;
var __ZZ16SelectTranslatorPKcE14stress_amps_ku;
var __ZZ16SelectTranslatorPKcE17stress_lengths_ku;
var __ZZ16SelectTranslatorPKcE14stress_amps_lv;
var __ZZ16SelectTranslatorPKcE17stress_lengths_lv;
var __ZZ16SelectTranslatorPKcE15vowels_cyrillic;
var __ZZ16SelectTranslatorPKcE14stress_amps_mk;
var __ZZ16SelectTranslatorPKcE17stress_lengths_mk;
var __ZZ16SelectTranslatorPKcE17stress_lengths_nl;
var __str3633;
var __ZZ16SelectTranslatorPKcE17stress_lengths_no;
var __ZZ16SelectTranslatorPKcE14stress_amps_om;
var __ZZ16SelectTranslatorPKcE17stress_lengths_om;
var __ZZ16SelectTranslatorPKcE17stress_lengths_pl;
var __ZZ16SelectTranslatorPKcE14stress_amps_pl;
var __ZZ16SelectTranslatorPKcE17stress_lengths_pt;
var __ZZ16SelectTranslatorPKcE14stress_amps_pt;
var __str4634;
var __ZZ16SelectTranslatorPKcE17stress_lengths_ro;
var __ZZ16SelectTranslatorPKcE14stress_amps_ro;
var __str5635;
var __ZZ16SelectTranslatorPKcE17stress_lengths_sq;
var __ZZ16SelectTranslatorPKcE14stress_amps_sq;
var __ZZ16SelectTranslatorPKcE14stress_amps_sv;
var __ZZ16SelectTranslatorPKcE17stress_lengths_sv;
var __ZZ16SelectTranslatorPKcE17stress_lengths_sw;
var __ZZ16SelectTranslatorPKcE14stress_amps_sw;
var __ZZ16SelectTranslatorPKcE14stress_amps_tr;
var __ZZ16SelectTranslatorPKcE17stress_lengths_tr;
var __ZZ16SelectTranslatorPKcE17stress_lengths_vi;
var __ZZ16SelectTranslatorPKcE14stress_amps_vi;
var __ZZ16SelectTranslatorPKcE9vowels_vi;
var __ZZ16SelectTranslatorPKcE17stress_lengths_zh;
var __ZZ16SelectTranslatorPKcE14stress_amps_zh;
var __ZZL18Translator_RussianP10TranslatorE14stress_amps_ru;
var __ZZL18Translator_RussianP10TranslatorE17stress_lengths_ru;
var __ZZL18Translator_RussianP10TranslatorE11ru_ivowels2;
var __ZZL18SetCyrillicLettersP10TranslatorE9ru_vowels;
var __ZZL18SetCyrillicLettersP10TranslatorE13ru_consonants;
var __ZZL18SetCyrillicLettersP10TranslatorE7ru_soft;
var __ZZL18SetCyrillicLettersP10TranslatorE7ru_hard;
var __ZZL18SetCyrillicLettersP10TranslatorE10ru_nothard;
var __ZZL18SetCyrillicLettersP10TranslatorE9ru_voiced;
var __ZZL18SetCyrillicLettersP10TranslatorE10ru_ivowels;
var __ZL8pairs_ru;
var __ZZL13NewTranslatorvE12stress_amps2;
var __ZZL13NewTranslatorvE15stress_lengths2;
var __ZZL13NewTranslatorvE13empty_wstring;
var __ZZL13NewTranslatorvE13punct_in_word;
var __ZZL13NewTranslatorvE13default_tunes;
var __str6636;
var __str7637;
var __str8638;
var __str9639;
var __str10640;
var __str11641;
var __str12642;
var __str13643;
var __str646;
var __str1647;
var __str2648;
var _genders;
var _tone_points;
var _formant_rate;
var _voice_selected;
var __str3653;
var __str4654;
var __ZL11options_tab;
var __str5655;
var __str6656;
var __str7657;
var __str8658;
var __str9659;
var __str10660;
var __str11661;
var __str12662;
var __str13663;
var __str14664;
var __str15665;
var __str16666;
var __str17667;
var __str18668;
var __str19669;
var __str20670;
var __str21671;
var __str22672;
var __str23673;
var __str24674;
var __str25675;
var __str26676;
var __str27677;
var __str28678;
var __str29679;
var __str30680;
var __str31681;
var __str32682;
var __str33683;
var __str34684;
var __str35685;
var __str36686;
var __str37687;
var __str38688;
var __str39689;
var __str40690;
var __str41691;
var __str42692;
var __str43693;
var __ZL11keyword_tab;
var __ZL15variants_either;
var __ZL13variants_male;
var __ZL15variants_female;
var _variant_lists;
var __ZL9voicedata;
var _voice;
var __str44696;
var __ZZ10VoiceResetiE15default_heights;
var __ZZ10VoiceResetiE14default_widths;
var __ZZ10VoiceResetiE13breath_widths;
var __ZL18formant_rate_22050;
var __ZZ9LoadVoicePKciE16voice_identifier;
var __ZZ9LoadVoicePKciE10voice_name;
var __ZZ9LoadVoicePKciE15voice_languages;
var __str45697;
var __str46698;
var __str47699;
var __str48700;
var __str49701;
var __str50702;
var __str51703;
var __str52704;
var __str53705;
var __str54706;
var __str55707;
var __str56708;
var __str57709;
var __str58710;
var __str59711;
var __str60712;
var __str61713;
var __str62714;
var __str63715;
var __str64716;
var __str65717;
var __str66718;
var __str67719;
var __str68720;
var __str69721;
var __ZL13n_voices_list;
var __ZL11voices_list;
var __str70722;
var __ZZ11SelectVoiceP12espeak_VOICEPiE14voice_variants;
var __ZZ11SelectVoiceP12espeak_VOICEPiE8voice_id;
var __ZZ11SelectVoiceP12espeak_VOICEPiE3buf;
var __str71723;
var __ZZ14SetVoiceByNamePKcE3buf;
var __ZZ17espeak_ListVoicesE6voices;
var __str72724;
var __ZL15len_path_voices;
var __str73725;
var __str74726;
var __str75727;
var __ZZL23ExtractVoiceVariantNamePciE12variant_name;
var __str76728;
var __str77729;
var __str78730;
var __str79731;
var __str80732;
var __str81733;
var __str82734;
var _sin_tab;
var _wvoice;
var _f_log;
var _option_waveout;
var _option_log_frames;
var _embedded_value;
var _samplerate;
var _samplerate_native;
var __ZL5peaks;
var _echo_head;
var _echo_tail;
var _echo_amp;
var _echo_buf;
var __ZL7rbreath;
var _wdata;
var __ZL13amplitude_env;
var _out_ptr;
var _out_start;