No description
  • Python 89.5%
  • Dockerfile 10.5%
Find a file
2026-01-16 10:31:29 +03:00
.gitignore first commit 2026-01-15 11:49:18 +03:00
.woodpecker.yml first commit 2026-01-15 11:49:18 +03:00
app.py first commit 2026-01-15 11:49:18 +03:00
Dockerfile first commit 2026-01-15 11:49:18 +03:00
LICENSE first commit 2026-01-15 11:49:18 +03:00
main.py first commit 2026-01-15 11:49:18 +03:00
preload_models.py Обновить preload_models.py 2026-01-16 10:31:29 +03:00
README.md Fix README.md 2026-01-15 11:51:07 +03:00
requirements.txt first commit 2026-01-15 11:49:18 +03:00

Отлично! Вот обновлённый 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_basic
  • audiosr_speech
  • roberta-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.010.0)
ddim_steps integer 100 Количество шагов диффузии (1100)

Формат ответа

  • 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 секунд

📄 Лицензия