- HTML 91.9%
- Python 8.1%
| .gitignore | ||
| App.py | ||
| form.html | ||
| index.html | ||
| LICENSE | ||
| README.md | ||
| requirements.txt | ||
Original text
Перевод оригинального текста с комментариями
Whisper ROCm
Local speech-to-text with AMD ROCm GPU acceleration
Локальная транскрибация с применением ускорения на основе AMD ROCm
A browser-based voice transcription app powered by OpenAI's Whisper model, optimized for AMD GPUs using ROCm. Built specifically for the new AMD Ryzen AI processors with Radeon 800M series integrated graphics.
Транскрибация текста прямо в браузере, обеспечиваемая моделью Whisper от OpenAI. Применение этой модели оптимизировано для использования на графических ускорителях AMD с применением ROCm. Мануал ниже расчитан на устройства с ускорителями Radeon 880M и Radeon 890M.
Features - Функции и возможности
- Real-time audio visualization with cyberpunk-themed UI
- Press-and-hold recording (mouse or touch)
- GPU-accelerated transcription via ROCm/CUDA
- One-click copy to clipboard
- Mobile-responsive design
- Automatic language detection
- Визуализация аудио во время записи в реальном времени (хз зачем, просто красиво)
- Нажатие для начала записи, повторное нажатие для окончания записи и начала транскрибации (в оригинале несоответствие с текущей версии)
- GPU-оптимизация через ROCm. CUDA также поддерживается стандартным
torch - Кнопка для копирования полученного результата (если запись через браузер)
- Адаптивный дизайн (стили отличаются от оригинала, чтобы выглядело поприятней)
- Автоматическое определение языка (пока что так, дальше мб сделаю хардкод на русский)
Hardware - Аппаратное обеспечение
Tested on:
- AMD Ryzen AI 9 HX 370 + Radeon 890M (Strix Point / gfx1150)
- TUXEDO laptop running Ubuntu 24.04
Compatible with:
- AMD GPUs with ROCm support (gfx1150, gfx1100, etc.)
- NVIDIA GPUs (CUDA)
- CPU fallback (slower, but works)
Если не понял -- иди учить английский и терминологию по теме.
Installation - Установка
1. Clone the repository - Клонирование репозитория
Оригинальный репозиторий:
git clone https://github.com/M64GitHub/whisper-rocm.git
cd whisper-rocm
Переделанный для себя:
git clone https://nekolab.catfellowship.ru/vkw2920/whisper-rocm.git
cd whisper-rocm
2. Create a virtual environment - Создание виртуального окружения
python -m venv .venv && \
source .venv/bin/activate || \
source .venv/bin/activate.ps1 || \
source .venv/bin/activate.fish
3. Install PyTorch with ROCm support - Установка torch с поддержкой ROCm
Используйте amdgpu_top для проверки версии GFX. В наименовании пакета версия
содержит четыре цифры. Для интеграшек 880M и 890M это будет gfx1150
ВНИМАНИЕ БЛЭТ!!!
- Используйте запрещённые технологии для скачивания этих пакетов
- Не пытайтесь использовать российские IP для скачивания, иначе потом python будет использовать кэш, чтобы сказать, что там всё равно ничего нет
pip install --index-url https://repo.amd.com/rocm/whl/gfx1150/ torch
Другие GPU
For other AMD GPUs, check available builds at: https://repo.amd.com/rocm/whl/
For NVIDIA GPUs or CPU, see: https://pytorch.org/get-started/locally/
4. Install dependencies - Установка прочих зависимостей
pip install -r requirements.txt
Запуск
python App.py
Open http://localhost:8000 in your browser.
Откройте http://127.0.0.1:8000 в браузере и пользуйтесь.
Для транскрибации заранее подготовленной записи откройте http://127.0.0.1:8000/form и загрузите файл записи
How to use:
- Click and hold the "HOLD TO RECORD" button
- Speak clearly into your microphone
- Release the button to transcribe
- Click "COPY" or use the auto-selected text
Как применять:
- Нажать на кнопку записи
- Что-то говорить (или записывать лекцию)
- Повторно нажать на кнопку записи
- Дождаться завершения транскрибации
- Скопировать текст и использовать его там, где это нужно
Configuration - Настройки
Whisper Model Size - Выбор модели
Edit
App.pyline 20 to change the model:
Замените модель на строке 21 в файле App.py
model = whisper.load_model("medium", device=device) # Options: tiny, base, small, medium, large
| Model | Parameters | VRAM | Speed | Accuracy |
|---|---|---|---|---|
| tiny | 39M | ~1GB | Fastest | Basic |
| base | 74M | ~1GB | Fast | Good |
| small | 244M | ~2GB | Medium | Better |
| medium | 769M | ~5GB | Slower | Great |
| large | 1550M | ~10GB | Slowest | Best |
| Модель | Параметров | Память | Скорость | Точность |
|---|---|---|---|---|
| tiny | 39M | ~1GB | Супербыстрая | Супер-тупая |
| base | 74M | ~1GB | Быстрая | Просто тупая |
| small | 244M | ~2GB | Средняя | Средняя |
| medium | 769M | ~5GB | Медленная | Достояная |
| large | 1550M | ~10GB | Самая долгая | Самая точная |
Всё, что ниже, обычному пользователю не нужно до возникновения проблем.
Tech Stack
- Backend: FastAPI + Uvicorn
- ML Model: OpenAI Whisper
- GPU Acceleration: PyTorch + ROCm 7.10
- Frontend: Vanilla HTML/CSS/JavaScript
- Audio: Web Audio API + MediaRecorder
Troubleshooting
Check if ROCm detects your GPU
source venv/bin/activate
python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'No GPU')"
Microphone permissions
Make sure your browser has microphone access.
License
MIT License — see LICENSE for details.
Acknowledgments
- OpenAI Whisper — the speech recognition model
- AMD ROCm — GPU compute platform
- FastAPI — modern Python web framework