File size: 4,176 Bytes
eb1c669 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
#!/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
export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0
elif [[ "$(uname)" != "Linux" ]]; then
echo "Unsupported operating system."
exit 1
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..."
if [[ "$(uname)" == "Darwin" ]] && command -v brew &> /dev/null; then
brew install [email protected]
elif [[ "$(uname)" == "Linux" ]] && command -v apt-get &> /dev/null; then
sudo apt-get update
sudo apt-get install python3.8
else
echo "Please install Python 3.8 manually."
exit 1
fi
fi
# Check if required packages are installed and install them if not
if [ -f "${requirements_file}" ]; then
installed_packages=$(python3.8 -m pip list --format=freeze)
while IFS= read -r package; do
[[ "${package}" =~ ^#.* ]] && continue
package_name=$(echo "${package}" | sed 's/[<>=!].*//')
if ! echo "${installed_packages}" | grep -q "${package_name}"; then
echo "${package_name} not found. Attempting to install..."
python3.8 -m pip install --upgrade "${package}"
fi
done < "${requirements_file}"
else
echo "${requirements_file} not found. Please ensure the requirements file with required packages exists."
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
|