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