So here's what I've been able to figure out regarding Point and Click audio:
-For some reason they need to be over written through a different folder chain (\Data\Public\Shared\Assets\Sound\ according to this mod https://www.nexusmods.com/baldursgate3/mods/3626?tab=files) -Unfortunately this version of the files are 10 digit strings of only numbers with no discernible pattern I can figure out.
However, looking in to the .bnk files (which I've learned are merged libraries of multiple .wem files?) I found one labeled Vocals and was able to convert it to .xml. I found a chunk of code containing the 10 number string of a Tav1 file I identified by listening to a few random .wems. The 10 digit string was listed as a "sourceID", above it in that same chunk was a 6 number string labeled ulPluginID. When I searched for more occurrences of that string, the few corresponding sourceIDs I looked at played as other Tav1 click lines.
So if someone has any ideas on how to more efficiently pull those number strings from this file I would be SUPER grateful
The lsf file is broken into code chunks named after the category of click line (i.e BGClickReaction_ReptAction_PortraitClickDowned)
For each of these chunks there is a line labeled SoundEventID, you'll want to copy the code listed as its value.
Now you will move to the .xml file
Search for the SoundEventID in the .xml, there will a single obj na="CAkEvent" section with that number listed as its ulID, then copy the corresponding ulActionID value.
Searching for the ulActionID will identify a single obj na="CAkActionPlay" listing the value as its ulID, copy its corresponding idExt
This is where it becomes a bit more complicated
Searching for the idExt will find multiple (16 at least for what I've checked so far) obj na="CAkSwitchCntr" listing it as their DirectParentID. This seems to be the separation between origin characters/Tav voices as far I can tell, I need to do some more checks to figure out if there's any pattern in how their listed.
From any of these you can scroll down a bit to find a obj na="Children" and copy the ulChildID (For categories that have variants for Combat and Stealth it looks like there will be a separate Child for each) Searching for this will bring up multiple obj na="CAkSound" with that number as their DirectParentID. The corresponding sourceID is the name of a .wem containing a voice line of the initial category spoken by the specific character assigned by CAKSwitchCntr (at least from what I've seen thus far, I'm not quite sure how this accounts for all of the Tav voice options)
I recognize this is a lot, so hopefully I or someone else can figure out a way to automate some of this process
I'm super appreciative for your starting this as well! Also I don't know if you're familiar but the Bg3 dialogue parser (https://drive.google.com/drive/folders/1GR3CjFtM3u3-V5KrJkemTsAhx6VRUShy) might help people in tracking down audio files (sadly only seems to pull Tav 1 voice?)
Thank you for sharing this! This is all very new to me but I am determined to change the point and click voice for my character. Where can I find the file
so that I can extract it? I'm not finding it in the game folders
Edit: Figured out that you get the file path from the Shared.pak file and extracting that. Now I'm trying to figure out the next part with the ulActionID
Also, I wanted to ask where are the .wem files located? The ones that correspond to the sourceID names? Edit: I am going through the SharedSounds Sounds folder and it seems like it would be those .wem files in there.
Did you ever get the replacement done? I’ve identified the SourceIDs for the point and click audio but I’m not sure where to put the new recorded wems to overwrite them
hey there, i made a video tutorial for tepig327's instructions along with a program my husband and i made for speeding up some of the process! i recommend watching on youtube as everything you need is linked in the description!
This tutorial is amazing. I wanted to change footsteps sounds for a long time and after watching your video I started working on it. But.... there are tens of thousands of .wem files to listen to one by one till I figure out which are the ones I need to actually replace. Any hint on that? (Or am I just doomed?)
Hi, I was wondering if it's explained anywhere how to change the voices of the companions like Gale or Shadowheart? For example, making their voices sound like Raphael or Gortash, etc. I've started learning how to train my own ai voices and this seems interesting. Imagine changing Astarions appearance to Gortash and also being able to make him sound like Gortash too XD.
As far as I *think*, dark urge lines are mixed in with the regular tav lines (based off me hearing some spooky sounding lines). I have yet to do a durge playthrough so I wasn’t able to recognise anything when listening through sadly!
This was my assumption as well, until someone commented on one of my voice mods asking if I plan to add Durge lines. I had no idea they were separate. I'm on a Durge playthrough myself so I guess I will find out soon enough if they truly are or not.
Thank you so much for this! As someone who's made their own personal character voice sets for the first two BG games, I have been itching to do the same for this one, but because it's a much more complicated process, I didn't have the energy to fish out all of an individual Tav's voice lines file names. Your effort saves me from the most tedious part of the entire process which is figuring out which voice files to replace.
Navigating to X:\SteamLibrary\steamapps\common\Baldurs Gate 3\Data, I don't see a "Mods" folder. Do I have to create it and all the subsequent folders and then place the files inside? I tried creating a Gustav.pak with LSLib and replacing Gustav.pak under the Data folder, but that breaks my game. Am I doing something wrong here?
Edit: Figured it out! I did have the create the folders. Thanks! :)
This is so amazing and I will definitely be doing this for my tav!!! Only issue im having is that tav has soooooo many voice lines and some of them aren't even in the game. Just struggling trying to figure out what lines to replace. If you could share the google sheet that has all the lines you replaced that would be soso amazing !! <333
Hi! I've updated the mod files to include a (rough looking) .pdf of the lines I found for Voice #4.
My personal way of recording lines has been listen to file, record voice, rename recording so I haven't (and won't be) transcribing any more, but I hope this is a good jumping off point!
41 comments
-For some reason they need to be over written through a different folder chain (\Data\Public\Shared\Assets\Sound\ according to this mod https://www.nexusmods.com/baldursgate3/mods/3626?tab=files)
-Unfortunately this version of the files are 10 digit strings of only numbers with no discernible pattern I can figure out.
However, looking in to the .bnk files (which I've learned are merged libraries of multiple .wem files?) I found one labeled Vocals and was able to convert it to .xml. I found a chunk of code containing the 10 number string of a Tav1 file I identified by listening to a few random .wems. The 10 digit string was listed as a "sourceID", above it in that same chunk was a 6 number string labeled ulPluginID. When I searched for more occurrences of that string, the few corresponding sourceIDs I looked at played as other Tav1 click lines.
So if someone has any ideas on how to more efficiently pull those number strings from this file I would be SUPER grateful
Following a slightly altered version of this tutorial: https://github.com/HumansDoNotWantImmortality/bg3-sids/wiki
It requires alternating between two files:
Extract Public/Shared/Assets/Sound/VOCALS.bnk and convert to xml
Extract Shared\Public\Shared\Content\Assets\Sounds\Vocals\[PAK]_Vocals\merged.lsf
The lsf file is broken into code chunks named after the category of click line (i.e BGClickReaction_ReptAction_PortraitClickDowned)
For each of these chunks there is a line labeled SoundEventID, you'll want to copy the code listed as its value.
Now you will move to the .xml file
Search for the SoundEventID in the .xml, there will a single obj na="CAkEvent" section with that number listed as its ulID, then copy the corresponding ulActionID value.
Searching for the ulActionID will identify a single obj na="CAkActionPlay" listing the value as its ulID, copy its corresponding idExt
This is where it becomes a bit more complicated
Searching for the idExt will find multiple (16 at least for what I've checked so far) obj na="CAkSwitchCntr" listing it as their DirectParentID. This seems to be the separation between origin characters/Tav voices as far I can tell, I need to do some more checks to figure out if there's any pattern in how their listed.
From any of these you can scroll down a bit to find a obj na="Children" and copy the ulChildID
(For categories that have variants for Combat and Stealth it looks like there will be a separate Child for each)
Searching for this will bring up multiple obj na="CAkSound" with that number as their DirectParentID. The corresponding sourceID is the name of a .wem containing a voice line of the initial category spoken by the specific character assigned by CAKSwitchCntr (at least from what I've seen thus far, I'm not quite sure how this accounts for all of the Tav voice options)
I recognize this is a lot, so hopefully I or someone else can figure out a way to automate some of this process
Thank you so much for this!!! I'll check more into it and add it to the guide (with your credit!).
Where can I find the file
Shared\Public\Shared\Content\Assets\Sounds\Vocals\[PAK]_Vocals\merged.lsf
so that I can extract it? I'm not finding it in the game folders
Edit: Figured out that you get the file path from the Shared.pak file and extracting that. Now I'm trying to figure out the next part with the ulActionID
Even without it, how did you convert the bnk to XML? Would you consider uploading the converted file as a modder's resource?
Trying to use wwiser for it and I just can't figure it out
Edit: I am going through the SharedSounds Sounds folder and it seems like it would be those .wem files in there.
what you have listed i believe is actually Voice 5
YOU ROCK!!!!
Edit: Figured it out! I did have the create the folders. Thanks! :)
My personal way of recording lines has been listen to file, record voice, rename recording so I haven't (and won't be) transcribing any more, but I hope this is a good jumping off point!