generate .srt subtitles for videos using vosk.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
admin 02d00c2724 Merge branch 'boot-skel' of https://codeberg.org/martianh/srtext into boot-skel 5 days ago
models add models dir 3 months ago
static comment our table CSS to make way for skeleton 2 months ago
sysd-nginx nginx: 20 mins timeouts 3 months ago
templates Merge branch 'skeleton' into boot-skel 2 months ago
.gitignore gitignore 3 months ago
LICENSE license 3 months ago
favicon.ico add favicon 3 months ago
readme.md readme update 3 months ago
requirements.txt update reqs.txt on server 5 days ago
srtext.py separate dz reqs from html ones - fix multi-file uploads for html 5 days ago
subextract.py subextract.py - fix for vosk 0.3.30 compatibility 1 year ago
test_srtext.py try to test for presence of files in uploads/output folders 1 year ago
wsgi.ini add renamed nginx conf and updated wsgi.ini 3 months ago
wsgi.py fix wsgi.py file to work with flask factory 3 months ago

readme.md

srtext: a mini web app to generate .srt subtitles from media files

a Web Applification of Eternal Boilerplate that provides autogenerated subtitles (.srt files) for uploaded media files using the vosk speech recognition api.

it doesn't come with scripts to install, you have to wrangle everything yourself.

dependencies

[in addition to python deps in requirements.txt:]

deploying

  • clone the repo
  • enter the directory and create a venv with python3 -m venv venv
  • activate it with . ./venv/bin/activate
  • if on ARM, install vosk (aarch64) from their releases page first: python3 -m pip install https://github.com/alphacep/vosk-api/releases/download/v0.3.42/vosk-0.3.42-py3-none-linux_aarch64.whl (edit link for the latest/current version)
  • install all dependencies (requirements.txt) in a project venv pip install -r requirements.txt
  • install ffmpeg sudo apt install ffmpeg
  • copy /sysd-nginx/srtext.service to /etc/systemd/system/, and edit it to fit your system [NB: you may need to edit the PATH to your ffmpeg binary!]
  • copy /sysd-nginx/srtext-nginx.conf to /etc/nginx/sites-available/your-subdomain.conf or wherever your subdomain conf belongs, and edit it to fit your system
  • edit wsgi.ini to fit your system. NB: uwsgi wants application rather than app!
  • nginx needs file and directory permissions to your unix socket which will be created directly in your project directory [you may need to create a group for your user that runs it, and add nginx to it]
  • project directory doesn't need to be under /var/www/, it can be anywhere, you just tell nginx where it is.
  • run with uwsgi --ini wsgi.ini
  • if it works try the systemd service.

TODO

  • proper limiting of file types
  • remove all media on success
  • allow choice of language model
  • proper test of upload
  • output path
  • some kinda pseudo auth bs