- Python 89.5%
- Dockerfile 10.5%
| .gitignore | ||
| .woodpecker.yml | ||
| app.py | ||
| Dockerfile | ||
| LICENSE | ||
| main.py | ||
| preload_models.py | ||
| README.md | ||
| requirements.txt | ||
Отлично! Вот обновлённый README.md с учётом ваших уточнений:
🎧 AudioSR FastAPI Service
Audio Super Resolution (AudioSR) as a REST API
Улучшайте качество аудио через HTTP-запросы с помощью модели AudioSR.
Поддержка моделей:
basic(универсальная) иspeech(оптимизированная для речи)
✨ Возможности
- 📤 Принимает аудиофайлы (WAV, MP3 и др.)
- 🔄 Возвращает улучшенное аудио в формате WAV
- ⚙️ Настраиваемые параметры:
guidance_scale,ddim_steps - 🌐 Работает полностью offline после предварительной загрузки моделей
- 🐳 Готов к работе в Docker
🛠 Требования
- Python 3.9
- GPU (рекомендуется) или CPU
- Свободное место: ~16 ГБ для моделей
🚀 Быстрый старт
1. Создание окружения (рекомендуется через conda)
conda create -n audiosr python=3.9
conda activate audiosr
2. Установка зависимостей
pip install -r requirements.txt
Важно:
audiosrдолжен быть установлен из официального репозитория согласно инструкциям вrequirements.txt.
3. Предзагрузка моделей (требуется интернет)
python preload_models.py
Это скачает:
audiosr_basicaudiosr_speechroberta-base(для обработки речи)
Модели будут сохранены в ~/.cache/huggingface/ (или в путь из переменной HF_HOME).
4. Запуск сервера
python main.py
Сервер будет доступен по адресу: http://localhost:8080
📡 Использование API
Отправка запроса
curl -X POST http://localhost:8000/upscale \
-F "audio=@input.mp3" \
-F "model_name=basic" \
-F "guidance_scale=2.6" \
-F "ddim_steps=100" \
--output output.wav
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
audio |
file | — | Входной аудиофайл |
model_name |
string | "basic" |
Модель: basic или speech |
guidance_scale |
float | 2.6 |
Сила guidance (1.0–10.0) |
ddim_steps |
integer | 100 |
Количество шагов диффузии (1–100) |
Формат ответа
- Content-Type:
audio/wav - Файл:
upscaled.wav
🏗 Offline-режим
После предзагрузки моделей сервис работает без интернета.
Переменные окружения для настройки:
HF_HOME=/custom/cache/path # Путь к кэшу моделей
HF_HUB_OFFLINE=1 # Обязательно для offline
HF_DATASETS_OFFLINE=1 # Обязательно для offline
TRANSFORMERS_OFFLINE=1 # Обязательно для offline
Запуск в offline-режиме:
python main.py
🐳 Docker
В репозитории уже присутствует Dockerfile. Для сборки и запуска:
docker build -t audiosr-api .
docker run -p 8080:8080 -v /home/ymnuk/.cache/huggingface:/app/models audiosr-api
Для загрузки моделей:
docker run -p 8080:8080 -v /home/ymnuk/.cache/huggingface:/app/models -e HF_HUB_OFFLINE=0 -e TRANSFORMERS_OFFLINE=0 -e HF_DATASETS_OFFLINE=0 test python3.9 preload_models.py
Примечание: Dockerfile автоматически не выполняет предзагрузку моделей.
📁 Структура проекта
.
├── main.py # FastAPI сервер
├── preload_models.py # Скрипт предзагрузки моделей
├── requirements.txt # Зависимости
├── Dockerfile # Docker-образ
└── README.md
⚠️ Важные замечания
- Формат выхода: всегда WAV с частотой дискретизации 48 кГц
- Каналы: моно остаётся моно, стерео → стерео
- Память: длинные аудиофайлы разбиваются на чанки по 5 секунд
📄 Лицензия
- Этот сервис: MIT License
- AudioSR: MIT License
- Модели (
audiosr_basic,audiosr_speech): Apache License 2.0