Skip to content

Commit

Permalink
Make up-to-date with mainline
Browse files Browse the repository at this point in the history
  • Loading branch information
kalomaze committed Jul 27, 2023
1 parent 5d25c72 commit e20cbe7
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 3 deletions.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# 7/25 Changelog:
# 7/26 Changelog:
- Fixed the cli inferencing traceback.
- SQL Databases implemented for formanting training stop.
- Gradio browser tab renamed to `Mangio-RVC-Web 💻`.
- Rudimentary functions from `infer-web.py` removed.
- Formanting now accepts any audio format, as long as it is supported by FFmpeg.

# 7/25 Changelog:
- Better MacOS installation script. For inference, all that needs to be done is running the `run.sh` from the extracted zip folder, where it will install Python 3.8, Homebrew, and other dependencies for you automatically. M1 Macs are natively supported for GPU acceleration, and training should work if you choose to download the pretrained models.

# 7/23 Changelog:
- Fp16 detection now works how it did before the last RVC beta; no more training slowdowns compared to how it was before then
Expand Down
100 changes: 98 additions & 2 deletions run.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
#!/bin/bash

# Define common paths for Homebrew
BREW_PATHS=(
"/usr/local/bin"
"/opt/homebrew/bin"
)

if [[ "$(uname)" == "Darwin" ]]; then
# macOS specific env:
export PYTORCH_ENABLE_MPS_FALLBACK=1
Expand All @@ -11,6 +17,74 @@ fi

requirements_file="requirements.txt"

# Function to add a path to PATH
add_to_path() {
echo "Homebrew found in $1, which is not in your PATH."
read -p "Do you want to add this path to your PATH? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Adding $1 to PATH..."

# Detect the shell and choose the right profile file
local shell_profile
if [[ $SHELL == *"/bash"* ]]; then
shell_profile="$HOME/.bashrc"
[[ ! -f "$shell_profile" ]] && shell_profile="$HOME/.bash_profile"
elif [[ $SHELL == *"/zsh"* ]]; then
shell_profile="$HOME/.zshrc"
else
echo "Unsupported shell. Please add the following line to your shell profile file manually:"
echo "export PATH=\"$PATH:$1\""
return
fi

# Add the export line to the shell profile file
echo "export PATH=\"$PATH:$1\"" >> "$shell_profile"

# Source the shell profile file
source "$shell_profile"

# Verify that the new PATH includes Homebrew
if ! command -v brew &> /dev/null; then
echo "Failed to add Homebrew to the PATH."
fi
fi
}

# Check if Homebrew is in PATH
if command -v brew &> /dev/null; then
echo "Homebrew is already in your PATH."
else
# If not, check common paths for Homebrew
echo "Homebrew not found in PATH. Checking common paths..."
for path in "${BREW_PATHS[@]}"; do
if [[ -x "$path/brew" ]]; then
add_to_path "$path"
break
fi
done
fi

# Check again if Homebrew is in PATH
if ! command -v brew &> /dev/null; then
echo "Homebrew still not found. Attempting to install..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi

# Verifying if Homebrew has been installed successfully
if command -v brew &> /dev/null; then
echo "Homebrew installed successfully."
else
echo "Homebrew installation failed."
exit 1
fi

# Installing ffmpeg with Homebrew
if [[ "$(uname)" == "Darwin" ]]; then
echo "Installing ffmpeg..."
brew install ffmpeg
fi

# Check if Python 3.8 is installed
if ! command -v python3.8 &> /dev/null; then
echo "Python 3.8 not found. Attempting to install..."
Expand All @@ -27,7 +101,7 @@ fi

# Check if required packages are installed and install them if not
if [ -f "${requirements_file}" ]; then
installed_packages=$(python3.8 -m pip freeze)
installed_packages=$(python3.8 -m pip list --format=freeze)
while IFS= read -r package; do
[[ "${package}" =~ ^#.* ]] && continue
package_name=$(echo "${package}" | sed 's/[<>=!].*//')
Expand All @@ -41,5 +115,27 @@ else
exit 1
fi

# Install onnxruntime package
echo "Installing onnxruntime..."
python3.8 -m pip install onnxruntime

download_if_not_exists() {
local filename=$1
local url=$2
if [ ! -f "$filename" ]; then
echo "$filename does not exist, downloading..."
curl -# -L -o "$filename" "$url"
echo "Download finished."
else
echo "$filename already exists."
fi
}

# Check and download hubert_base.pt
download_if_not_exists "hubert_base.pt" "https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt"

# Check and download rmvpe.pt
download_if_not_exists "rmvpe.pt" "https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/rmvpe.pt"

# Run the main script
python3.8 infer-web.py --pycmd python3.8
python3.8 infer-web.py --pycmd python3.8

0 comments on commit e20cbe7

Please sign in to comment.