jnwon / VocaloidTTS

Text to Speech with Vocaloid
11 stars 4 forks source link

Question about the API #5

Closed SeleDreams closed 2 months ago

SeleDreams commented 2 months ago

Hi, I am working on a plugin system called "Betterloid" for Vocaloid 5 and 6 and am considering implementing compatibility with vocaloid 3 and 4 job plugins.

I however can't find any API documentation of the lua api to know which functions and types I should implement. All I found is a list of the functions here https://alt-note.blogspot.com/2016/12/vocaloid-editorjob-api.html

but that seems insufficient to know the types it should return and the arguments it should take. Do you know where I could find the API reference ?

jnwon commented 2 months ago

HI! I used Job Plug-in API Reference Manual. It takes contents from structures and data types that used in API system to list and usages of functions. I don't remember the source of that manual, but I had enlisted it on my repository. You can download the pdf file named 'job-plugin-api-manual-eng-gt.pdf'

SeleDreams commented 2 months ago

Thanks ! I'll look into it

SeleDreams commented 2 months ago

I was able to get enough of the api implemented to run your plugin on V5 and V6 but it seems to have an unexpected result

https://github.com/user-attachments/assets/b296740f-0a85-4b29-9f84-7489b0584b77

it does seem to generate the TTS, and I added a messagebox showing it got the proper text but it just generated gibberish

Those are the generated files analyzed.txt input.txt

Do you have an idea on what might be the fault ? I'm thinking it's maybe an encoding issue, but I'm not sure

SeleDreams commented 2 months ago

I ended up fixing it by overriding the default behavior of os.execute in the backend to ensure it runs in utf-8 mode so it was an encoding issue.

https://github.com/user-attachments/assets/f1cd89bd-70b9-4c24-9014-a0221f0e8e38

https://github.com/user-attachments/assets/4c342ad6-2f56-40c8-bb33-6d2e0ed06008

jnwon commented 2 months ago

Oh It's good to hear that you found the reason of the error! nice job 👍

By the way, I definitely set the option of UTF-8 encoding for running power-shell command via os.execute in my source code(both VocaloidTTS.v2.2.lua and VocaloidTTS.v3.0.lua).. I don't understand why the plug-in met the encoding problem at your first try :\

SeleDreams commented 2 months ago

Oh It's good to hear that you found the reason of the error! nice job 👍

By the way, I definitely set the option of UTF-8 encoding for running power-shell command via os.execute in my source code(both VocaloidTTS.v2.2.lua and VocaloidTTS.v3.0.lua).. I don't understand why the plug-in met the encoding problem at your first try :\

It's because I had to override the default behavior of the os.execute function as the os.execute function itself was corrupting the utf 8 text.

vocaloid 3 and 4 probably do it under the hood

jnwon commented 2 months ago

I see :) Wish your implementing goes well!

SeleDreams commented 2 months ago

I see :) Wish your implementing goes well!

Thanks. I actually already implemented a big part of the API so I released my first alpha here https://www.youtube.com/watch?v=uJwgJBum7SY

if you have a newer vocaloid version (5 or 6) you could try it if you want