Version numbers follow semantic versioning
-
bugfixes
-
improvements
From Python import the phonemize function using
from phonemizer import phonemize
instead offrom phonemizer.phonemize import phonemize
. The second import is still available for compatibility. -
bugfixes
-
new features
-
New option
--list-languages
to list the available languages for a given backend from the command line. -
The
--sampa
option of theespeak
backend has been replaced by a new backendespeak-mbrola
.-
The former
--sampa
option (introduced in phonemizer-2.0) outputs phones that are not standard SAMPA but are adapted to the espeak TTS front-end. -
On the other hand the
espeak-mbrola
backend allows espeak to output phones in standard SAMPA (adapted to the mbrola TTS front-end). This backend requires mbrola to be installed, as well as additional mbrola voices to support needed languages. This backend does not support word separation nor punctuation preservation.
-
-
-
bugfixes
-
new features
-
Possibility to preserve the punctuation (ignored and silently removed by default) in the phonemized output with the new option
--preserve-punctuation
from command line (or the equivalentpreserve-punctuation
from Python API). With thepunctuation-marks
option, one can overload the default marls considered as punctuation. -
It is now possible to specify the path to a custom
espeak
orfestival
executable (for instance to use a local installation or to test different versions). Either specify thePHONEMIZER_ESPEAK_PATH
environment variable, the--espeak-path
option from command line or use theEspeakBackend.set_espeak_path
method from the Python API. Similarly for festival usePHONEMIZER_FESTIVAL_PATH
,--festival-path
orFestivalBackend.set_festival_path
. -
The
--sampa
option is now available for espeak (was available only for espeak-ng). -
When using
espeak
with SAMPA output, some SAMPA phones are corrected to correspond to the normalized SAMPA alphabet (espeak seems not to respect it). The corrections are language specific. A correction file must be placed inphonemizer/share/espeak
. This have been implemented only for French by now.
-
-
bugfixes
-
parses correctly the version of
espeak-ng
even for dev versions (e.g.1.51-dev
). -
fixed an issue with
espeak
backend, where multiple phone separators can be present at the end of a word, see #31. -
added an additional stress symbol
-
forespeak
.
-
-
bugfixes
-
keep-flags
was not the default argument forlanguage_switch
in the classEspeakBackend
. -
fixed an issue with punctuation processing in the espeak backend, see #26
-
-
improvements
- log a warning if using
python2
.
- log a warning if using
-
incompatible change
Starting with
phonemizer-2.0
only python3 is supported. Compatibility with python2 is no more ensured nor tested. https://pythonclock.org. -
bugfixes
-
new
--language-switch
option to use withespeak
backend to deals with language switching on phonemized output. In previous version there was a bug in detection of the language switching flags (sometimes removed, sometimes not). Now you can choose to keep the flags, to remove them, or to delete the whole utterance. -
bugfix in a test with
espeak>=1.49.3
. -
bugfix using
NamedTemporaryFile
on windows, see #21. -
bugfix when calling festival or espeak subprocesses on Windows, see #17.
-
bugfix in detecting recent versions of espeak-ng, see #18.
-
bugfix when using utf8 input on espeak backend (python2), see #19.
-
-
new features and improvements
-
new
--sampa
option to output phonemes in SAMPA alphabet instead of IPA, available for espeak-ng only. -
new
--with-stress
option to use withespeak
backend to not remove the stresses on phonemized output. For instance:$ echo "hello world" | phonemize həloʊ wɜːld $ echo "hello world" | phonemize --with-stress həlˈoʊ wˈɜːld
-
improved logging: by default only warnings are displayed, use the new
--quiet
option to inhibate all log messages or--verbose
to see all of them. Log messages now display level name (debug/info/warning). -
improved code organization:
-
backends are now implemented in the
backend
submodule as separated source files. -
improved version string (displays uninstalled backends, moved outside of main for use from Python).
-
improved logger implemented in its own module so as a call to phonemizer from CLI or API yields the same log messages.
-
-
-
incompabile changes
The following changes break the compatibility with previous versions of phonemizer (0.X.Y):
-
command-line
phonemize
program: new--backend <espeak|festival|segments>
option, default language is now espeak en-us (was festival en-us), -
it is now illegal to have the same separator at different levels (for instance a space for both word and phone),
-
from Python, must import the phonemize function as
from phonemizer.phonemize import phonemize
, wasfrom phonemizer import phonemize
.
-
-
New backend segments for phonemization based on grapheme-to-phoneme mappings.
-
Major refactoring of the backends implementation and separators (as Python classes).
-
Input to phonemizer now supports utf8.
-
Better handling of errors (display of a meaningful message).
-
Fixed a bug in fetching espeak version on macos, see #14.
- Fix a bug introduced in phonemizer-0.3.2 (apostrophes in festival backend). See #12.
-
Continuous integration with tracis-ci.
-
Support for docker.
-
Better support for different versions of espeak/festival.
-
Minor bugfixes and improved tests.
-
New espeak or espeak-ng backend with more than 100 languages.
-
Support for Python 2.7 and 3.5.
-
Integration with zenodo for citation.
-
Various bugfixes and minor improvments.
-
First public release.
-
Support for festival backend, American English only.