Skip to content

phonemizer-3.0

Compare
Choose a tag to compare
@mmmaat mmmaat released this 25 Oct 15:05
· 73 commits to master since this release

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 now espeak (was festival).

  • espeak-mbrola backend now requires espeak>=1.49.

  • --espeak-path option renamed as --espeak-libraryand PHONEMIZER_ESPEAK_PATH environment variable renamed as PHONEMIZER_ESPEAK_LIBRARY.

  • --festival-path option renamed as --festival-executable and PHONEMIZER_FESTIVAL_PATH environment variable renamed as PHONEMIZER_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 and mbrola backends now rely on the espeak shared library using the ctypes Python module, instead of reliying on the espeak 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 the espeak backend to display a tie character within multi-letter phonemes. (see issue #74).

  • New option --words-mismatch for the espeak 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).