Transcribe. Structure. Free.
Enstruct is a professional, production-ready, open-source audio toolkit that wraps OpenAI's Whisper model (powered by the high-performance faster-whisper engine). Designed to run fully locally or on free cloud instances, Enstruct offers a free, private alternative to expensive paid services like Otter.ai, Transkriptor, and AssemblyAI.
- ⚡ Ultra-Fast Transcription: Powered by
faster-whisperutilizing CTranslate2 for up to 4x speedups over standard Whisper. - 🌐 Any-to-English Translation: Translate speech from dozens of languages directly to fluent English transcripts.
- 📝 Multi-Format Export: Generates professional
SRTandVTTsubtitle files, alongside rawTXTtranscripts. - 📂 Batch Folder Processing: Automatically transcribes entire folders of audio/video files with beautiful progress indicators.
- 🎬 YouTube Integration: Transcribe and translate YouTube video content directly via url input.
- ☁️ Google Drive Storage: Seamless automatic drive mounting and file saving inside Google Colab.
- 🎙️ Flexible Interfaces: Supports a robust Command Line Interface (CLI) and a sleek, interactive Gradio Web UI with activity history.
- 🧠 Auto-Hardware Detection: Dynamically utilizes CUDA if an NVIDIA GPU is available, falling back safely to highly-optimized CPU execution.
| Feature | Enstruct (Ours) | Otter.ai | Transkriptor | AssemblyAI |
|---|---|---|---|---|
| Cost | 🆓 100% Free | Paid Subscription | Paid / Minute | Paid / Minute |
| Hosting | 💻 Fully Local / Self-Hosted | Cloud-only | Cloud-only | API-only |
| Privacy | 🔒 Zero data shared, fully private | Processed on third-party | Processed on third-party | Processed on third-party |
| Batch Support | ✅ Built-in CLI & API | Limited | Limited | Paid API-only |
| Translation | ✅ Any-to-English | Limited | Paid | Paid |
| Open Source | 🔓 Yes (AGPL v3 License) | No | No | No |
pip install enstructNote: Enstruct requires
ffmpegto process audio/video container formats.
- Ubuntu/Debian:
sudo apt install ffmpeg- macOS:
brew install ffmpeg- Windows:
choco install ffmpeg
ENstruct is designed to work seamlessly both as a command-line tool and as a Python library.
# Transcribe an audio file into default SRT format
enstruct transcribe voice_note.mp3
# Transcribe with target language and VTT format
enstruct transcribe audio.wav --language es --format vtt --output subtitle.vtt
# Translate a Spanish audio file directly to English
enstruct translate foreign_audio.mp4 --format txt --output english_transcript.txt
# Batch process an entire directory of mixed audio/video files
enstruct batch /path/to/audios --output /path/to/subtitles --format srt
# Detect spoken language of an audio file
enstruct detect-language conversation.wavfrom enstruct.core.transcriber import EnstructTranscriber
# Initialize the transcriber (automatically uses GPU if available)
transcriber = EnstructTranscriber(model_size="large-v3", device="auto")
# Transcribe audio file
result = transcriber.transcribe("interview.m4a")
print(f"Detected Language: {result['language']}")
print(f"Transcript: {result['text']}")
# Generate subtitle formats using SubtitleGenerator
from enstruct.tools.subtitle import SubtitleGenerator
generator = SubtitleGenerator()
generator.generate(result["segments"], "interview.srt", format="srt")from enstruct.tools.youtube import YouTubeDownloader
downloader = YouTubeDownloader()
# Download best-quality audio from YouTube URL and save as MP3
audio_file = downloader.download_audio("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
print(f"Downloaded audio to: {audio_file}")from enstruct.integrations.drive import DriveManager
drive_manager = DriveManager()
# Mount Google Drive
drive_manager.mount_drive()
# Save transcript directly to Drive: /content/drive/MyDrive/Enstruct/outputs
drive_manager.save_file("transcript.srt", "Subtitles content...")Enstruct comes with an interactive, beautiful browser-based Web UI featuring dynamic source input switching and session logs history.
To start the Web UI locally:
python -m interfaces.web.appThen, open http://localhost:7860 in your browser. You can:
- Choose Audio Source: Select between "Upload / Microphone", "Google Drive" (Colab path), or "YouTube URL".
- Configure options: Choose model sizes (tiny to large-v3), output formats (SRT, VTT, TXT), and task (Transcribe or Translate).
- Activity Logs & History: Track session logs inside the "History" tab, refresh listings, or clear all history logs.
- Execute & Download: Run transcription, preview results, and download output files immediately.
Enstruct is free under AGPL v3 for open-source and personal use.
If you want to use Enstruct in a closed-source or commercial product, a commercial license is required. See COMMERCIAL_LICENSE.md for pricing and details.
We welcome contributions from the open-source community!
- Fork the Repository.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Set up development environment and run tests:
pip install pytest pytest
- Commit your Changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the AGPL v3 License. See LICENSE for more information.
Commercial licensing and bespoke features are also available.
