diff --git a/Dockerfile.gpu b/Dockerfile.gpu index 0d7f0e0f703291a89fca7810a556af335ff19577..52277089cd90cd79b07cddb03b92ba153603e24b 100644 --- a/Dockerfile.gpu +++ b/Dockerfile.gpu @@ -34,4 +34,9 @@ COPY . . RUN poetry install RUN $POETRY_VENV/bin/pip install torch==1.13.0+cu117 -f https://download.pytorch.org/whl/torch +ENV ASR_MODEL="base" + +# TODO: Skip based on ENV variable +RUN ./faster_whisper_model_conversion.sh ${ASR_MODEL} + CMD gunicorn --bind 0.0.0.0:9000 --workers 1 --timeout 0 app.webservice:app -k uvicorn.workers.UvicornWorker diff --git a/README.md b/README.md index 3491d98163bbb1f52398aae43dbceb0bb8d7d722..720fb7e21aa241647a3325097ca76f22d24da1f2 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,11 @@ Starting the Webservice: poetry run gunicorn --bind 0.0.0.0:9000 --workers 1 --timeout 0 app.webservice:app -k uvicorn.workers.UvicornWorker ``` +With docker compose: +```sh +docker-compose up --build +``` + ## Quick start After running the docker image interactive Swagger API documentation is available at [localhost:9000/docs](http://localhost:9000/docs) diff --git a/app/webservice.py b/app/webservice.py index c2092618c6936a767944f2aa253eafeddd078923..a4dd19fdd12d9b3890dfa2d9ef34786612ab9a1f 100644 --- a/app/webservice.py +++ b/app/webservice.py @@ -137,11 +137,10 @@ def run_asr( with model_lock: model = get_modal(faster) if faster: - # TODO: options_dict segments = [] text = "" i = 0 - segment_generator, info = model.transcribe(audio, beam_size=5) + segment_generator, info = model.transcribe(audio, beam_size=5, **options_dict) for segment in segment_generator: segments.append(segment) text = text + segment.text diff --git a/docker-compose.yml b/docker-compose.yml index 204b58ed654c251ab4754463d80eee09ef9e2a31..b4153756040000e02ac63ae38ef0d4336a1f2312 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,12 +13,18 @@ services: count: 1 capabilities: [gpu] environment: - - ASR_MODEL=large + - ASR_MODEL=base ports: - 9000:9000 volumes: - ./app:/app/app - - ~/.cache/poetry:/root/.cache/poetry - - ~/.cache/whisper:/root/.cache/whisper - - ~/.cache/faster_whisper:/root/.cache/faster_whisper + - cache-pip:/root/.cache/pip + - cache-poetry:/root/.cache/poetry + - cache-whisper:/root/.cache/whisper + - cache-faster-whisper:/root/.cache/faster_whisper +volumes: + cache-pip: + cache-poetry: + cache-whisper: + cache-faster-whisper: diff --git a/faster_whisper_model_conversion.sh b/faster_whisper_model_conversion.sh new file mode 100755 index 0000000000000000000000000000000000000000..ab0671cfc925788cf4e4dfcc9bed1824670d4758 --- /dev/null +++ b/faster_whisper_model_conversion.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +ct2-transformers-converter --model openai/whisper-"$ASR_MODEL" --output_dir /root/.cache/faster_whisper --quantization float16 diff --git a/model_conversion.sh b/model_conversion.sh deleted file mode 100644 index 07ca750d5f90b71f294c45e2525b22907b92213c..0000000000000000000000000000000000000000 --- a/model_conversion.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -# TODO: Add step to build setup based on ENV variable -ct2-transformers-converter --model openai/whisper-large-v2 --output_dir /root/.cache/faster_whisper --quantization float16