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) |