DanRuta / xVA-Synth

Machine learning based speech synthesis Electron app, with voices from specific characters from video games
GNU General Public License v3.0
590 stars 54 forks source link

Various development improvements #57

Closed MarkKoz closed 9 months ago

MarkKoz commented 9 months ago

Various fixes for issues I encountered when trying to test out DirectML (which still does not work by the way). See the commit messages for more information. Happy to split this up into multiple PRs if that is easier to review.

By far the biggest issue with development still is the installation of Python dependencies. The provided dependencies are out of date compared to the latest xvasynth release, and even then, a couple of dependencies (h2p_parser and pkuseg) have broken setups that require manual fixes.

I have managed to circumvent these issues locally. However, I am hoping there is a simpler solution that I missed, so I'm holding off on adding instructions for the relatively complex set of steps to get all the dependencies working locally. @DanRuta is there a more up to date set of requirements you can upload to the repo?

DanRuta commented 9 months ago

Thank you so much for these changes! Actually, the local deps are up-to-date. I am indeed aware of the manual fixes required for those dependencies. I haven't yet spent the time to properly document them, as I was hoping I'd find a way to not have to do the manual fixes, but I haven't yet had the time to explore a proper fix yet. Are you in the Discord server, btw?

MarkKoz commented 9 months ago

You're welcome! I'm not in the Discord server but don't mind joining.

I compared the dependencies bundled with the latest release against my virtual environment when I installed from the requirements file. I recall that either some dependencies were missing or out of date.

For h2p_parser, I have a PR here to fix it https://github.com/ionite34/h2p-parser/pull/42. For the time being we could point the requirements file to install from my fork instead.

For pkuseg, I followed https://github.com/explosion/spaCy/discussions/7370#discussioncomment-455375 to get a local build working. That comment mentions a fork of the package https://pypi.org/project/spacy-pkuseg/ which we can try using instead of the original. The fork fortunately has wheels for Python 3.9.