Linux users: This mod works! Here is what I had to do to get it running properly with xVASynth. I haven't figured out SAPI voices yet.
1. install xVASynth and voices as normal. I tried the Steam version initially, but now I have the Nexus version. Either should work. 2. install the Fuz Ro Bork xVASynth plugin as described in the mod's original description. 3. in Mod Organizer, add xVASynth as a program and launch it. 4. unlock Mod Organizer, and launch Skyrim. 5. if you are having any issues, double check the logs for both Fuz Ro Bork (in your SKSE my games folder) and xVASynth (next to xvasynth.exe) and make sure the file paths are correct. For instance, I had to manually set the correct mod_files_location setting in my FuzRoBork xVASynth plugin ini (located at xVASynth/resources/app/plugins/skyrim_fuz_ro_bork/settings.ini) to "mod_files_location=C:\users\steamuser\AppData\Roaming\xVASynth\realTimeTTS\". You may not have to do this. I messed around with settings a lot trying to get this to work and may have messed that one up along the way.
BONUS - Start xVASynth with Skyrim, close it when Skyrim closes.Windows users should also be able to use this. 1. create a new .bat file in your Skyrim directory and open it with a text editor. I named mine "start-skyrim.bat" 2. paste the following into the bat file, replacing the file to xVASynth.exe with the path to it on your computer, or for Linux users, the path to the exe from within your Proton/Wine prefix (I made this using the help of AI for full transparency) @echo off
:: Start SKSE.exe which will open SkyrimSE.exe start "" skse64_loader.exe
:: Wait for SkyrimSE.exe to start :waitForSkyrim echo Checking if SkyrimSE.exe has started... tasklist /FI "IMAGENAME eq SkyrimSE.exe" 2>NUL | find "SkyrimSE.exe">NUL if "%ERRORLEVEL%"=="0" ( echo SkyrimSE.exe has started. goto checkSkyrim ) else ( ping -n 5 127.0.0.1 >nul goto waitForSkyrim )
:: Wait for SkyrimSE.exe to close :checkSkyrim echo Checking for SkyrimSE.exe... tasklist /FI "IMAGENAME eq SkyrimSE.exe" 2>NUL | find "SkyrimSE.exe">NUL if "%ERRORLEVEL%"=="0" ( ping -n 5 127.0.0.1 >nul goto checkSkyrim ) else ( echo SkyrimSE.exe not found. Attempting to close xVASynth.exe. taskkill /F /IM xVASynth.exe )
echo SkyrimSE.exe has closed. xVASynth.exe has been terminated. 3. add the .bat file to Mod Organizer as you would any other .exe and run Skyrim using it for now on.
{Edited} Hey, if you having issue where no voices are showing in the mcm menu in game, (for me any ways) I went and checked in the mod "fuz Ro Bork" (right click in mo2 > go to skse/plugins/ and there's no ini files getting generated for me.
What I did to resolve this was manually add a ini, the author shared below MY COMMENT however what the ini SHOULD look like, I ADVISE if you try this using what THEIR ini file looks like!
Again, I'm just sharing what I did. In the mod fuz ro bork > skse/plugins/(here) Create a new text file in the location mentioned above, we are going to save it as "FuzRoBork.ini" > Remember to save it as "all file types" not a txt docIt should contain the following:
This is absurd... the FuzRoBork.ini file looks nothing like that. I think you are confusing it with a different file or being misled by ChatGPT or something. An ini file is created at SKSE/plugins/FuzRoBork.ini when you start the game with the plugin installed, and it looks like this:
well.. It worked for me.. So idk what to say. I've tested 3 times by removing the ini and it doesn't work, add it back it works fine, prehaps the ini is not getting created properly?
And yes, 100% not going to try and act like I know more then I do, I did use chatGPT cuz nothing else was working? When I launch this game my INI indeed looking nothing like this..
I'm fully open to suggestion for why the INI is not getting generated when opening the game maybe we can figure this out in more detail togather?
P.s. ty for the mod btw, I mean no disrespect or anything I'm just trying to figure this out and share what worked for me... That said I understand how INI's work and I get why you said this sounds absurd, but I can reproduce the results and record it if it helps?
Hey so I just wanted to add, I copy and pasted that INI you have in and it indeed fixes some other issues, so no doubt thats the correct way the ini should look, I'll change my orginal post, HOWEVER it doesn't address why the ini is not getting generated in the first place? If I remove it all togather doesn't work, I add that one you posted, works fine?
Maybe it's a permissions issue? I don't know, it gets created for me if it's not already there. If you are using MO2 you might have multiple copies of the INI and one is corrupted.
I'm on Linux and trying to get this to run properly, but am having some issues, specifically with getting the Skyrim plugin to connect to xVASynth. I have xVASynth installed through steam, and am running that and Skyrim through Proton. Both work great on their own with no problems, and I do have the FuzRoBork plugin installed and activated for xVASynth. I think the issue is coming in because the dll is looking for the xVASynth folder in the user/appdata/roaming files, but the way Steam Proton / Wine works, each application has its own Windows environment (called a prefix), which means they have their own appdata/roaming folders.
I made a symlink in my linux file system to attach the xVASynth folder in the xVASynth prefix's appdata/roaming folder to the appdata/roaming folder in the Skyrim prefix, which in Linux would basically make the program see that folder as actually being there. That seemed to do something, since I could now see the one voice I had installed for testing purposes listed in the MCM menu, meaning that it did finally detect the folder in the other prefix.
Where it didn't fix my issue is that voices still aren't playing at all. My logs are still saying "xVAFolder not found." I looked at the source code and traced that specific log back to the sendXGames function in FuzRoBorkInternals.cpp. It looks like it is trying and failing to call std::ifstream. I don't know much about c++ so I'm a bit lost on what to try to change from here. I tried editing file permissions to be open to everything, but that didn't seem to work either.
Do the Skyrim FuzRoBork plugin and xVASynth just communicate through files in the appdata/roaming folder, or are there any other areas that they communicate? I'd really appreciate any help or other pieces of information that would help get this running on Linux. I'll also update this if I end up figuring it out myself to help other Linux users. Thanks!
TL:DR - How does the FuzRoBork Skyrim plugin communicate with XVASynth? I'm having issues on Linux and I think it's related to that.
For me it sounds you are either using two different prefixes (i.e. two different Windows installations!) or you are running wine/proton two times (normally there should be only one wineserver running in your system, you can check this in your process list). First make sure that these two are using the same prefix and run with the same wineserver. From steam you will have a harder time to achieve this, but basically it is somewhat similar to use MO2 with steam. MO2 starts Skyrim and can also start xVASynth, but to run it in parallel you need to run one of them as "background" process. I am wondering why xVASynth needs to run in parallel to Skyrim, since this is always harder to achieve with a Mod Manager. One way to achieve it is by opening an explorer and start both programs from there.
It turns out there were some bugs in the xVASynth code, so that was probably why you were hearing Microsoft voices. I think it works better now, but I'm not using xVASynth. I use the IVONA voices.
Thanks to both of you! I got it working. I'll make a separate comment explaining how. Would you mind pinning it so that other Linux users can get this set up more easily?
I JUST encounted this issue myself last night! I had v 2.3 and 3.0.0 both on my machine, the only thing that worked was manually adding the ini to skse/plugins, idk why that worked exactly, it sounds like your more seasoned with this then I but I've just say I'm using windows with shadow PC.. So I don't think this is just a linux thing.
Really wish this mod had the capability to move player lips like DBVO and if that will never be the case, I wish it were compatible with DBVO. When I have both installed, DBVO ceases to work and I really just want the text to speech feature for books.
Since this mod creates speech on-the-fly, I don't think there's an easy way to play lip files that correspond with the speech. Probably someone smarter than me could do it.
If you're running Win 11 version 24H2, this mod will cause the game to crash. I downgraded Windows to 23H2,, and placed a lock on the Windows update. Skyrim: 1.5.97 Fuz: 0.12.0
you have to add skse and mo2 exe to exceptions in antivirus especially bitdefender or the windows 11 security settings. I had the crashing despite of this mod and after whitelisting mo2 and skse there are no more crashes.
possible to make a patch between Fuz Ro Bork and Dragonborn Voice Overhaul? Or might there not need one? Since DBVO includes FUZ files? My interest is in the situation where a line of player dialog doesn't exist yet, perhaps Fuz Ro Bork could create that line of speech?
Is it possible to add xvasynth voices to custom races? I took a look at the EXAMPLE_FuzRoBork.xml but i don't know how to assign the voices to the race. (btw: ofc i did rename it to FuzRoBork.xml so it can be recognized)
I thought just by leaving this in the xml file and deleting everything else, it would assign an xvasynth voice to a race:
<?xml version="1.0" encoding="UTF-8"?> <config> <npcs> <npc race="Argonian"><!-- this should work --> <language>Microsoft Server Speech Text to Speech Voice (it-IT, Lucia)</language> <volume>50.0</volume> <pitch>1</pitch> <rate>2</rate> </npc> </npcs> </config>
Where do I find the name of the custom race which actually works with this code? Is it the one i see when I open the console in game and click on the npc, with "more-informativ-console" mod? And can I put that name instead of "Argonian" in the code?
And my second question is how to assign xvasynth voices or how to name/call them in code? For example if i want to use the cicero 3.0 voice from xvasynth, do i put "Cicero" or "sk_cicero" in place of "Microsoft Server Speech Text to Speech Voice (it-IT, Lucia)" or how do we call the xvasynth voices with this code?
Can somebody, who already got it to work with custom race and an xvasynth voice post their code-piece to make it clear or answer my two questions? PLEASE!
Everybody in my game has a voice now, except for custom-race npcs... i would love to hear them too. Please help!
How do we actually use the xvasynth voices with this config? Still didn't figure out how to attach them to custom race npcs. Does nobody use this with custom races?
is skyui and mcm a must? i hate skyui. its ugly, tiny print. i like the simplified vanilla ui. as for mcm i dont need that most mcm mods use the "shout" button or cast spell button to activate. so is skyui and mcm really necessary?
691 comments
1. install xVASynth and voices as normal. I tried the Steam version initially, but now I have the Nexus version. Either should work.
2. install the Fuz Ro Bork xVASynth plugin as described in the mod's original description.
3. in Mod Organizer, add xVASynth as a program and launch it.
4. unlock Mod Organizer, and launch Skyrim.
5. if you are having any issues, double check the logs for both Fuz Ro Bork (in your SKSE my games folder) and xVASynth (next to xvasynth.exe) and make sure the file paths are correct. For instance, I had to manually set the correct mod_files_location setting in my FuzRoBork xVASynth plugin ini (located at xVASynth/resources/app/plugins/skyrim_fuz_ro_bork/settings.ini) to "mod_files_location=C:\users\steamuser\AppData\Roaming\xVASynth\realTimeTTS\". You may not have to do this. I messed around with settings a lot trying to get this to work and may have messed that one up along the way.
BONUS - Start xVASynth with Skyrim, close it when Skyrim closes. Windows users should also be able to use this.
1. create a new .bat file in your Skyrim directory and open it with a text editor. I named mine "start-skyrim.bat"
2. paste the following into the bat file, replacing the file to xVASynth.exe with the path to it on your computer, or for Linux users, the path to the exe from within your Proton/Wine prefix (I made this using the help of AI for full transparency)
@echo off
3. add the .bat file to Mod Organizer as you would any other .exe and run Skyrim using it for now on.:: Start xVASynth.exe
start "" Z:\media\user\External-Storage\Modding\xVASynth\xVASynth.exe
:: Start SKSE.exe which will open SkyrimSE.exe
start "" skse64_loader.exe
:: Wait for SkyrimSE.exe to start
:waitForSkyrim
echo Checking if SkyrimSE.exe has started...
tasklist /FI "IMAGENAME eq SkyrimSE.exe" 2>NUL | find "SkyrimSE.exe">NUL
if "%ERRORLEVEL%"=="0" (
echo SkyrimSE.exe has started.
goto checkSkyrim
) else (
ping -n 5 127.0.0.1 >nul
goto waitForSkyrim
)
:: Wait for SkyrimSE.exe to close
:checkSkyrim
echo Checking for SkyrimSE.exe...
tasklist /FI "IMAGENAME eq SkyrimSE.exe" 2>NUL | find "SkyrimSE.exe">NUL
if "%ERRORLEVEL%"=="0" (
ping -n 5 127.0.0.1 >nul
goto checkSkyrim
) else (
echo SkyrimSE.exe not found. Attempting to close xVASynth.exe.
taskkill /F /IM xVASynth.exe
)
echo SkyrimSE.exe has closed. xVASynth.exe has been terminated.
Hey, if you having issue where no voices are showing in the mcm menu in game, (for me any ways) I went and checked in the mod "fuz Ro Bork" (right click in mo2 > go to skse/plugins/ and there's no ini files getting generated for me.
What I did to resolve this was manually add a ini, the author shared below MY COMMENT however what the ini SHOULD look like, I ADVISE if you try this using what THEIR ini file looks like!
Again, I'm just sharing what I did. In the mod fuz ro bork > skse/plugins/(here) Create a new text file in the location mentioned above, we are going to save it as "FuzRoBork.ini" > Remember to save it as "all file types" not a txt docIt should contain the following:
[General]
VoiceOutputFolder = "Sound/Voice/"
DefaultVoice = "stock_1" ; Choose the voice (stock_1.fuz, stock_2.fuz, etc.)
EnableFallback = true
[Logging]
LogLevel = 2
LogFile = "FuzRoBork.log"
[General]
WordsPerSecondSilence=2
SkipEmptyResponses=1
MsPerWordSilence=-1.000000
PlayPlayerDialogue=1
PlayNPCDialogue=1
PlayBookPages=0
PlayBooks=0
PlayLoadingScreenText=0
VoicePlayerActions=0
SpeakParentheses=0
EnableHotKeys=0
CustomTempPath=
PlayerLanguage=
FemaleLanguage=
MaleLanguage=
NarratorLanguage=
PlayerVoiceRate=-11.000000
FemaleVoiceRate=-11.000000
MaleVoiceRate=-11.000000
NarratorVoiceRate=-11.000000
PlayerVoiceVolume=-1.000000
FemaleVoiceVolume=-1.000000
MaleVoiceVolume=-1.000000
NarratorVoiceVolume=-1.000000
PlayerVoicePitch=-99
FemaleVoicePitch=-99
MaleVoicePitch=-99
NarratorVoicePitch=-99
And yes, 100% not going to try and act like I know more then I do, I did use chatGPT cuz nothing else was working? When I launch this game my INI indeed looking nothing like this..
I'm fully open to suggestion for why the INI is not getting generated when opening the game maybe we can figure this out in more detail togather?
P.s. ty for the mod btw, I mean no disrespect or anything I'm just trying to figure this out and share what worked for me... That said I understand how INI's work and I get why you said this sounds absurd, but I can reproduce the results and record it if it helps?
I made a symlink in my linux file system to attach the xVASynth folder in the xVASynth prefix's appdata/roaming folder to the appdata/roaming folder in the Skyrim prefix, which in Linux would basically make the program see that folder as actually being there. That seemed to do something, since I could now see the one voice I had installed for testing purposes listed in the MCM menu, meaning that it did finally detect the folder in the other prefix.
Where it didn't fix my issue is that voices still aren't playing at all. My logs are still saying "xVAFolder not found." I looked at the source code and traced that specific log back to the sendXGames function in FuzRoBorkInternals.cpp. It looks like it is trying and failing to call std::ifstream. I don't know much about c++ so I'm a bit lost on what to try to change from here. I tried editing file permissions to be open to everything, but that didn't seem to work either.
Do the Skyrim FuzRoBork plugin and xVASynth just communicate through files in the appdata/roaming folder, or are there any other areas that they communicate? I'd really appreciate any help or other pieces of information that would help get this running on Linux. I'll also update this if I end up figuring it out myself to help other Linux users. Thanks!
TL:DR - How does the FuzRoBork Skyrim plugin communicate with XVASynth? I'm having issues on Linux and I think it's related to that.
First make sure that these two are using the same prefix and run with the same wineserver.
From steam you will have a harder time to achieve this, but basically it is somewhat similar to use MO2 with steam. MO2 starts Skyrim and can also start xVASynth, but to run it in parallel you need to run one of them as "background" process.
I am wondering why xVASynth needs to run in parallel to Skyrim, since this is always harder to achieve with a Mod Manager.
One way to achieve it is by opening an explorer and start both programs from there.
CustomTempPath=/path/to/xVASynth/
Make sure there's a trailing slash. Maybe that works, you can test it and see.
https://www.reddit.com/r/Windows11/comments/1gvu7hq/microsoft_confirms_windows_11_24h2_trashes_game/
thanks pour the update.
i wait one year for this update. yes one big year
Or might there not need one? Since DBVO includes FUZ files?
My interest is in the situation where a line of player dialog doesn't exist yet, perhaps Fuz Ro Bork could create that line of speech?
I took a look at the EXAMPLE_FuzRoBork.xml but i don't know how to assign the voices to the race.
(btw: ofc i did rename it to FuzRoBork.xml so it can be recognized)
I thought just by leaving this in the xml file and deleting everything else, it would assign an xvasynth voice to a race:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<npcs>
<npc race="Argonian"><!-- this should work -->
<language>Microsoft Server Speech Text to Speech Voice (it-IT, Lucia)</language>
<volume>50.0</volume>
<pitch>1</pitch>
<rate>2</rate>
</npc>
</npcs>
</config>
Where do I find the name of the custom race which actually works with this code? Is it the one i see when I open the console in game and click on the npc, with "more-informativ-console" mod? And can I put that name instead of "Argonian" in the code?
And my second question is how to assign xvasynth voices or how to name/call them in code? For example if i want to use the cicero 3.0 voice from xvasynth, do i put "Cicero" or "sk_cicero" in place of "Microsoft Server Speech Text to Speech Voice (it-IT, Lucia)" or how do we call the xvasynth voices with this code?
Can somebody, who already got it to work with custom race and an xvasynth voice post their code-piece to make it clear or answer my two questions? PLEASE!
Everybody in my game has a voice now, except for custom-race npcs... i would love to hear them too.
Please help!