diff --git a/env_example.sh b/env_example.sh index 565c34e..2a87a38 100644 --- a/env_example.sh +++ b/env_example.sh @@ -1,3 +1,4 @@ export ACCESS_CONTROL_ALLOW_ORIGIN="*" export API_STT_MODEL="/Models/faster-whisper-medium" +# export API_STT_THREADS=4 # per worker, default: 4 diff --git a/transcriptapi/env.py b/transcriptapi/env.py index 334fcb2..f6a2ee1 100644 --- a/transcriptapi/env.py +++ b/transcriptapi/env.py @@ -9,6 +9,11 @@ _logger = _ComponentLogger("Environment", print_timestamp=False) try: ACCESS_CONTROL_ALLOW_ORIGIN = str(_environ["ACCESS_CONTROL_ALLOW_ORIGIN"]) API_STT_MODEL = _Path(_environ["API_STT_MODEL"]) + API_STT_THREADS = int(_environ.get("API_STT_THREADS", 4)) # per worker + # log stt config + _logger.info("STT Configuration:") + _logger.info(f" Model: {API_STT_MODEL}") + _logger.info(f" Threads: {API_STT_THREADS} per worker") except KeyError as e: _logger.critical(f"Missing {e}") exit(1) diff --git a/transcriptapi/server.py b/transcriptapi/server.py index 94ad773..33dc0e4 100644 --- a/transcriptapi/server.py +++ b/transcriptapi/server.py @@ -31,7 +31,7 @@ def get_app() -> _Sanic: @app.before_server_start async def setup_stt(app): - app.ctx.stt = _STT(_env.API_STT_MODEL, logger=_ComponentLogger(f"{_getpid()}/STT")) + app.ctx.stt = _STT(_env.API_STT_MODEL, n_threads=_env.API_STT_THREADS, logger=_ComponentLogger(f"{_getpid()}/STT")) @app.after_server_start async def init_stt(app):