bootphon / phonemizer

Simple text to phones converter for multiple languages

Home Page:https://bootphon.github.io/phonemizer/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to disable WARNIGs?

yihuitang opened this issue · comments

Hi,

I've set language_switch='remove-flags' and words_mismatch='ignore'. However, I still got warnings like below:

WARNING:phonemizer:1 utterances containing language switches on lines 1
WARNING:phonemizer:extra phones may appear in the "cmn" phoneset
WARNING:phonemizer:language switch flags have been removed (applying "remove-flags" policy)
WARNING:phonemizer:words count mismatch on 100.0% of the lines (1/1)
WARNING:phonemizer:1 utterances containing language switches on lines 1
WARNING:phonemizer:extra phones may appear in the "cmn" phoneset
WARNING:phonemizer:language switch flags have been removed (applying "remove-flags" policy)
WARNING:phonemizer:words count mismatch on 100.0% of the lines (1/1)

How can I disable warnings in my Python code?

Just add the parameter logger=get_logger(verbosity='quiet')in the function call. See https://github.com/bootphon/phonemizer/blob/master/phonemizer/logger.py#L22.

@mmmaat That didn't work. Here is my code:

    from phonemizer.logger import get_logger
....
    backend = EspeakBackend(language='cmn', language_switch='remove-flags',
                            words_mismatch='ignore',
                            punctuation_marks=punctuations, preserve_punctuation=True,
                            logger=get_logger(verbosity='quiet'))
...
    text = backend.phonemize(text_list, njobs=4,
                             separator=Separator(phone=' ', word=None, syllable='|'))

Warnings persist.

If I add the parameter logger=get_logger(verbosity='quiet') to phonemize(), I got an error:

TypeError: phonemize() got an unexpected keyword argument 'logger'

I don't understand. I have

$ phonemize --version
phonemizer-3.2.1
available backends: espeak-ng-1.50, espeak-mbrola, festival-2.5.0, segments-2.2.1

Then in IPython interpreter (The sentence in French means 'I like football' with a language switch on the word 'football'):

In [1]: from phonemizer import phonemize
In [2]: from phonemizer.logger import get_logger
In [3]: phonemize("j'aime le football", language='fr-fr', backend='espeak', language_switch='remove-flags', logger=get_logger(verbosity='quiet'))
Out[3] : 'ʒɛm lə fʊtbɔːl '
In [4]: phonemize("j'aime le football", language='fr-fr', backend='espeak', language_switch='remove-flags', logger=get_logger(verbosity='normal'))
[WARNING] 1 utterances containing language switches on lines 1
[WARNING] extra phones may appear in the "fr-fr" phoneset
[WARNING] language switch flags have been removed (applying "remove-flags" policy)
Out[4]: 'ʒɛm lə fʊtbɔːl '

Can you reproduce that? What version of phonemizer do you use?

I have the same versions as you do. I can also reproduce what you got.

Looks like it is the following line in my code that overrides the logger setting in the phonemizer:

logging.basicConfig(stream=sys.stdout, level=logging.WARNING)

Tried to set level=logging.ERROR but it didn't work.