Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing voice file #46

Open
DGrothe-PhD opened this issue Aug 13, 2024 · 10 comments
Open

Missing voice file #46

DGrothe-PhD opened this issue Aug 13, 2024 · 10 comments

Comments

@DGrothe-PhD
Copy link

I am using eSpeak (latest) from here: https://github.com/espeak-ng/espeak-ng/

Previous error message:
Error: Could not load the mbrola.dll file.

After copying everything from https://github.com/thiekus/MBROLA/releases/download/3.3/mbrola_build_3.3_rev2.zip / Win64 / Release into my eSpeak installation folder (in most cases it's C:\Program Files\eSpeak NG), I get a different error message:

Error: Could not load the specified mbrola voice file.

What to do next to fix, what am I missing?

@valdisvi
Copy link
Collaborator

MBROLA voice files

@DGrothe-PhD
Copy link
Author

DGrothe-PhD commented Sep 15, 2024

Did I do anything wrong? Put approx. 15 MBROLA voice files, including all of the German ones, into eSpeak installation folder.

Change? Nothing. Same error message:

Error: Could not load the specified mbrola voice file. (3x)
Full dictionary is not installed for 'be'
Error: Could not load the specified mbrola voice file. (another 88x)

Please compare the location of MBROLA voice files, and tell me the right place to move them. Thanks in advance
(Do I have to unpack or install them somehow?
Unfortunately, I cannot install them using any Linux tools, as I am on Windows.)
myeSpeakfolder.txt

Seems to be no be file in https://github.com/numediart/MBROLA-voices/ .

@DGrothe-PhD
Copy link
Author

DGrothe-PhD commented Sep 15, 2024

My bad, didn't read https://github.com/espeak-ng/espeak-ng/blob/master/docs/mbrola.md (or didn't notice it anyway).
So I know where to put the files, only I have to install MbrolaTools35.exe first.
I installed MbrolaTools35.exe from here: https://archive.org/details/MbrolaTools35

Still getting similar error messages

Error: No such file or directory. <== new!
Error: Could not load the specified mbrola voice file.
Error: Could not load the specified mbrola voice file.
Full dictionary is not installed for 'be'
Error: Could not load the specified mbrola voice file.
Error: Could not load the specified mbrola voice file.
Error: No such file or directory.
Error: No such file or directory.
Error: No such file or directory.
Error: No such file or directory.

@justinjohn0306
Copy link

My bad, didn't read https://github.com/espeak-ng/espeak-ng/blob/master/docs/mbrola.md (or didn't notice it anyway). So I know where to put the files, only I have to install MbrolaTools35.exe first. I installed MbrolaTools35.exe from here: https://archive.org/details/MbrolaTools35

Still getting similar error messages

Error: No such file or directory. <== new!
Error: Could not load the specified mbrola voice file.
Error: Could not load the specified mbrola voice file.
Full dictionary is not installed for 'be'
Error: Could not load the specified mbrola voice file.
Error: Could not load the specified mbrola voice file.
Error: No such file or directory.
Error: No such file or directory.
Error: No such file or directory.
Error: No such file or directory.

I have the same issue on windows

@lethanner
Copy link

@justinjohn0306 @DGrothe-PhD

I analyzed which specific path mbrola couldn't find (using Sysinternals's Process Monitor) - it was found.
It's mbrola_ph folder inside espeak-ng-data.
Image

Found that mbrola_ph can be extracted from the espeak packages for Linux. I ran sudo apt install espeak-ng mbrola on an existing Linux machine and packed the folder from /usr/lib/x86_64-linux-gnu/espeak-ng-data/mbrola_ph.

So try to use my archive - extract mbrola_ph folder to espeak-ng-data.
mbrola_ph.zip

Worked for me (at least "no such file or directory" errors was gone).

@nitinmukesh
Copy link

@lethanner

Thank you for the detailed steps. I am still facing problem.
RuntimeError: failed to load voice "ja"

Copied all files here
C:\Program Files\eSpeak NG\espeak-ng-data\mbrola_ph

  • af1_phtrans
  • ar1_phtrans
  • ar2_phtrans
  • ca_phtrans
  • cr1_phtrans
  • cs_phtrans
  • de2_phtrans
  • de4_phtrans
  • de6_phtrans
  • de8_phtrans
  • ee1_phtrans
  • en1_phtrans
  • es3_phtrans
  • es4_phtrans
  • es_phtrans
  • fr_phtrans
  • gr1_phtrans
  • gr2_phtrans
  • grc-de6_phtra
  • hn1_phtrans
  • hu1_phtrans
  • ic1_phtrans
  • id1_phtrans
  • in_phtrans
  • ir1_phtrans
  • it1_phtrans
  • it3_phtrans
  • jp_phtrans
  • la1_phtrans
  • lt_phtrans
  • ma1_phtrans
  • mx1_phtrans
  • mx2_phtrans
  • nl_phtrans
  • nz1_phtrans
  • pl1_phtrans
  • pt1_phtrans
  • ptbr4_phtrans
  • ptbr_phtrans
  • ro1_phtrans
  • sv2_phtrans
  • sv_phtrans
  • tl1_phtrans
  • tr1_phtrans
  • us3_phtrans
  • us_phtrans
  • vz_phtrans
  • zh_phtrans

Also installed MbrolaTools35.exe

Environment variables are set

Image

(venv) C:\aiai\DiffRhythm>python app.py
audio drop prob -> 0.3; style_drop_prob -> 0.1; lrc_drop_prob: 0.1
./diffrhythm/g2p\sources\g2p_chinese_model\poly_bert_model.onnx
C:\aiai\DiffRhythm\venv\lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py:115: UserWarning: Specified provider 'CUDAExecutionProvider' is not in available provider names.Available providers: 'AzureExecutionProvider, CPUExecutionProvider'
  warnings.warn(
Error: Could not load the specified mbrola voice file.
Error: Could not load the specified mbrola voice file.
Traceback (most recent call last):
  File "C:\aiai\DiffRhythm\app.py", line 29, in <module>
    cfm, tokenizer, muq, vae = prepare_model(device)
  File "C:\aiai\DiffRhythm\diffrhythm\infer\infer_utils.py", line 29, in prepare_model
    tokenizer = CNENTokenizer()
  File "C:\aiai\DiffRhythm\diffrhythm\infer\infer_utils.py", line 105, in __init__
    from diffrhythm.g2p.g2p_generation import chn_eng_g2p
  File "C:\aiai\DiffRhythm\diffrhythm\g2p\g2p_generation.py", line 10, in <module>
    from diffrhythm.g2p.utils.g2p import phonemizer_g2p
  File "C:\aiai\DiffRhythm\diffrhythm\g2p\utils\g2p.py", line 30, in <module>
    phonemizer_ja = EspeakBackend(
  File "C:\aiai\DiffRhythm\venv\lib\site-packages\phonemizer\backend\espeak\espeak.py", line 49, in __init__
    self._espeak.set_voice(language)
  File "C:\aiai\DiffRhythm\venv\lib\site-packages\phonemizer\backend\espeak\wrapper.py", line 249, in set_voice
    raise RuntimeError(  # pragma: nocover
RuntimeError: failed to load voice "ja"

@lethanner
Copy link

lethanner commented Mar 6, 2025

@nitinmukesh

It's a DiffRhythm issue and I raised a topic especially for it. :)
ASLP-lab/DiffRhythm#15

In short: just try installing Japanese voicepacks from https://github.com/numediart/MBROLA-voices/ to C:\Program Files\eSpeak NG\espeak-ng-data\mbrola.

@nitinmukesh
Copy link

nitinmukesh commented Mar 6, 2025

Thank you. It worked.
So it uses Japanese audio for English song. Did you figured how to use different voices.

@lethanner
Copy link

lethanner commented Mar 6, 2025

So it uses Japanese audio for English song

I see.

Did you figured how to use different voices

But there is no solution yet. For now I can only suggest following this issue:
ASLP-lab/DiffRhythm#17

@Jandown
Copy link

Jandown commented Mar 6, 2025

Thank you. It worked. So it uses Japanese audio for English song. Did you figured how to use different voices.

I also encountered the same problem and did the same thing, but still made the same mistake. Do I need to restart my computer?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants