41
submitted 1 week ago* (last edited 1 week ago) by Erika3sis@hexbear.net to c/technology@hexbear.net

The story thus far by my recollection:

I'm trying to get Retrieval-based Voice Conversion (RVC) — a program for making voice "deepfakes" using audio-to-audio conversion — working on my Linux Mint Xfce machine. To this end, I've had to...

(everything I've done thus far + the Pyenv stuff highlighted)First get Git and ffmpeg, then git clone RVC and then create a virtual environment ("venv") in that folder, then activate that venv, and I also had to get Pip, and use Pip to install torch, torchvision, and torchaudio, then I had to install Poetry, then I had to install RVC's dependencies using Poetry, exceeeeept two of those dependencies refuse to install, so I've ended up a bit stuck. At least one of these dependencies is apparently refusing to install because it's not compatible with my version of Python, which means that I also have to install Pyenv in order to change the Python version in the venv, and so I've installed Pyenv's dependencies and run the command to install Pyenv itself...

...But then the terminal spat out a message about "adding 'pyenv' to the load path", ~/.bash_profile vs ~/.profile vs ~/.bashrc, and restarting my shell? After consulting a tutorial about this message, and installing Vim because it seemed like I might need that, I was still confused about what I was supposed to do, so I decided to take another break rather than continue to exhaust myself.

And this isn't to mention how every single step of this process has also had its own hiccups and confusions, as I'm "diving in the deep end" with basically no knowledge of anything I'm doing.

Put simply, it feels like all the forces of the universe are conspiring against me, trying to keep me from installing this one simple program onto my computer.

Compare this to another form of machine learning technology: large language models. Those things are everywhere nowadays! They're practically inescapable! They're in Google and DuckDuckGo. Firefox even on Linux has an LLM feature now. Several mainstream social media apps have them. Windows has its Copilot, phones are getting "AI" features left and right, yadda yadda. And I'm sure you all know everything wrong with the mass adoption of LLMs already.

Put simply, it feels like all the forces of the universe are conspiring against me, trying to make it impossible for me to stay away from this crap I absolutely don't want.

And this raises the question of why, if both of these things are popularly called "AI", do they differ so much in this regard?

The answer to me seems to just be money. RVC has no subscription fee nor gathering of my personal data, certainly not on a privacy-friendly OS; contrarily RVC makes me more private by letting me mask my voice. RVC is also literally incapable of even attempting to influence my opinions or dull my mind; it does not rely on overseas server farms whose water use is leaving surrounding communities without tap water; and I could even swap out RVC's training material if I objected to it. And without these "features", it's basically impossible for anyone to make a profit from RVC. And if it's impossible to make a profit from RVC, then there's no money being put into making this incredibly useful program accessible for laypeople — certainly no money being put into forcing it on people!

And I just think that's some glorpshit.

you are viewing a single comment's thread
view the rest of the comments
[-] git@hexbear.net 9 points 1 week ago* (last edited 1 week ago)

Use Docker, it’s ideal for things like this.

Install Docker:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker

This installs the docker project’s GPG key they use to sign their packages, and adds the Ubuntu repo so you can install the packages as they don’t have a Mint specific repo. It then installs Docker and enables it now and on boot.

Run RVC:

mkdir rvc
cd rvc
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

This creates and changes to an “rvc” directory in your current directory to keep things organised. This will download and run a 6GB image of RVC that a third party has published and mounts two directories relative to your current path (hence why we created an “rvc” directory earlier) so you can interchange data with the container, and binds the container’s port 7865 to your host’s 7865 so you can access it. You can always docker build the one that the project provides if you want instead.

In your browser, navigate to http://127.0.0.1:7865/

When you’re done:

docker stop rvc

If you want to start the same container again:

docker start rvc

[-] Erika3sis@hexbear.net 3 points 1 week ago* (last edited 1 week ago)

This seems like a step in the right direction, and I thank you for your help, but when I wrote 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 it said docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied

[-] PorkrollPosadist@hexbear.net 7 points 1 week ago* (last edited 1 week ago)

Docker containers are basically capable of doing anything root is, so normal users are not given permission to manipulate Docker by default. It is possible for the user to be added to the docker group like sudo gpasswd -a erikathreesis docker. followed by logging out (completely) and logging back in again. Consider this warning from the Debian Wiki (Mint's upstream distro) though:

Docker group membership is more dangerous than sudo

The Docker daemon typically runs under the root account, so access to Docker commands effectively grants full root power. By design, this allows easy access as root to the host filesystem. Unfortunately, it also makes it trivial for a malicious user to read and alter sensitive system files, or for a careless user to allow a malicious containerized app to do so.

Docker has no equivalent to sudo's password check, so an arbitrary-code-execution exploit against a user in the docker group effectively grants the attacker root access. Therefore, the safer choice is to never add a user account — even your own — to the docker group, so that Docker commands can only be used via sudo.

If Docker running at root level is an unacceptable security risk, consider running in "rootless mode" instead.

See also "Docker daemon attack surface" in the upstream documentation for more details.

Basically, just do sudo docker run ... instead of docker run

Edit: Also, I'm sorry I assumed this would be more trivial. Apparently everybody but me has had nightmare situations with pip lmao. It was easy for me to set up libretranslate anyway.

[-] Erika3sis@hexbear.net 6 points 1 week ago* (last edited 1 week ago)

Basically, just do sudo docker run ... instead of docker run

Oh, something's happening! Stuff's downloading! I'm crossing my fingers and myself repeatedly.

Edit: Ballsack, I forgot to cd first, is that gonna be a problem? Is there a way I can fix this?

Edit 2: docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]

[-] PorkrollPosadist@hexbear.net 7 points 1 week ago

Based solely on a web search, this appears to be an Nvidia thing, but this is something I can't help very much with as I don't have any nvidia hardware. Well, it could be a number of things. There might be something missing from the specific container image you tried, or there might be something missing from the host OS (Mint).

I stumbled on something called the Nvidia container toolkit. I'm only speculating, but setting this up might be a requirement for Docker to make use of the GPU.

[-] Erika3sis@hexbear.net 5 points 1 week ago

Guess my princess is still in another castle... But how about the thing about forgetting to cd? Looks like the command ended up creating two empty folders, opt and weights, in my username folder. If it created any other files, I don't know where they would be.

[-] Edie@hexbear.net 5 points 1 week ago

I believe docker takes care of the other files?

Hang in there sis. cat-trans

[-] Erika3sis@hexbear.net 6 points 1 week ago* (last edited 1 week ago)

Alright, so I wrote sudo docker ps and that strangely seemed to indicate I didn't have any containers, but when I wrote sudo docker start rvc it gave me the GPU error which would indicate that I did have an RVC container in fact. So then I wrote sudo docker rm rvc and then sudo docker start rvc again, and now it says there is no such container. I then deleted the opt and weights folders and everything seems fine. I'm going to see if I can figure out this Nvidia Container Toolkit thing tomorrow and then try to run the docker again, this time ensuring that I have cd'd to the right folder beforehand. Thank you for your patience and encouragement.

[-] Hermes@hexbear.net 4 points 1 week ago

docker ps only lists running containers, if you want all containers you need docker ps -a

[-] Erika3sis@hexbear.net 3 points 1 week ago

Well, I guess that explains that.

[-] kleeon@hexbear.net 3 points 1 week ago

You're close. I had to deploy a different ML project a couple of months ago and I think Nvidia Container Toolkit installed with no major hiccups. Just follow their official guide. Also a lot of projects will use CPU as fallback in case GPU is not available for some reason. That might be viable in many cases.

Another thing i want to mention is this project has a docker compose file, which basically puts this long docker commad into a yaml file. Just do this:

sudo docker compose up -d

Or, if you want to see the live log (which you usually do when first deploying a container), run this:

sudo docker compose up

This is how you stop and remove the container:

sudo docker compose down

Good luck!

[-] Erika3sis@hexbear.net 3 points 1 week ago

I got the docker working earlier today (new thread) — my only problem now is importing the weights into the respective folder.

[-] kleeon@hexbear.net 3 points 1 week ago

The saga continues

this post was submitted on 02 Oct 2025
41 points (100.0% liked)

technology

24039 readers
186 users here now

On the road to fully automated luxury gay space communism.

Spreading Linux propaganda since 2020

Rules:

founded 5 years ago
MODERATORS