karashiiro / TextToTalk

Chat TTS plugin for Dalamud. Has support for triggers/exclusions, several TTS providers, and more!
MIT License
47 stars 30 forks source link

Voice Unlocker Error (again with 1.16.3.0) #127

Closed Waitsnake closed 1 year ago

Waitsnake commented 1 year ago

Is it possible that this bug from #52 is back?

In dalamud log I see this when I try to unlock the more voices under Windows 10:

2022-11-12 21:36:37.434 +01:00 [ERR] [TextToTalk] VoiceUnlocker failed to start.
System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'C:\Users\koehmarc\AppData\Roaming\XIVLauncher\installedPlugins\TextToTalk\1.16.3.0\TextToTalk.dll\..\VoiceUnlocker.exe' with working directory 'C:\Program Files (x86)\SquareEnix\FINAL FANTASY XIV - A Realm Reborn\game'. Das System kann die angegebene Datei nicht finden.
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at TextToTalk.VoiceUnlockerRunner.Execute() in K:/arashiiro/VoiceUnlockerRunner.cs:line 17

And in Game I see this Text-Box: no_unlock

Strange is that according to this log entry it looks for a VoiceUnlocker.exe file. When I look in the path were the plugin is installed I do not see such a exe file. There is a "VoiceUnlocker" without any file extension though and a VoiceUnlocker.dll . When I look into this file I see "ELF" with should be a Linux binary and will probably not work under Windows. In the dll I see "MZ" that looks like a Windows Binary. I uninstalled TextToTalk and installed it again via dalamud, but still do not get the windows exe file, but still the ELF binary.

I also copied to DLL and gave it the ending EXE and started it outside of the game. After It asked me for my Admin password I saw this error here:

dll_to_exe_error

I also tried with the "Unlock Option" in the game with the manual DLL-to-EXE renaming and saw the exact same error as before.

I use TextToTalk 1.16.3.0 in Windows 10 22H2 build 19045 and language set to German.

I only see 1 German Voice (Hedda) and 2 English Voices (Hazel and Zira) but actually wanted more German voices so that I can use gendered voices. only_3_voices

I also tired to follow the link to manual enable the voices, but this did not increase the number of voices found by TextToTalk, even after multiple computer reboots and TextToTalk plugin reset to default.

First I copied the voices exactly as described (export, edit path and import) in the link. But when it was still not working I even tired to change the new registry entries for Katja, Stefan and Karsten (e.g. change the folder names) as close as possible to the 3 exsiting and working entries (Hedda, Hazel and Zira).

Waitsnake commented 1 year ago

OK, at least I found out the reason why the manual import did not work. In the linked website they say I should copy the voice tokens from this registry path: _HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SpeechOneCore\Voices\Tokens to this registry path: _HKEY_LOCALMACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens But the TextToTalk plugin did not find them under WOW6432Node.

When I instead copy the voice tokens from this registry path: _HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SpeechOneCore\Voices\Tokens to this registry path: _HKEY_LOCALMACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens then TextToTalk could find the voices.

johnysandels commented 1 year ago

I finally had some time for testing this, and it seems that the files I referenced in #52 still work to unlock the other voices.

Downloading the files from version 1.8.6.0 of the plugin and running VoiceUnlocker.exe in the file explorer has made all of my voices show up in the TextToTalk settings again. I did get a warning popup saying to not run the program since it might be malicious, but I clicked more options and ran it anyway. Now all the voices I have installed show up in the list. I'm not sure if using the old file will work again as an official in game way or not, or maybe it's a antivirus problem at this point?

karashiiro commented 1 year ago

The .NET Framework version doesn't build on the current plugin CI/CD pipeline. I'll look into this, but I need to figure out how to fix it on the .NET 7 version instead of just rolling it back. For personal use, just using the old unlocker should be fine, though.

karashiiro commented 1 year ago

Possibly fixed in v1.21.0.

johnysandels commented 1 year ago
2023-01-31 22:26:30.240 -08:00 [ERR] [TextToTalk] VoiceUnlocker failed to start.
System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'C:\Users\Kaitie\AppData\Roaming\XIVLauncher\installedPlugins\TextToTalk\1.21.1.0\TextToTalk.dll\..\VoiceUnlocker.exe' with working directory 'C:\Program Files (x86)\SquareEnix\FINAL FANTASY XIV - A Realm Reborn\game'. The system cannot find the file specified.
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at TextToTalk.VoiceUnlockerRunner.Execute() in K:/arashiiro/VoiceUnlockerRunner.cs:line 17

Still failing to start. From the error log it says the file wasn't found at the specified path.

These are the files in that file location. No exe version of voiceunlocker image

karashiiro commented 1 year ago

Should be fixed for real with v1.21.6.

johnysandels commented 1 year ago

Tested and working perfectly on my end!