myshell-ai / OpenVoice

Instant voice cloning by MyShell.
https://research.myshell.ai/open-voice
MIT License
27.07k stars 2.62k forks source link

Kernel died #215

Open mortsnort opened 2 months ago

mortsnort commented 2 months ago

I always get a "The kernel for OpenVoice/demo_part3.ipynb appears to have died. It will restart automatically." when running the demopart3 jupyter notebook in a linux environment. This happens during the ### Obtain Tone Color Embedding cell. I have 16GB VRAM. Is this not enough for voice cloning? It would be helpful if the system hardware (and Torch version) requirements were documented.

hungtooc commented 1 month ago

Same issue. openVoise v1 is OK, but v2:

Loaded checkpoint 'checkpoints_v2/converter/checkpoint.pth'
missing/unexpected keys: [] []
OpenVoice version: v2
Could not load library libcudnn_cnn_infer.so.8. Error: libcudnn_cnn_infer.so.8: cannot open shared object file: No such file or directory
Please make sure libcudnn_cnn_infer.so.8 is in your library path!
4ssil commented 1 month ago

Same issue here with demopart3 on Windows

MarkuzK commented 1 month ago

I just ran into the same issue. Here's how I resolved it (on Ubuntu 20.04 w Python 3.10 using a python virtual environment (venv)):

salvador-blanco commented 1 month ago

Same issue here on Ubuntu

Loaded checkpoint 'checkpoints_v2/converter/checkpoint.pth'
missing/unexpected keys: [] []

Setting LD_LIBRARY_PATH did not to help

Hangsiin commented 1 month ago

I'm experiencing the same thing on my WSL2 Ubuntu environment. When I run the code below, it restarts the kernel. I'm currently using an RTX 4090 with 24GB Vram, so I don't think it's a hardware issue.

reference_speaker = 'resources/example_reference.mp3' # This is the voice you want to clone target_se, audio_name = se_extractor.get_se(reference_speaker, tone_color_converter, vad=False)

FlexTestHD commented 4 weeks ago

I don't know if this might help anyone here, but I kept getting the error "Could not load library cudnn_ops_infer64_8.dll. Error code 126" when trying to run the code in the demopart3 jupyter notebook as a .py-file. If anyone has that Problem too, I was able to solve the error by doing the following:

Seems like this fixed it for me (using it on cpu) and thought, I'll post it here, if anyone runs into the same issue.

vladlearns commented 3 weeks ago

To fix this on windows:

  1. Go to the NVIDIA cuDNN download page
  2. Select the appropriate version of cuDNN for your cuda version (cuDNN v8.9.7 for CUDA 12.x)
  3. Download the cuDNN installer for win
  4. Extract the contents of the downloaded file
  5. Copy Files to cuda toolkit directory
  6. Navigate to the extracted directory
  7. Copy the following files to your cuda installation directory:
  1. Set Environment Variables
  2. Open the start menu and search for "environment variables"
  3. Click on "Edit the system environment variables"
  4. In the system properties window, click on the "environment variables" button
  5. In the env vars window, find the path var under "system variables" and select it, then click "edit"
  6. Add the following paths to the Path var (if they are not already there):
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\libnvvp
  1. Verify Installation
  2. Open a command prompt and run the following command to verify that CUDA is installed correctly:
nvcc --version

You should see information about the cuda compiler

To verify cuDNN installation, you can write and compile a small cuda program that uses cuDNN, or you can use pytorch to check if it detects cuDNN.

pip install torch

Run a simple script:

pip install torch
print("Is CUDA available: ", torch.cuda.is_available())
print("CUDA version: ", torch.version.cuda)
print("cuDNN version: ", torch.backends.cudnn.version())
print("Number of GPUs: ", torch.cuda.device_count())

If it detects your gpu and lists it, then your cuDNN installation is successful

FlexTestHD commented 3 weeks ago

@vladlearns Thank you very much for the detailed instructions!

vladlearns commented 3 weeks ago

edit: Don't forget: cuda 12.0 and cuDNN 8.9.7 with pytorch, you need to install a version of pytorch that is built for cuda 12.0. pytorch provides binaries for specific CUDA versions, so you need to specify the correct version when installing.

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121

If you want to run in the current session. You need to manually update the Path variable for the current session to prioritize new cuda paths

$currentPath = [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::Machine)

$newCudaPaths = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\libnvvp;"

# Remove old (if any)
$currentPath = $currentPath -replace "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v\d+\.\d+\\bin;",""
$currentPath = $currentPath -replace "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v\d+\.\d+\\libnvvp;",""

# Combine the new paths with the current
$updatedPath = $newCudaPaths + $currentPath

# Update
[System.Environment]::SetEnvironmentVariable("Path", $updatedPath, [System.EnvironmentVariableTarget]::Process)

echo $env:Path

image

vladlearns commented 3 weeks ago

Made a pull, solving all of this in Docker: https://github.com/myshell-ai/OpenVoice/pull/264 @Hangsiin @salvador-blanco @mortsnort @hungtooc @4ssil @FlexTestHD, feel free to test