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.

Use Docker, it’s ideal for things like this.
Install 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:
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
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 saiddocker: 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
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:Basically, just do
sudo docker run ...
instead ofdocker 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.
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]]
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.
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.
I believe docker takes care of the other files?
Hang in there sis.
Alright, so I wrote
sudo docker ps
and that strangely seemed to indicate I didn't have any containers, but when I wrotesudo docker start rvc
it gave me the GPU error which would indicate that I did have an RVC container in fact. So then I wrotesudo docker rm rvc
and thensudo 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.docker ps
only lists running containers, if you want all containers you needdocker ps -a
Well, I guess that explains that.
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:
Or, if you want to see the live log (which you usually do when first deploying a container), run this:
This is how you stop and remove the container:
Good luck!
I got the docker working earlier today (new thread) — my only problem now is importing the weights into the respective folder.
The saga continues