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

Method for starting via the command line and perhaps preloading a model etc? #37

Open TomKranenburg opened 1 year ago

TomKranenburg commented 1 year ago

I've looked through the documentation but I can't find anything. Is this possible?

DanRuta commented 1 year ago

The tool is mainly built to be used via the accompanying UI. However, it can indeed also run headless (I know of people using it on a web hosted server), it's just that I haven't really designed it for that. You can start the server.exe (or if you want to manage your own dependencies, python server.py), and then you can call localhost requests from a separate script, to simulate the actions of the front-end UI. Have a look through the server.py and javascript files to see exactly what is needed for each call, but it's mostly just one localhost http call for loading a model, and then another call for each inference

TomKranenburg commented 1 year ago

Actually this is useful. I'm just going to start it then preload a model. Thanks for this.

teddybear082 commented 1 year ago

@DanRuta When I try to start server.exe in the command prompt I'm getting this: D:\DExtraSteamGames\steamapps\common\xVASynth\resources\app\cpython_gpu>server.exe Traceback (most recent call last): File "server.py", line 15, in FileNotFoundError: [Errno 2] No such file or directory: './resources/app/javascript/script.js' [11488] Failed to execute script server

Do you think this is because I have the xVASynth program installed through steam or on a driver other than C? Or something else? I do see resources/app/javascript/script.js in my install.

DanRuta commented 1 year ago

For the compiled .exe, you need to launch it from the same directory as the main app .exe file is. So for example, the following command should work for the GPU backend, from the folder where xVASynth.exe is: ./resources/app/cpython_gpu/server.exe

teddybear082 commented 1 year ago

Thank you! That worked.

teddybear082 commented 1 year ago

By the way for whatever it's worth, I think you could see a lot of new interest in this program from the boom of people experimenting with AI-generated content now. I know that the person who created the Skyrim ChatGPT addon is using it, but there are a lot of people looking for "better than windows/engine text to speech gen that is locally generated" right now as they experiment with creating characters that provide AI responses. That's what I'm going to try to use this for - combined with GPT4All running locally. I'm imagining that this plugin reference basically gives the values needed for the local server commands in script.js: https://github.com/DanRuta/xVA-Synth/wiki/Plugins, but is there any other documentation of the exact values needed in a post request to the local server to load the model and synthesize the voice from a text prompt? (Sorry for the questions about "off-label" use of your project!)

DanRuta commented 1 year ago

No use is "off-label" use 😄 Yes, I spoke briefly with ArtFromTheMachine, they've done an amazing job.

That plugin reference covers most things for plugins, though there isn't yet much documentation for other things. I've not given enough attention to this haha, just been answering any questions on Discord. I'll try to put something together soon (or maybe ChatGPT can do it lol). There's a plugin here which uses the http calls, as an example/reference: https://www.nexusmods.com/skyrimspecialedition/mods/62944

I'll also post some permissive license v3 voices to the nexusmods xvatrainer page too, for any non-gaming-related uses, once v3 is out (imminently).