Этот микросервис реализован с использованием FastAPI и OpenAI Whisper для автоматической транскрипции аудиофайлов. Микросервис принимает аудиофайл через HTTP POST-запрос, выполняет его транскрипцию и возвращает результат в формате JSON.
- Требования
- Установка и запуск локально
- Запуск с помощью Docker
- Использование
- Пример запроса
- Поддерживаемые форматы аудио
- Информация о моделях Whisper
Для запуска микросервиса требуются:
- Python 3.9+
- Установленный FFmpeg для декодирования аудио
- Установленный Docker (для запуска в контейнере)
git clone <repository_url>
cd Whisper_Fastapi_Service
python3 -m venv venv
source venv/bin/activate # для Linux/MacOS
# или
venv\Scripts\activate # для Windows
pip install -r app/requirements.txt
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
http://127.0.0.1:8000
docker build -t my_microservice .
docker run -d -p 80:80 my_microservice
После запуска микросервис будет доступен по адресу:
http://localhost:80
Этот эндпоинт принимает аудиофайл и название модели Whisper для транскрипции.
- URL:
/transcribe/
- Метод:
POST
- Формат данных:
multipart/form-data
- Параметры:
file
: аудиофайл (обязательный)whisper_model
: название модели Whisper для использования (обязательный). Доступные модели:tiny
,base
,small
,medium
,large
,turbo
.
curl -X POST "http://127.0.0.1:8000/transcribe/" \
-F "file=@/path/to/audiofile.ogg" \
-F "whisper_model=base"
{
"transcription": "This is the transcribed text from the audio file."
}
- SWAGGER-UI -
/docs/
- REDOC -
/redoc/
Микросервис поддерживает следующие форматы аудиофайлов:
audio/mpeg
(MP3)audio/wav
(WAV)audio/x-wav
(WAV)audio/flac
(FLAC)audio/ogg
(OGG)
Убедитесь, что файл имеет один из поддерживаемых форматов перед отправкой запроса.
Модели Whisper различаются по размеру, количеству параметров, поддерживаемым языкам, требуемой видеопамяти (VRAM) и скорости обработки. Выберите модель в зависимости от ваших требований к точности и времени обработки:
Model | Parameters | English-only model | Multilingual model | Required VRAM | Relative speed |
---|---|---|---|---|---|
tiny | 39 M | tiny.en |
tiny |
~1 GB | ~10x |
base | 74 M | base.en |
base |
~1 GB | ~7x |
small | 244 M | small.en |
small |
~2 GB | ~4x |
medium | 769 M | medium.en |
medium |
~5 GB | ~2x |
large | 1550 M | N/A | large |
~10 GB | 1x |
turbo | 809 M | N/A | turbo |
~6 GB | ~8x |
- Relative speed: Относительная скорость обработки модели. Модели с большей относительной скоростью (
10x
,7x
) обрабатывают аудио быстрее, чем более точные модели, такие какlarge
(1x
). - Required VRAM: Требуемый объём видеопамяти для использования модели. Большие модели, такие как
large
, требуют до 10 ГБ видеопамяти.