rhasspy / rhasspy-server-hermes

Web server interface to Rhasspy with Hermes back-end
MIT License
4 stars 18 forks source link

api_pronounce() always requires espeak #29

Open centic9 opened 2 years ago

centic9 commented 2 years ago

When configuring the suggested "NanoTTS" speech engine for text-to-speech, using the "pronounce" functionality in the "Words" page fails with an error as it seems to require "espeak".

The code at https://github.com/rhasspy/rhasspy-server-hermes/blob/master/rhasspyserver_hermes/__main__.py#L1095 always tries to use espeak.

When manually installing espeak, playing the pronunciation works via espeach.

Can it use the text-to-speech engine that is configured instead?

Log-output:

[DEBUG:2022-01-27 11:22:29,414] rhasspyserver_hermes.utils: ['espeak', '--stdout', '-s', '80', '-v', 'en', '[[hElp]]']
[ERROR:2022-01-27 11:22:29,433] rhasspyserver_hermes.utils: get_espeak_wav
Traceback (most recent call last):
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/utils.py", line 225, in get_espeak_wav
    return subprocess.check_output(espeak_command)
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/subprocess.py", line 411, in check_output
    **kwargs).stdout
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/subprocess.py", line 488, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'espeak': 'espeak'