1 2 3RECENT CHANGES can be tracked at the BOTTOM END. The rest doesn't qualify 4as an exciting story, just skip it. 5 6[ Note: some items mention who reported a bug or even did the 7described modification. The absence of such attribution 8doesn't imply that the work did itself spontaneously. 9Notably Pavel Machek, Adam Nohejl, Daniel Sobe, Mirek Trmac and Milan Zamazal 10contributed in this way much more often than explicitly indicated here. ] 11 12 131.1.1 from earlier releases (incomplete): 14 - this file 15 - debugging & other conditional compilation parameters have been moved 16 to the config file. doc/debug.doc has been rewritten 17 - fixed the array size in sss.cc to fit into the 64K DGROUP in DOS 18 - fixed shriek() not to be volatile and to always take signed ints 19 - allowed (hack) 16-bit ints in load_config and DOS HUGE memory model 20 - "make tgz" (in sss/src) makes a tgz (in sss/src/../..) with the 21 name sssX-Y-Z.tgz; the version numbers as read from common.h 22 A copy is made on the diskette (if one is inserted at the moment). 23 - "make date" outputs the last modification time 24 251.1.2 from 1.1.1 10.5.97 26 - "make dos" creates a zipfile, not individual files 27 - "make dos1250", "make dos1252" can produce two other encodings 28 - in unit::sanity, fixed the range checks for pointer values 29 - migrated the rest of non-ASCII chars out of the sources 30 - migrated another bunch of options to the .ini file 31 - allowed escape sequences and quoted strings in the .ini file 32 - multiple tiny code amendments 33 - no compile-time checking for the memory model 34 - run-time check whether we've been compiled fully 32-bit (again) 35 - changed warning flags to -Wall -Wno-parentheses -Wno-unused 36 - new option type: DEBUG_AREA (enum, just for focus_dbg) 37 - interf.h uglified 38 - side syllables hacked out. See unit:syll_break for more info. 39 The feature can be disabled in the .ini file (syll_break()) 40 cfg/nonsyl.dic has been consequently cleaned up. 41 - the sonority rule no longer considers nasals as more sonorous than 42 the ordinary consonants. Hope it doesn't hurt. 43 - parser now can accept keyboard input & other minor improvements there 44 - new files in the doc directory: Intro, Files 45 461.1.3 from 1.1.2 14.5.97 47 - enums UNIT, OPT_TYPE suffer formally renamed elements because of Borland 48 - BOOL, INT, STR (formerly STRING),... in config.cc are always #defined now 49 - a new diphone inventory description (.dph) - the traditional one. 50 Very crude, lots of the diphones discarded (incl. W[{>,` etc.) 51 This inventory doesn't cover some allophones at all, see default.rul 52 - in unit::set_father(), f,i,t will be inherited (untested). This should 53 allow phone-level f,i,t adjustments propagated to the diphones. 54 - unit::diph() optionally allows repeated diphones (have a look there). 55 - we now allow "triphones" (like "a'a", a.k.a. "a|a" in traditnl.dph) 56 - the default rules contain one killer rule (until traditnl.dph is fixed) 57 581.1.4 from 1.1.3 19.5.97 59 - optional hash table profiling; configurable hash table full percentage 60 - removed a word-length quadratic complexity aspect of subst() by not 61 checking too long words (longer than hash::longest). Typically, 62 this "feature" will cause an overall slowdown. :-) 63 - fixed unit::subst to loop until there's nothing to substitute 64 - traditnl.dph is less crude now, it only doesn't solve the voiced 65 affricates now. We still never use many important diphones. 66 - some big fixed-length auto arrays have been made static & malloced 67 - introduced cfg.safe_grow, but still not configurable 68 691.1.5 from 1.1.4 22.5.97 70 - '\0' shall be replaced by '_' in parser::getch; '\0' never gets output. 71 - unit::fout is much more configurable now, see config.cc 72 - tabs regularized to eight chars 73 741.1.6 from 1.1.5 27.5.97 75 - config.cc #inclusion scheme has been substantially reworked 76 - aggregate (array...) config options are now possible, see config.cc 77 - unit::fout is even more configurable now. And slower as well. 78 - ANSI escape sequences mostly made configurable 79 - can remove elements from the hash tables now 80 - invalid options are checked against 81 - fixed pointer sanity checks (when trusted_ptr==off) 82 - added doc/output.doc 83 841.1.7 from 1.1.6 28.5.97 85 - fixed a stupid "last byte swallowing" bug 86 - added diphtong rules, made traditnl.dph handle diphtongs better 87 - too high level symbols, which could make the parser prematurely 88 terminate a substitution, are checked against (parser::done) 89 - gather now gathers everything, thus preserving syllables etc. 90 during substitutions. This makes work multiple multilevel 91 substitutions, such as "ououo" -> "ou|ou|o". 92 - prep is temporarily broken 93 941.1.8 from 1.1.7 29.5.97 95 - fixed prep &c (bug having to do with M_EXACT and unit::gather()) 96 - if a preposition occurs at the end of a colon, let it be fatal 97 - added the FILE cfg option type 98 - deuglified load_config() 99 100 1011.2.-1 from 1.1.8 30.5.97 102 - converted all printf's to redirectable calls. Use "stddbg_file", 103 "stdshriek_file", "stdwarn_file" in sss.ini to redirect them. 104 An exception is user_pause(), which should never be redirected 105 - renamed sss to ss, 'cause 'tis shorta. 106 - colorize() now doesn't check against redirected input 107 - rewrote the stuff about ss_init(), multiple .ini files 108 - at the very beginning, the debug output may go temporarily 109 to the screen. It will be redirected properly after 110 the .ini file which uses it is redirected. 111 - we now have cfg/ssfixed.ini and ss.ini instead of sss.ini. 112 Any values in ss.ini override those in ssfixed.ini. The idea 113 is not to bury the oft-changing params in the permanent ones. 114 - the "markup_language" configuration parameter (MUST be located 115 in ssfixed.ini!, possible values: none, ansi, rtf) allows 116 run-time switching between ANSI output and the Rich Text Format 117 output. Either ssansi.ini or ssrtf.ini is processed after 118 ssfixed.ini 119 - ss_reinit() can be used to re-read the config files. Not fool-proof. 120 - ss_init() shall be used instead of load_config() 121 1221.2.0 from 1.2.-1 1.6.97 123 - cfg/ssdeflt.ini (used by ss_reinit()) is now automagically generated 124 from src/config.cc (on "make") 125 - Makefile deuglified a little bit 126 - fixed hash::hash (empty lines had been creating phantom items) 127 - doc/output.doc includes new topics (e.g. debugging info redirection) 128 - fixed safe_grow and max_line_len to be configurable 129 - got finally rid of ANSI escape sequences in config.cc 130 - made '~' a valid word separator (e.g. in a dictionary) 131 1321.2.1 from 1.2.0 13.6.97 133 - fixed some of the silly Borland warnings 134 - removed -Wno-parentheses (and fixed some lines which got it) 135 - added nnet.cc (neural networks' input - see doc/neuralnet.doc) 136 - consistently changed "auxiliary syllable" to "side syllable" 137 - changed warning flags to -Wall with no exceptions 138 - faked the use of unused function arguments, see unused() in common.h 139 - added the "text" abstraction (src/text.*) to handle #include in rules 140 - maybe fixed a DOS CR/LF freadin() bug 141 - gather() called after the diphones get created now shrieks gracefully 142 1431.2.2 from 1.2.1 2.7.97 144 - no code change, makefile adjusted for the files that were new in 1.2.1 145 1461.2.3 from 1.2.2 7.7.97 147 - minor code changes in text.*, chasing a DOS-only Heisenbug (lost) 148 1491.2.4 from 1.2.3 14.9.97 150 - fixed this==NULL sanity check in unit::sanity() 151 - made parser skip any garbage (whitespace?) until the first phone 152 - minor amendments to text.cc 153 - made hash.cc a little bit more commentproof 154 - when DEBUG is defined, free() is #defined to paranoid_free() (see) 155 - fixed tmps declaration in rules::str2rule() (the DOS-only bug?) 156 - improved cfg/syll.dic (laryngeal stop before word-initial vocals) 157 - fixed long vowels in the nnet code (unit::nnet_type()) 158 - the glottal stop is now a valid voiceless stop for the nnet code 159 1601.2.5 from 1.2.4 29.9.97 161 - added doc/COPYING (GNU Public License - copyleft) to fix the legalese 162 - the paranoid_free() hack from 1.2.4 has been removed. Because, 163 - dmalloc (debugging mem alloc()) library is used #ifdef WANT_DMALLOC 164 - fixed a fence-post error (rules::rules::ruleline one byte too short) 165 - rules::resolve_vars now uses a pseudostatic buffer (was call-lived) 166 - the FOREVER macro should be used to mark permanent memory allocations 167 - some minor memory leaks have been found and fixed 168 - rewrote hash::hash to make it even more commentproof, but messier 169 - "make clean" tries to clean up the Makefile and report some settings 170 - cleaned up parser::parser, parser.cc now depends on interf.cc::freadin() 171 1721.2.6 from 1.2.5 29.10.97 173 - partly allowed deletion of the last phone in a syllable 174 - const char * everywhere to be -Wwrite-strings clean 175 - hash collisions are now handled with a balanced AVL tree 176 - furthermore, on hash table over/underflow it is completely rehashed 177 - made the only nnet.rules substitution not destroy syllables 178 - fixed a trailing whitespace bug in hash:hash 179 - it is possible to remove the diphones with "DIPHONES ~" rule 180 - option to dump the diphones at every DIPHONES rule (immed_diphones) 181 - added a punctuation hack into the nnet rules and similar minor fixes 182 183 1841.3.-2 from 1.2.6 3.11.97 185 - aux/addcflag to easily add compiler flags; used by "make gdb/pg" 186 - "make clean" tries harder to clean up the Makefile 187 - simple suprasegmentalia (doc/rules.doc, doc/prosody.doc) 188 - hash::add_int/translate_int now understands negative quantities 189 - version optionally printed on startup 190 - hash table can work with other keys/data than char*/char* now 191 - fixed substitutions ('$' didn't work if scope->cont!=NO_CONT) 192 - new rule type RAISE - move tokens to other levels 193 - fixed some harmless memory leaks with ss_done() 194 - added rules to mark wh-quesions as such 195 - if there is nothing for a postp/preposition to join to, it's ignored 196 1971.3.-1 from 1.3.-2 17.11.97 198 - inline is never used under DOS, Borland can't handle it properly 199 - snprintf is no longer used, it is unportable 200 - allowed no value in .ini files, default is "". 201 - long command line options etc. (see doc/options.doc) 202 - fixed: if no phones given to the parser, it would crash 203 - ss.cc is now compiled separately, thus speeding up the compilation 204 - new rule type SMOOTH - smoothen suprasegmentalia (doc/rules.doc) 205 - unit::project() - move suprasegmental adjustments to a certain level 206 - some short command options, still undocumented 207 - f,i,t is now kept zero-relative, not neutral-value-relative 208 - unit::effective is now a uniform sum of the adjustments 209 210 2111.4.-2 from 1.3.-1 8.12.97 212 - "gcc -pipe" might compile a bit faster 213 - src/x moved to aux/xd 214 - default.rul renamed to czech.rul 215 - rule is now a fully-fledged class with a VMT, doc/classes.doc 216 - stopped trying to avoid multiple-loaded dictionaries 217 - moved the "scope" logic from unit::...() to rules::apply() 218 - rules get precompiled much tighter 219 - made hash dmallocable 220 - fixed profiling (LDOPTS in the Makefile) 221 - REGRESS and PROGRESS now can insert new units (doc/rules.doc) 222 - this allows for throwing out many subst rules 223 - simple help for single-letter (short) options 224 - debugging tags - rules now have source file/line information 225 - copy constructor for hash tables (could be made faster) 226 - class block - a subblock of rules (doc/rules.doc) 227 - fixed the "Undefined identifier (null)" error message in resolve_vars 228 - conditional rules (rule type IF) 229 - first try at merging in the win32 and .wav generator code 230 - dos package contains files from var subdir 231 - shriek() is now more consistent (integers should have their %d) 232 - rule can begin with 0 or more words of comment (hm, inconsistent) 233 - str2rule renamed to next_rule, cleaned up, added functionality 234 2351.4.-1 from 1.4.-2 11.12.97 236 - doc for r_if (doc/rules.doc) 237 - renamed some sources (r*) 238 - calling syn32.cc to write the samples somewhere, rewrote ss.cc 239 - redesigned czech.rul, though the old style is still supported 240 - minor memory leaks fixed 241 - updated copyright notices in syn32.*, common.h, and COPYING 242 - adjusted class dsynth (former DifSynt) 243 - threw out dos support files again 244 - some options for controlling syn32.cc output 245 2461.4.0 from 1.4.-1 15.12.97 247 - adjusted class synteza in syn32.cc 248 - option wav_header to turn off the header 249 - wiped out lot of now redundant scoping code out of elements.cc 250 - added hash::write(), hash::update(), doc/hash.doc 251 - new option -n - neuronet rules 252 - synth32.cc now tests whether it was able to open its files 253 - doc/sound.doc 254 - if paranoid, rules cannot begin with the old-style comment 255 2561.4.1 from 1.4.0 18.12.97 257 - renamed syn32.cc to synth.cc 258 - changed div.quot to / throughout synth.cc 259 - handling 0 models for a diphone differently 260 - ammended the (unused) hash<non-char> code 261 - fixed the directories (cfg!=src/cfg) 262 2631.4.2 from 1.4.1 19.12.97 264 - the default config now really speaks to /dev/dsp16 265 - updated doc/sound.doc 266 - fork() suggested in ss.cc as an example 267 2681.4.3 from 1.4.2 22.12.97 269 - rules can examine string configuration parameters (/dev/rules.doc) 270 - twice using strcasecmp() (if not portable, replace with stricmp()) 271 - -d gives diphone names, not numbers 272 - -s makes ss speak (not default today) 273 - synteza::wave_buffer added (performance reasons) 274 - found and inserted the improved cfg/ptacek97.dph at last 275 2761.4.4 from 1.4.3 29.12.97 277 - fixed wavout maybe NULL bug in synteza::synteza() 278 - invent_dir now points to /usr/lib/ss 279 - improved prosody and other rules 280 - r_if renamed to r_inside, new rule r_if (constant comparison only), 281 it is not very useful at the moment, as we don't use "external" 282 parameters introduced in 1.4.3 as yet 283 - text to be processed can be given on command-line 284 - added some preliminary german.rul 285 - fixed splitting of a 'q' 286 - moved some more r_raise code from run-time to its constructor 287 - r_inside now accepts more sophisticated lists and handles them faster 288 (booltab instead of a simple strchr) 289 - it is possible to force hash tables to be power-of-two-sized, 290 thus avoiding division in hash::fn() on machines with no hw div 291 - fork() is used to speak the samples (if UNIX && needed && enabled) 292 2931.4.5 from 1.4.4 2.1.98 294 - the text to be parsed can be given directly on the command line 295 - option colloquial (-c) turns on the specific features of casual speech 296 - option irony (-i) turns on ironical prosody (tries to) 297 - non-terminated utterances (non-final colons) have been hacked a bit 298 - renamed struct diphone member "i" to "e" (possible naming conflicts 299 with local variables) 300 - partly united struct diphones with struct difon 301 - changed use_syn for inventar[2] - again a bug? 302 - stupid heuristic classification "se" as either prep or postp 303 3041.4.6 from 1.4.5 4.1.98 305 - t/i adjustments ("korekce") can be turned on with a cfg par 306 - support for sampling frequencies other than 8kHz (cfg.sampling_rate) 307 - the sampling buffer now has the optimal size (hw dependent) 308 - sampling is done through the open() breed of functions, not the 309 fopen() one. Rationale: we need ioctl's, but not clib buffering. 310 - changed some #includes and Makefile dependencies 311 3121.4.7 from 1.4.6 18.1.98 313 - multiple languages partially supported 314 - reshaped hash_table as a template 315 3161.4.8 from 1.4.7 26.1.98 317 - reduced number of diagnostic levels to 5 (0-4) 318 - cfg files moved to /usr/lib/ss 319 - .ini file for each diphone inventory added 320 - the ANYWAY option of hash tables (see doc/hash.doc) 321 - new target - make install 322 - make dist had to be rewritten 323 3241.4.9 from 1.4.8 27.1.98 325 - merged an improved synth.* by Petr 326 3271.4.10 from 1.4.9 2.2.98 328 - makeinst - a bit more working cfg installer 329 - the bulk made a shared library libss.a 330 - make static links statically (use for debugging) 331 - all directories are relative to cfg.base_dir 332 - stricmp, filenames made more consistent and portable 333 3341.4.11 from 1.4.10 4.2.98 335 - #!/bin/bash is used to mark scripts as such 336 - detection of open syllables (marked with '~') 337 - minor dos fixes (fork(), open(,,) 338 3391.4.12 from 1.4.11 16.2.98 340 - dos fix - IS_NOT_SLASH in compose_pathname() 341 - significant prosody amendments 342 - backslash can escape exclamation marks within some rules 343 - nondeterministic [ ] rules (see "choices" in rules.doc) 344 3451.4.13 from 1.4.12 23.2.98 346 - minor fixes (O_BINARY, f0 for int3, DOS documentation) 347 - choice probabilities and repeat counts (see rules.doc) 348 - winss.ini replaces ss.ini during "make dos" 349 - "make cfgsync" synces cfg for "make dos" and "make dist" 350 3511.4.14 from 1.4.13 6.3.98 352 - Watcom changes merged 353 - null number pronunciation support (parser only) 354 - fixed r_syll to avoid "Nothing to split" with unknown symbols 355 - allowed multiple non-option parameters if not paranoid 356 - partly fixed voiced africates 357 - show_raw_diphs option added 358 - various diphone fixes 359 - .dph files moved somewhere under the inv directory 360 361 3621.5.-1 from 1.4.14 16.3.98 363 - Watcom/QNX and generic portability fixes 364 - regex rule support using rx library (turn on with WANT_REGEX 365 in src/common.h; see also rules.doc and "man grep") 366 - some Czech numerals (see lng/czech/num*) and other special stuff 367 - better guess at German vowel quantity rules 368 - -p option now stands for --pausing 369 - -H option lists the long options 370 - renamed inventories and associated files, see also inv/UNKNOWN 371 - renamed config.cc to options.cc 372 - first attempt at using autoconf to set up a configure script 373 (see the end doc/Files for an explanation) 374 - removed three obsolete output formatting options 375 - quoted exclamation marks in rule files are not expanded 376 3771.5.0 from 1.5.-1 20.3.98 378 - rx and regex are properly detected by configure 379 - speak using /dev/dsp instead of /dev/dsp16 (SNDCTL_DSP_SAMPLESIZE) 380 - doc/english/prosody.doc 381 3821.5.1 from 1.5.0 22.3.98 383 - partly fixed -soname stuff 384 - Czech numerals work quite well 385 - fixed glottal stops in inv/czech/traditnl.dph 386 - removed unsafe unlinks and unsafe grows...hopefully... 387 - escaped chars are more powerful now, text.cc:strip() 388 - crude pauses can be inserted (denoted by "#") 389 - cleaned up some #defines (bool constants, ESCAPE...) 390 - Czech voiced affricates now respect traditnl.dph 391 392 3932.-2.0 from 1.5.1 22.4.98 394 - ss now requires ssd and talks to it via TCP; ss is a mere stub now. 395 - "make monolith" makes the old non-networking ss 396 - new conditional rule type WITH 397 - preliminary support for multiple concurrent voices (inventories), 398 languages, syntheses, configurations. 399 - class lang, class voice; options.cc accordingly messified 400 - ss.cc, monolith.cc start to reflect language dependencies 401 - started to prefer egcs to gcc 402 - synth.cc, ktdsyn.cc reshaped as well as the respective headers 403 - halfway support for flexible stereo output 404 - moved upper/lowercase issues from parser.cc to the rules 405 - everything may have got broken this time, sorry 406 - this is not meant to be a functional version 407 4082.-2.1 from 2.-2.0 27.4.98 409 - debugging, debugging, debugging, still not working 410 - using the compiler instead of the linker in Makefile 411 4122.-2.2 from 2.-2.1 29.4.98 413 - nasals may become sonorous 414 - no accents when no intonation 415 4162.-2.3 from 2.-2.2 30.4.98 417 - more debugging, as always 418 419 4202.-1.0 from 2.-2.3 2.5.98 421 - by default, ss is static wrt libss, "make shared" to make it shared. 422 - implemented both sides of the Text-To-Speech Control Protocol 423 (see doc/english/protocol.doc) 424 - lpcsyn.{cc,h} is back, but doesn't get packed into the distribution 425 4262.-1.1 from 2.-1.0 4.5.98 427 - class lpcsyn splits into lpcint, lpcfloat and lpcvq 428 - distribution fixes 429 4302.-1.2 from 2.-1.1 5.5.98 431 - fixes 432 433 4342.0.0 from 2.-1.2 10.5.98 435 - lpcsyn again integrated, lpcsyn.h lost and rewritten 436 - more TTSCP commands: shutdown, set language, set voice, show 437 - some minimum exception handling is performed, still using shriek() 438 - fixed member pointers in options.cc (removed them) 439 - wave file header might start to work (untested) 440 - some traditional voices come back 441 - added GPL banners to all relevant files 442 - somehow integrated rx.c, rx.h 443 - abbreviations spelled out (cz) 444 4452.0.1 from 2.0.0 13.5.98 446 - regex is configured better 447 - rewrote freadin() to make it faster and not to duplicate files in memory 448 - the relax_input option turns unknown chars on input to deflt_char (broken) 449 - changed TTSCP handshake string 450 4512.0.2 from 2.0.1 17.5.98 452 - hash tables now do hash about any combination of types 453 - hash tables are slabbing (faster and possibly less memory consuming 454 - tcpsyn.h 455 456 4572.1.-1 from 2.0.2 2.6.98 458 - channel type option implemented 459 - WITH rule debugged 460 - scroll lock LED tracks attached voices (for monolith) 461 - ssd offspring exits 462 - open syllables detection improved (cz) 463 - made daemon.cc rather unixy 464 - on linux, daemon debugging info goes to /dev/tty10 465 - select() multitasks concurrent connexion's options (contexts) 466 - cfg is no more struct configuration, it is struct configuration * 467 - moved diphone names physically out of struct voice 468 - copying-on-write configuration for individual connections (incomplete) 469 - basic authentication (TTSCP pass command) 470 - cfg/allowed.ini holds a list of TTSCP user changeable parameters 471 4722.1.0 from 2.1.-1 3.6.98 473 - egcs portability fix in hash.cc 474 - numerous harmless memory leaks and related cleanup 475 4762.1.1 from 2.1.0 6.6.98 477 - host of fixes, most of them dos-related 478 - a simple HOWTO to welcome newcomers 479 - daemon startup more persistent (retries binding if necessary) 480 - struct option changed, other cfg and context fixes 481 - a little ktdsyn code cleanup 482 4832.1.2 from 2.1.1 11.6.98 484 - the TTSCP_USER environment variable may point to a file with 485 some initial TTSCP commands (used by the client) 486 - cfg/allowed.ini now works differently (and at all) 487 - rewrote cmd_set and associated stuff 488 - updated TTSCP response code stuff 489 - generalised r_prosody (two more questions in unit::sseg()) 490 - long word shortening (ipcz) 491 - bool is now checked for by autoconf and handled in defaults.h 492 - makefile rules for configure and its dependencies 493 - minor QNX fixes 494 4952.1.3 from 2.1.2 14.6.98 496 - more QNX and src/configure fixes 497 - inline dictionary support (doc/czech/dict.doc, doc/english/rules.doc) 498 4992.1.4 from 2.1.3 16.6.98 500 - voidsyn and lpcsyn fixes 501 - lpcsyn now uses just "int" instead of occassional "long int" before 502 - dispatcher_pid (used to distinguish between the server processes) 503 5042.1.5 from 2.1.4 26.6.98 505 - sseg_weight options (turning off sseg values for some unit levels) 506 - the CONTOUR, NOTHING and switch (<...>) rules (see doc/*/rules.doc) 507 - non-phone substitutions (doc/czech/dict.doc, unit::relabel()) 508 - the most of palkova.rul, preposition adjunction rules fixed 509 5102.1.6 from 2.1.5 28.6.98 511 - assim rules do not wipe zeroes 512 - numerals fixes 513 - spelling out rules improved (abbrev.dic and related rules) 514 - autoconfiguring socklen_t (some systems have it signed, some unsigned, some missing) 515 - pauses, changed prosody rules in czech.rul 516 5172.1.7 from 2.1.6 29.6.98 518 - "se" handling heuristics 519 - draft palkova.rul 520 5212.1.8 from 2.1.7 30.6.98 522 - numerous fixes, including Borland fixes in rx.c 523 524 5252.2.0 from 2.1.8 28.7.98 526 - soft options (user supplied voice options meaningful for a single language) 527 - doc/english/{options.doc,rules.doc} (in linuxdoc SGML) 528 - rule files now follow hash.* rules for comments (a comment-out 529 character must not be preceded by non-whitespace) 530 - it is now possible to use the "#include" directive in .ini files 531 - simpleparser renamed to parser and partly rewritten 532 - tokenizing (see src/parser.h) 533 - escape sequences in hash tables (dictiories) 534 - "make mh" is synonymous to "make monolith" 535 - if allowed.ini doesn't exist, an empty one is assumed. 536 - somewhat changed ss_init() ss_reinit(), ss_done(), forever() and others 537 - O_FILE option type no longer exists (only unit::fout() affected) 538 539 Merged from 2.1.7.1 (21.7.98): 540 - some qnx fixes 541 - ktdsyn prosody works properly now + related voice configuration fixes 542 - lpc-vq fixed 543 544 - changed freadin() calls to claim()/unclaim() pairs 545 - all indexing in lpcsyn.cc uses imodel (used to be ignored here and there) 546 - timestamping some files (daemon automatically rereads changed files) 547 - fixed preposition handling in certain contexts (cz) 548 - ss_done, ss_init, ss_reinit, ss_catharsis somewhat stabilised (related fixes) 549 5502.2.1 from 2.2.0 29.7.98 551 - better lpcsyn source handling; repacking 552 - fixed minor memory leaks 553 5542.2.2 from 2.2.1 30.7.98 555 - changed r_if to take a boolean voice option name as a parameter 556 - colloquial and irony options changed to soft, -c and -i removed 557 - got the traditnl.dph vs. kadlec.dph file switching stuff right (cz) 558 - got rid of stdwarn, moved stdshriek & stdbg to struct configuration 559 560 5612.3.-1 from 2.2.2 13.9.98 562 - ss is renamed to Epos. All file names, related identifiers and such 563 have changed. 564 - ss client renamed to "say" 565 - some voice-specific prosodic adjustments to a diphone are now done 566 in synth::syndiphs() (and do not alter the diphone stream anymore) 567 - waveform.cc (we now represent the output signal in the .wav file format) 568 - it is possible to generate the .wav data before attaching to a device 569 - src/agent.cc, agent.h, ttscp.cc; the new TTSCP protocol and streaming 570 - more built-in TTSCP command help 571 - exception handling reworked (proper response codes and classification) 572 - near-complete English documentation in linuxdoc-SGML 573 - option -e (or --show_phones) lists the sounds generated line by line. 574 5752.3.0 from 2.3.-1 20.9.98 576 - install script and #include fixes 577 - doc/english/allowed.ini integrated into doc/english/options.sgml 578 - protocol.sgml renamed to ttscp.sgml 579 - TTSCP delh command 580 - primitive tcpsyn (remote synchronous synthesis) 581 - unit::effective can use multiply levels instead of add levels 582 - scheduler somewhat secured against starvation 583 - documentation esp. on rules reorganised and improved 584 - documentation automatically tweaked and version-stamped 585 5862.3.1 from 2.3.0 27.9.98 587 - more documentation improvements (spelling and formatting fixes) 588 - tcpsyn is now configurable using the "remote_server" option 589 5902.3.2 from 2.3.1 7.10.98 591 - class unit is slabbed (allocated faster) 592 - individual options partly documented 593 - multiple src and autoconf fixes, better support for buggy compilers 594 5952.3.3 from 2.3.2 13.10.98 596 - ugly segfault in class ttscp constructor removed 597 - class context deletes its shdshriek and stddbg 598 - class navelcord (in src/navel.h) can be used to avoid memory leaks 599 in case of exceptions 600 - documentation adjusted to sgml-tools 1.0.6, 601 but the good old linuxdoc dtd (96) has been retained 602 - doc conversion to html and other formats somewhat debugged 603 - remaining individual options documented 604 - voice .ini files can be located in language dependent places 605 6062.3.4 from 2.3.3 19.10.98 607 - cfg->pseudo_root_dir limits the TTSCP file namespace 608 - ktd files placed more appropriately 609 - the LOG macro changed to DEBUG(x,11,fprintf(stddbg,...);) 610 - struct cowabilium, cow_claim() introduced, 611 - changed struct configuration to a a derived class (bad move?) 612 - removed a cfg bug when issuing strm a second time in TTSCP 613 - updated some files under doc/., renamed HOWTO to WELCOME 614 6152.3.5 from 2.3.4 20.10.98 616 - dist/inst script fixes ("cp" to "cp -a"), other minor fixes 617 - don't bind to "localhost", but to the real Internet address 618 as given by gethostname() and getaddrbyname() in src/client.cc 619 6202.3.6 from 2.3.5 26.10.98 621 - don't connect to "localhost" (say and tcpsyn) 622 - symlinks are copied by aux/makeinst 623 6242.3.7 from 2.3.6 2.11.98 625 - "say -l" lists languages and voices for the current language 626 - the daemon now binds to all available interfaces 627 - severe bug fixes in src/waveform.cc and src/tcpsyn.cc 628 - pushing file descriptors with select() (writing to sockets &c) 629 and other changes to output agents (and struct wavefm semantics) 630 6312.3.8 from 2.3.7 6.11.98 632 - portability fixes (partly ported to Visual C) 633 - waveform agent type (dummy agent for trivial audio icons, untested) 634 6352.3.9 from 2.3.8 15.11.98 636 - explicit agent type specifiers within streams 637 - missing SNDCTL_DSP_SETFMT bug fixed (affected direct 16bit speech) 638 - get_result() in say.cc now returns the error code; related fixes 639 - SO_REUSEADDR placed correctly, the persistence option removed 640 6412.3.10 from 2.3.9 23.11.98 642 - fixes: a_disconnector, waveform input 643 - Visual C portability adjustments and VC bug workarounds 644 - aux renamed to arch/unix, moved/deleted some files 645 6462.3.11 from 2.3.10 30.11.98 647 - numerous fixes, including a diphones input agent fix 648 - TTSCP greeting string includes Epos version number 649 - nonblocking soundcard writes ioctl()ified (OSS ignores O_NONBLOCK) 650 - the 'f' (aka "---forking") short option 651 - hacked up the global brk command 652 6532.3.12 from 2.3.11 6.12.98 654 - cfg/winepos.ini renamed to arch/win/epos.ini and other similar cleanup 655 - nonblocking sgets() can now cope with "no data on socket" situations 656 - stream::callbk is now scheduled inconditionally (not block()ed) 657 - async_close() forks off children to do fd closes on background 658 - memory leak in failing stream::stream() patched 659 660 6612.4.-2 from 2.3.12 28.12.98 662 - monosyll, polysyll contour (monosyll incomplete) 663 - lang and voice options on the cmd line successfully rejected 664 - control connections also use connection handles 665 - ctrl_conns and data_conns hash tables looked into and rewritten 666 - data command now limits the lifetime of that data connection 667 - intr command (good old brk) now breaks only one task 668 - TTSCP session headers 669 - setl command now sets a value for the current stream (only) 670 - setg command sets a value globally 671 - down command requires a completed server authentication state 672 - fixed a fence-post bug in sgets (when read() returns -1) 673 - fixed a bug in voice::operator new (used this_lang; was not parent) 674 - wavefm now doesn't unnecessarily explode the buffer when flush() busy 675 - verify.cc - a small test suite 676 - hash_table<...>::forall() added a user parameter for (*userfn)() 677 - hash_table<...>::get_random() allows user-controlled destruction 678 - server password stored to /var/run/epospwd 679 - czech.ini and palkova.ini merged to czech.ini with 680 naive.rul and prosody.rul conditionally included 681 - eposmh renamed to eposm, separate hash.o and hashm.o 682 6832.4.-1 from 2.4.-2 1.1.99 684 - tcpsyn fixed 685 - the --fallback_voice option (egcs 1.0.2 bugs may break it) 686 - #include &c changed to @include (rule file, ini files) 687 6882.4.0 from 2.4.-1 17.1.99 689 - handled missing params to TTSCP commands 690 - partly integrated ptdsyn by Martin Petriska + his support for Slovak 691 - fixed set to setl in xmit_option() 692 - reorganised /usr/lib/epos (lng, voice, inv) 693 - split the inventory packages off the main dist 694 6952.4.1 from 2.4.0 20.1.99 696 - preliminary qnx ipc proxy added 697 6982.4.2 from 2.4.1 25.1.99 699 - a trivial qnx ipc proxy client 700 - eliminated the 6xx TTSCP responses except for 600 701 - eliminated some unnecessary pragmas 702 - network unreachable condition detected 703 - doc/Files updated 704 7052.4.3 from 2.4.2 30.1.99 706 - split arch/dos off arch/win and related cleanup 707 - options.cc renamed to options.lst, comments added 708 - an unrelated options.cc split off the interf.cc file 709 - analogically, split interf.h to interf.h and options.h 710 - elements.{cc,h} renamed to unit.{cc,h} 711 - configuration cow scheme rewritten (was ill-conceived) 712 - streams no more have their own contexts, use a_ttscp->c 713 7142.4.4 from 2.4.3 10.2.99 715 - fixed wavefm::put_sample() (off-by-one error) 716 - fixed string values related memory leaks in the cowing code 717 - fixed hard data connection abort 718 - robust nonatomic appl bytes counts (untested, no client support) 719 7202.4.5 from 2.4.4 14.2.99 721 - fixed an unwanted dependency on epos-lpc (traditnl.dpt) 722 - prevented pwdfile hijacking in the "already running" situation 723 - send_appl reshaped to client_appl, now using the 123 TTSCP replies 724 - fixed the replies sent by oa_waveform 725 - input agent type changed from T_NONE to T_INPUT, T_ANY removed 726 - unit::gather returns NULL if buffer overflow and not paranoid 727 7282.4.6 from 2.4.5 17.2.99 729 - portability, QNX and NT adjustments, code rearrangements 730 - fixed a few client error handling related functions 731 - a queer scheme to supply cfg to client.cc without options.cc 732 - newline character in TTSCP changed from LF to CR LF 733 (no known compatibility issue) 734 7352.4.7 from 2.4.6 26.2.99 736 - QNX adjustments and other minor fixes 737 - waveform rewritten to handle the ioctl mess more transparently 738 - moved TTSCP command help strings out of the source 739 - banned async_close(-1) 740 - concentrated the TTSCP command syntax checking to PAR_SYNTAX 741 - introduced this_context to fix context switching upon shriek() 742 (very incomplete) 743 - /var/run/epos.pwd created only if listen_port == 8778 744 - new option "show_labels" 745 7462.4.8 from 2.4.7 2.3.99 747 - fixed cow (failing to cow configuration->langs & lang->voices lists 748 and a pointer aliasing bug, cf. the next item) 749 - this_lang and this_voice variables changed to macros; referencing 750 them is now slower, while the context switch is faster 751 - NT adjustments, arch/dos/config.h.in 752 7532.4.9 from 2.4.8 10.3.99 754 - get_named_cfg & format_option unified, simplified, accelerated 755 - slab fragment size made slab-local 756 - fixed a 2.4.7 bug - long waveforms trunca being written to /dev/dsp 757 - additional ASCII characters permitted for Czech 758 - say can accept text through stdin 759 - pending data queues within streams 760 7612.4.10 from 2.4.9 15.3.99 762 - utterance chunking and joining 763 - some language dependent directory options now use the "lng" treename 764 - somewhat documented existing TTSCP modules in doc/english/ttscp.sgml 765 - some time sharing debugging 766 - slabbing langs and cfgs (very poorly) 767 7682.4.11 from 2.4.10 22.3.99 769 - fixed a reschedule bug 770 - sound ioctl adjustments to work on qnx 771 - added a proper cow() to voice_switch() 772 - language, voice made regular special typed options 773 7742.4.12 from 2.4.11 29.3.99 775 - QNX, NT and error-on-close fixes 776 - version stamps: /usr/lib/epos/version 777 - language and voice dependent options on the command line 778 7792.4.13 from 2.4.12 31.3.99 780 - NT fix (WSAStartup moved to a global constructor) 781 - data cmd: cannot refer to the present connection 782 7832.4.14 from 2.4.13 10.5.99 784 - say.cc fixes (strdup, pseudoconfiguration::paranoid) 785 - NT fix: async_close also attempts closesocket() 786 7872.4.15 from 2.4.14 21.6.99 788 - set of description layers made configurable 789 - option actions (pre-set and post-set) 790 - arrays of options indexed by description levels 791 (not well documented nor robust) 792 - fixed a bug in enum2str() (trailing colon) 793 - fixed a bug in str2enum() (not found case w/o trailing colon) 794 - added more characters to mathsign.dic: # ` 795 - say now displays the transcription after the rules are applied 796 7972.4.16 from 2.4.15 8.7.99 798 - the configure script respects --prefix= somewhat more 799 - INV_ prefixes in options.lst changed to VOICE_ 800 - fixed a strip() bug in text.cc (multiple escapes on a line) 801 - Czech phone number prosody hack using \X 802 - #localsound output agent 803 - fixed a bug in agent::relax (wrong queue direction) 804 - tcpsyn deadlock avoided with a timeout between connect and TTSCP header 805 - it is possible to specify the language and/or the voice through the 806 "location" option for tcpsyn voices - see docs 807 - agents can now wait for other agents (agent::dep) 808 - {m,c,re}alloc everywhere checked against out-of-memory condition 809 - and other infrastructure fixes 810 8112.4.17 from 2.4.16 19.7.99 812 - changed "first" and "second" (channel identifiers for the --channel 813 option) to "left" and "right" 814 - four bytes of buffer space now guaranteed by flush() instead of two 815 - moved skip_waveform from attach(int) to flush() 816 - partly added diphone labels (except for flush() and become()) 817 - using header.total_length for bookkeeping (RIFF chunks completely output) 818 - description layer valued options resurrected 819 - show command now prefixes the option value with a space 820 - --local_only option can provide reasonable privacy for trivial cfgs 821 - documentation formatting improved (sgml-tools, latex, and babel issues) 822 - obsolete "for (int tmp...)" scoping support in OPTIONARRAY initializers 823 8242.4.18 from 2.4.17 24.7.99 825 - minor compatibility fixes 826 - LPC voices: short pauses now actually follow sentences (using the silent 827 diphone 2); needs more work (extend to ktd, ptd, and adjust the length) 828 - Windows port automatically converts cfg and doc to CP1250 (hack) 829 8302.4.19 from 2.4.18 14.8.99 831 - changed a huge static buffer in a_print::run() to a small growable one 832 - fopen() calls removed or made to check against oom - except ptdsyn 833 8342.4.20 from 2.4.19 29.8.99 835 - added the omitted mode argument to open() calls with O_CREAT 836 - fixed some unused arguments and other compiler warnings 837 - server password file not necessarily created 838 - fopen() can return stdin, stdout no more (should rather fdup() them somehow) 839 - fixed a typo in traditnl.dph (wrong ?�� to correct ?0�) 840 8412.4.21 from 2.4.20 1.9.99 842 - turned utterance chunking off by default and added the -u flag to say.cc 843 - turned relax_input on by default 844 - --spell soft option for czech 845 - ceased to treat a newline as a space 846 - various ugly hacks in the Czech rules 847 8482.4.22 from 2.4.21 3.9.99 849 - ordinal numbers in genitive in Czech 850 - fixed relax_input + default_char and made them a default option 851 8522.4.23 from 2.4.22 4.9.99 853 - ugly hacks in Czech rules made clean features, ordinal numbers improved 854 8552.4.24 from 2.4.23 10.9.99 856 - local_only made true by default (no remote TTSCP access to the server) 857 - TTSCP handle length is now configurable (handle_size) 858 - __STDC__ is no more defined to 0 in arch/win/config.h 859 - other Borland C++ Builder related fixes 860 - --debug_password option (turned off by default) 861 - updated cfg/ttscp/help/* 862 8632.4.25 from 2.4.24 12.9.99 864 - redesigned struct wavefm, esp. flush() to accomodate the first 865 attempt at labels (--show_labels). Made all members of wavefm 866 public and worse ugliness. 867 8682.4.26 from 2.4.25 17.9.99 869 - short options properly documented; -d, -e disappeared (use long opts instead) 870 - fixed a *""=0 bug in parse_cfg_str() with implicit option values 871 - fixed a --language option bug (server command line) 872 - made Epos gracefully shutdown at SIGTERM 873 - temporary symbols available in rules extended to \X,\Y,\Z,\W,\V,\U. 874 - fixed disconnection bug at the end of appl with Windows Sokec 875 - fixed some unit deletion stuff &c in unit.cc and elsewhere 876 8772.4.27 from 2.4.26 19.9.99 878 - fixed a typo in unit.cc (2.4.26 wouldn't compile) 879 - made say connect to "localhost", not to gethostname() 880 (so that it can find the server even with local_only). 881 - minor tweax inspired by Visual C++ warnings 882 socky #defined to (un)signed) to correspond to the socket type 883 - fixed the unlabeled waveform format (total_bytes was negative) 884 8852.4.28 from 2.4.27 22.9.99 886 - moved naive prosody stuff to lng/czech 887 - agent::timeslice now catches command_failed, so that errors during 888 stream processing are correctly reported and survived 889 - a minor VC fix (missing "socky" qualifier) 890 - fixed the lpcfloat voices (incorrectly interpreted models) 891 - monolith fixed 892 - intr command fixed (could send multiple 40x replies) 893 - next attempt at labelled waveforms 894 - added some missing stuff to the documentation, chapter Options 895 8962.4.29 from 2.4.28 28.9.99 897 - replaced gather and subst buffers with growable buffers 898 (subst and regex rules may get broken under some circumstances) 899 - added a max_text_size sanity check (as an option) 900 - fixed a set_option bug (setl could fail, but set the option to 0) 901 - a small fix in lng/czech/prosody.rul - penults always off-falling 902 - a few minor fixes 903 9042.4.30 from 2.4.29 3.10.99 905 - new autoconf test - HAVE_REG_EEND 906 - arch/unix/Makefile.dummy made even more dummy 907 - Makefile made urmake compatible 908 - code pedantified (except for kill(), strcasecmp(), gethostname(), strdup()) 909 - fix for infinite "grow sb" loop in unit::subst() 910 - allowed.ini renamed to restr.ini, together with the respective option 911 and its location can be changed with --base_dir 912 - added a security section to the documentation 913 - commented out the mark_voice() debugging thing in waveform.cc 914 9152.4.31 from 2.4.30 6.10.99 916 - waveform stuff survives no sound ioctls found without FORGET_SOUND_IOCTLS 917 - minor fix to say.cc to avoid fopen(NULL) 918 - oa_wavefm::run() modified to run until EAGAIN (not just end of ophase) 919 9202.4.32 from 2.4.31 11.10.99 921 - removed superfluous explicit hash_table<char, char> instantiation 922 - removed and fixed most FIXMEs (in src/*.cc) 923 - properly escaped line-initial hash chars standing for pauses 924 in lng/*/traditnl.dph (discarded as comments until now) 925 926 9272.5.-4 from 2.4.32 19.11.99 928 - unit markers (see marker.cc) - that's why prosody is broken 929 - say.cc fix: no TTSCP_USER variable set 930 - minor additions to main.dic 931 - changed labelled waveforms from regions to labels and partly fixed them 932 - fixed sbsize related bugs 933 9342.5.-3 from 2.5.-4 20.3.00 935 - finished new prosody modelling 936 - mbrola-compatible speech synthesizer input format (SSIF) introduced 937 - prosody_dir option removed (prosody is language-dependent anyway) 938 - @s hacked out in the HTML documentation 939 - incorporated a 2.4.36 to 2.4.40 patch: 940 - endianness and Solaris related fixes 941 - mmsystem compatibility (Petr) 942 - added an lpc voice, "theimer" 943 - voices reconfigured: rvq renamed to r-kubec-vq, r-vichova added 944 - permanent voice fallbacks 945 - put lpcsyn.cc lpcsyn.h under GPL 946 - repacked inventories (relative to /usr/lib/epos/inv, added READMEs) 947 - mmsystem and Visual C++ scripting fixes (Petr) 948 - a few voices changed prosodic defaults 949 - Windows specific regex configuration fixes 950 - #define __STDC__ braindamage removed from rx.h 951 - incorporated a 2.4.32 to 2.4.36 patch except for already present items: 952 - initializing unit::gb and unit::sb statically and related fixes 953 - partly fixed labelled waveforms (added a field to "cue " chunk header) 954 - fixed unlabelled waveforms (added "adjustment" to class w_ophase) 955 - smoothing by phone, not by segment in czech.rul (completely broken anyway) 956 9572.5.-2 from 2.5.-3 27.3.00 958 - renamed oldsynth back to synth 959 - mbrsyn 960 - new Slovak stuff (Martin) 961 - a subtle gather() bug fixed 962 - eight voices bug fixed 963 9642.5.-1 from 2.5.-2 not distributed 965 - drop connections and reread configuration on SIGHUP 966 - some harmless read-only overruns fixed 967 - traditional memory leaks associated with configuration strings fixed 968 - compose_pathname treats NULL string as "" 969 - chdir / on daemon startup 970 - consequently, --base_dir ../cfg ... was broken. Fixed in 2.5.0 971 - other fixes 972 - static options 973 9742.5.0 from 2.5.-1 5.9.01 975 - incorporated a 2.4.40 to 2.4.66 patch 976 - sound labels 977 - label offset fix 978 - pause and nearby diphones fixed in ptacek97.dph 979 - some fixed diphone counts fixed 980 - label fixes 981 - say -d option (show segments) 982 - const qualifier fixes 983 - AC_CONST and AC_INLINE removed from configure.in (suggested by Milan Zamazal) 984 - syslog support 985 - hackfile used only if syslog is not available 986 - added authpriv option 987 - fixed a unit::subst bug (M_EXACT) 988 - attempt to improve syll.dic to handle i-i junctures 989 - HAVE_SYSLOGed severity() and other NT fixes 990 - fixed a VC bug (const qualifiers in ttscp_cmd decl) 991 - fixed cfg->wav_hdr (maybe) 992 - ulaw encoding, downsampling by one half (Petr) 993 - faster waveform generation (tranformations if any moved to wavefm::translate) 994 - waveform buffer is no more char*, but unsigned short* and hdr.buffer_idx 995 MUST be translated (multiplied twice) in wavefm::translate() 996 - fixed ordinal numbers in Czech (also added the gen_ordinals option) 997 - fixed waveform buffer realloc bug in wavefm::attach(int) 998 - fixed labels; configured with label_phones, label_seg, label_sseg 999 - partly added sseg labels 1000 - added some option documentation and other doc updates 1001 - added voice::operator delete(void *, lang *) and more warning avoidance 1002 - changed output_rate option to out_sampling_rate 1003 - banned spurious messages in lpcsyn.cc 1004 - fixed label_ssegs 1005 - chmod 644 lpcsyn 1006 - short option -u (no header, ulaw encoding, file name said.vox) 1007 - removed the -fhandle-exceptions option for gcc 1008 - fixed a sleep table bug in agent.cc 1009 - moved mmsystem code from agent.cc to waveform.cc and somewhat fixed it (untested!) 1010 - mmsystem interface fixes 1011 - client-side written files (said.wav, said.vox), see the -w -m -o options 1012 - --localsound, --writefs, --readfs options 1013 - terminology: segments are no more called diphones (in general), except for 1014 the TTSCP module name 1015 - various documentation updates 1016 - fixed a struct segment discrepancy between hacked and unhacked TTSCP 1017 (dependence on label_sseg) 1018 - fixed the unit::write_segs() pointer cache 1019 - terminology: fixed arch/win/epos.ini (play_segments option), say, mh, doc, etc. 1020 - a minor fix in wavefm::ioctl_attach, mmsystem code 1021 - made wavefm::attach (and also buffer_size handling) more logical 1022 - fixed waveform headers (ulaw format, alignment and other fields) 1023 - optimized away wavefm::samp_size_bytes 1024 - full_syslog option 1025 - a more effective, though untested ulaw convertor 1026 (#define OLD_9BIT_BASED_ULAW to override) 1027 - treat \r as WHITESPACE 1028 - total_length is now filled in in waveforms transmitted over TTSCP 1029 - label_sseg segfaults no more 1030 - mmsystem wave header structure is now global, not allocated 1031 - local_sound_device option 1032 - mmsystem fixed not to release a live buffer data 1033 - made the Bad option message less misleading 1034 - some mediaeval options (concerning waveform handling) removed 1035 - removed src/navel.h, src/riff.cc, src/label.cc 1036 - removed a minor off-by-one bug in rule.cc 1037 - fixed a LF->CRLF translation bug in say.cc (Windows only) 1038 - moved most stuff from epos.ini to fixed.ini (both UNIX and Windows) 1039 - adapted some option defaults and .ini file comments 1040 - optimized away use_segs pseudooption 1041 - line-final backslash now makes the line continue with the next physical line 1042 - retreat to the old ulaw code 1043 - odd chunk size bug fixed in wavefm::label() 1044 - nine langs/voices bug fixed 1045 - no waveform-initial cue point 1046 - touched the NT service code a little bit 1047 - wavefm.cc cleanup 1048 - wavefm code support for non-16-bit samples etc. fixed 1049 - minor fixes in wavefm code 1050 - autoconf now avoids an unnecessary perverse librx.so 1051 - made \n a word level character (for Czech) 1052 - fixed the "daemon_log file cannot be created" scenario behavior 1053 - declared the server shutdown flag volatile 1054 - changed all debugging level 4 messages to level 3 1055 - fixed parser aliasing for \r (from space to newline) 1056 - some read-only off-by-one bugs efenced off 1057 - pre-set hooks allowed to return a new value, pre_init_f added 1058 - memory leak in cow_free fixed (not freeing voice->syn etc.) 1059 - wavefm::translate_data() fixed (zeroed data bug) 1060 - written the NT service code from scratch 1061 - removed some garbage and updated arch/unix/listtmp 1062 - added the Portability documentation to the docs 1063 - updated the WELCOME file 1064 - NT related fixes, made most files 8+3 file naming convention compliant 1065 - say is now able to start the service if privileged enough on NT 1066 - Epos now installs as an interactive process by default 1067 - monolith code fixed under windows 1068 - documentation adjustments 1069 - hash.cc split to hash.cc and hashd.cc, the latter includes the former 1070 - global is_monolith flag instead of a #define 1071 - only options accepted on Epos server command line 1072 - removed monolith-only hacks in synth.cc 1073 - preparing for a Windows CE port (kludges for missing APIs) 1074 - split service.h to service.h and globals.h 1075 - say.exe -k now can stop TTSCP service (NT only) 1076 - tweaked subst() behavior (temporarily hiding the final separator) 1077 - if paranoid, hashing rules don't postpone loading the dictionaries 1078 - removed a few duplicate dph files 1079 - new rules for Slovak 1080 - diacritics used for diphtongs in Slovak and that made optional 1081 - minor NT port fixes: 1082 - project files, HAVE_FCNTL_H, MB_SERVICE_NOTIFICATION 1083 - glibc regex code no more reports warnings 1084 - minor CE port adjustments 1085 - cfg->relax_input fixed 1086 - more CE port adjustments, stdlib.cpp introduced 1087 - side syll hack moved from source to the rules. Major rule group 1088 permutation in lng/czech/trans.rul (syllabification, 1089 transcription, nonsyll prep adjoining, geminates groups) 1090 - (Cz) fixed the voicing assimilation rule for � after an 1091 unvoiced nonsyllabic preposition; fixed ain$ -> ajn etc. 1092 - fixed a unit::gather() bug 1093 - fixed a unit::insert looping bug 1094 - minor fixes to the Slovak rules (esp. disabled glottal stops) 1095 - on UNIX, the init_time option 1096 - a trivial agent profiler, see the profile option 1097 - minor NT fixes, such as call_abort() or project settings 1098 - fixed a select() bug 1099 - fixed gettimeofday() autodetection (makes the built-in profiler work) 1100 - (Sk) fixed soft option a_colons in slovak.rul 1101 - fixed intr semantics (if nothing to do, return 423 instead of 200) 1102 - made say more efficient wrt the TTSCP command flow 1103 - fixed (rather, documented) some Windows socket issues, esp. readfs 1104 - moved call_abort down rx.c 1105 - avoided a spurious template instantiation warning in Visual C 1106 - moved traditnl.dph from lng/slovak.prev to lng/slovak 1107 1108 - lng/slovak copied from 2.4.66, lng/slovak.prev copied from 2.5.-1 1109 - WELCOME copied from 2.4.66 1110 - changed also the capitalized DIPH* to SEG* (terminology change) 1111 - made max_line static and similar randomly found fixups 1112 - fixed --base_dir with relative pathnames 1113 1114 - .orig files still hold the 2.5.-1 contents 1115 11162.5.1 from 2.5.0 27.9.01 1117 - changed DEBUG() to DBG() 1118 - removed Czech documentation files 1119 - .orig files removed 1120 - src/function.cc, made *gress (and other) rules use much less memory 1121 - hackfile renamed to epos.err (still used only if no syslog) 1122 - added encoding.cc, i.e. support for multiple character encodings 1123 - URL spelling rules (unpronounceable consonant groups are spelled out) 1124 - handling server -D option in a less cleverish way 1125 - static option deallocation fixed 1126 - Makefile on config.h dependency removed 1127 - some error messages changed to the file:line format 1128 - rules go on parsing after errors 1129 - added an undocumented class of errors 88x 1130 - fixed an incomplete conditional rule parsing bug 1131 - max_errors, max_nest options 1132 11332.5.2 from 2.5.1 8.10.01 1134 - minor speedup of esctab related code, non-compressed functions added 1135 - lng/czech/numerals.rul fixed (1[234] mili.*) 1136 - minor documentation fix 1137 - minor g++ 3.0 fix (friend class syntax) 1138 - fixed a segfault bug if no voices are configured 1139 11402.5.3 from 2.5.2 18.10.02 1141 - (Sk) voicing assimilation fix 1142 11432.5.4 from 2.5.3 7.4.03 1144 - fixed a segfault bug if no soft options or voices for a language 1145 - TTSCP modules: syn, dump 1146 - say options: -s, -t 1147 - mbrsyn and projection code heavily debugged 1148 - new rule type: absolutize (temporary implementation) 1149 - (Cz) generate_segs, traditional_dph options 1150 11512.5.5 from 2.5.4 15.4.03 1152 - SAMPA translation 1153 - fixes related to the prosody (mostly to unit::t) 1154 11552.5.6 from 2.5.5 29.5.03 1156 - incorporated a 2.4.66 to 2.4.81 patch 1157 - added tdpsyn.cc, .h 1158 - incl. 2.4.66 to 2.4.67 patch (mostly related to tdpsyn and 1159 adjustments in Czech and Slovak language configuration) 1160 - tdpsyn rewritten 1161 - added tdpsyn to arch/win/configure.bat, arch/win/epos.dsp 1162 - tdpsyn now handles missing diphones based on paranoid the obvious way 1163 - added mappings/README 1164 - added r-violka and r-machac voices 1165 - (Sk) removed |'s before diphonization 1166 - (Sk) fixed the v>w rule 1167 - (Cz + Sk) fixed the capitalization just after a non-letter spelling bug 1168 - (Cz + Sk) (v z�tvorke) "v uvodzovk�ch" (punctuation rendering for short texts) 1169 - (Cz + Sk) fixes for URL spelling rules 1170 - tdpsyn.cc now uses memset and memcpy properly instead of initialization loops 1171 - added tcpsyn.max_frame; made the out_buffer size fit the segment inventory 1172 - faster waveform->sample(SAMPLE *, int) used by tdpsyn 1173 - (Cz + Sk) Roman numerals 1174 - say first transcribes, then speaks 1175 - (Sk) fixed voicing loss in voiced-final + personal pronoun 1176 - function.cc, .h, encoding.cc, .h added to arch/win project files 1177 - (Sk) fixed "tretiemu", ")]}", and many spellout forms 1178 - various minor code fixes 1179 - tdpsyn bug (OLA frames omitted) fixed 1180 - say now attempts to connect to a public TTSCP server if needed 1181 - (Cz + Sk) Roman numerals rules made more robust 1182 - a marginal URL spelling fix (word-initial l,r) 1183 - (Cz + Sk) workaround rule for noisy pause diphones 1184 - (Cz) ucircle spellout bug fixed 1185 - cosmetic header and source file fixes, libeposaif 1186 - joined Petr's diffs from 2.4.73: 1187 - linear predictive prosody modelling (tdpsyn) 1188 - TSR debugging tool support (Win only) 1189 - 1/3 and 1/4 downsampling band-pass filters 1190 - tdpsyn prosody modelling fix 1191 - fixed triphone files (betty.dph and violka.tdi) 1192 - fixed lpc prosody 1193 - added additive_cont option (needed with lpc prosody model) 1194 - gauge prototype 1195 - client.cc: sputs replacement callbacks 1196 - nonblock.cc - handles control connection congestion 1197 - split sleep_table to block_table and push_table 1198 - minor scheduler and client code fixes 1199 - added 2.4.77 fixes 1200 - some LP prosody fixes 1201 - fixed d.f parameter, it's really F0 now! 1202 - (Win32) fixed missing 2x socky @ client.h 1203 - (Win32) fixed missing nonblock.cpp @ configure.bat & epos.dsw 1204 - odd sized translated data bug fixed 1205 - max AVL tree depth for dictionary-oriented rules increased 1206 - added many cross-references, examples and etc. to rules.sgml 1207 - (Cz) "p�es" voicing assimilation behavior fixed 1208 - negated dictionaries (r_prep, r_postp, r_with), M_NEGATED 1209 - minor patch related fixes (spelling, spacing etc.) 1210 12112.5.7 from 2.5.6 2.6.03 1212 - incorporated a 2.4.81 to 2.4.Daniel patch (see applied-diff-81-to-Daniel) 1213 most changes by Daniel Sobe and Jakub Adamek 1214 - experimental German configuration (BOMP interface unfinished) 1215 - neural net prosody modeling 1216 - F0 smoothing 1217 - pros_factor option 1218 - F0 labeling 1219 - r_mysubst 1220 - (Win32) minor fixes 1221 - struct option -> epos_option 1222 12232.5.8 from 2.5.7 4.6.03 1224 - changed DBG's to D_PRINTs 1225 12262.5.9 from 2.5.8 6.6.03 1227 - removed listtmp, Makefile.dummy, default.ini, maketgz, distcfg, 1228 makedflt, makedflt.sed, addcflag, cstodos, makenicedate 1229 install.sh, rerunepos, makeinst, doc/czech, doc/slovak etc. 1230 - added automake support 1231 - renamed src/nnet/string.h to slowstring.h (also string.cc, types.h) 1232 - moved several files between doc and arch/unix 1233 - moved doc/english/* into doc 1234 - moved doc/Changes to Changes 1235 - moved VERSION to configure.in 1236 - cfg now installs to /usr/share/epos (instead of /usr/lib/epos) 1237 - fixed the mbrola_binary option to accept relative names 1238 12392.5.10 from 2.5.9 12.6.03 1240 - say now recognizes --help 1241 - slightly less obscure error messages for newcomer mistakes 1242 12432.5.11 from 2.5.10 19.6.03 1244 - fixed a connect bug if say is run with no name resolver 1245 - install-data-hook -> install-data-local 1246 - didn't forget to install cfg/root 1247 - installed configuration directories are now mode 755 1248 - .DELETE_ON_ERROR in Makefile.common 1249 - missing sgml2html doesn't interrupt a make any more 1250 12512.5.12 from 2.5.11 25.6.03 1252 - shriek now accepts varargs, thus eliminated most fmt()s 1253 - fmt() now uses scratch instead of error_fmt_scratch 1254 - some error messages improved 1255 - vrfy: some more tests 1256 - using vsnprintf instead of vsprintf if available 1257 - sending 401 reply at the end of the intr 1258 - oa_wavefm::break now issues a 122 and no 123 reply 1259 - moved vrfy into the new src/tests subdirectory and TESTS 1260 - vrfy now can spawn (and uses and kills) a temporary Epos 1261 - moved the compiler tests somewhat up the configure.in 1262 - fixed yylex() in neural_parse.yy not to use yytoknum 1263 - fixed the multiply defined CLEANFILES bug 1264 12652.5.13 from 2.5.12 1.7.03 1266 - fixed scratch overrun in say 1267 - fixed say command line behavior wrt mixed text, dashes and options 1268 - fixed marker::operator < to take the explicit parameter by reference 1269 - rewrote marker::merge() 1270 - rewrote unit::~unit() to conserve space; don't delete next anymore 1271 12722.5.14 from 2.5.13 20.7.03 1273 - removed some misleading comments from some charset mappings 1274 - added morpheme between syll and word in unit_levels 1275 - rewrote parser initialization - simpler, flexer, faster 1276 - perm_input@*, perm_working@* options 1277 - random data test doesn't generate premature hard zeroes 1278 - resets to normal color after an \e'd cfg opt value is printed 1279 - r_analyze rule type - a simple morphematic analyzer 1280 - hash_table::longest ignores items with replacees beginning in !META_ 1281 - removed the older time domain synthesizers 1282 - capitalized documentation section titles and similar fixes 1283 - updated the doc for some options 1284 - updated option documentation tests 1285 - use_nnet_phone changed to a soft option and renamed to nnet_phone 1286 - added arch/unix/test.version to assist make distcheck 1287 12882.5.15 from 2.5.14 8.8.03 1289 - renamed INFINITY in unit.cc to avoid a conflict with C99 1290 - updated the --help and -H outputs for all three command lines 1291 - removed superfluous "use_" from the few affected boolean opts 1292 - fixed charset setting while cfg re-read 1293 - documented TTSCP modules dump and [p] 1294 - changed some 86x errors to 46x 1295 12962.5.16 from 2.5.15 12.8.03 1297 - new LPC inventories (silent diphone added) 1298 - cfg/inv now always includes kubec-vq, vichova-vq 1299 - vrfy doesn't kill the temporary server but uses "down" 1300 - config.guess, config.sub updated 1301 - option "downgradables" solves several parser limitations 1302 - adapted doc/intro.sgml to get the history closer to current reality 1303 13042.5.17 from 2.5.16 12.10.03 1305 - struct cue_point: the "chunk" member fixed from int[4] to char[4] 1306 - (Cz + Sk) abbrev.dic, abbrurl.dic -> spellout.dic, spellurl.dic 1307 - (Cz) soft option diphtongs (no diphtongs for mbr-cz1) 1308 - SAMPA alternates are named by the sampa_alts list 1309 - list_of_calls() 1310 - SAMPLE is now signed 16 bit, got rid of SIGNED_SAMPLE 1311 - unified t_samp to SAMPLE; replaced "long" and "short" ints by C99 1312 - (Cz) fixed n_segs in theimer.ini 1313 - removed nnet.cc 1314 - encode_to_sampa() renamed to decode_to_sampa() for consistency 1315 13162.5.18 from 2.5.17 19.10.03 1317 - removed defaults.h 1318 - hash tables lost independence on Epos 1319 - hash tables lost DEBUG_HASH, PROFILE_HASH, ANYWAY, write and update 1320 - hash tables use text.h to read a table from a text file 1321 - removed char escaping from literal & .dic hashes and string values 1322 - removed commenting out from .dic hashes 1323 - added char escaping to TTSCP setl and setg cmd values 1324 - switched the order of text file processing to: 1325 encoding, directives, escaping 1326 - renamed getline to get_line (and rewrote it as above) 1327 - fixed text::rewind() and some related D_PRINTS 1328 - changed some printf's to D_PRINT's 1329 - (Cz) partly fixed short.dic (several problems), see also trans.rul 1330 - added a documentation section on the overall architecture 1331 13322.5.19 from 2.5.18 6.11.03 1333 - fixed hash table filename and line no. reporting 1334 - fixed unit::subst(): largest match now goes first 1335 - fixed unit::relabel(): largest match now goes first 1336 - fixed a cfg reload bug in encoding.cc 1337 - fixed a double free buf in ~lang 1338 - fixed memory leaks: text::superfile and config_release() etc. 1339 - fixed when a_input::run is scheduled, but read returns EAGAIN 1340 - slabified parser and sched_aq 1341 - fixed slab leak reporting 1342 - speed optimizations of critical spots (inlines, booltab->always) 1343 - (Cz) completely new and better main.dic, short.dic 1344 (suggested by Pavel Machek) 1345 - (Cz) optimizations (numerals) and fixes (infinite substs) 1346 - (Cz) several "near" optimizations and soft opts to skip some rules 1347 - (Cz) nonsyl.dic -> nonsyllprep.dic; introduced interj.dic 1348 - (Cz) unified the stress unit establishment rules to stress.rul 1349 - (Cz) joined the two stress grouping substs (relabels) 1350 - (Cz) stopped to "support" the naive prosody 1351 - gauge now sends items out in comma separated batches 1352 - gauge made always to send out options to skip inessential rules 1353 - gauge -t 1354 - new synchronous sgets(), strace friendly, faster, space hungry 1355 - O_LIST options (currently languages, voices and soft_options) 1356 - moved scope and dbg tag logic from block_rule::apply_current 1357 to rule::cook(), which fixes rules not directly in blocks 1358 - removed M_BEGIN, M_END, M_SEQ from unit::subst() and elsewhere 1359 - arch/unix/upload to support "make upload" to SourceForge 1360 - "make cfginst" (available from the src subdir) 1361 - exceptions are now properly deallocated (hopefully) 1362 - the ttscp command help files work again 1363 - changed some file owners, groups and modes (to non-root) 1364 - utterance chunking made aggresive - max_utterance, split_utterance 1365 13662.5.20 from 2.5.19 11.11.03 1367 - some configure.in tests fixed (reported by Mirek Trmac) 1368 - simplified options.lst (source code names = user names) 1369 - fixed the with !"... ..." word splitting bug 1370 - fixed two 0 disappearances in the rules 1371 - r_regress and r_progress now use ABSENT_CHAR instead of '0' 1372 13732.5.21 from 2.5.20 27.11.03 1374 - fastmatch optimization speeds up subst rules in VERY large scope units 1375 - gather now returns in gb and gblen 1376 - (Cz) related and other main.dic fixes 1377 - (Cz) fixes related to characters from mathsign.dic, dollars etc. 1378 - a_accept now has no context of its own, but has "listening" 1379 - ~configuration is now no duplicate for free_all_options() 1380 - fixed theimer's n_segs to 441 1381 - several fixes connected with the reinitialization 1382 - say -r now properly times out 1383 - rule::whole_tag buffer made static 1384 - removed arch/win/cpconv2.exe and made the conversion optional 1385 - fixed a mysterious order dependency bug in wavefm::flush() 1386 (reported by Larry Gilbert) 1387 - text preprocessor now by default strips leading and trailing whitespace 1388 - after a fatal bug, don't complain about slab's lost cells 1389 - parser::depth (to fix downgradable character disappearances) 1390 - an attempt at a THANKS file 1391 13922.5.22 from 2.5.21 10.1.04 1393 - (Cz) main.dic improvements 1394 - gauge -b 1395 - cfg/Makefile.am now only installs and distributes listed files 1396 - likewise for arch 1397 - removed arch/win/*.enc, *.conv and added README.CODEPAGE 1398 - make arch/unix/upload/upload a bit more atomic 1399 - fallback_mode option (see docs) (addresses default voice problems) 1400 - added WELCOME and several files in doc to EXTRA_DIST 1401 - init_time option fixed (now works for 2+ seconds) 1402 - TTSCP header documented not to be terminated by an empty line (Mirek) 1403 - (Cz, Sk) "female" soft option to indicate voice gender 1404 - removed pseudo root dir "root" from the distribution 1405 14062.5.23 from 2.5.22 16.2.04 1407 - Win32 portability fixes, getcwd replacement, arch/version.h 1408 - the derived HTML documentation is no longer distributed 1409 - split epos.h off common.h 1410 - reorganized the hash table code 1411 - eposm is now noinst and displays an obsolescence notice 1412 - improved WELCOME and cfg/inv/README 1413 - due to an automake upgrade: AM_LDFLAGS instead of LDFLAGS 1414 - due to an autoconf upgrade: got rid of acconfig.h, quoting 1415 - renamed configure.in to configure.ac 1416 - configuration::get__sd_in/out() sockified access functions 1417 14182.5.24 from 2.5.23 5.9.04 1419 - reorganized struct unit data items to make the struct smaller 1420 - some fixes and workarounds for g++ 3.4 (Andreas Jochens) 1421 - mmsystem fix - loop on an active buffer 1422 14232.5.25 from 2.5.24 25.2.05 1424 - fastmatch initialization fixed to be linear in dictionary size 1425 - better error handling if fastmatch regex doesn't compile 1426 14272.5.26 from 2.5.25 26.2.05 1428 - morphoanalyzer fix - used to be confused by buffer space past the input 1429 - DO_PRINTs not allowed by a make distcheck 1430 14312.5.27 from 2.5.26 9.3.05 1432 - better error reporting for MBROLA voices when fed by the traditional segment string 1433 - fixed literal zero vs. absent char handling in syll and seg rules and some D_PRINTs 1434 14352.5.28 from 2.5.27 8.4.05 1436 - binaries renamed to eposd, say-epos, gauge-epos; gauge-epos made noinst 1437 - default installation prefix changed to /usr/local 1438 - arch/unix/difftgz produces version-to-version diffs of Epos dists 1439 - fix: survive when a remote TTSCP server returns 0 bytes 1440 - fix: r-machac and r-violka were not configured 1441 - error reporting improvements 1442 - r_fail (to report cfg errors from within rules) 1443 - fix: a dph file selection was not selected for remote voices 1444 - FAQ started 1445 - preload_voices feature drops unusable voices at startup 1446 - encode_string refactoring towards UTF-8 1447 - fix: a_seg used to terminate prematurely after 2048 segments 1448 - select_local_soundcard() to choose e.g. between OSS and portaudio at startup 1449 - portaudio support (by Adam Nohejl) 1450 - Mac OS X port (by Adam Nohejl) 1451 - LPC and TDP synthesizers support LE inventories on big-endians (by Adam Nohejl) 1452 - regex moved to libs (may break some ports) 1453 - included portaudio to support Mac, --enable-portaudio to configure 1454 - say-epos option -z to print the TTSCP exchange 1455 - gcc 3.4 fix - moved Min/Max templates into nnet/vector.h (suggested by Karl Chen) 1456 - all files made root-owned and world-writable 14572.5.29 from 2.5.28 26.4.05 1458 - Latin language (the 4 prominent continental pronunciation standards) 1459 - fastmatch_substs made optional (and disabled by default) to speed up startup 1460 - some fixes for g++ 4.0 and 64-bit pointers (Andreas Jochens) 1461 - syll rule can now do general multilevel splits 1462 - fix: recode substs with the end-of-string marker $ 1463 - minor error reporting improvements 1464 - trivi fix in configure.ac when --enable-portaudio=yes 1465 - reinit fixes 1466 - say-epos -r fixes 1467 - vrfy.cc broken up into automake-driven individual tests 1468 - Vogon language (unit testing infrastructure) 1469 - FAQ: report bugs by writing the tests 1470 - say-epos option -x to turn off the synthesis (transcribe only) 14712.5.30 from 2.5.29 24.5.05 1472 - Win fix: #define FORGET_PORTAUDIO 1 1473 - doc fixes (wrt default install path, PortAudio, Mac OS X) 1474 - r_absol reshaped as a hashing_rule 1475 - average phone length databases based on two corpora 1476 (affects mbrsyn voices for better or for worse) 1477 14782.5.31 from 2.5.30 25.5.05 1479 - Mac OS X (big endian) fixes 1480 14812.5.32 from 2.5.31 30.5.05 1482 - SAMPA (including alternates) supported as a regular encoding 1483 - all natural text buffers are now allocated with extra space for decoding 1484 - more refactoring towards UTF-8 support, needs just the routines now 1485 - fix: previously did not properly decode option values in TTSCP show 1486 - fix: uninitialized SAMPA decoder tables 1487 - doc fixes 1488 14892.5.33 from 2.5.32 20.6.05 1490 - fixed several TTSCP show command related bugs: segfaults, leading colons, omitted spaces 1491 - fixed unassigned external variables: segfaults 1492 - fix: settings associated with a headerless ulaw used to be permanent 1493 - fixed the behavior after some data connection writing errors (used to deadlock) 1494 - reinit fix when being started from root (all bugs reported by Adam Nohejl) 1495 14962.5.34 from 2.5.33 30.6.05 1497 - fix: one more deadlock (on errors while detaching waveform) 1498 - fix: response to some pseudoempty inputs 1499 - fix: appl 0 is now forbidden 1500 15012.5.35 from 2.5.34 2.7.05 1502 - adjusted n_segs and betty.dph for tdi-based voices to cover recent segment additions 1503 (in machac.tdi and violka.tdi - upgrade those to the GPL'd versions) 1504 - fix: response to some pseudoempty inputs on big-endians 1505 15062.5.36 from 2.5.35 9.8.05 1507 - fix: DESTDIR support (Jeremy Huddleston) 1508 - fix: removed the unused and non-portable hash to hostent in hashi.cc 1509 15102.5.37 from 2.5.36 24.3.06 1511 - gcc 4.1 fix: extra qualification (Martin MichlMayr) 1512