https://github.com/espeak-ng/espeak-ng/issues/1072 Signed-off-by: Ulrich Müller <[email protected]>master
| Use cmn-latn-pinyin for interpreting latin characters as pinyin | Use cmn-latn-pinyin for interpreting latin characters as pinyin | ||||
| * Update list of voice varants for Android application | * Update list of voice varants for Android application | ||||
| * Add Chromium extension (guest271314) | * Add Chromium extension (guest271314) | ||||
| * Replace `ieee80.c` by a free software implementation (Ulrich Müller) | |||||
| bug fixes: | bug fixes: | ||||
| * Fix reading malformed SSML (Christopher Brannon) | * Fix reading malformed SSML (Christopher Brannon) |
| Source: http://www.realitypixels.com/turk/opensource/ | |||||
| Open Source Repository | |||||
| courtesy of | |||||
| Ken Turkowski | |||||
| The source code available from this page may be freely downloaded and used in | |||||
| any applications for any purpose, as long as the code is used in its entirety | |||||
| and the copyright notice and warranty information is retained. | |||||
| If you make any improvements to this software, you should provide me with said | |||||
| improvements. | |||||
| If any of this code is incorporated into a commercial product, you should | |||||
| notify me of this by email, and provide me with a complimentary copy of said | |||||
| product. :-) |
| MKDIR=mkdir -p | MKDIR=mkdir -p | ||||
| # -Wno-endif-labels : Needed to prevent warnings in ieee80.c. | |||||
| AM_CFLAGS = \ | AM_CFLAGS = \ | ||||
| -Isrc/include -Isrc/include/compat -I$(srcdir)/src/speechPlayer/include -I$(srcdir)/src/ucd-tools/src/include \ | -Isrc/include -Isrc/include/compat -I$(srcdir)/src/speechPlayer/include -I$(srcdir)/src/ucd-tools/src/include \ | ||||
| -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L \ | |||||
| -Wno-endif-labels | |||||
| -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L | |||||
| EXTRA_DIST= | EXTRA_DIST= | ||||
| CLEANFILES = dictsource/ru_listx dictsource/cmn_listx dictsource/yue_listx | CLEANFILES = dictsource/ru_listx dictsource/cmn_listx dictsource/yue_listx |
| eSpeak NG Text-to-Speech is released under the [GPL version 3](COPYING) or | eSpeak NG Text-to-Speech is released under the [GPL version 3](COPYING) or | ||||
| later license. | later license. | ||||
| The `ieee80.c` implementation is taken directly from | |||||
| [ToFromIEEE.c.txt](http://www.realitypixels.com/turk/opensource/ToFromIEEE.c.txt) | |||||
| which has been made available for use in Open Source applications per the | |||||
| [license statement](COPYING.IEEE) on http://www.realitypixels.com/turk/opensource/. | |||||
| The only modifications made to the code is to comment out the `TEST_FP` define | |||||
| to make it useable in the eSpeak NG library, and to fix compiler warnings. | |||||
| The `getopt.c` compatibility implementation for getopt support on Windows is | The `getopt.c` compatibility implementation for getopt support on Windows is | ||||
| taken from the NetBSD `getopt_long` implementation, which is licensed under a | taken from the NetBSD `getopt_long` implementation, which is licensed under a | ||||
| [2-clause BSD](COPYING.BSD2) license. | [2-clause BSD](COPYING.BSD2) license. |
| /* Copyright (C) 1989-1991 Apple Computer, Inc. | |||||
| * | |||||
| * All rights reserved. | |||||
| * | |||||
| * Warranty Information | |||||
| * Even though Apple has reviewed this software, Apple makes no warranty | |||||
| * or representation, either express or implied, with respect to this | |||||
| * software, its quality, accuracy, merchantability, or fitness for a | |||||
| * particular purpose. As a result, this software is provided "as is," | |||||
| * and you, its user, are assuming the entire risk as to its quality | |||||
| * and accuracy. | |||||
| * | |||||
| * This code may be used and freely distributed as long as it includes | |||||
| * this copyright notice and the above warranty information. | |||||
| * | |||||
| * Machine-independent I/O routines for IEEE floating-point numbers. | |||||
| * | |||||
| * NaN's and infinities are converted to HUGE_VAL or HUGE, which | |||||
| * happens to be infinity on IEEE machines. Unfortunately, it is | |||||
| * impossible to preserve NaN's in a machine-independent way. | |||||
| * Infinities are, however, preserved on IEEE machines. | |||||
| * | |||||
| * These routines have been tested on the following machines: | |||||
| * Apple Macintosh, MPW 3.1 C compiler | |||||
| * Apple Macintosh, THINK C compiler | |||||
| * Silicon Graphics IRIS, MIPS compiler | |||||
| * Cray X/MP and Y/MP | |||||
| * Digital Equipment VAX | |||||
| * Sequent Balance (Multiprocesor 386) | |||||
| * NeXT | |||||
| * | |||||
| * | |||||
| * Implemented by Malcolm Slaney and Ken Turkowski. | |||||
| * | |||||
| * Malcolm Slaney contributions during 1988-1990 include big- and little- | |||||
| * endian file I/O, conversion to and from Motorola's extended 80-bit | |||||
| * floating-point format, and conversions to and from IEEE single- | |||||
| * precision floating-point format. | |||||
| * | |||||
| * In 1991, Ken Turkowski implemented the conversions to and from | |||||
| * IEEE double-precision format, added more precision to the extended | |||||
| * conversions, and accommodated conversions involving +/- infinity, | |||||
| * NaN's, and denormalized numbers. | |||||
| */ | |||||
| #ifndef IEEE_H | |||||
| #define IEEE_H | |||||
| #ifndef applec | |||||
| typedef double defdouble; | |||||
| #else applec | |||||
| typedef long double defdouble; | |||||
| #endif applec | |||||
| defdouble ConvertFromIeeeSingle( char *bytes); | |||||
| defdouble ConvertFromIeeeDouble( char *bytes); | |||||
| defdouble ConvertFromIeeeExtended(char *bytes); | |||||
| void ConvertToIeeeSingle( defdouble num, char *bytes); | |||||
| void ConvertToIeeeDouble( defdouble num, char *bytes); | |||||
| void ConvertToIeeeExtended(defdouble num, char *bytes); | |||||
| #endif | |||||
| double ieee_extended_to_double(const unsigned char *); |
| { | { | ||||
| unsigned char bytes[10]; | unsigned char bytes[10]; | ||||
| fread(bytes, sizeof(char), 10, stream); | fread(bytes, sizeof(char), 10, stream); | ||||
| return ConvertFromIeeeExtended((char *)bytes); | |||||
| return ieee_extended_to_double(bytes); | |||||
| } | } | ||||
| float polint(float xa[], float ya[], int n, float x) | float polint(float xa[], float ya[], int n, float x) |