Giter Site home page Giter Site logo

pluja / whishper Goto Github PK

View Code? Open in Web Editor NEW
811.0 15.0 54.0 11.3 MB

Transcribe any audio to text, translate and edit subtitles 100% locally with a web UI. Powered by whisper models!

Home Page: https://whishper.net

License: GNU Affero General Public License v3.0

Dockerfile 3.82% Go 27.69% JavaScript 7.33% CSS 0.05% HTML 0.35% Svelte 44.95% TypeScript 0.48% Shell 3.82% Python 9.84% Batchfile 1.67%
ai audio-to-text golang subtitles sveltekit transcription whisper ui webapp speech-recognition speech-to-text stt web web-whisper

whishper's Introduction

whishper banner

🚧 I am working on a complete rewrite of the project. Progress on this can be seen at v4 branch. Consequently, this branch will not receive any new releases or updates.

Whishper is an open-source, 100% local audio transcription and subtitling suite with a full-featured web UI.

Features

  • πŸ—£οΈ Transcribe any media to text: audio, video, etc.
    • Transcribe from URLs (any source supported by yt-dlp).
    • Upload a file to transcribe.
  • πŸ“₯ Download transcriptions in many formats: TXT, JSON, VTT, SRT or copy the raw text to your clipboard.
  • 🌐 Translate your transcriptions to any language supported by Libretranslate.
  • ✍️ Powerful subtitle editor so you don't need to leave the UI!
    • Transcription highlighting based on media position.
    • CPS (Characters per second) warnings.
    • Segment splitting.
    • Segment insertion.
    • Subtitle language selection.
  • 🏠 100% Local: transcription, translation and subtitle edition happen 100% on your machine (can even work offline!).
  • πŸš€ Fast: uses FasterWhisper as the Whisper backend: get much faster transcription times on CPU!
  • πŸ‘ Quick and easy setup: use the quick start script, or run through a few steps!
  • πŸ”₯ GPU support: use your NVIDIA GPU to get even faster transcription times!
  • 🐎 CPU support: no GPU? No problem! Whishper can run on CPU too.

Roadmap

  • Local folder as media input (#15).
  • Full-text search all transcriptions.
  • User authentication.
  • Audio recording from the browser.
  • Add insanely-fast-whisper as an optional backend (#53).
  • Support for GPU acceleration.
    • Non NVIDIA GPU support. Is it possible with faster-whisper?
  • Can we do something with seamless_communication?

Project structure

Whishper is a collection of pieces that work together. The three main pieces are:

  • Transcription-API: This is the API that enables running Faster-Whisper. You can find it in the transcription-api folder.
  • Whishper-Backend: This is the backend that coordinates frontend calls, database, and tasks. You can find it in backend folder.
  • Whishper-Frontend: This is the frontend (web UI) of the application. You can find it in frontend folder.
  • Translation (3rd party): This is the libretranslate container that is used for translating subtitles.
  • MongoDB (3rd party): This is the database that stores all the information about your transcriptions.
  • Nginx (3rd party): This is the proxy that allows running everything from a single domain.

Contributing

Contributions are welcome! Feel free to open a PR with your changes, or take a look at the issues to see if there is something you can help with.

Development setup

Check out the development documentation here.

Screenshots

These screenshots are available on the official website, click any of the following links to see:

Support

Star History

Star History Chart

Credits

whishper's People

Contributors

dependabot[bot] avatar ftchd avatar hundehausen avatar jonascz avatar miketwo avatar pluja avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

whishper's Issues

Setup for MongoDB doesn’t seem to use existing user

I was trying to debug the MongoDB connection issues that were being logged in my setup. Looks like the DB user β€œwhishper” is never created on a new install and this results in connection errors. I have modified the default .env file to use β€œroot” as the user and now everything is up and running.

libretranslate: loading additional languages doesn't work

I can't translate, the pull down menu doesn't offer anything.

To Reproduce

Steps to reproduce the behavior:
After transcription I want to translate but the pulldown menu doesn't offer anything.
I first started with the default .env settings but then edited to add it and de like LT_LOAD_ONLY=es,en,fr,it,de however it didn't even download the respective packages

I'm on Linux Mint 21.2 on i5-5250U CPU @ 1.60GHz Γ— 2

Logs and Configuration

I get this in the log
whishper-backend | 5:39PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"

Docker Compose Logs

whisper-libretranslate  | Running on http://0.0.0.0:5000
whisper-libretranslate  | Running on http://0.0.0.0:5000
whishper-web            | Listening on 0.0.0.0:3000
whishper-web            | Listening on 0.0.0.0:3000
whishper-web            | Listening on 0.0.0.0:3000
whishper-web            | Listening on 0.0.0.0:3000
whisper-libretranslate  | Running on http://0.0.0.0:5000
whisper-libretranslate  | Running on http://0.0.0.0:5000
whishper-backend        | 5:13PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:14PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:14PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:15PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:15PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
thomas-mongo-1          | {"t":{"$date":"2023-11-04T16:28:38.651Z"},"s":"I",  "c":"CONTROL",  "id":20697,   "ctx":"main","msg":"Renamed existing log file","attr":{"oldLogPath":"/var/log/mongodb/mongod.log","newLogPath":"/var/log/mongodb/mongod.log.2023-11-04T16-28-38"}}
thomas-mongo-1          | {"t":{"$date":"2023-11-04T16:42:50.442Z"},"s":"I",  "c":"CONTROL",  "id":20697,   "ctx":"main","msg":"Renamed existing log file","attr":{"oldLogPath":"/var/log/mongodb/mongod.log","newLogPath":"/var/log/mongodb/mongod.log.2023-11-04T16-42-50"}}
thomas-mongo-1          | {"t":{"$date":"2023-11-04T17:22:00.208Z"},"s":"I",  "c":"CONTROL",  "id":20697,   "ctx":"main","msg":"Renamed existing log file","attr":{"oldLogPath":"/var/log/mongodb/mongod.log","newLogPath":"/var/log/mongodb/mongod.log.2023-11-04T17-22-00"}}
thomas-mongo-1          | {"t":{"$date":"2023-11-04T17:25:07.239Z"},"s":"I",  "c":"CONTROL",  "id":20697,   "ctx":"main","msg":"Renamed existing log file","attr":{"oldLogPath":"/var/log/mongodb/mongod.log","newLogPath":"/var/log/mongodb/mongod.log.2023-11-04T17-25-07"}}
whishper-backend        | 5:16PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:16PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:17PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:17PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:18PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:18PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:19PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:19PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:20PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:20PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:22PM INF Starting monitor!
whishper-backend        | 
whishper-backend        | 
whishper-backend        |  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” 
whishper-backend        |  β”‚                   Fiber v2.50.0                   β”‚ 
whishper-backend        |  β”‚               http://127.0.0.1:8080               β”‚ 
whishper-backend        |  β”‚       (bound on host 0.0.0.0 and port 8080)       β”‚ 
whishper-backend        |  β”‚                                                   β”‚ 
whishper-backend        |  β”‚ Handlers ............ 13  Processes ........... 1 β”‚ 
whishper-backend        |  β”‚ Prefork ....... Disabled  PID ................. 1 β”‚ 
whishper-backend        |  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ 
whishper-backend        | 
whishper-backend        | 
whishper-backend        | 
whishper-backend        | 
whishper-backend        |  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” 
whishper-backend        |  β”‚                   Fiber v2.50.0                   β”‚ 
whishper-backend        |  β”‚               http://127.0.0.1:8080               β”‚ 
whishper-backend        |  β”‚       (bound on host 0.0.0.0 and port 8080)       β”‚ 
whishper-backend        |  β”‚                                                   β”‚ 
whishper-backend        |  β”‚ Handlers ............ 13  Processes ........... 1 β”‚ 
whishper-backend        |  β”‚ Prefork ....... Disabled  PID ................. 1 β”‚ 
whishper-backend        |  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ 
whishper-backend        | 
whishper-backend        | 
whishper-backend        | 5:25PM INF Starting monitor!
whishper-backend        | 5:26PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:27PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:28PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:29PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:30PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:31PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:32PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:33PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:34PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:35PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:36PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:37PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 5:38PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whisper-api             | INFO:     Started server process [1]
whisper-api             | INFO:     Waiting for application startup.
whisper-api             | INFO:     Application startup complete.
whisper-api             | INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
whisper-api             | Downloading model tiny...
whisper-api             | Model already cached...
whisper-api             | Downloading model small...
whisper-api             | Model already cached...
whisper-api             | INFO:     127.0.0.1:34476 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     Shutting down
whisper-api             | INFO:     Waiting for application shutdown.
whisper-api             | INFO:     Application shutdown complete.
whisper-api             | INFO:     Finished server process [1]
whisper-api             | INFO:     Started server process [1]
whisper-api             | INFO:     Waiting for application startup.
whisper-api             | INFO:     Application startup complete.
whisper-api             | INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
whisper-api             | Downloading model tiny...
whisper-api             | Model already cached...
whisper-api             | Downloading model small...
whisper-api             | Model already cached...
whisper-api             | INFO:     127.0.0.1:55072 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:43946 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:40994 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:59598 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:33116 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:39294 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:42128 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:46896 - "GET /healthcheck/ HTTP/1.1" 200 OK
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:19:15 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:19:15 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:20:16 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:20:16 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:20:37 +0000] "DELETE /api/transcriptions/654674a000a8d73ae9748509 HTTP/1.1" 200 0 "http://localhost:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:20:40 +0000] "GET /ws/transcriptions HTTP/1.1" 101 4 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:20:40 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
thomas-nginx-1          | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
thomas-nginx-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
thomas-nginx-1          | 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
thomas-nginx-1          | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
thomas-nginx-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
thomas-nginx-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
thomas-nginx-1          | /docker-entrypoint.sh: Configuration complete; ready for start up
thomas-nginx-1          | 172.19.0.3 - - [04/Nov/2023:17:22:22 +0000] "GET /api/transcriptions HTTP/1.1" 200 699768 "-" "undici"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:22:22 +0000] "GET / HTTP/1.1" 200 216535 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:22:24 +0000] "GET /api/transcriptions HTTP/1.1" 200 699768 "http://localhost:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:22:24 +0000] "GET /languages HTTP/1.1" 200 175 "http://localhost:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:22:33 +0000] "GET /ws/transcriptions HTTP/1.1" 101 4 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
thomas-nginx-1          | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
thomas-nginx-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
thomas-nginx-1          | 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
thomas-nginx-1          | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
thomas-nginx-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
thomas-nginx-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
thomas-nginx-1          | /docker-entrypoint.sh: Configuration complete; ready for start up
thomas-nginx-1          | 172.19.0.5 - - [04/Nov/2023:17:25:22 +0000] "GET /api/transcriptions HTTP/1.1" 200 699768 "-" "undici"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:25:22 +0000] "GET / HTTP/1.1" 200 216518 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:25:24 +0000] "GET /api/transcriptions HTTP/1.1" 200 699768 "http://localhost:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:25:24 +0000] "GET /languages HTTP/1.1" 200 175 "http://localhost:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:26:24 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:27:25 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:28:27 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:29:28 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:30:29 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:31:30 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:32:31 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:33:32 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:34:33 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:35:34 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:36:35 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:37:36 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:38:37 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.5 - - [04/Nov/2023:17:38:52 +0000] "GET /api/transcriptions HTTP/1.1" 200 699768 "-" "undici"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:38:52 +0000] "GET / HTTP/1.1" 200 216514 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:38:52 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:38:53 +0000] "GET /api/transcriptions HTTP/1.1" 200 699768 "http://localhost:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:38:53 +0000] "GET /languages HTTP/1.1" 200 175 "http://localhost:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whisper-api             | INFO:     127.0.0.1:33202 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:43926 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:59030 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:47418 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:57418 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:56712 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:47222 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:46632 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:45544 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:46926 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:60998 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:38670 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:33074 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:33284 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:44000 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:50938 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:59838 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:58928 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:50436 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:33762 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:38202 - "GET /healthcheck/ HTTP/1.1" 200 OK
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:39:53 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-backend        | 5:39PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whisper-api             | INFO:     127.0.0.1:48182 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:56564 - "GET /healthcheck/ HTTP/1.1" 200 OK
thomas-nginx-1          | 172.19.0.1 - - [04/Nov/2023:17:40:54 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-backend        | 5:40PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whisper-api             | INFO:     127.0.0.1:40554 - "GET /healthcheck/ HTTP/1.1" 200 OK

Docker Compose File

version: "3.9"

services:
  mongo:
    image: mongo
    env_file:
      - .env
    restart: unless-stopped
    volumes:
      - ./whishper_data/db_data:/data/db
      - ./whishper_data/db_data/logs/:/var/log/mongodb/
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${DB_USER:-whishper}
      MONGO_INITDB_ROOT_PASSWORD: ${DB_PASS:-whishper}
    expose:
      - 27017
    command: ['--logpath', '/var/log/mongodb/mongod.log']
    healthcheck:
      test: mongosh --eval 'db.runCommand("ping").ok' --quiet
      interval: 2s
      timeout: 3s
      retries: 5

  translate-cpu:
    container_name: whisper-libretranslate
    profiles: ["cpu"]
    image: libretranslate/libretranslate:latest
    restart: unless-stopped
    volumes:
      - ./whishper_data/libretranslate/data:/home/libretranslate/.local/share
      - ./whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
    env_file:
      - .env
    tty: true
    environment:
      LT_DISABLE_WEB_UI: True
      #LT_UPDATE_MODELS: True
    expose:
      - 5000
    networks:
      default:
        aliases:
          - translate
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 2s
      timeout: 3s
      retries: 5

  translate-gpu:
    container_name: whisper-libretranslate
    image: libretranslate/libretranslate:latest-cuda
    profiles: ["gpu"]
    restart: unless-stopped
    volumes:
      - ./whishper_data/libretranslate/data:/home/libretranslate/.local/share
      - ./whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
    env_file:
      - .env
    user: root
    tty: true
    environment:
      LT_DISABLE_WEB_UI: True
      LT_LOAD_ONLY: ${LT_LOAD_ONLY:-en,fr,es}
      #LT_UPDATE_MODELS: True
    expose:
      - 5000
    networks:
      default:
        aliases:
          - translate
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: all
            capabilities: [gpu]
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 2s
      timeout: 3s
      retries: 5

  transcription-api-cpu:
    container_name: whisper-api
    profiles: ["cpu"]
    image: pluja/whishper-transcription-api:latest
    env_file:
      - .env
    volumes:
      - ./whishper_data/whisper_models:/app/models
      - ./whishper_data/uploads:/app/uploads
    environment:
      - WHISPER_MODELS_DIR=/app/models
      - UPLOAD_DIR=/app/uploads
    networks:
      default:
        aliases:
          - transcription-api
    restart: unless-stopped
    expose:
      - 8000

  transcription-api-gpu:
    container_name: whisper-api
    profiles: ["gpu"]
    image: pluja/whishper-transcription-api:latest-gpu
    env_file:
      - .env
    volumes:
      - ./whishper_data/whisper_models:/app/models
      - ./whishper_data/uploads:/app/uploads
    environment:
      WHISPER_MODELS_DIR: /app/models
      UPLOAD_DIR: /app/uploads
    restart: unless-stopped
    expose:
      - 8000
    networks:
      default:
        aliases:
          - transcription-api
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: all
            capabilities: [gpu]

  whishper-backend:
    container_name: whishper-backend
    image: pluja/whishper-backend:latest
    env_file:
      - .env
    volumes:
      - ./whishper_data/uploads:/app/uploads
    restart: unless-stopped
    depends_on:
      mongo:
        condition: service_healthy
    healthcheck:
      test: curl --fail http://localhost:8080/api/transcriptions || exit 1
      interval: 2s
      timeout: 2s
      retries: 5
    expose:
      - 8080

  whishper-frontend:
    container_name: whishper-web
    image: pluja/whishper-frontend:latest
    env_file:
      - .env
    restart: unless-stopped
    environment:
      PUBLIC_INTERNAL_API_HOST: "http://nginx:80"
      PUBLIC_TRANSLATION_API_HOST: ""
      PUBLIC_API_HOST: ${WHISHPER_HOST:-}
      PUBLIC_WHISHPER_PROFILE: ${COMPOSE_PROFILES:-false}
    expose:
      - 3000

  nginx:
    image: nginx:1
    restart: unless-stopped
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./whishper_data/uploads:/app/uploads
    depends_on:
      whishper-backend:
        condition: service_healthy
    ports:
      - 8082:80    

[Feature] Able to download new language pairs for translation

Description of the feature you are requesting:
Language pairs are only downloaded according to the LT_LOAD_ONLY setting when you first start Docker.

Describe the solution you'd like
Detect new languages in the env file after restarting the Docker containers?

Describe alternatives you've considered
The only way I found to update the languages was to do a complete re-install.

Can not start project on Synology NAS

When I run the project on my Synology DS920+ with DSM 7.2 and Docker version 20.10.23, build 876964a I get with error when starting to containers for the first time:

Error response from daemon: Bind mount failed: '/volume2/docker/whishper/whishper_data/whisper_models' does not exists

when I create the folder manually, the next error I get is

/volume2/docker/whishper/whishper_data/db_data/logs

and this goes on :D

[Feature] use mic to transcribe

Description of the feature you are requesting:
As a user, I'd like to be able to use the mic of my computer to transcribe vocal data and not a file

Describe the solution you'd like
added a buton to record via the mic

Add alternative MariaDB backend

As MongoDB sometimes gives a problem with AVX, it would be nice to have a MariaDB/MySQL alternative backend for these cases.

Windows Runtime Support with Docker.

Currently, Whishper is designed to run on Unix/Linux systems, which can make it difficult to use in Windows environments. I propose to enable support for running Whishper on Windows via Docker so that more users can enjoy this application on different platforms.

Proposed Changes:** ** Proposed Changes:** Proposed Changes:** Proposed Changes:** Proposed Changes:** Proposed Changes

  • Adapt the configuration scripts to work in Windows environments using Docker.
  • Provide clear instructions for Windows users on how to use Docker to run Whishper.

Expected Benefits:** Expected Benefits:** Expected Benefits:** Expected Benefits:** Expected Benefits:** Expected Benefits:** Expected Benefits

  • Increased accessibility of Whishper for Windows users.
  • Expanded user base and potential contributors.

Suggested Steps: 1.

  1. Adapt the installation and configuration scripts to be Windows compatible.
  2. Document the requirements and steps needed to run Whishper on Windows using Docker.
  3. Perform extensive testing in Windows environments to ensure proper functionality.

I hope this enhancement will make Whishper more accessible and useful to a wider audience, including Windows users.

[BUG] Can't get Docker containers to start on Linux due to health issue

I'm using Fedora 38 and can't get all Docker containers to start.

When using the script, provided in the Quick Install guide, docker compose up always fails due to whishper-mongo-1 being unhealthy.

Starting whishper...
[+] Running 6/6
 ✘ Container whishper-mongo-1        Error                                 0.2s 
 βœ” Container whisper-api             Healthy                               0.6s 
 βœ” Container whisper-libretranslate  Healthy                               0.2s 
 βœ” Container whishper-web            Started                              10.2s 
 βœ” Container whishper-backend        Recre...                              0.1s 
 βœ” Container whishper-nginx-1        Recre...                              0.0s 
dependency failed to start: container whishper-mongo-1 is unhealthy

When using the manual install method, provided in the documentation, docker compose up also always fails, but this time even worse unfortunately, due to whishper-mongo-1 as well as whisper-libretranslate.

[admin@fedora Whishper]$ sudo docker compose up -d
[+] Running 6/6
 ✘ Container whisper-libretranslate  Error                                10.3s 
 ✘ Container whishper-mongo-1        Error                                 0.1s 
 βœ” Container whisper-api             Healthy                               0.7s 
 βœ” Container whishper-web            Started                              10.2s 
 βœ” Container whishper-backend        Recre...                              0.1s 
 βœ” Container whishper-nginx-1        Recre...                              0.1s 
dependency failed to start: container whishper-mongo-1 is unhealthy

:(

[BUG] websocket: close 1006 (abnormal closure): unexpected EOF / Invalid response status 500

I get this error

# .env
# Libretranslate Configuration
LT_LOAD_ONLY=en,it

# Whisper Configuration
WHISPER_MODELS=medium
WHISHPER_HOST=localhost:8082
DB_USER=whishper
DB_PASS=whishper

whisper-api          | INFO:     127.0.0.1:56020 - "GET /healthcheck/ HTTP/1.1" 200 OK
	whisper-api          | INFO:     127.0.0.1:44106 - "GET /healthcheck/ HTTP/1.1" 200 OK
nginx_1              | 192.168.1.77 - - [11/Oct/2023:08:29:52 +0000] "GET /ws/transcriptions HTTP/1.1" 101 552 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
whishper-backend     | 08:29:52 ERR api/server.go:58 > Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whisper-api          | INFO:     172.26.0.6:37468 - "POST /transcribe?model_size=medium&task=transcribe&language=it&device=cpu HTTP/1.1" 307 Temporary Redirect
whisper-api          | Transcribing with model medium on device cpu...
whisper-api          | Downloading model medium...
whisper-api          | Model already cached...
whisper-api          | INFO:     172.26.0.6:37468 - "POST /transcribe/?model_size=medium&task=transcribe&language=it&device=cpu HTTP/1.1" 500 Internal Server Error
whishper-backend     | 08:29:53 DBG utils/utils.go:98 > Response from http://transcription-api:8000/transcribe?model_size=medium&task=transcribe&language=it&device=cpu: Internal Server Error
whishper-backend     | 08:29:53 DBG utils/utils.go:99 > Invalid response status 500:
whishper-backend     | 08:29:53 ERR monitor/monitor.go:78 > Error sending transcription request error="invalid status"
whishper-backend     | 08:29:53 ERR monitor/monitor.go:31 > Error transcribing error="invalid status"
whisper-api          | ERROR:    Exception in ASGI application
whisper-api          | Traceback (most recent call last):
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py", line 408, in run_asgi
whisper-api          |     result = await app(  # type: ignore[func-returns-value]
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__
whisper-api          |     return await self.app(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/fastapi/applications.py", line 289, in __call__
whisper-api          |     await super().__call__(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/starlette/applications.py", line 122, in __call__
whisper-api          |     await self.middleware_stack(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/starlette/middleware/errors.py", line 184, in __call__
whisper-api          |     raise exc
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/starlette/middleware/errors.py", line 162, in __call__
whisper-api          |     await self.app(scope, receive, _send)
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
whisper-api          |     raise exc
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
whisper-api          |     await self.app(scope, receive, sender)
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__
whisper-api          |     raise e
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__
whisper-api          |     await self.app(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 718, in __call__
whisper-api          |     await route.handle(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 276, in handle
whisper-api          |     await self.app(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 66, in app
whisper-api          |     response = await func(request)
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/fastapi/routing.py", line 273, in app
whisper-api          |     raw_response = await run_endpoint_function(
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/fastapi/routing.py", line 190, in run_endpoint_function
whisper-api          |     return await dependant.call(**values)
whisper-api          |   File "/app/main.py", line 23, in transcribe_endpoint
whisper-api          |     return await transcribe_file(file, model_size.value, language.value, device.value)
whisper-api          |   File "/app/transcribe.py", line 41, in transcribe_file
whisper-api          |     return await transcribe_audio(audio, model_size, language, device)
whisper-api          |   File "/app/transcribe.py", line 54, in transcribe_audio
whisper-api          |     model.load()
whisper-api          |   File "/app/backends/fasterwhisper.py", line 29, in load
whisper-api          |     self.model = WhisperModel(
whisper-api          |   File "/usr/local/lib/python3.10/site-packages/faster_whisper/transcribe.py", line 128, in __init__
whisper-api          |     self.model = ctranslate2.models.Whisper(
whisper-api          | RuntimeError: Unable to open file 'model.bin' in model '/app/models/faster-whisper-medium'

but it seems working downloading model.bin from https://huggingface.co/guillaumekln/faster-whisper-medium/tree/main and putting it manualli in the directory

nginx.conf is created as a directory

> docker-compose up
Starting whisper-api            ... done
Starting whishper_mongo_1       ... done
Starting whisper-libretranslate ... done

Starting whishper-backend       ... done
Starting whishper-web           ... done
Starting whishper_nginx_1       ... error

ERROR: for whishper_nginx_1  Cannot start service nginx: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/home/user/.local/share/whishper/nginx.conf" to rootfs at "/etc/nginx/nginx.conf": mount /home/user/.local/share/whishper/nginx.conf:/etc/nginx/nginx.conf (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

ERROR: for nginx  Cannot start service nginx: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/home/user/.local/share/whishper/nginx.conf" to rootfs at "/etc/nginx/nginx.conf": mount /home/user/.local/share/whishper/nginx.conf:/etc/nginx/nginx.conf (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

To fix this I rmdir ./nginx.conf and copied the nginx.conf from this repo into the folder

[BUG] Unable to transcribe on latest docker

Description

I just switched from your old web-whisper project to whishper. Docker compose setup worked just fine, but trying to transcribe shows an error on command line.

To Reproduce

Set up the containers following the official installation guide. Select CPU and models tiny, small, medium, large-v2. Try to transcribe a file.

Expected behavior

It should just... work?

Environment

  • OS: Linux
  • Browser: Chrome
  • Version: latest
  • Hosting: Docker

Logs and Configuration

Docker Compose Logs

whishper-translate-cpu-1  | Updating language models
whishper-translate-cpu-1  | Found 86 models
whishper-translate-cpu-1  | Keep 6 models
whishper-translate-cpu-1  | Downloading English β†’ French (1.0) ...
whishper-translate-cpu-1  | Downloading English β†’ German (1.0) ...
whishper-translate-cpu-1  | Downloading English β†’ Spanish (1.0) ...
whishper-translate-cpu-1  | Downloading French β†’ English (1.0) ...
whishper-translate-cpu-1  | Downloading German β†’ English (1.0) ...
whishper-translate-cpu-1  | Downloading Spanish β†’ English (1.0) ...
whishper-translate-cpu-1  | Loaded support for 4 languages (6 models total)!
whishper-translate-cpu-1  | Running on http://0.0.0.0:5000
whishper-nginx-1          | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
whishper-nginx-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
whishper-nginx-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
whishper-nginx-1          | /docker-entrypoint.sh: Configuration complete; ready for start up
whishper-nginx-1          | 192.168.144.4 - - [17/Nov/2023:08:16:12 +0000] "GET /api/transcriptions HTTP/1.1" 200 4 "-" "undici"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET / HTTP/1.1" 200 2140 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/assets/0.ece27e24.css HTTP/1.1" 200 70105 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/chunks/scheduler.909669b5.js HTTP/1.1" 200 6874 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/nodes/0.e42d6e11.js HTTP/1.1" 200 924 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/entry/start.416f8e94.js HTTP/1.1" 200 24888 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/chunks/index.9130bb6b.js HTTP/1.1" 200 2306 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/entry/app.c911f74b.js HTTP/1.1" 200 6361 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/chunks/singletons.18e46cb4.js HTTP/1.1" 200 2458 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/nodes/2.a063f4a0.js HTTP/1.1" 200 41798 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/assets/Toaster.3a6d0da3.css HTTP/1.1" 200 4421 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/chunks/public.6cecea02.js HTTP/1.1" 200 245 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/chunks/index.a5fb0175.js HTTP/1.1" 200 928 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /logo.svg HTTP/1.1" 200 3128 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/chunks/Toaster.f2e0788d.js HTTP/1.1" 200 21741 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /_app/immutable/nodes/1.ab8c6285.js HTTP/1.1" 200 1027 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:12 +0000] "GET /api/transcriptions HTTP/1.1" 200 4 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:13 +0000] "GET /favicon.webp HTTP/1.1" 200 4074 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1          | 172.18.0.2 - - [17/Nov/2023:08:16:13 +0000] "GET /languages HTTP/1.1" 200 252 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-whishper-backend-1  | οΏ½[90m8:15AMοΏ½[0m οΏ½[32mINFοΏ½[0m Starting monitor!
whishper-whishper-backend-1  | 
whishper-whishper-backend-1  |  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” 
whishper-transcription-api-cpu-1  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
whishper-transcription-api-cpu-1  |   File "/app/backends/fasterwhisper.py", line 16, in __init__
whishper-transcription-api-cpu-1  |     self.__post_init__()
whishper-transcription-api-cpu-1  |   File "/app/backends/backend.py", line 40, in __post_init__
whishper-transcription-api-cpu-1  |     raise ValueError(f"model must be one of {self.supported_model_sizes()}")
whishper-transcription-api-cpu-1  | ValueError: model must be one of ['tiny', 'tiny.en', 'small', 'small.en', 'base', 'base.en', 'medium', 'medium.en', 'large-v2']
whishper-transcription-api-cpu-1  | Downloading model tiny...
whishper-transcription-api-cpu-1  | Model already cached...
whishper-whishper-backend-1       |  β”‚                   Fiber v2.50.0                   β”‚ 
whishper-transcription-api-cpu-1  | Traceback (most recent call last):
whishper-transcription-api-cpu-1  |   File "/app/main.py", line 44, in <module>
whishper-transcription-api-cpu-1  |     m = FasterWhisperBackend(model_size=model)
whishper-whishper-backend-1       |  β”‚               http://127.0.0.1:8080               β”‚ 
whishper-transcription-api-cpu-1  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
whishper-transcription-api-cpu-1  |   File "/app/backends/fasterwhisper.py", line 16, in __init__
whishper-transcription-api-cpu-1  |     self.__post_init__()
whishper-transcription-api-cpu-1  |   File "/app/backends/backend.py", line 40, in __post_init__
whishper-transcription-api-cpu-1  |     raise ValueError(f"model must be one of {self.supported_model_sizes()}")
whishper-transcription-api-cpu-1  | ValueError: model must be one of ['tiny', 'tiny.en', 'small', 'small.en', 'base', 'base.en', 'medium', 'medium.en', 'large-v2']
whishper-transcription-api-cpu-1  | Downloading model tiny...
whishper-transcription-api-cpu-1  | Model already cached...
whishper-transcription-api-cpu-1  | Traceback (most recent call last):
whishper-transcription-api-cpu-1  |   File "/app/main.py", line 44, in <module>
whishper-transcription-api-cpu-1  |     m = FasterWhisperBackend(model_size=model)
whishper-whishper-backend-1       |  β”‚       (bound on host 0.0.0.0 and port 8080)       β”‚ 
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:17:13 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-whishper-backend-1       |  β”‚                                                   β”‚ 
whishper-whishper-backend-1       |  β”‚ Handlers ............ 13  Processes ........... 1 β”‚ 
whishper-whishper-backend-1       |  β”‚ Prefork ....... Disabled  PID ................. 1 β”‚ 
whishper-whishper-backend-1       |  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ 
whishper-whishper-backend-1       | 
whishper-whishper-backend-1       | οΏ½[90m8:17AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:17AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error sending transcription request οΏ½[36merror=οΏ½[0mοΏ½[31m"Post \"http://transcription-api:8000/transcribe?model_size=large-v2&task=transcribe&language=auto&device=cpu\": dial tcp: lookup transcription-api on 127.0.0.11:53: no such host"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:17AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error transcribing οΏ½[36merror=οΏ½[0mοΏ½[31m"Post \"http://transcription-api:8000/transcribe?model_size=large-v2&task=transcribe&language=auto&device=cpu\": dial tcp: lookup transcription-api on 127.0.0.11:53: no such host"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:18AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error getting file field from the form οΏ½[36merror=οΏ½[0mοΏ½[31m"there is no uploaded file associated with the given key"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:18AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error handling POST /api/transcriptions οΏ½[36merror=οΏ½[0mοΏ½[31m"Bad request"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:18AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:19AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:20AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:21AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:22AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:23AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:24AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:25AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error sending transcription request οΏ½[36merror=οΏ½[0mοΏ½[31m"Post \"http://transcription-api:8000/transcribe?model_size=large-v2&task=transcribe&language=auto&device=cpu\": dial tcp: lookup transcription-api on 127.0.0.11:53: no such host"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:25AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error transcribing οΏ½[36merror=οΏ½[0mοΏ½[31m"Post \"http://transcription-api:8000/transcribe?model_size=large-v2&task=transcribe&language=auto&device=cpu\": dial tcp: lookup transcription-api on 127.0.0.11:53: no such host"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:26AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:27AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:28AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:29AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:30AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:31AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:32AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:33AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:34AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-whishper-backend-1       | οΏ½[90m8:35AMοΏ½[0m οΏ½[1mοΏ½[31mERRοΏ½[0mοΏ½[0m Error reading message οΏ½[36merror=οΏ½[0mοΏ½[31m"websocket: close 1006 (abnormal closure): unexpected EOF"οΏ½[0m
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:17:16 +0000] "POST /api/transcriptions HTTP/1.1" 200 0 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:18:06 +0000] "POST /api/transcriptions HTTP/1.1" 400 11 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.513+00:00"},"s":"I",  "c":"CONTROL",  "id":4784903, "ctx":"SignalHandler","msg":"Shutting down the LogicalSessionCache"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.513+00:00"},"s":"I",  "c":"NETWORK",  "id":20562,   "ctx":"SignalHandler","msg":"Shutdown: going to close listening sockets"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.513+00:00"},"s":"I",  "c":"NETWORK",  "id":23017,   "ctx":"listener","msg":"removing socket file","attr":{"path":"/tmp/mongodb-27017.sock"}}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.513+00:00"},"s":"I",  "c":"NETWORK",  "id":4784905, "ctx":"SignalHandler","msg":"Shutting down the global connection pool"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.513+00:00"},"s":"I",  "c":"CONTROL",  "id":4784906, "ctx":"SignalHandler","msg":"Shutting down the FlowControlTicketholder"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.513+00:00"},"s":"I",  "c":"-",        "id":20520,   "ctx":"SignalHandler","msg":"Stopping further Flow Control ticket acquisitions."}
whishper-transcription-api-cpu-1  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
whishper-transcription-api-cpu-1  |   File "/app/backends/fasterwhisper.py", line 16, in __init__
whishper-transcription-api-cpu-1  |     self.__post_init__()
whishper-transcription-api-cpu-1  |   File "/app/backends/backend.py", line 40, in __post_init__
whishper-transcription-api-cpu-1  |     raise ValueError(f"model must be one of {self.supported_model_sizes()}")
whishper-whishper-frontend-1      | Listening on 0.0.0.0:3000
whishper-transcription-api-cpu-1  | ValueError: model must be one of ['tiny', 'tiny.en', 'small', 'small.en', 'base', 'base.en', 'medium', 'medium.en', 'large-v2']
whishper-transcription-api-cpu-1  | Downloading model tiny...
whishper-transcription-api-cpu-1  | Model already cached...
whishper-transcription-api-cpu-1  | Traceback (most recent call last):
whishper-transcription-api-cpu-1  |   File "/app/main.py", line 44, in <module>
whishper-transcription-api-cpu-1  |     m = FasterWhisperBackend(model_size=model)
whishper-transcription-api-cpu-1  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
whishper-transcription-api-cpu-1  |   File "/app/backends/fasterwhisper.py", line 16, in __init__
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:18:16 +0000] "GET /ws/transcriptions HTTP/1.1" 101 928 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:19:17 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:20:18 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:21:19 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:22:21 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:23:22 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:24:24 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 192.168.144.4 - - [17/Nov/2023:08:24:51 +0000] "GET /api/transcriptions HTTP/1.1" 200 308 "-" "undici"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:24:51 +0000] "GET / HTTP/1.1" 200 2554 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-transcription-api-cpu-1  |     self.__post_init__()
whishper-transcription-api-cpu-1  |   File "/app/backends/backend.py", line 40, in __post_init__
whishper-transcription-api-cpu-1  |     raise ValueError(f"model must be one of {self.supported_model_sizes()}")
whishper-transcription-api-cpu-1  | ValueError: model must be one of ['tiny', 'tiny.en', 'small', 'small.en', 'base', 'base.en', 'medium', 'medium.en', 'large-v2']
whishper-transcription-api-cpu-1  | Downloading model tiny...
whishper-transcription-api-cpu-1  | Model already cached...
whishper-transcription-api-cpu-1  | Traceback (most recent call last):
whishper-transcription-api-cpu-1  |   File "/app/main.py", line 44, in <module>
whishper-transcription-api-cpu-1  |     m = FasterWhisperBackend(model_size=model)
whishper-transcription-api-cpu-1  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
whishper-transcription-api-cpu-1  |   File "/app/backends/fasterwhisper.py", line 16, in __init__
whishper-transcription-api-cpu-1  |     self.__post_init__()
whishper-transcription-api-cpu-1  |   File "/app/backends/backend.py", line 40, in __post_init__
whishper-transcription-api-cpu-1  |     raise ValueError(f"model must be one of {self.supported_model_sizes()}")
whishper-transcription-api-cpu-1  | ValueError: model must be one of ['tiny', 'tiny.en', 'small', 'small.en', 'base', 'base.en', 'medium', 'medium.en', 'large-v2']
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:24:51 +0000] "GET /ws/transcriptions HTTP/1.1" 101 4 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:24:51 +0000] "GET /api/transcriptions HTTP/1.1" 200 308 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:24:51 +0000] "GET /languages HTTP/1.1" 200 252 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:24:57 +0000] "DELETE /api/transcriptions/6557218cdb26194f33078636 HTTP/1.1" 200 0 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:25:21 +0000] "POST /api/transcriptions HTTP/1.1" 200 0 "https://whisper.toni-barth.online/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:26:21 +0000] "GET /ws/transcriptions HTTP/1.1" 101 928 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:27:22 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:28:23 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:29:24 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:30:26 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:31:28 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:32:30 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:33:32 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:34:34 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-nginx-1                  | 172.18.0.2 - - [17/Nov/2023:08:35:36 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.513+00:00"},"s":"I",  "c":"CONTROL",  "id":4784908, "ctx":"SignalHandler","msg":"Shutting down the PeriodicThreadToAbortExpiredTransactions"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"REPL",     "id":4784909, "ctx":"SignalHandler","msg":"Shutting down the ReplicationCoordinator"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"SHARDING", "id":4784910, "ctx":"SignalHandler","msg":"Shutting down the ShardingInitializationMongoD"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"REPL",     "id":4784911, "ctx":"SignalHandler","msg":"Enqueuing the ReplicationStateTransitionLock for shutdown"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"-",        "id":4784912, "ctx":"SignalHandler","msg":"Killing all operations for shutdown"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"-",        "id":4695300, "ctx":"SignalHandler","msg":"Interrupted all currently running operations","attr":{"opsKilled":3}}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"TENANT_M", "id":5093807, "ctx":"SignalHandler","msg":"Shutting down all TenantMigrationAccessBlockers on global shutdown"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"ASIO",     "id":22582,   "ctx":"TenantMigrationBlockerNet","msg":"Killing all outstanding egress activity."}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"ASIO",     "id":6529201, "ctx":"SignalHandler","msg":"Network interface redundant shutdown","attr":{"state":"Stopped"}}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"ASIO",     "id":22582,   "ctx":"SignalHandler","msg":"Killing all outstanding egress activity."}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"COMMAND",  "id":4784913, "ctx":"SignalHandler","msg":"Shutting down all open transactions"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"REPL",     "id":4784914, "ctx":"SignalHandler","msg":"Acquiring the ReplicationStateTransitionLock for shutdown"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"INDEX",    "id":4784915, "ctx":"SignalHandler","msg":"Shutting down the IndexBuildsCoordinator"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"NETWORK",  "id":4784918, "ctx":"SignalHandler","msg":"Shutting down the ReplicaSetMonitor"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"SHARDING", "id":4784921, "ctx":"SignalHandler","msg":"Shutting down the MigrationUtilExecutor"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"ASIO",     "id":22582,   "ctx":"MigrationUtil-TaskExecutor","msg":"Killing all outstanding egress activity."}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"COMMAND",  "id":4784923, "ctx":"SignalHandler","msg":"Shutting down the ServiceEntryPoint"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"CONTROL",  "id":4784927, "ctx":"SignalHandler","msg":"Shutting down the HealthLog"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"CONTROL",  "id":4784928, "ctx":"SignalHandler","msg":"Shutting down the TTL monitor"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"INDEX",    "id":3684100, "ctx":"SignalHandler","msg":"Shutting down TTL collection monitor thread"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.514+00:00"},"s":"I",  "c":"INDEX",    "id":3684101, "ctx":"SignalHandler","msg":"Finished shutting down TTL collection monitor thread"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.515+00:00"},"s":"I",  "c":"CONTROL",  "id":6278511, "ctx":"SignalHandler","msg":"Shutting down the Change Stream Expired Pre-images Remover"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.515+00:00"},"s":"I",  "c":"CONTROL",  "id":4784929, "ctx":"SignalHandler","msg":"Acquiring the global lock for shutdown"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.515+00:00"},"s":"I",  "c":"CONTROL",  "id":4784930, "ctx":"SignalHandler","msg":"Shutting down the storage engine"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.515+00:00"},"s":"I",  "c":"STORAGE",  "id":22320,   "ctx":"SignalHandler","msg":"Shutting down journal flusher thread"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.515+00:00"},"s":"I",  "c":"STORAGE",  "id":22321,   "ctx":"SignalHandler","msg":"Finished shutting down journal flusher thread"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.515+00:00"},"s":"I",  "c":"STORAGE",  "id":22322,   "ctx":"SignalHandler","msg":"Shutting down checkpoint thread"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.516+00:00"},"s":"I",  "c":"STORAGE",  "id":22323,   "ctx":"SignalHandler","msg":"Finished shutting down checkpoint thread"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.516+00:00"},"s":"I",  "c":"STORAGE",  "id":22261,   "ctx":"SignalHandler","msg":"Timestamp monitor shutting down"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.516+00:00"},"s":"I",  "c":"STORAGE",  "id":20282,   "ctx":"SignalHandler","msg":"Deregistering all the collections"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.516+00:00"},"s":"I",  "c":"STORAGE",  "id":22317,   "ctx":"SignalHandler","msg":"WiredTigerKVEngine shutting down"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.516+00:00"},"s":"I",  "c":"STORAGE",  "id":22318,   "ctx":"SignalHandler","msg":"Shutting down session sweeper thread"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.516+00:00"},"s":"I",  "c":"STORAGE",  "id":22319,   "ctx":"SignalHandler","msg":"Finished shutting down session sweeper thread"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.516+00:00"},"s":"I",  "c":"STORAGE",  "id":4795902, "ctx":"SignalHandler","msg":"Closing WiredTiger","attr":{"closeConfig":"leak_memory=true,use_timestamp=false,"}}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.537+00:00"},"s":"I",  "c":"STORAGE",  "id":4795901, "ctx":"SignalHandler","msg":"WiredTiger closed","attr":{"durationMillis":21}}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.537+00:00"},"s":"I",  "c":"STORAGE",  "id":22279,   "ctx":"SignalHandler","msg":"shutdown: removing fs lock..."}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.537+00:00"},"s":"I",  "c":"-",        "id":4784931, "ctx":"SignalHandler","msg":"Dropping the scope cache for shutdown"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.537+00:00"},"s":"I",  "c":"FTDC",     "id":20626,   "ctx":"SignalHandler","msg":"Shutting down full-time diagnostic data capture"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.541+00:00"},"s":"I",  "c":"NETWORK",  "id":22944,   "ctx":"conn17","msg":"Connection ended","attr":{"remote":"127.0.0.1:34998","uuid":{"uuid":{"$uuid":"b02b5b98-ebf9-4606-a92c-cdc53ab9aeac"}},"connectionId":17,"connectionCount":3}}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.541+00:00"},"s":"I",  "c":"CONTROL",  "id":20565,   "ctx":"SignalHandler","msg":"Now exiting"}
whishper-mongo-1                  | {"t":{"$date":"2023-11-17T08:15:35.542+00:00"},"s":"I",  "c":"CONTROL",  "id":23138,   "ctx":"SignalHandler","msg":"Shutting down","attr":{"exitCode":0}}
whishper-mongo-1                  | 
whishper-mongo-1                  | MongoDB init process complete; ready for start up.
whishper-mongo-1                  | 

Docker Compose File

version: "3.9"

services:
  mongo:
    image: mongo
    env_file:
      - .env
    restart: unless-stopped
    volumes:
      - ./whishper_data/db_data:/data/db
      - ./whishper_data/db_data/logs/:/var/log/mongodb/
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${DB_USER:-whishper}
      MONGO_INITDB_ROOT_PASSWORD: ${DB_PASS:-whishper}
    command: ['--logpath', '/var/log/mongodb/mongod.log']
    healthcheck:
      test: mongosh --eval 'db.runCommand("ping").ok' --quiet
      interval: 2s
      timeout: 3s
      retries: 5
    networks:
      - whishper

  translate-cpu:
    profiles: ["cpu"]
    image: libretranslate/libretranslate:latest
    restart: unless-stopped
    volumes:
      - ./whishper_data/libretranslate/data:/home/libretranslate/.local/share
      - ./whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
    env_file:
      - .env
    tty: true
    environment:
      LT_DISABLE_WEB_UI: True
      #LT_UPDATE_MODELS: True
    networks:
      whishper:
        aliases:
          - translate
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 2s
      timeout: 3s
      retries: 5

  translate-gpu:
    image: libretranslate/libretranslate:latest-cuda
    profiles: ["gpu"]
    restart: unless-stopped
    volumes:
      - ./whishper_data/libretranslate/data:/home/libretranslate/.local/share
      - ./whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
    env_file:
      - .env
    user: root
    tty: true
    environment:
      LT_DISABLE_WEB_UI: True
      LT_LOAD_ONLY: ${LT_LOAD_ONLY:-en,fr,es}
      #LT_UPDATE_MODELS: True
    networks:
      whishper:
        aliases:
          - translate
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: all
            capabilities: [gpu]
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 2s
      timeout: 3s
      retries: 5

  transcription-api-cpu:
    profiles: ["cpu"]
    image: pluja/whishper-transcription-api:latest
    env_file:
      - .env
    volumes:
      - ./whishper_data/whisper_models:/app/models
      - ./whishper_data/uploads:/app/uploads
    environment:
      - WHISPER_MODELS_DIR=/app/models
      - UPLOAD_DIR=/app/uploads
    networks:
      whishper:
        aliases:
          - transcription-api
    restart: unless-stopped

  transcription-api-gpu:
    profiles: ["gpu"]
    image: pluja/whishper-transcription-api:latest-gpu
    env_file:
      - .env
    volumes:
      - ./whishper_data/whisper_models:/app/models
      - ./whishper_data/uploads:/app/uploads
    environment:
      WHISPER_MODELS_DIR: /app/models
      UPLOAD_DIR: /app/uploads
    restart: unless-stopped
    networks:
      whishper:
        aliases:
          - transcription-api
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: all
            capabilities: [gpu]

  whishper-backend:
    image: pluja/whishper-backend:latest
    env_file:
      - .env
    volumes:
      - ./whishper_data/uploads:/app/uploads
    restart: unless-stopped
    depends_on:
      mongo:
        condition: service_healthy
    healthcheck:
      test: curl --fail http://localhost:8080/api/transcriptions || exit 1
      interval: 2s
      timeout: 2s
      retries: 5
    networks:
      - whishper

  whishper-frontend:
    image: pluja/whishper-frontend:latest
    env_file:
      - .env
    restart: unless-stopped
    environment:
      PUBLIC_INTERNAL_API_HOST: "http://nginx:80"
      PUBLIC_TRANSLATION_API_HOST: ""
      PUBLIC_API_HOST: ${WHISHPER_HOST:-}
      PUBLIC_WHISHPER_PROFILE: ${COMPOSE_PROFILES:-false}
    networks:
      - whishper

  nginx:
    image: nginx:1
    restart: unless-stopped
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./whishper_data/uploads:/app/uploads
    depends_on:
      whishper-backend:
        condition: service_healthy
    labels:
        - "traefik.enable=true"
        - "traefik.http.routers.whishper.rule=Host(`whisper.toni-barth.online`)"
        - "traefik.http.routers.whishper.entrypoints=websecure"
        - "traefik.http.routers.whishper.tls.certresolver=myresolver"
        - "traefik.http.services.whishper.loadbalancer.server.port=80"
        - "traefik.http.routers.whishper.tls=true"
    networks:
      - whishper
      - traefik

networks:
  whishper: {}
  traefik:
    external: true

Previously completed transcriptions disappear when refreshing Whishper homepage.

When i transcribe a file and refresh the home page it disappears for some unknown reason and i can no longer see,edit or download it.

Whishper-Web Logs

2023-08-30T22:00:46.987141000Z Listening on 0.0.0.0:3000
2023-08-30T22:01:36.731874000Z /api/transcriptions
2023-08-30T22:01:36.850155000Z TypeError: fetch failed
2023-08-30T22:01:36.850330000Z     at fetch (file:///app/shims.js:20346:13)
2023-08-30T22:01:36.850404000Z     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-08-30T22:01:36.850484000Z     at async resolve (file:///app/server/index.js:3998:14)
2023-08-30T22:01:36.850573000Z     at async respond (file:///app/server/index.js:3823:22)
2023-08-30T22:01:36.850651000Z     at async fetch (file:///app/server/index.js:3633:26)
2023-08-30T22:01:36.850714000Z     at async Object.fetch (file:///app/server/index.js:3573:12)
2023-08-30T22:01:36.850777000Z     at async file:///app/server/index.js:1996:20
2023-08-30T22:01:36.850840000Z     at async load (file:///app/server/chunks/0-9ff9db82.js:9:20)
2023-08-30T22:01:36.850903000Z     at async load_data (file:///app/server/index.js:1978:18)
2023-08-30T22:01:36.850955000Z     at async file:///app/server/index.js:3307:18 {
2023-08-30T22:01:36.851022000Z   cause: [Error: 989BD3810F7F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:
2023-08-30T22:01:36.851097000Z   ] {
2023-08-30T22:01:36.851159000Z     library: 'SSL routines',
2023-08-30T22:01:36.851225000Z     reason: 'wrong version number',
2023-08-30T22:01:36.851286000Z     code: 'ERR_SSL_WRONG_VERSION_NUMBER'
2023-08-30T22:01:36.851360000Z   }
2023-08-30T22:01:36.851429000Z 

Whishper-backend Logs

2023-08-30T22:00:46.836496000Z 22:00:46 DBG main.go:53 > DEV MODE IS ON
2023-08-30T22:00:46.836672000Z 22:00:46 DBG main.go:54 > ListenAddr: :8080
2023-08-30T22:00:46.836743000Z 22:00:46 DBG main.go:55 > UploadDir: /app/uploads
2023-08-30T22:00:46.836792000Z 22:00:46 DBG main.go:56 > AsrEndpoint: transcription-api:8000
2023-08-30T22:00:46.836850000Z 22:00:46 DBG main.go:57 > TranslationEndpoint: translate:5000
2023-08-30T22:00:46.836920000Z 22:00:46 DBG main.go:58 > DbHost: mongo:27017
2023-08-30T22:00:46.837012000Z 
2023-08-30T22:00:46.837209000Z  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” 
2023-08-30T22:00:46.837352000Z  β”‚                   Fiber v2.48.0                   β”‚ 
2023-08-30T22:00:46.837514000Z  β”‚               http://127.0.0.1:8080               β”‚ 
2023-08-30T22:00:46.837675000Z  β”‚       (bound on host 0.0.0.0 and port 8080)       β”‚ 
2023-08-30T22:00:46.837828000Z  β”‚                                                   β”‚ 
2023-08-30T22:00:46.837984000Z  β”‚ Handlers ............ 13  Processes ........... 1 β”‚ 
2023-08-30T22:00:46.838141000Z  β”‚ Prefork ....... Disabled  PID ................. 1 β”‚ 
2023-08-30T22:00:46.838328000Z  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ 
2023-08-30T22:00:46.838460000Z 
2023-08-30T22:00:46.838550000Z 22:00:46 INF monitor/monitor.go:18 > Starting monitor!
2023-08-30T22:00:46.866392000Z 22:00:46 DBG monitor/monitor.go:25 > Pending transcriptions: 0
2023-08-30T22:01:42.943467000Z 22:01:42 DBG api/server.go:122 > POST /api/transcriptions
2023-08-30T22:01:42.943865000Z 22:01:42 DBG api/handlers.go:56 > POST /api/transcriptions
2023-08-30T22:01:42.943956000Z 22:01:42 DBG api/handlers.go:93 > Transcription: {ID:ObjectID("000000000000000000000000") Status:0 Language:en ModelSize:small Task:transcribe Device:cpu FileName: SourceUrl:https://www.youtube.com/watch?v=WOb5GRQ0VFE Result:{Language: Duration:0 Segments:[] Text:} Translations:[]}
2023-08-30T22:01:42.946713000Z 22:01:42 DBG monitor/monitor.go:25 > Pending transcriptions: 1
2023-08-30T22:01:42.946827000Z 22:01:42 DBG monitor/monitor.go:27 > Taking pending transcription ObjectID("64efbc463a2bf39da6533ad4")
2023-08-30T22:01:42.946893000Z 22:01:42 DBG monitor/monitor.go:49 > Updating transcription &{ObjectID("64efbc463a2bf39da6533ad4") 1 en small transcribe cpu  https://www.youtube.com/watch?v=WOb5GRQ0VFE { 0 [] } []}
2023-08-30T22:02:52.120757000Z 22:02:52 ERR api/server.go:58 > Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
2023-08-30T22:04:39.799407000Z 22:04:39 ERR api/server.go:58 > Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"

Thanks!

macOS LibreTranslate permissions problem

If I use the command
chown 1032:1032 whishper_data/libretranslate

The containers do not start. If I leave the folder creation with default rights and permissions, they start.

Latest macOS and latest Docker version

[BUG] ERR_SSL_WRONG_VERSION_NUMBER

Description

It halts somewhere during translation

To Reproduce

Steps to reproduce the behavior:

  1. upload video file
  2. crash error 500 - id-65400c146cd3244731584fa8 Failed: Could not transcribe.

Expected behavior

See the transcription

Environment

  • OS: Linux
  • Browser: Chrome
  • Version: 119
  • Hosting: Docker

Logs and Configuration

Docker Compose Logs

Run the following command in the project folder, force the error, and paste the logs below: docker compose logs -f --tail 50

With the latest update it seems some API requires HTTPS SSL

ux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.32.1 - - [30/Oct/2023:17:54:49 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-web         | Listening on 0.0.0.0:3000
whishper-web         | TypeError: fetch failed
whishper-web         |     at fetch (file:///app/shims.js:20346:13)
whishper-web         |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
whishper-web         |     at async resolve (file:///app/server/index.js:3661:14)
whishper-web         |     at async respond (file:///app/server/index.js:3479:22)
whishper-web         |     at async fetch (file:///app/server/index.js:3289:26)
whishper-web         |     at async Object.fetch (file:///app/server/index.js:3229:12)
whishper-web         |     at async file:///app/server/index.js:1341:20
whishper-web         |     at async load (file:///app/server/chunks/0-3c61a3ef.js:8:20)
whishper-web         |     at async load_data (file:///app/server/index.js:1323:18)
whishper-web         |     at async file:///app/server/index.js:2660:18 {
whishper-web         |   cause: [Error: B8894C42D67F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:
whishper-web         |   ] {
whishper-web         |     library: 'SSL routines',
whishper-web         |     reason: 'wrong version number',
whishper-web         |     code: 'ERR_SSL_WRONG_VERSION_NUMBER'
whishper-web         |   }
whishper-web         | }
whishper-web         | TypeError: fetch failed
whishper-web         |     at fetch (file:///app/shims.js:20346:13)
whishper-web         |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
whishper-web         |     at async resolve (file:///app/server/index.js:3636:16)
whishper-web         |     at async respond (file:///app/server/index.js:3479:22)
whishper-web         |     at async fetch (file:///app/server/index.js:3289:26)
whishper-web         |     at async Object.fetch (file:///app/server/index.js:3229:12)
whishper-web         |     at async file:///app/server/index.js:1341:20
whishper-web         |     at async load (file:///app/server/chunks/0-3c61a3ef.js:8:20)
whishper-web         |     at async load_data (file:///app/server/index.js:1323:18)
whishper-web         |     at async respond_with_error (file:///app/server/index.js:2291:20) {
whishper-web         |   cause: [Error: B8894C42D67F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:
whishper-web         |   ] {
whishper-web         |     library: 'SSL routines',
whishper-web         |     reason: 'wrong version number',
whishper-web         |     code: 'ERR_SSL_WRONG_VERSION_NUMBER'
whishper-web         |   }
whishper-web         | }
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 289, in __call__
whisper-api          |     await super().__call__(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__
whisper-api          |     await self.middleware_stack(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__
whisper-api          |     raise exc
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__
whisper-api          |     await self.app(scope, receive, _send)
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
whisper-api          |     raise exc
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
whisper-api          |     await self.app(scope, receive, sender)
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__
whisper-api          |     raise e
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__
whisper-api          |     await self.app(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__
whisper-api          |     await route.handle(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
whisper-api          |     await self.app(scope, receive, send)
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app
whisper-api          |     response = await func(request)
whisper-api          |                ^^^^^^^^^^^^^^^^^^^
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 273, in app
whisper-api          |     raw_response = await run_endpoint_function(
whisper-api          |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 190, in run_endpoint_function
whisper-api          |     return await dependant.call(**values)
whisper-api          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
whisper-api          |   File "/app/main.py", line 26, in transcribe_endpoint
whisper-api          |     return await transcribe_file(file, model_size.value, language.value, device)
whisper-api          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
whisper-api          |   File "/app/transcribe.py", line 41, in transcribe_file
whisper-api          |     return await transcribe_audio(audio, model_size, language, device)
whisper-api          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
whisper-api          |   File "/app/transcribe.py", line 54, in transcribe_audio
whisper-api          |     model.load()
whisper-api          |   File "/app/backends/fasterwhisper.py", line 29, in load
whisper-api          |     self.model = WhisperModel(
whisper-api          |                  ^^^^^^^^^^^^^
whisper-api          |   File "/usr/local/lib/python3.11/site-packages/faster_whisper/transcribe.py", line 128, in __init__
whisper-api          |     self.model = ctranslate2.models.Whisper(
whisper-api          |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
whisper-api          | RuntimeError: Unable to open file 'model.bin' in model '/app/models/faster-whisper-medium'
whisper-api          | INFO:     127.0.0.1:43256 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api          | INFO:     127.0.0.1:37584 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api          | INFO:     127.0.0.1:53780 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api          | INFO:     127.0.0.1:41508 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api          | INFO:     127.0.0.1:40696 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api          | INFO:     127.0.0.1:39932 - "GET /healthcheck/ HTTP/1.1" 200 OK
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:03:59 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:04 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:09 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:14 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:19 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:24 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:29 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:32 +0000] "GET /ws/transcriptions HTTP/1.1" 101 835 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:34 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:39 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:04:57 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:05:34 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:05:57 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:06:36 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:06:57 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
whishper-backend     | 
whishper-backend     |  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” 
whishper-backend     |  β”‚                   Fiber v2.50.0                   β”‚ 
whishper-backend     |  β”‚               http://127.0.0.1:8080               β”‚ 
whishper-backend     |  β”‚       (bound on host 0.0.0.0 and port 8080)       β”‚ 
whishper-backend     |  β”‚                                                   β”‚ 
whishper-backend     |  β”‚ Handlers ............ 13  Processes ........... 1 β”‚ 
whishper-backend     |  β”‚ Prefork ....... Disabled  PID ................. 1 β”‚ 
whishper-backend     |  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ 
whishper-backend     | 
whishper-backend     | 7:37PM INF Starting monitor!
whishper-backend     | 7:38PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:39PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:40PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:41PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:42PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:43PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:44PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:45PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:46PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:48PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:49PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:50PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:50PM ERR Error sending transcription request error="invalid status"
whishper-backend     | 7:50PM ERR Error transcribing error="invalid status"
whishper-backend     | 7:51PM ERR Error sending transcription request error="invalid status"
whishper-backend     | 7:51PM ERR Error transcribing error="invalid status"
whishper-backend     | 7:52PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:53PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:54PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:55PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:56PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:57PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:58PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 7:59PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 8:00PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 8:01PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 8:02PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 8:03PM ERR Error sending transcription request error="invalid status"
whishper-backend     | 8:03PM ERR Error transcribing error="invalid status"
whishper-backend     | 8:04PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 8:05PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend     | 8:06PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whisper-libretranslate | Running on http://0.0.0.0:5000
whisper-api          | INFO:     127.0.0.1:53582 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api          | INFO:     127.0.0.1:45828 - "GET /healthcheck/ HTTP/1.1" 200 OK
nginx_1              | 192.168.1.77 - - [30/Oct/2023:20:07:38 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
whishper-backend     | 8:07PM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"

Docker Compose File

version: "3.9"

services:
  mongo:
    image: mongo
    env_file:
      - .env
    restart: unless-stopped
    volumes:
      - ./whishper_data/db_data:/data/db
      - ./whishper_data/db_data/logs/:/var/log/mongodb/
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${DB_USER:-whishper}
      MONGO_INITDB_ROOT_PASSWORD: ${DB_PASS:-whishper}
    expose:
      - 27017
    command: ['--logpath', '/var/log/mongodb/mongod.log']
    healthcheck:
      test: mongosh --eval 'db.runCommand("ping").ok' --quiet
      interval: 15s
      timeout: 10s
      retries: 5
      start_period: 5s

  translate:
    container_name: whisper-libretranslate
    image: libretranslate/libretranslate:v1.4.0
    restart: unless-stopped
    volumes:
      - ./whishper_data/libretranslate/data:/home/libretranslate/.local/share
      - ./whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
    env_file:
      - .env
    tty: true
    environment:
      - "LT_DISABLE_WEB_UI=true"
      #LT_UPDATE_MODELS: True
    expose:
      - 5000
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 15s
      timeout: 10s
      start_period: 5s
      retries: 5

  transcription-api:
    container_name: whisper-api
    image: pluja/whishper-transcription-api:latest
    env_file:
      - .env
    volumes:
      - ./whishper_data/whisper_models:/app/models
      - ./whishper_data/uploads:/app/uploads
    environment:
      - WHISPER_MODELS_DIR=/app/models
      - UPLOAD_DIR=/app/uploads
    restart: unless-stopped
    expose:
      - 8000

  whishper-backend:
    container_name: whishper-backend
    image: pluja/whishper-backend:latest
    env_file:
      - .env
    volumes:
      - ./whishper_data/uploads:/app/uploads
    restart: unless-stopped
    depends_on:
      mongo:
        condition: service_healthy
      translate:
        condition: service_healthy
      transcription-api:
        condition: service_healthy
    healthcheck:
      test: curl --fail http://localhost:8080/api/transcriptions || exit 1
      interval: 15s
      timeout: 10s
      retries: 5
      start_period: 5s
    expose:
      - 8080

  whishper-frontend:
    container_name: whishper-web
    image: pluja/whishper-frontend:latest
    env_file:
      - .env
    restart: unless-stopped
    environment:
      INTERNAL_API_HOST: "http://nginx:80"
      VITE_TRANSLATION_API_HOST: ""
      VITE_API_HOST: ${WHISHPER_HOST:-}
    depends_on:
      transcription-api:
        condition: service_healthy
    expose:
      - 3000

  nginx:
    image: nginx:1
    restart: unless-stopped
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./whishper_data/uploads:/app/uploads
    depends_on:
      whishper-backend:
        condition: service_healthy
    ports:
      - 8082:80

File upload returns HTTP status 413 / 500 / 502

When uploading a file, a POST request is made that fails with HTTP status 500 / 502. The interface shows "Success", but nothing actually changed.

Sometimes, the request fails with 413 "Request Entity Too Large". This happens with and without me touching the config.

[BUG] Can't transcribe on Mac due to permission error

I installed Whispher via the manual install method, as provided in the documentation, on my MacOS due to the Quick Install failing unfortunately.

But every time I try to transcribe something, Whishpers UI shows an error and the Docker logs indicate a permission error:

PermissionError: [Errno 1] Operation not permitted: '/app/models/faster-whisper-tiny'

Does someone know a possible fix?

Unsupported compute type using GPU

Description

Transcription fails using GPU support on .mp4 file with Nvidia GTX 980 because of unsupported compute type.
Is there a way to manually change the compute type?

Error: ValueError: Requested int8 compute type, but the target device or backend do not support efficient int8 computation.

To Reproduce

Enable GPU support according to documentation (https://whishper.net/guides/gpu/) by replacing docker-yml file, running "docker-compose up -d" and transcribing .mp4 using GPU.

Expected behavior

Successful transcription using GPU. Using CPU works perfectly well.

Environment

  • OS: Windows 10 Pro x64
  • Docker 4.25.0 (126437)
  • Nvidia 536.23 driver

Logs and Configuration

Docker Compose Logs

Run the following command in the project folder, force the error, and paste the logs below: docker compose logs -f --tail 50

whishper-mongo-1        | {"t":{"$date":"2023-11-02T07:15:42.349Z"},"s":"I",  "c":"CONTROL",  "id":20697,   "ctx":"main","msg":"Renamed existing log file","attr":{"oldLogPath":"/var/log/mongodb/mongod.log","newLogPath":"/var/log/mongodb/mongod.log.2023-11-02T07-15-42"}}
whishper-nginx-1        | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
whishper-nginx-1        | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
whishper-nginx-1        | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
whishper-nginx-1        | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
whishper-nginx-1        | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
whishper-nginx-1        | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
whishper-nginx-1        | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
whishper-nginx-1        | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
whishper-nginx-1        | /docker-entrypoint.sh: Configuration complete; ready for start up
whishper-nginx-1        | 172.18.0.2 - - [02/Nov/2023:07:17:24 +0000] "GET /api/transcriptions HTTP/1.1" 200 1815534 "-" "undici"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:17:24 +0000] "GET / HTTP/1.1" 200 515561 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-backend        | 7:17AM INF Starting monitor!
whishper-backend        |
whishper-backend        |  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
whishper-backend        |  β”‚                   Fiber v2.50.0                   β”‚
whishper-backend        |  β”‚               http://127.0.0.1:8080               β”‚
whishper-backend        |  β”‚       (bound on host 0.0.0.0 and port 8080)       β”‚
whishper-backend        |  β”‚                                                   β”‚
whishper-backend        |  β”‚ Handlers ............ 13  Processes ........... 1 β”‚
whishper-backend        |  β”‚ Prefork ....... Disabled  PID ................. 1 β”‚
whishper-backend        |  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
whishper-backend        |
whishper-backend        | 7:17AM ERR Error sending transcription request error="invalid status"
whishper-backend        | 7:17AM ERR Error transcribing error="invalid status"
whishper-backend        | 7:18AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:19AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:20AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:21AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:22AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:24AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:25AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:26AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:27AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:28AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:29AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:17:24 +0000] "GET /api/transcriptions HTTP/1.1" 200 1815534 "http://localhost:8082/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:17:24 +0000] "GET /languages HTTP/1.1" 200 175 "http://localhost:8082/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:17:41 +0000] "POST /api/transcriptions HTTP/1.1" 200 0 "http://localhost:8082/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:18:51 +0000] "GET /ws/transcriptions HTTP/1.1" 101 874 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:19:53 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:20:55 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:21:57 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:22:59 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:24:01 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:25:03 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:26:05 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:27:06 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:28:08 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:29:10 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:30:12 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:31:14 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-nginx-1        | 172.18.0.1 - - [02/Nov/2023:07:32:16 +0000] "GET /ws/transcriptions HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whisper-libretranslate  | Updating language models
whisper-libretranslate  | Found 86 models
whisper-libretranslate  | Keep 4 models
whisper-libretranslate  | Downloading English β†’ French (1.0) ...
whisper-libretranslate  | Downloading English β†’ Spanish (1.0) ...
whisper-libretranslate  | Downloading French β†’ English (1.0) ...
whisper-libretranslate  | Downloading Spanish β†’ English (1.0) ...
whisper-libretranslate  | Loaded support for 3 languages (4 models total)!
whisper-libretranslate  | Running on http://0.0.0.0:5000
whishper-backend        | 7:30AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whisper-api             |   File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 718, in __call__
whishper-web            | Listening on 0.0.0.0:3000
whishper-backend        | 7:31AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whishper-backend        | 7:32AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"
whisper-api             |     await route.handle(scope, receive, send)
whisper-api             |   File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 276, in handle
whisper-api             |     await self.app(scope, receive, send)
whisper-api             |   File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 66, in app
whisper-api             |     response = await func(request)
whisper-api             |   File "/usr/local/lib/python3.10/dist-packages/fastapi/routing.py", line 273, in app
whisper-api             |     raw_response = await run_endpoint_function(
whisper-api             |   File "/usr/local/lib/python3.10/dist-packages/fastapi/routing.py", line 190, in run_endpoint_function
whisper-api             |     return await dependant.call(**values)
whisper-api             |   File "/app/main.py", line 26, in transcribe_endpoint
whisper-api             |     return await transcribe_file(file, model_size.value, language.value, device)
whisper-api             |   File "/app/transcribe.py", line 41, in transcribe_file
whisper-api             |     return await transcribe_audio(audio, model_size, language, device)
whisper-api             |   File "/app/transcribe.py", line 54, in transcribe_audio
whisper-api             |     model.load()
whisper-api             |   File "/app/backends/fasterwhisper.py", line 29, in load
whisper-api             |     self.model = WhisperModel(
whisper-api             |   File "/usr/local/lib/python3.10/dist-packages/faster_whisper/transcribe.py", line 128, in __init__
whisper-api             |     self.model = ctranslate2.models.Whisper(
whisper-api             | ValueError: Requested int8 compute type, but the target device or backend do not support efficient int8 computation.
whisper-api             | INFO:     127.0.0.1:51714 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:39374 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:45108 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:46154 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:42326 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:53210 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:45252 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:56202 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:59880 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:55626 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:47922 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:48724 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:50112 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:44196 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:40242 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:36154 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:43744 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:33182 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:45358 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:41764 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:37248 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:54336 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:48916 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:49806 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:44938 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:49610 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:40232 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:57346 - "GET /healthcheck/ HTTP/1.1" 200 OK
whisper-api             | INFO:     127.0.0.1:45674 - "GET /healthcheck/ HTTP/1.1" 200 OK

Docker Compose File

version: "3.9"

services:
  mongo:
    image: mongo
    env_file:
      - .env
    restart: unless-stopped
    volumes:
      - ./whishper_data/db_data:/data/db
      - ./whishper_data/db_data/logs/:/var/log/mongodb/
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${DB_USER:-whishper}
      MONGO_INITDB_ROOT_PASSWORD: ${DB_PASS:-whishper}
    expose:
      - 27017
    command: ['--logpath', '/var/log/mongodb/mongod.log']
    healthcheck:
      test: mongosh --eval 'db.runCommand("ping").ok' --quiet
      interval: 2s
      timeout: 3s
      retries: 5

  translate-cpu:
    container_name: whisper-libretranslate
    profiles: ["cpu"]
    image: libretranslate/libretranslate:latest
    restart: unless-stopped
    volumes:
      - ./whishper_data/libretranslate/data:/home/libretranslate/.local/share
      - ./whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
    env_file:
      - .env
    tty: true
    environment:
      LT_DISABLE_WEB_UI: True
      #LT_UPDATE_MODELS: True
    expose:
      - 5000
    networks:
      default:
        aliases:
          - translate
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 2s
      timeout: 3s
      retries: 5

  translate-gpu:
    container_name: whisper-libretranslate
    image: libretranslate/libretranslate:latest-cuda
    profiles: ["gpu"]
    restart: unless-stopped
    volumes:
      - ./whishper_data/libretranslate/data:/home/libretranslate/.local/share
      - ./whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
    env_file:
      - .env
    user: root
    tty: true
    environment:
      LT_DISABLE_WEB_UI: True
      LT_LOAD_ONLY: ${LT_LOAD_ONLY:-en,fr,es}
      #LT_UPDATE_MODELS: True
    expose:
      - 5000
    networks:
      default:
        aliases:
          - translate
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: all
            capabilities: [gpu]
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 2s
      timeout: 3s
      retries: 5

  transcription-api-cpu:
    container_name: whisper-api
    profiles: ["cpu"]
    image: pluja/whishper-transcription-api:latest
    env_file:
      - .env
    volumes:
      - ./whishper_data/whisper_models:/app/models
      - ./whishper_data/uploads:/app/uploads
    environment:
      - WHISPER_MODELS_DIR=/app/models
      - UPLOAD_DIR=/app/uploads
    networks:
      default:
        aliases:
          - transcription-api
    restart: unless-stopped
    expose:
      - 8000

  transcription-api-gpu:
    container_name: whisper-api
    profiles: ["gpu"]
    image: pluja/whishper-transcription-api:latest-gpu
    env_file:
      - .env
    volumes:
      - ./whishper_data/whisper_models:/app/models
      - ./whishper_data/uploads:/app/uploads
    environment:
      WHISPER_MODELS_DIR: /app/models
      UPLOAD_DIR: /app/uploads
    restart: unless-stopped
    expose:
      - 8000
    networks:
      default:
        aliases:
          - transcription-api
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: all
            capabilities: [gpu]

  whishper-backend:
    container_name: whishper-backend
    image: pluja/whishper-backend:latest
    env_file:
      - .env
    volumes:
      - ./whishper_data/uploads:/app/uploads
    restart: unless-stopped
    depends_on:
      mongo:
        condition: service_healthy
    healthcheck:
      test: curl --fail http://localhost:8080/api/transcriptions || exit 1
      interval: 2s
      timeout: 2s
      retries: 5
    expose:
      - 8080

  whishper-frontend:
    container_name: whishper-web
    image: pluja/whishper-frontend:latest
    env_file:
      - .env
    restart: unless-stopped
    environment:
      PUBLIC_INTERNAL_API_HOST: "http://nginx:80"
      PUBLIC_TRANSLATION_API_HOST: ""
      PUBLIC_API_HOST: ${WHISHPER_HOST:-}
      PUBLIC_WHISHPER_PROFILE: ${COMPOSE_PROFILES:-false}
    expose:
      - 3000

  nginx:
    image: nginx:1
    restart: unless-stopped
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./whishper_data/uploads:/app/uploads
    depends_on:
      whishper-backend:
        condition: service_healthy
    ports:
      - 8082:80    

[Feature] Multiple Seperate Users

First and foremost, thank you again for the outstanding web-UI for Whisper and the recent GPU support integration!

Could you consider adding individual user profiles to Whisper? I aim to grant access to my friends, ensuring that each has their unique space and transcriptions, all protected by a straightforward login screen.

With multiple users transcribing simultaneously, I imagine there might be a need for a queuing mechanism, right?

[BUG] can't get docker-compose to run

I get this error in the logs:

whisper-libretranslate  | PermissionError: [Errno 13] Permission denied: '/home/libretranslate/.local/share/argos-translate' 
whisper-libretranslate exited with code 1

The status of the images:

docker ps                                                                                                                                                                         (base) 
CONTAINER ID   IMAGE                                     COMMAND                  CREATED              STATUS                          PORTS       NAMES
d4b14c62d055   pluja/whishper-frontend:latest            "docker-entrypoint.s…"   About a minute ago   Up 39 seconds                   3000/tcp    whishper-web
2475b66d560b   libretranslate/libretranslate:latest      "./venv/bin/libretra…"   About a minute ago   Restarting (1) 25 seconds ago               whisper-libretranslate
7b7c360a0665   mongo                                     "docker-entrypoint.s…"   About a minute ago   Up About a minute (healthy)     27017/tcp   temp-mongo-1
6bce4a6c69fd   pluja/whishper-transcription-api:latest   "python3 main.py"        About a minute ago   Up About a minute (healthy)     8000/tcp    whisper-api

Also the nginx is not available on http://localhost:8082

docker logs temp-nginx-1 returns an empty result.

[Feature] Integration with Cheshire Cat Ai

Proposal for Integration with Cheshire Cat Ai Project (GitHub Repo)

Hello, I am an Italian university student.

While searching for a quick way to transcribe my professors' video lectures, I came across your project, and I must say, it's really well done.

Today, while using it, I thought it would be quite fascinating to see your project integrated within an Italian project called Cheshire Cat .

I have a few ideas for this integration:

  • Obtaining information about what is being said within a specific time frame in a video.
  • Utilizing the capabilities of your project to better edit or correct subtitles for the Cat (Cheshire Cat Ai ).
  • Obtaining the complete transcription so that Stregatto can make inferences.

A plugin would be sufficient to integrate it.
The good pieroit and his community have done a great job of making it as integratable as possible.

If you prefer not to develop it yourselves, I understand, but in that case, please consider making your project accessible via an endpoint that can receive HTTP requests. This would enable me, when I have the time, or any other community member, if they deem it appropriate, to integrate it.

Running on Synology NAS

Firstly - newbie to docker and Linux, so apologies in advance!

I've followed the instructions but my mongodb keeps erroring and I can't figure out why. At first I read through the logs and it kept complaining that my hardware doesn't support AVX, so I tried altering to the yaml to download version 4.4 (the last before AVX requirements) - see attached.
compose.txt.

The compose error I get is: Dependency failed to start: container for service "mongo" is unhealthy

Logs (such as they are) for the Mongo container are also attached.
whishper-mongo-1.csv

[Feature] Use local folder as media input

I have a lot of media files on my server where Whishper is running that I want to generate subtitles for. Would be nice to be able to use that folder as an input to search for files.

So, you first map a local folder in the docker compose

...
volumes:
  - /local/media1:/app/media/media1
  - /local/media2:/app/media/media2

And then in the "New Transcription" modal you can select files in a dropdown that are located in the /app/media folders. This way the process can be later automated as well (like scanning the media folder, ...).

Also, is there a reason for the file size limit? I hope we can remove that limit when the files are already locally or is it a limit from the transcription-api?

If the feature looks cool, I can have a look at starting the implementation if you like (via PR)

Wrong language code for japanese

Transcription keeps failing when I select 'jp' in the UI. In the whisper-api docker log:

ValueError: jp is not a valid language code

Should this be 'ja' instead to match what should be in the .env file?

Confusing!

The description on the website https://whishper.net/ says "Open-source, local-first audio transcription and subtitling suite with a simple web UI."

The description on github repo https://github.com/pluja/whishper says "it is a frontend for OpenAI's Whisper, but with batteries included!".

Will Whishper require connectivity to Open AI to function? In which case, it is not necessarily local?

What does self hosting mean? Will whisper the Open AI model, (not Whispher) run on a local system?

A system diagram that depicts the various entities, I think, will definitely help.

[Feature] Single container setup

I think usability would improve a lot if there's a single Docker image exposing the reverse proxy, allowing to use whishper without the need for a Docker compose stack.

PermissionError

Hi!
OS Ubuntu

After launching "docker compose up", the following error appears:
whisper-libretranslate | PermissionError: [Errno 13] Permission denied: '/home/libretranslate/.local/share/argos-translate'

There is also such a message in the logs:
whisper-api | ValueError: model must be one of ['tiny', 'tiny.en', 'small', 'small.en', 'base', 'base.en', 'medium', 'medium.en', 'large-v2']

image

[Feature] GPU Support

First of all, thank you so much for gifting us this amazing app, @pluja and I'm sorry if I sound disrespectful, since you already mentioned that GPU support is on the roadmap.

But I wanted to ask, whether you might be able to give us an ETA or progress status on GPU acceleration?

The reason I'm asking is that I'm currently evaluating waiting for whishper to implement it or to try and implement faster-whisper into the Whisper Web UI WAAS which has GPU support, but is sadly using normal whisper as backend with no faster-whisper transition in sight.

I'd be thankful for any kind of information :)

[BUG] Translation error causes forever unfinished translation

I Launch a new translation, (the original subtitle from transcrbe is ok)

But after many hours the animation is rolling on "waiting for translation".

If I reboot my computer, whishper still on "waiting for translation" (from spanish to french… but I tried before on another movie and it worked.

ERR_SSL_WRONG_VERSION_NUMBER

With the latest update it seems some API requires HTTPS SSL

ux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
nginx_1              | 192.168.32.1 - - [30/Oct/2023:17:54:49 +0000] "GET /undefined/languages HTTP/1.1" 404 706 "http://mia.lan:8082/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
whishper-web         | Listening on 0.0.0.0:3000
whishper-web         | TypeError: fetch failed
whishper-web         |     at fetch (file:///app/shims.js:20346:13)
whishper-web         |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
whishper-web         |     at async resolve (file:///app/server/index.js:3661:14)
whishper-web         |     at async respond (file:///app/server/index.js:3479:22)
whishper-web         |     at async fetch (file:///app/server/index.js:3289:26)
whishper-web         |     at async Object.fetch (file:///app/server/index.js:3229:12)
whishper-web         |     at async file:///app/server/index.js:1341:20
whishper-web         |     at async load (file:///app/server/chunks/0-3c61a3ef.js:8:20)
whishper-web         |     at async load_data (file:///app/server/index.js:1323:18)
whishper-web         |     at async file:///app/server/index.js:2660:18 {
whishper-web         |   cause: [Error: B8894C42D67F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:
whishper-web         |   ] {
whishper-web         |     library: 'SSL routines',
whishper-web         |     reason: 'wrong version number',
whishper-web         |     code: 'ERR_SSL_WRONG_VERSION_NUMBER'
whishper-web         |   }
whishper-web         | }
whishper-web         | TypeError: fetch failed
whishper-web         |     at fetch (file:///app/shims.js:20346:13)
whishper-web         |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
whishper-web         |     at async resolve (file:///app/server/index.js:3636:16)
whishper-web         |     at async respond (file:///app/server/index.js:3479:22)
whishper-web         |     at async fetch (file:///app/server/index.js:3289:26)
whishper-web         |     at async Object.fetch (file:///app/server/index.js:3229:12)
whishper-web         |     at async file:///app/server/index.js:1341:20
whishper-web         |     at async load (file:///app/server/chunks/0-3c61a3ef.js:8:20)
whishper-web         |     at async load_data (file:///app/server/index.js:1323:18)
whishper-web         |     at async respond_with_error (file:///app/server/index.js:2291:20) {
whishper-web         |   cause: [Error: B8894C42D67F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:
whishper-web         |   ] {
whishper-web         |     library: 'SSL routines',
whishper-web         |     reason: 'wrong version number',
whishper-web         |     code: 'ERR_SSL_WRONG_VERSION_NUMBER'
whishper-web         |   }
whishper-web         | }

[BUG] Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"

I have this error in log of whishper-backend

2023-10-27 21:08:34 12:08AM ERR Error sending transcription request error="Post "http://transcription-api:8000/transcribe/?model_size=large-v2&task=transcribe&language=en&device=cpu\": EOF"

2023-10-27 21:08:34 12:08AM ERR Error transcribing error="Post "http://transcription-api:8000/transcribe/?model_size=large-v2&task=transcribe&language=en&device=cpu\": EOF"

2023-10-27 21:09:34 12:09AM ERR Error reading message error="websocket: close 1006 (abnormal closure): unexpected EOF"

And in frontend show this:

image

I run in Locally DOCKER, Windows 11

can anybody help me

[Feature] Configure CPU threads being used

Currently, transcription uses only 4 CPU cores, which is a fraction of the available cores. I think if all cores were used, a significant speedup could be achieved until GPU acceleration is supported.

[Bug] Install issue on Mac

Hi Pluja,

Getting some troubles with the install (macOS Sonoma RC)

Pulling and building docker images
2023/09/19 10:19:09 must use ASL logging (which requires CGO) if running as root
2023/09/19 10:19:09 must use ASL logging (which requires CGO) if running as root
2023/09/19 10:19:09 must use ASL logging (which requires CGO) if running as root
2023/09/19 10:19:09 must use ASL logging (which requires CGO) if running as root
2023/09/19 10:19:09 must use ASL logging (which requires CGO) if running as root
2023/09/19 10:19:09 must use ASL logging (which requires CGO) if running as root
[+] Pulling 0/0
 β ‹ mongo Pulling                                                                                                       0.0s 
 β ‹ whishper-backend Pulling                                                                                            0.0s 
 β ‹ whishper-frontend Pulling                                                                                           0.0s 
 β ‹ nginx Pulling                                                                                                       0.0s 
 β ‹ translate Pulling                                                                                                   0.0s 
 β ‹ transcription-api Pulling                                                                                           0.0s 
error getting credentials - err: exit status 1, out: ``

Thanks

WHISHPER_PUBLIC_URL

Hey, nice project,

where does WHISHPER_PUBLIC_URL come from? Is it missing in the example .env?
It's used in the docker-compose files

[Feature] Show progress on uploads and transcriptions

Thank you for this wonderful and useful tool.

I noticed when a file is uploaded, there's no action show on the home screen making seems like nothing was uploaded until after like a minute it starts showing processing.

Secondly, processing takes long I guess depending on file size but if there can be a counter that show percentage completed, maybe a circle on the right with percentage number inside, it will help to know how soon the processing will be completed.

BTW, the counter can also works for uploading too before the processing starts.

Thank you so much for this great software.

[BUG] Potential Bug - Potential User Error

Description

I cannot see any languages when attempting to translate. I can only chose from an empty list

To Reproduce

Steps to reproduce the behavior:
I have the following in my docker-compose.yaml:

 whishper-backend:
      container_name: whishper-backend
      image: pluja/whishper-backend:latest
      env_file:
        - ${USERDIR}/docker/whishper_data/.env
      volumes:
        - ${USERDIR}/docker/whishper_data/uploads:/app/uploads
      restart: unless-stopped
      depends_on:
        mongo:
          condition: service_healthy
      healthcheck:
        test: curl --fail http://localhost:8080/api/transcriptions || exit 1
        interval: 2s
        timeout: 2s
        retries: 5
      expose:
        - 8080
    whishper-frontend:
      container_name: whishper-web
      image: pluja/whishper-frontend:latest
      env_file:
        - ${USERDIR}/docker/whishper_data/.env
      restart: unless-stopped
      environment:
        PUBLIC_INTERNAL_API_HOST: "http://nginx:80"
        PUBLIC_TRANSLATION_API_HOST: ""
        PUBLIC_API_HOST: ${WHISHPER_HOST:-}
        PUBLIC_WHISHPER_PROFILE: ${COMPOSE_PROFILES:-false}
      expose:
        - 3000
    nginx:
      image: nginx:1
      container_name: whishper
      restart: unless-stopped
      labels:
        - swag=enable
      volumes:
        - ${USERDIR}/docker/whishper_data/nginx.conf:/etc/nginx/nginx.conf
        - ${USERDIR}/docker/whishper_data/uploads:/app/uploads
      depends_on:
        whishper-backend:
          condition: service_healthy
      ports:
        - 8082:80    
    transcription-api:
      container_name: whisper-api
#      profiles: ["cpu"]
      image: pluja/whishper-transcription-api:latest
      env_file:
        - ${USERDIR}/docker/whishper_data/.env
      volumes:
        - ${USERDIR}/docker/whishper_data/whisper_models:/app/models
        - ${USERDIR}/docker/whishper_data/uploads:/app/uploads
      environment:
        - WHISPER_MODELS_DIR=/app/models
        - UPLOAD_DIR=/app/uploads
      restart: unless-stopped
      expose:
        - 8000
    translate:
      container_name: whisper-libretranslate
#      profiles: ["cpu"]
      image: libretranslate/libretranslate:latest
      restart: unless-stopped
      volumes:
        - ${USERDIR}/docker/whishper_data/libretranslate/data:/home/libretranslate/.local/share
        - ${USERDIR}/docker/whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
      env_file:
        - ${USERDIR}/docker/whishper_data/.env
      tty: true
      environment:
        LT_DISABLE_WEB_UI: "True"
        #LT_UPDATE_MODELS: True
      expose:
        - 5000
      healthcheck:
        test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
        interval: 2s
        timeout: 3s
        retries: 5

And the following simple config:

# PROFILE
COMPOSE_PROFILES=cpu # set to 'gpu' if you have GPU with cuda support, read https://whishper.net/guides/gpu

# Libretranslate Configuration
LT_LOAD_ONLY=es,en,fr,nb

# Whisper Configuration
WHISPER_MODELS=tiny,small
WHISHPER_HOST=http://whishper:8082

# Database Configuration
DB_USER=whishper
DB_PASS=whishper

As far as I can see this is a base installation for a cpu setup (except for the SWAG label for my reverse proxying of the nginx container and the container names. Everything else works fantastically though!

NGINX connection timeout.

Hi, when I try to connect to the nginx proxy it does not respond with anything and eventually times out.

Environment: Debian 12

nginx.conf:

events {
    worker_connections 1024;
}

http {
    gzip on;

    server {
        listen 80;
        server_name whishper.(mydomain);

        location /api/video {
            alias /app/uploads/;
        }

        location /languages {
            proxy_pass http://translate:5000;
        }

        location /api {
            client_max_body_size 0;
            proxy_pass http://whishper-backend:8080;
        }

        location /ws {
            proxy_pass http://whishper-backend:8080;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

        location / {
            proxy_pass http://whishper-frontend:3000;
        }    
    }
}

docker compose nginx logs:

whishper-nginx-1        | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
whishper-nginx-1        | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
whishper-nginx-1        | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
whishper-nginx-1        | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
whishper-nginx-1        | 10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
whishper-nginx-1        | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
whishper-nginx-1        | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
whishper-nginx-1        | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
whishper-nginx-1        | /docker-entrypoint.sh: Configuration complete; ready for start up

Please let me know if i can provide anything else.

Thanks,

James.

[Feature] Custom published port for nginx

Description of the feature you are requesting:
User can easily to change published port with .env file
Maybe duplicate with [Feature] Specify ports for all services in the .env file

Describe the solution you'd like

.env

...
# Bottom of the file
# Custom Port Configuration
NGINX_PORT=18082 # (or whatever you want)

docker-compose.yml

version: "3.9"

services:
...
  nginx:
    ...
    ports:
      - ${NGINX_PORT:-8082}:80

Additional context
User can check the port with docker compose config | grep published

[BUG] No respond from on the webui after adding video

Describe the bug
After choosing video and clicking starts, nothing seem to happen. Video doesn't show up on webui. No transcription seems to be happening.
No errors in log

To Reproduce
Fresh install of whispher using the latest get-whishper.sh

Expected behavior
video shows up on webui queue and start transcribing

Screenshots
image
Nothing happens after choosing a video and hitting start

Device (please complete the following information):

  • OS: Ubuntu 22.04.3 LTS
  • docker: Docker version 24.0.6, build ed223bc
  • Browser: edge and chrome

Additional context
Whishper hosted on ubuntu server. Accessed from windows pc on local network.

[Bug] Whishper-backend exec format error on ARM64

I get the error: /app/whishper: exec format error on the Whishper-backend docker build. The build has an ARM64 build on Docker Hub.

Build details.: ARM64 Ubuntu 22.04 LTS build on Oracle Cloud. Using the Ampere A1, 4 OCPUs and 24 GB.

Screenshot off failure to bring the service up:
Screenshot_20230913_180226

Screenshot of the log output for the Whishper-backend:
Screenshot_20230913_184411

I am using the example docker-compose.yml, .env and nginx.conf. All the other components appear to start correctly.

I cannot spot what I may have done/got wrong.

Socket connection keeps reconnecting

Hi,

I was testing out Whishper and it looks very promissing!

After setting up the docker-compose file with the correct path and the chown command the containers all start but then I can't seem to do anything.
The UI itelf loads but can't connect over the websocket connection. Also the /languages call fails with a status 500.

image

I had a look in the container logs and in the backend container I find these errors:

06:06:58 DBG database/mongo.go:127 > Error getting transcriptions: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
06:06:58 DBG monitor/monitor.go:25 > Pending transcriptions: 0
06:07:13 DBG database/mongo.go:97 > Error getting transcriptions: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
06:07:28 DBG database/mongo.go:97 > Error getting transcriptions: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
06:07:43 DBG database/mongo.go:97 > Error getting transcriptions: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
06:07:58 DBG database/mongo.go:97 > Error getting transcriptions: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
06:08:13 DBG database/mongo.go:97 > Error getting transcriptions: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
06:08:28 DBG database/mongo.go:97 > Error getting transcriptions: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
06:08:43 DBG database/mongo.go:97 > Error getting transcriptions: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.

And in the web container logs:

Listening on 0.0.0.0:3000
/api/transcriptions
TypeError: fetch failed
    at fetch (file:///app/shims.js:20346:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async resolve (file:///app/server/index.js:3998:14)
    at async respond (file:///app/server/index.js:3823:22)
    at async fetch (file:///app/server/index.js:3633:26)
    at async Object.fetch (file:///app/server/index.js:3573:12)
    at async file:///app/server/index.js:1996:20
    at async load (file:///app/server/chunks/0-9ff9db82.js:9:20)
    at async load_data (file:///app/server/index.js:1978:18)
    at async file:///app/server/index.js:3307:18 {
  cause: [Error: 98FB36B0C17F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:
  ] {
    library: 'SSL routines',
    reason: 'wrong version number',
    code: 'ERR_SSL_WRONG_VERSION_NUMBER'
  }
}
/api/transcriptions
SyntaxError: Unexpected token 'I', "Internal S"... is not valid JSON
    at JSON.parse (<anonymous>)
    at Proxy.<anonymous> (file:///app/server/index.js:2064:25)
    at async load (file:///app/server/chunks/0-9ff9db82.js:10:14)
    at async load_data (file:///app/server/index.js:1978:18)
    at async respond_with_error (file:///app/server/index.js:2938:20)
    at async resolve (file:///app/server/index.js:3985:16)
    at async respond (file:///app/server/index.js:3823:22)
    at async Array.ssr (file:///app/handler.js:1221:3)
/api/transcriptions
```

I think it's because I set a root username and password for the mongo db but never specify the credentials in the backend container. Are there some env vars I missed?

Here is my docker-compose file for reference (I removed ngigx since I'm will implement traefik later and I changed the directories as well)
```
version: "3.9"
services:
  mongo:
    image: mongo
    restart: unless-stopped
    container_name: whishper-db
    volumes:
      - /cat/docker/volumes/ai_whishper/data/db:/data/db
      - /cat/docker/volumes/ai_whishper/data/logs/:/var/log/mongodb/
    environment:
      MONGO_INITDB_ROOT_USERNAME: $MONGO_USERNAME
      MONGO_INITDB_ROOT_PASSWORD: $MONGO_PASSWORD
    expose:
      - 27017
    command: ['--logpath', '/var/log/mongodb/mongod.log']
    healthcheck:
      test: mongosh --eval 'db.runCommand("ping").ok' --quiet
      interval: 15s
      timeout: 10s
      retries: 5
      start_period: 5s

  translate:
    container_name: whisper-libretranslate
    image: libretranslate/libretranslate:latest
    restart: unless-stopped
    volumes:
      - /cat/docker/volumes/ai_whishper/libretranslate/data:/home/libretranslate/.local/share
      - /cat/docker/volumes/ai_whishper/libretranslate/cache:/home/libretranslate/.local/cache
    environment:
      - LT_LOAD_ONLY=en,nl
      - LT_DISABLE_WEB_UI=True
      - LT_UPDATE_MODELS=True
      - LT_THREADS=8
    tty: true
    expose:
      - 5000
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 15s
      timeout: 10s
      start_period: 5s
      retries: 5

  transcription-api:
    container_name: whisper-api
    image: pluja/whishper-transcription-api:latest
    restart: unless-stopped
    volumes:
      - /cat/docker/volumes/ai_whishper/app/whisper_models:/app/models
      - /cat/docker/volumes/ai_whishper/app/uploads:/app/uploads
    environment:
      - WHISPER_MODELS_DIR=/app/models
      - UPLOAD_DIR=/app/uploads
      - WHISPER_MODELS=tiny,small
      - WHISHPER_HOST=whishper-backend:8080
    expose:
      - 8000

  whishper-backend:
    container_name: whishper-backend
    image: pluja/whishper-backend:latest
    restart: unless-stopped
    volumes:
      - /cat/docker/volumes/ai_whishper/app/uploads:/app/uploads
    depends_on:
      mongo:
        condition: service_healthy
      translate:
        condition: service_healthy
      transcription-api:
        condition: service_healthy
    healthcheck:
      test: curl --fail http://localhost:8080/api/transcriptions || exit 1
      interval: 15s
      timeout: 10s
      retries: 5
      start_period: 5s
    expose:
      - 8080

  whishper-frontend:
    container_name: whishper-web
    image: pluja/whishper-frontend:latest
    restart: unless-stopped
    environment:
      - PUBLIC_INTERNAL_API_HOST=http://192.168.72.28:5487
      - PUBLIC_TRANSLATION_API_HOST=
      - PUBLIC_API_HOST=-
    depends_on:
      transcription-api:
        condition: service_healthy
    ports:
      - 5487:3000

```

Let me know if you need some info to help me out and thanks in advance!

[Feature] Add support for insanely-fast-whisper over faster-whisper

Description of the feature you are requesting:

I'm by far no expert, but I noticed that insanely-fast-whisper is now out which further reduces time to transcribe audio: https://github.com/Vaibhavs10/insanely-fast-whisper

Describe the solution you'd like

Switch from faster-whisper to insanely-fast-whisper as a permanent replacement.

Describe alternatives you've considered

Optionally enable the user to decide wether they want to run faster-whisper or insanely-fast-whisper via an environment variable or something similar.

Additional context

None

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.