Files
offline-audio-transcriber/whisper_transcribe_setup.sh
Mikhail Shardin 1d96b25521 upd
2025-09-09 10:38:48 +05:00

162 lines
7.2 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 🛠️ Скрипт для настройки окружения OpenAI Whisper на Ubuntu 🛠️
#
# Этот Shell-скрипт автоматизирует полную установку и настройку программного
# окружения, необходимого для работы системы распознавания речи OpenAI Whisper
# с использованием GPU от NVIDIA.
#
# Напоминание: Скрипт ориентирован на Ubuntu и может потребовать адаптации
# для других дистрибутивов Linux.
#
# Основные задачи:
# - Обновление системы и установка базовых утилит (python3-venv, ffmpeg).
# - Проверка и установка драйверов NVIDIA.
# - Проверка и установка CUDA Toolkit для вычислений на GPU.
# - Создание изолированного Python-окружения (.venv) для избежания конфликтов.
# - Установка PyTorch с учетом архитектуры GPU (стабильная или nightly версия).
# - Установка библиотеки openai-whisper и других зависимостей.
# - Запуск финального теста для проверки совместимости PyTorch и GPU.
#
# Порядок использования:
# 1. Сделайте скрипт исполняемым: chmod +x setup_whisper.sh
# 2. Запустите его: ./setup_whisper.sh
# 3. В случае установки драйверов NVIDIA может потребоваться перезагрузка.
# Следить за состоянием GPU: $ watch -n 5 nvidia-smi
#
# Автор: Михаил Шардин https://shardin.name/
# Дата создания: 29.08.2025
# Версия: 1.1
#
# Актуальная версия скрипта всегда здесь: https://github.com/empenoso/offline-audio-transcriber
#
echo "🚀 Установка окружения для OpenAI Whisper"
echo "========================================="
# Проверка Ubuntu версии
echo "📋 Информация о системе:"
lsb_release -a
echo ""
# Обновление системы
echo "🔄 Обновление пакетов..."
sudo apt update && sudo apt upgrade -y
# Установка Python и pip
echo "🐍 Установка Python и зависимостей..."
sudo apt install -y python3 python3-pip python3-venv python3-dev
# Установка системных зависимостей для аудио
echo "🎵 Установка библиотек для работы с аудио..."
sudo apt install -y ffmpeg libsndfile1 portaudio19-dev
# Проверка NVIDIA драйверов
echo "🎮 Проверка NVIDIA драйверов..."
if nvidia-smi &> /dev/null; then
echo "✅ NVIDIA драйверы установлены"
nvidia-smi --query-gpu=name,memory.total --format=csv,noheader,nounits
else
echo "⚠️ NVIDIA драйверы не найдены. Установка..."
sudo apt install -y nvidia-driver-575 nvidia-dkms-575
echo "🔄 После установки драйверов требуется перезагрузка!"
echo "Запустите: sudo reboot"
fi
# Установка CUDA toolkit (если нужно)
echo "🔧 Проверка CUDA..."
if nvcc --version &> /dev/null; then
echo "✅ CUDA toolkit уже установлен"
nvcc --version
else
echo "📦 Установка CUDA toolkit..."
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt-get -y install cuda-toolkit-13-0
fi
# Создание виртуального окружения
echo "🏠 Создание виртуального окружения..."
python3 -m venv .venv
source .venv/bin/activate
# Обновление pip
echo "⬆️ Обновление pip..."
pip install --upgrade pip
# Определение архитектуры GPU для выбора совместимой версии PyTorch
echo "🔥 Установка PyTorch с поддержкой RTX 5060 Ti..."
# Проверяем архитектуру GPU
if nvidia-smi &> /dev/null; then
GPU_INFO=$(nvidia-smi --query-gpu=name --format=csv,noheader,nounits)
echo "🎮 Обнаружен GPU: $GPU_INFO"
# Для RTX 5060 Ti (Ada Lovelace) нужна nightly версия PyTorch
if echo "$GPU_INFO" | grep -q "RTX 5060 Ti\|RTX 40\|RTX 50"; then
echo "🚀 Установка PyTorch nightly для поддержки новых GPU..."
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129
else
echo "📦 Установка стабильной версии PyTorch..."
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
fi
else
echo "📦 GPU не обнаружен, установка CPU версии PyTorch..."
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
fi
# Установка OpenAI Whisper
echo "🎙️ Установка OpenAI Whisper..."
pip install openai-whisper
# Дополнительные полезные библиотеки
echo "📚 Установка дополнительных библиотек..."
pip install numpy scipy librosa soundfile pydub
# Тест установки с проверкой совместимости GPU
echo "🧪 Тестирование установки..."
python3 -c "
import torch
import whisper
print(f'PyTorch версия: {torch.__version__}')
print(f'CUDA доступна: {torch.cuda.is_available()}')
if torch.cuda.is_available():
try:
gpu_name = torch.cuda.get_device_name(0)
print(f'GPU: {gpu_name}')
print(f'CUDA версия: {torch.version.cuda}')
print(f'GPU устройств: {torch.cuda.device_count()}')
# Тест совместимости
test_tensor = torch.zeros(10, 10).cuda()
result = test_tensor + 1
print('✅ GPU совместим с PyTorch')
except Exception as e:
print(f'⚠️ GPU несовместим: {e}')
print('🔄 Будет использоваться CPU режим')
else:
print('💻 Будет использоваться CPU')
print('✅ Whisper импортирован успешно')
"
echo ""
echo "🎉 Установка завершена!"
echo "========================================="
echo "Для активации окружения используйте:"
echo "source .venv/bin/activate"
echo ""
echo "Для запуска скрипта:"
echo "python3 whisper_transcribe.py [директория] [модель] [выходная_папка]"
echo ""
echo "Примеры:"
echo "python3 whisper_transcribe.py ./audio"
echo "python3 whisper_transcribe.py ./audio large ./results"
echo ""
echo "Доступные модели (от быстрой к точной):"
echo "tiny, base, small, medium, large"
```