Skip to content

Conversation

@DrewThomasson
Copy link

I pulled the information from this app.py from his hugginface space that demo's them

https://huggingface.co/spaces/Kamtera/Persian-tts-CoquiTTS

relevant info being...

MODEL_NAMES=[
    "vits male1 (best)",
    "vits female (best)",
    "vits-male",
    "vits female1",
    "glowtts-male",
    "glowtts-female",
    "female tacotron2"
]
modelInfo=[
    ["vits-male","best_model_65633.pth","config-0.json","https://huggingface.co/Kamtera/persian-tts-male-vits/resolve/main/"],
    ["vits female (best)","checkpoint_48000.pth","config-2.json","https://huggingface.co/Kamtera/persian-tts-female-vits/resolve/main/"],
    ["glowtts-male","best_model_77797.pth","config-1.json","https://huggingface.co/Kamtera/persian-tts-male-glow_tts/resolve/main/"],
    ["glowtts-female","best_model.pth","config.json","https://huggingface.co/Kamtera/persian-tts-female-glow_tts/resolve/main/"],
    ["vits male1 (best)","checkpoint_88000.pth","config.json","https://huggingface.co/Kamtera/persian-tts-male1-vits/resolve/main/"],
    ["vits female1","checkpoint_50000.pth","config.json","https://huggingface.co/Kamtera/persian-tts-female1-vits/resolve/main/"],
    ["female tacotron2","checkpoint_313000.pth","config-2.json","https://huggingface.co/Kamtera/persian-tts-female-tacotron2/resolve/main/"]
]

description="""
This is a demo of persian text to speech model.
**Github : https://github.com/karim23657/Persian-tts-coqui  **
Models can be found here:  <br>
|Model|Dataset|
|----|------|
|[vits female (best)](https://huggingface.co/Kamtera/persian-tts-female-vits)|[persian-tts-dataset-famale](https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset-famale)|
|[vits male1 (best)](https://huggingface.co/Kamtera/persian-tts-male1-vits)|[persian-tts-dataset-male](https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset-male)|
|[vits female1](https://huggingface.co/Kamtera/persian-tts-female1-vits)|[ParsiGoo](https://github.com/karim23657/ParsiGoo)|
|[vits male](https://huggingface.co/Kamtera/persian-tts-male-vits)|[persian-tts-dataset](https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset)|
|[glowtts female](https://huggingface.co/Kamtera/persian-tts-female-glow_tts)|[persian-tts-dataset-famale](https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset-famale)|
|[glowtts male](https://huggingface.co/Kamtera/persian-tts-male-glow_tts)|[persian-tts-dataset](https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset)|
|[tacotron2 female](https://huggingface.co/Kamtera/persian-tts-female-tacotron2)|[persian-tts-dataset-famale](https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset-famale)|
"""

@DrewThomasson
Copy link
Author

@eginhard

Thanks for showing me the correct way to implement these, hope this one also looks good :)

@DrewThomasson
Copy link
Author

Whats the zoo test?

@DrewThomasson
Copy link
Author

DrewThomasson commented Mar 12, 2025

Is it failing because some of the config files have weird names for some of the vits models??

@eginhard
Copy link
Member

The zoo tests download and run every model in .models.json

Is it failing because some of the config files have weird names for some of the vits models??

Yes, Coqui always expects that file to be named config.json. There is code already that renames model checkpoints to model.pth if the folder contains just one .pth file:

checkpoints = list(Path(output_path).glob("*.pt*"))
if len(checkpoints) == 1:
checkpoints[0].rename(checkpoints[0].parent / "model.pth")

We could do something similar if there is only one .json file, probably adding it at the start of

def _find_files(output_path: Path) -> tuple[Path, Path]:

Let me know if you'd like to do that, otherwise I can take care of it in a few days.

@DrewThomasson
Copy link
Author

DrewThomasson commented Mar 18, 2025

I'll give it a go tomorrow I suppose

Thx for the info btw

I'm excited to get to learn here as I really want to help out and add to this repo,
This needs to be the central spot for all open source tts models

@DrewThomasson
Copy link
Author

DrewThomasson commented Mar 18, 2025

Here I attempted at adding it here?
PR -> #343

Was trying to make it so that it would would handle renaming config files if there's only one JSON file in the directory?

Did I do that correctly or....

@DrewThomasson
Copy link
Author

DrewThomasson commented Mar 18, 2025

Also is it best to do that modification here in this existing PR?
or to create a separate PR with the modification like I did

@ROBERT-MCDOWELL
Copy link

ROBERT-MCDOWELL commented Jul 1, 2025

@eginhard as the workflow logs are expired could you tell me what's the issue to solve here? or mayb re-run the workflow so I can work on it?

@eginhard eginhard force-pushed the more-persian-patch-1 branch from d492a5f to f765f0c Compare July 17, 2025 08:56
@eginhard
Copy link
Member

Ok, I've tested them a bit and would add two more of the Vits models. The others don't sound very good in my opinion. However, these models don't have any license, so I can't include them for now. I asked on the HF repos, let's see if the author responds (@karim23657 pinging here as well).

@eginhard eginhard marked this pull request as draft July 17, 2025 09:07
@eginhard eginhard added the blocked Blocked by something else label Jul 17, 2025
@eginhard eginhard changed the title Added rest of the Persian models the guy made Added 2 Persion Vits models Jul 17, 2025
@ROBERT-MCDOWELL
Copy link

ok thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked Blocked by something else

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants