Like an episode of House full of red herrings, twists and turns, we now reach the final act where it turns out that there was one simple thing that the doctor overlooked.
I wrote this in my notes for this project last night.
I installed Nvidia container toolkit [note: I had also already installed Cuda] and ran the docker again, this time remembering to cd first. However, even after changing my GPU driver to nvidia-driver-580-open, [the terminal] still spat out,
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running prestart hook #0: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy' nvidia-container-cli: initialization error: nvml error: driver not loaded: unknown Error: failed to start containers: rvc
When I tried starting the docker.
nvidia-smi
gave meNVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
— which seems like it implies that there’s something wrong with my graphics driver, and that’s the thing stopping my docker from running. Oh my fucking God, I wonder if “there’s something wrong with my driver” is related to the whole “when I’m on the Nvidia driver, my TV shows a black screen when I plug in the HDMI” thing that led me to use nouveau instead of the Nvidia driver to begin with.At this point I’m wondering if it’d be easier for me to literally remake RVC in fucking Turbowarp than install it.
It seems like on Linux Mint, problems of this sort are oftentimes the result of Secure Boot, which means that I either have to disable Secure Boot or sign the NVIDIA modules.
Fast forward to this morning.
I tried repeatedly to sign the NVIDIA modules today, but couldn’t get it to work: after some effort I managed to set a password for the signing, but then when I actually rebooted I couldn’t actually type the password in? That part seemed like it might’ve just been an issue of a shitty interface that accepts your keystrokes without giving any indication of it, and it using a different keyboard layout than the one I thought it was using, without telling me. Unfortunately, after I failed to confirm the password, the terminal also didn’t seem like it would let me set a new password, so then I just threw my hands up and disabled Secure Boot outright. And after I did that, wouldn’t you know, nvidia-smi
could finally recognize that I actually had an Nvidia GPU, and I could plug in the TV HDMI and have it work, and I could finally get the Docker for RVC to run. A sight for sore eyes!
So that’s something I didn’t know about: that Secure Boot, Nvidia, and Linux Mint can be kinda stinky with each other. Thankfully it seems like Secure Boot isn’t something I really need, at least not for now.
However! Although I can go to http://127.0.0.1:7865/ and be met with the RVC WebUI, I can’t actually add my weights (i.e. voices) to the weights folder, and without that I can’t really use RVC because the list of voices is just blank. I tried stopping the docker and changing the weights folder’s permissions in the terminal, however it doesn’t seem like that actually changed anything, but maybe I just did it wrong somehow. Or is this issue to do with the folders being mounted to the docker? What can I do about it?
Edit: Thanks to kleeon I have managed to copy over all the weights using sudo cp
, but this still leaves the index files. They aren’t showing up in the dropdown; I tried using “Path to the feature index file” instead but it doesn’t seem to work. I’m struck by how the format examples are for Windows. Is it like I need to actually copy the files into the Docker container itself?
Edit 2: sudo docker cp ./rvc/Rikkav2.index rvc:/app/logs
+ “Refresh voice list and index path” has successfully added at least that index file to the dropdown. Guess I’ll just have to copy over the rest of the index files with the same method.
Edit 3: I tried using curly brackets {} like I’d used to copy to the weights folders, alas this doesn’t seem to work with docker cp, only regular cp, so I had to run docker cp for every single index file I had to copy over. But now I’ve done it and my dropdown of index files is complete.
Edit 4: I’ve set up the weights and the index files now, so I think the only problem now is actually plugging in the audio file I want to convert. Is it not working because docker is containerized so it can’t access my regular files, is it like RVC is being Windows-centric so it can’t understand my file paths, or what?
Edit 5: Thanks to underisk’s suggestion, I have successfully converted a test audio recording. WE ARE SO BARACK!!!
I’m a legacy boot cowboy
On an adjustable bed, I ride
And I’m wanted
Dead or AliveAnother joke I don’t understand…
The Bon Jovi song Wanted Dead or Alive and something about BIOS settings that’s a bit beyond me
@git@hexbear.net You were the one who’d told me to run
docker run -d --name rvc --shm-size=256m --gpus all -v ./weights:/app/assets/weights -v ./opt:/app/opt -p 7865:7865 aladdin1234/rvc-webui:0.1
so I figure you’re probably the one who knows what I should do now.Previous posts in this saga (newest to oldest):
- The longer I spend in “dependency hell” trying to install RVC on Linux Mint, the more it feels like a parable of the market forces behind “AI” (which is to say I’d like some help setting up Pyenv)
- Is Praat a viable substitute for RVC for voice anonymization? If not, can someone walk me through setting up RVC on Linux?
- I have Linuxed
-v ./weights:/app/assets/weights
This flag created a docker volume called
weights
in your current directory. This volume maps the host’sweights
directory to container’s internal/app/assets/weights
. I sssume that’s where you need to put the weights. Just cp them to./weights
I wrote
sudo cp ./rvc/Rikkav2.pth ./rvc/weights
and that worked. Opening up RVC WebUI again and the voice now shows up in the dropdown. This was a simple task I probably should’ve been able to figure out alone so I thank you for your patience and help.Edit: That’s all the weights copied over. Now to see if it actually works!
Edit 2: It doesn’t work. I have a feeling it’s to do with the index files.
Btw, this command might not be 100% correct. Docker run -v requires absolute path. Do this instead:
sudo docker run -d --name rvc --shm-size=256m --gpus all -v ${PWD}/weights:/app/assets/weights -v ${PWD}/opt:/app/opt -p 7865:7865 aladdin1234/rvc-webui:0.1
Or use docker compose
CongratulTions on your hard-won victor!
My favorite superhero, Hard-Won Victor (some dude made out of Korean coins)
Hell yeah! I’m really happy you got this working
I just want to say that I love the world ululation and nobody ever uses it and I appreciate that you did
create a volume tied to a real folder and put all your folders there, it’ll now be able to access them
Is it not working because docker is containerized so it can’t access my regular files, is it like RVC is being Windows-centric so it can’t understand my file paths, or what?
It’s probably working. Docker interacts with the host file system through directory mappings. You have two in your command, one for the weights at
${PWD}/weights:/app/assets/weights
the other for (I assume) the files you want to work with at${PWD}/opt:/app/opt
.What this means is that when you run the command it will look for a weights folder in whichever directory you ran it from
${PWD}
and maps it to a path inside the container/app/assets/weights
. Likewise the opt folder is mapped to${PWD}/opt
on your host and/app/opt
in the container and is probably where you’ll want to put whatever other files you want to work with. When you access the web app the directory you should look in will be relative to the container, so you would look for the files you put in${PWD}/opt
from the host at/app/opt
.If those folders don’t exist in the directory you’re running the command from just make them first with
mkdir opt
ormkdir weights
and then move the relevant files.Unless this is some kind of file upload prompt or something. If that doesn’t help can you take some screenshots of what you’re seeing?
I’ll try your suggestion, but I’ll also preemptively attach a screenshot of what the WebUI looks like from my end. I’m particularly struck by the “Enter the path of the audio file to be processed (default is the correct format example): C:\Users\Desktop\audio_example.wav”
EDIT: LET’S FUCKING GOOOOOOOOOOOO IT ACTUALLY WORKED MASHALLAH THANK YOU
From that screenshot it looks like the windows paths are just placeholder values, nothing to worry about there. For those boxes I’m fairly sure you’ll use
/app/opt/filename
paths instead, and the files for those would go in the local opt directory on the host.IT WORKED!!!
ALALLALAALALALALALALLALALLAALALALAALALALALLALALAALAALALALALALALALALALALALAALAL AAAAAAAAAHAHAHAHAHAAAAAAAAYYYYYYYY!!!
Nice. Good job!
I will now take a very long walk while listening to victory music
∞ 🏳️⚧️Edie [it/its, she/her, fae/faer, love/loves, ze/hir, des/pair, none/use name, undecided]@hexbear.netEnglish1·8 days agodeleted by creator
Removed by mod
Is this a joke or wrong thread?