Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

espeak 1.47.11 #39

Open
wants to merge 25 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3f6e466
made node compatability changes in pre.js and post.js, added package.…
christopherdebeer Nov 28, 2011
6e94aae
added .npmignore and amended authors
christopherdebeer Nov 28, 2011
a197892
fixed authors
christopherdebeer Nov 28, 2011
6804603
fixed authors /contrib in package.json
christopherdebeer Nov 28, 2011
2cd6c1e
Expose speak as a global variable; Add play, pause and resume functions
Jun 5, 2012
f53800e
Add audio control instruction in README
Jun 5, 2012
22903ad
Fix typo in README
Jun 5, 2012
ffe46ba
merging with upstream repo
christopherdebeer Jun 27, 2012
658bd1b
Add a link to the original project
Jul 9, 2012
ffa9710
Add new demo link
Jul 9, 2012
379f13c
Remove demo html files
Jul 9, 2012
3026bf9
Add package.json
Jul 11, 2012
4936a6b
Fix a bug in package.json
Jul 11, 2012
e3e05b3
Fix a license typo
Jul 11, 2012
416d566
Merge pull request #1 from katsuyan/master
newsky Aug 30, 2012
fba8972
merge from @newsky remote repo
christopherdebeer Jan 27, 2013
20fd27a
espeak 1.47.11
logue Dec 19, 2013
754ca48
Rebuild by emscripten v1.8.2.
logue Jan 16, 2014
6403950
Fixed a problem that does not play in Chrome.
logue Jan 23, 2014
71f2bb4
Changed demo.html.
logue Jan 23, 2014
7a70b10
espeak-1.48.02
logue Feb 4, 2014
c08e079
espeak-1.48.04 (notice : Compilation to succeed less than emscripten …
logue Mar 13, 2014
85a52f8
add eu voice.
logue Mar 13, 2014
ddca9fb
Update speakClient.js
saschanaz Jan 6, 2015
a35471d
Merge pull request #1 from SaschaNaz/master
logue Jan 7, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .npmignore
@@ -0,0 +1,9 @@
*.exe
*.html
dictsource
docs
src
platforms
espeak-data
speak.full.js

2 changes: 1 addition & 1 deletion AUTHORS
Expand Up @@ -4,4 +4,4 @@ authors, who have all licensed their contributions to speak.js under the
licensing terms detailed in License.txt.

* Alon Zakai <alonzakai@gmail.com> (copyright owned by Mozilla Foundation)

* Christopher de Beer <christopherdebeer@gmail.com>
290 changes: 203 additions & 87 deletions ChangeLog.txt
@@ -1,3 +1,205 @@
espeak 1.48.04 06.04.2014

Corrections to languages en, nl, ta (rules, list, and dict files).
No other changes from version 1.48.03. No change to program, phoneme
data, or other languages.


espeak 1.48.03 04.04.2014

Fix bug, use of the command-line "espeakedit --compile" produced phoneme data
in which vowels started at full amplitude instead of gradual increase.

Fix bug: SSML <break time=""> with values greater than 23 seconds were ignored
due to arithmetic overflow.

Phoneme definition files:
Added new function: ChangeNextPhoneme().

Language changes include: da, en, fa, gu, hu, it, nl, pt, ta

Started new language: eu (Basque).

*_rules files:
Allow $p_alt1, $p_alt2, etc in pre-conditions. The rule matches if the
characters before the current point in the word occur as an entry in the
*_list file with the corresponding $alt attibute.

Added condition $list. This is similar to $p_alt etc, but examines
all words in the *_list file which don't have the $only attribute.



espeak 1.48.01 02.02.2014

*_rules files:
Added rule attribute $noprefix. The rule is not used if a prefix has been removed from the word.

Windows:
Program changes to enable audio output from Windows DLL.

Language options:
Added attribute 'dictdialect' to specify en-us voice for words marked with _^_EN.

Superscripts and subscripts are spoken as single letters and numbers during normal speech, and with "superscript" and "subscript" also spoken when spelling.

API: Change function call espeak_TextToPhonemes().

Klatt synthesizer: Fix parallel formant parameters.


Language changes include:
af, an, da, en, fa, ga, gu, hu, hy, it, ml, nl, ta, ur, vi.


espeak 1.47.10 30.04.2013
Data change only.
Revert 't' sound in Spanish to version 1.47.07.

espeak 1.47.09 29.04.2013
Bug fix (lookup in *_list occasionally found the wrong word).

espeak 1.47.08 26.04.2013

Automatically generate character names for subscript and
superscript characters.

Use internal ctype data for character codes up to U+024F.

Add API function espeak_TextToPhonemes().

Add test language az, Azerbaijani.


espeak 1.47.07 18.04.2013
Language data changes only.

espeak 1.47.06 15.04.2013
Bug fix for names of non-ascii digits.

RISC OS version:
Fix for systems which have 44010Hz but not 22050Hz audio.
Now runs OK in ARMv7 mode.


espeak 1.47.04 02.04.2013

Bug fixes.

Phoneme definitions: add conditions prev2PhW(), next3PhW().

Added language: ms (Malay)

Command line:
--voices=<directory> lists the voices in the specified subdirectory.


espeak 1.47.03 21.03.2013

Bug fixes.


espeak 1.47.01 18.03.2013

Added languages:
an Aragonese.
fa Farsi.
ga Irish.
lt Lithuanian.
pa Punjabi.

Many language improvements, including American English, Danish, Dutch, Portuguese, Tamil.

Command-line program. Added -version option.

Command-line program. Added optional value to --ipa option.
--ipa=1 adds a 'tie' character to link letters in a multi-letter phoneme name.
--ipa=2 adds a zero-width joiner to link letters in a multi-letter phoneme name.

Command-line program. -X option now lists the names of attributes from *_list files.

Speak the names of Braille Dot characters, U+2800 to U+28FF.

Speak names of characters in some non-native alphabets.

Automatic switch to a different language for text in non-native alphabets.

Improved speaking of text from a non-native alphabet after automatically switching
to a different language voice.

Break words with characters from different alphabets into separate words.

Ignore soft-hyphen (U+00AD) in text.

Klatt vioices, improved nasal vowels.

espeak-data can be compiled using a different sample rate than the default
22050Hz. eSpeak will then generate speech at that sample rate.

Change the structure of the espeak-data/voices directory to use subdirectories
for europe, asia, and others.

*_rules files.
Add suffix option 'm' to allow multiplr suffixes to be removed from a word.

*_list files.
Allow $text attribute when a text translation is given in a different alphabet.

Phoneme definitions.
Add NOT operator in conditions.
Add prevVowel() and nextPh2W()
Ignore UTF8-BOM sequence at the start of phoneme definition files.

espeakedit application.
Use wxWidgets 2.8 on Linux.
Use wxNotebook for prosody and vowel pages.
Add an option to compile the phoneme data at a specified sample rate (uses the 'sox'
program for the conversion of WAV file data).


espeak 1.46.01 22.Nov.2011

Added runtime detection of pulseaudio, with fallback to portaudio if pulse is not running. Use build option "AUDIO=runtime" in the makefile.

Fixed crash on re-initializing libespeak.

SSML. Commands such as <mark> and <prosody> were ignored if they were inside a multiword group (defined in *_list). Fixed.

SSML. Don't omit <marker> event for words which are recognized as pairs (such as "of the").

SSML: Keep the original voice variant across SSML xml:lang changes.

SSML: Use the original language sub-type (eg. en-sc) when SSML xml:lang changes to a compatible language.

SSML <emphasis>, increase volume for "strong" and "x-strong".

SSML Fix bug where </emphasis> was ignored at end of clause.

SSML: Fix problem where speed can get set to minimum after a <mark> tag.

SSML: Fixed bug where SSML voice change didn't remember an initially specified Klatt variant.

Mbrola: Add support for voices: vz1, mx1, mx2.

Mbrola: Amplitude changes now apply also to mbrola voices.

Mbrola: "voicing" attribute in mbrola voice files can be sued to adjust the loudness of the mbrola voice.

*_list: $combine. Don't combine with the next word if it uses a different language translator.

*_list: $dot attribute was ignored for multi-word entries.

Phoneme definition files. Phoneme programs. Added condition "isTranslationGiven" to test whether a phoneme has been specified explicitly for a word in *_list.

Lang=Hindi: Suppress some [@] vowels.

Lang=Spanish, fix missing "y" in numbers such as "21".

Lang=EN-US: Don't add 'intrusive r' between phoneme [i@] and a following vowel.
lang=EN-US, distinguish phonemes [aI@] and [aI3] (compare "diet", "tired").



espeak 1.45.04 25.Apr.2011

Added language Malayalam (ml).
Expand All @@ -12,7 +214,7 @@ Fix problem of punctuation character announcement repeated at the start of the n

Fixed crash due to large numbers of box-drawing characters in text input.

Fixed phoneme translation of 't' sounds for US-English voices.
Fixed mbrola phoneme translation of 't' sounds for US-English voices.


espeak 1.45.03 22.Mar.2011
Expand Down Expand Up @@ -233,89 +435,3 @@ HTML tags should not insert a space when they are removed. This could cause a b
Fixes to correctly recognise space as a thousands separator in some languages.




eSpeak 1.42

Improvements to languages including Hungarian, Portuguese, Tamil

Changes to intonation when announcing punctuation (--punct option).

Recognise key names in <say-as interpret-as="tts:key"> and allow translation
into the current language.

*_list files, added attribute $hasdot for abbreviations. The rule only applies
if the word is followed by a dot.

SSML (as used by Speech Dispatcher), fix problems where a tag after a dot meant
that end-of-sentence and ordinal numbers were not recognized correctly.




eSpeak 1.41

Added language: da Danish

Language: it Italian, added dictsource/it_listx with data for stress positions and open/close "e" and "o" vowels.

Languages: pt, it: Fixed a crash when speaking some numbers.

Fixed numbers greater than 1000000 for Indian languages.

-m option now ignores XML comments.

-b option now has a value (4) to specify 16 bit character input text.

-g option (word gap) fixed for Windows.

--punct option. Fix some unnecessary pauses when speaking punctuation names.

SSML: fixed bug where <mark> was ignored before some punctuation characters.

Changed the format of formant data in espeak-data/phondata, to add extra parameters for use by a Klatt synthesizer. Changed the formant dialogue in espeakedit to include these.

F7 and F8 formants are now fixed at 7800Hz and 90000Hz.

"Text position" in callback events is no longer limited to 16 bits.

Fixed problems with word-length indications in callback events.

Some changes to allow compilation on WinCE/Windows Mobile, with notes in platforms/windowsMobile.

*_list files. Ad feature for ordinal numbers (for some languages).
*_list files. Allow hyphenated word groups to start with a number.
*_list files. Allow "words" of symbols to contain brackets.




eSpeak 1.40

Added languages:
lv Latvian, ca Catalan, sq Albanian, hy Armenian.

Adjusted the tonal quality of the speech to reduce the harshness slightly.

Language improvements include:
English/US, Esperanto.

Windows SAPI5 installer: Remove the limit on the number of eSpeak voices which can be installed.

-m command option: Ignore text within <script> and <style> tag pairs.

-v command option: If the parameter is not a voice file name, look it up as a language name (specified inside voice files).

Added command option --path. Specified the path of the espeak-data directory.

Added command option --phonout. Specifies output of mbrola phoneme data, and phoneme data from -x and -X command options, to a file rather than stdout.

Implemented visemes on the SAPI5 interface.

Fix some sound channel lock-ups.

Reduced pause when announcing punctuation characters.

Add voice variant: "fast" to allow experimentation with faster speaking speeds.

Removed the use of C++ Classes.
28 changes: 11 additions & 17 deletions README.markdown
Expand Up @@ -3,15 +3,12 @@ speak.js

A port of the eSpeak speech synthesizer from C++ to JavaScript using Emscripten.

Enables text-to-speech on the web using only JavaScript and HTML5.
Enables text-to-speech on the web using only JavaScript and HTML5. or within Node.js as a module.

**Online demo**: http://syntensity.com/static/espeak.html
Note: This is an official active fork of a following original project

Note: An active fork of this project is at
https://github.com/kripken/speak.js

https://github.com/katsuyan/speak.js

Check it out!

Usage
-----
Expand All @@ -25,13 +22,9 @@ Very simple! Do this:
(and make sure you have speakClient.js available, as well as
speakWorker.js and speakGenerator.js)

* Add a div with an audio element called 'audio' in your html body,
* Call speak.play() to say stuff in JavaScript

`<div id="audio"></div>`

* Call speak() to say stuff in JavaScript

`speak('hello world!')`
`speak.play('hello world!');`

See helloworld.html for a simple 'hello world', and demo.html for
a more detailed example.
Expand All @@ -42,7 +35,7 @@ Options

You can also specify some options with calling speak(), by doing

`speak('hello world', { option1: value1, option2: value2 .. })`
`speak.play('hello world', { option1: value1, option2: value2 .. }, onended)`

available options are:

Expand All @@ -55,12 +48,13 @@ available options are:
* wordgap: Additional gap between words in 10 ms units (default: 0)
* noWorker: Do not use a web worker (see below in 'Architecture')

For example
In addition, you can pass a callback function which will be called at the end of speech.

`speak('hello world', { pitch: 100 })`
For example

will talk in a very high-pitched voice.
`speak.play('hello world', { pitch: 100 }, function(){console.log('completed!');});`

will talk in a very high-pitched voice and output 'completed!' on the console at the completion.

Architecture
------------
Expand Down Expand Up @@ -102,5 +96,5 @@ need to build a custom version of speak.js:
You then need to call speak() with the `voice` option that tells it to use the
right voice for your language. For example, for French this should work:

`speak('boulanger', { voice: 'fr' })`
`speak.play('boulanger', { voice: 'fr' });`