phonemizer-3.0
phonemizer-3.0
breaking change
-
Do not remove empty lines from output. For example:
# this is now phonemize(["hello", "!??"]) == ['həloʊ ', ''] # this was phonemize(["hello", "!??"]) == ['həloʊ ']
-
Default backend in the
phonemize
function is nowespeak
(wasfestival
). -
espeak-mbrola
backend now requiresespeak>=1.49
. -
--espeak-path
option renamed as--espeak-library
andPHONEMIZER_ESPEAK_PATH
environment variable renamed asPHONEMIZER_ESPEAK_LIBRARY
. -
--festival-path
option renamed as--festival-executable
andPHONEMIZER_FESTIVAL_PATH
environment variable renamed asPHONEMIZER_FESTIVAL_EXECUTABLE
. -
The methods
backend.phonemize()
from the backend classes take only a list of str a input text (was either a str or a list of str). -
The methods
backend.version()
from the backend classes returns a tuple of int instead of a str.
improvements
espeak
andmbrola
backends now rely on theespeak
shared library using thectypes
Python module, instead of reliying on theespeak
executable through subprocesses. This implies drastic speed improvments, up to 40 times faster.
new features
-
New option
--prepend-text
to prepend the input text to phonemized utterances, so as to have both orthographic and phonemized available at output. -
New option
--tie
for theespeak
backend to display a tie character within multi-letter phonemes. (see issue #74). -
New option
--words-mismatch
for theespeak
backend. This allows to detect when espeak merge consecutive words or drop a word from the orthographic text. Possible actions are to ignore those misatches, to issue a warning for each line where a mismatch is detectd, or to remove those lines from the output.
bugfixes
- phonemizer's logger no more conflicts with other loggers when imported from Python (see PR #61).