Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/javi-cc/python-openai-generator-srt
Application that works offline written in python that transcribes and translates either audio or video files into text to generate a subtitle file (.srt) using deep learning libraries such as openai-whisper and argos-translate.
https://github.com/javi-cc/python-openai-generator-srt
argos-translate docker docker-compose dockerfile offline openai openai-whisper python whisper
Last synced: 24 days ago
JSON representation
Application that works offline written in python that transcribes and translates either audio or video files into text to generate a subtitle file (.srt) using deep learning libraries such as openai-whisper and argos-translate.
- Host: GitHub
- URL: https://github.com/javi-cc/python-openai-generator-srt
- Owner: JAVI-CC
- Created: 2024-10-29T08:56:05.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-08T17:39:21.000Z (2 months ago)
- Last Synced: 2024-11-08T18:32:47.757Z (2 months ago)
- Topics: argos-translate, docker, docker-compose, dockerfile, offline, openai, openai-whisper, python, whisper
- Language: Python
- Homepage:
- Size: 92.8 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Python OpenAI Generator Srt
---
Application that works offline written in python that transcribes and translates either audio or video files into text to generate a subtitle file (.srt) using deep learning libraries such as openai-whisper and argos-translate that contains the following functionalities:
- Audio to text transcriptions using the OpenAI Whisper library.
- Language selection for text translation using the Argos translate library.
- Video to audio converter using the MoviePy library.
- Selecting options using command line interface
- Exception handling.
- Enums.
- File Storage.
- Seeder are in JSON format.
- Environment Variable
- Python 3.12
- The project contains the files to deploy it in Docker.
Screenshots CLI
Languages available default
You can add the languages you want to translate by modifying the Dockerfile and languages_available.json file.
It also contains the option to translate by the same language.
To
From
English
Spanish
Spanish
English
File storage
The supported formats for both audio and video files can be modified in the file_type.py.
Name
Path
Description
Supported formats
Audios
data/audios
Directory to save the audio files to later select and generate the subtitles.
- .mp3
- .ogg
Videos
data/videos
Directory to save video files that you can then select, convert into an audio file and generate subtitles.
- .mp4
- .mov
- .wmv
- .avi
- .avchd
- .flv
- .mkv
- .webm
- .html5
- .mpeg-2
Subtitles
data/subtitles
Once the subtitles have been generated in .srt format, the result will be saved in the data/subtitles folder.
- .srt
Recommended requirements
- Use an Nvidia graphics card that supports CUDA to run the application as it will significantly reduce the transcription process compared to the CPU.
Setup
$ apt-get install ffmpeg
$ git clone https://github.com/JAVI-CC/python-openai-generator-srt
$ cd python-openai-generator-srt
$ cp .env.example .env # optional
$ pip install --no-cache-dir --upgrade -r requirements.txt
# Install translation languages
$ argospm install translate-en_es
$ argospm install translate-es_en
$ python app/main.py
Configure values in the .env file (Optional)
# [tiny, base, small, medium, large, turbo]
WHISPER_LOAD_MODEL="medium"
Deploy to Docker 🐳
Docker repository: https://hub.docker.com/r/javi98/python-openai-generator-srt
Requirements
- Docker installed on your machine.
- A machine with an NVIDIA GPU that supports CUDA.
- Install the NVIDIA Container Toolkit to be able to use the GPU in a docker container.
Containers:
- nvidia/cuda:12.5.1-base-ubuntu20.04
Containers structure:
├── python-openai-generator-srt-app
Setup:
$ git clone https://github.com/JAVI-CC/python-openai-generator-srt
$ cd python-openai-generator-srt
$ cp .env.example .env # optional
$ docker compose up -d
$ docker compose exec app python3 /code/app/app/main.py
Once you have the containers deployed, You will be shown the CLI to choose the file and language you want to generate the srt file in.