Skip to content

Latest commit

ย 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽค Voxcribe โ€” Local Video/Audio Transcription Tool

Python License Engine Privacy

A privacy-first, local transcription tool for studying educational videos and audio content.

Voxcribe converts your local video/audio files into high-quality transcripts โ€” with timestamps, subtitle files, and structured JSON โ€” all processed entirely on your machine.

๐ŸŒŸ What's New in v2

Voxcribe started as a Bengali-only speech-to-text tool. Version 2 evolves it into a multilingual transcription tool while keeping its Bengali heritage and simple design.

v1 v2
OpenAI Whisper faster-whisper (CTranslate2, faster & more efficient)
Bengali only (language="bn") Multilingual with auto-detection
Plain text output TXT + Timestamped TXT + SRT + JSON
No timestamps Per-segment timestamps
base model small model (better quality default)
CPU only, no choice CPU (int8) + optional CUDA (float16)
No VAD Voice Activity Detection enabled by default

โœจ Features

  • ๐ŸŽฏ Multilingual: Bengali, English, Hindi, and 90+ languages supported by Whisper
  • ๐Ÿ”’ Privacy-first: All processing happens locally โ€” no uploads, no cloud, no tracking
  • โšก Fast: Uses faster-whisper (CTranslate2) for efficient CPU/GPU inference
  • โฑ๏ธ Timestamps: Every segment has start/end times
  • ๐Ÿ“„ Multiple outputs: TXT, Timestamped TXT, SRT subtitles, JSON
  • ๐ŸŽค VAD: Voice Activity Detection reduces hallucination during silence
  • ๐ŸŒ Auto-detect: Automatic language detection with confidence score
  • ๐Ÿ—ฃ๏ธ Mixed language: Handles Bangla+English, Banglish, technical terms naturally
  • ๐Ÿ“บ Video support: MP4, MKV, AVI, MOV, WebM โ€” audio extracted automatically
  • ๐ŸŽต Audio support: MP3, WAV, M4A, MPEG, MPGA
  • ๐Ÿ’ป CPU-friendly: Works without a GPU using int8 quantization
  • ๐ŸŽฎ Optional GPU: CUDA support for faster processing
  • ๐Ÿ“ด Offline: After model download, works without internet

๐Ÿš€ Quick Start

Prerequisites

Installation

# Clone the repository
git clone https://github.com/Ratul345/Voxcribe.git
cd Voxcribe

# Create virtual environment (recommended)
python -m venv .venv
.venv\Scripts\activate     # Windows (.venv\Scripts\Activate.ps1 in PowerShell)
# source .venv/bin/activate  # macOS/Linux

# Install project in editable mode (creates the `voxcribe` command)
pip install -e .

Note: The first time you use a model, it will be downloaded automatically (~460 MB for small). After that, transcription works offline. Models are cached in ~/.cache/huggingface/hub/.

Basic Usage

# Transcribe with auto language detection (default)
voxcribe video.mp4

# Specify language
voxcribe lecture.mp3 --language bn
voxcribe podcast.wav --language en

# Choose model quality
voxcribe audio.m4a --model medium

# Multiple output formats (timestamped TXT, clean plain TXT, SRT, JSON)
voxcribe video.mp4 --format txt,plain,srt,json

# Custom output path
voxcribe video.mp4 --output my_transcript

# Backward-compatible / development alias (works identically)
python transcribe.py video.mp4

๐Ÿ“‹ Models

Model Size Speed Quality Best For
tiny ~75 MB โšก Fastest ๐ŸŸก Basic Quick tests, short clips
base ~145 MB โšก Fast ๐ŸŸข Good Lightweight, faster processing
small ~460 MB ๐ŸŸก Balanced ๐ŸŸข Recommended Default โ€” best quality/speed balance
medium ~1.5 GB ๐Ÿ”ด Slow ๐Ÿ”ต High Important content, better accuracy
large-v3 ~3 GB ๐Ÿ”ด Slowest ๐Ÿ”ต Highest Maximum quality, needs more RAM

๐Ÿ’ก Recommendation: Start with small. It provides noticeably better accuracy than base, especially for Bengali and mixed-language content, while remaining practical on a normal Windows PC with CPU.

โš ๏ธ RAM usage: medium needs ~5 GB RAM, large-v3 needs ~10 GB+. If your PC has 8 GB RAM, stick with small or base.

๐ŸŒ Language Support

Voxcribe supports all languages available in the Whisper model, including:

Code Language
auto Automatic detection (default)
bn Bengali / เฆฌเฆพเฆ‚เฆฒเฆพ
en English
hi Hindi / เคนเคฟเคจเฅเคฆเฅ€
es Spanish
fr French
de German
ja Japanese
zh Chinese
ar Arabic
... 90+ languages

Mixed Language

Voxcribe does not translate speech. It transcribes what was actually spoken.

If someone says:

"เฆ†เฆœ เฆ†เฆฎเฆฐเฆพ React-เฆเฆฐ component architecture เฆจเฆฟเฆฏเฆผเง‡ เฆ•เฆฅเฆพ เฆฌเฆฒเฆฌ"

The transcript will be:

เฆ†เฆœ เฆ†เฆฎเฆฐเฆพ React-เฆเฆฐ component architecture เฆจเฆฟเฆฏเฆผเง‡ เฆ•เฆฅเฆพ เฆฌเฆฒเฆฌ

English technical terms inside Bengali speech are preserved naturally.

๐Ÿ“„ Output Formats

TXT โ€” Timestamped text (default)

[00:00:03] Hello everyone.
[00:00:08] Today we're going to talk about the first concept.
[00:00:15] The first important concept is...

Best for: studying and referencing specific parts of a video.

Plain TXT (--format plain)

Hello everyone.

Today we're going to talk about the first concept.

The first important concept is...

Best for: reading, studying, and pasting into AI chat for discussion without timestamps.

SRT โ€” Standard subtitle format (--format srt)

1
00:00:03,000 --> 00:00:08,000
Hello everyone.

2
00:00:08,000 --> 00:00:15,000
Today we're going to talk about the first concept.

Best for: loading as subtitles in video players (VLC, YouTube, etc.).

JSON โ€” Structured data (--format json)

{
  "source": "video.mp4",
  "language": "en",
  "language_probability": 0.98,
  "duration": 123.45,
  "segments": [
    {"start": 3.0, "end": 8.0, "text": "Hello everyone."}
  ]
}

Best for: programmatic analysis, developer integrations, and AI pipelines.

๐Ÿ”ง CLI Reference

usage: voxcribe [-h] [-m MODEL] [-l LANGUAGE] [-o OUTPUT] [-f FORMAT]
                [--device {cpu,cuda}] [--compute-type TYPE]
                [--vad | --no-vad] [--task {transcribe,translate}]
                [-v] [--version]
                input_file
Argument Short Default Description
input_file (required) Path to audio/video file
--model -m small Model: tiny, base, small, medium, large-v3, turbo
--language -l auto Language code or "auto"
--output -o output/<name> Output path/base name
--format -f txt Output formats (comma-separated): txt, plain, srt, json
--device cpu Compute device: cpu, cuda
--compute-type int8 Precision: int8 (CPU default), float16 (GPU), float32
--vad (on) Enable VAD (default)
--no-vad Disable VAD
--task transcribe Task: transcribe (default) or translate (to English)
--verbose -v Show debug output
--version Show version

๐Ÿ’ป CPU Usage

Voxcribe works on CPU by default โ€” no GPU required.

# Default: CPU with int8 quantization
voxcribe video.mp4

# Explicitly:
voxcribe video.mp4 --device cpu --compute-type int8

This is the recommended setup for most Windows PCs.

๐ŸŽฎ GPU / CUDA Usage (Optional)

If you have an NVIDIA GPU with CUDA configured:

voxcribe video.mp4 --device cuda --compute-type float16

Requirements for GPU:

  • NVIDIA GPU with CUDA support
  • CUDA toolkit installed
  • cuDNN installed
  • pip install nvidia-cublas-cu12 nvidia-cudnn-cu12 (or equivalent for your CUDA version)

Note: If you request --device cuda and CUDA is not available, Voxcribe will show a clear error instead of silently falling back to CPU.

๐Ÿ”Š FFmpeg Setup

Voxcribe needs FFmpeg to decode audio/video files.

Windows

Option A โ€” Automatic (recommended for beginners):

pip install imageio-ffmpeg

This installs a bundled FFmpeg binary. Voxcribe finds it automatically.

Option B โ€” Manual:

  1. Download FFmpeg from https://ffmpeg.org/download.html
  2. Extract to a folder (e.g. C:\ffmpeg)
  3. Add C:\ffmpeg\bin to your system PATH

macOS

brew install ffmpeg

Linux

sudo apt install ffmpeg

๐Ÿ“ Project Structure

Voxcribe/
โ”œโ”€โ”€ pyproject.toml         # Build & console script definition (voxcribe = voxcribe.cli:main)
โ”œโ”€โ”€ transcribe.py          # Backward-compatible CLI entry point
โ”œโ”€โ”€ voxcribe/
โ”‚   โ”œโ”€โ”€ __init__.py        # Package metadata
โ”‚   โ”œโ”€โ”€ cli.py             # Argument parsing & orchestration
โ”‚   โ”œโ”€โ”€ transcriber.py     # faster-whisper model & transcription
โ”‚   โ”œโ”€โ”€ exporters.py       # TXT, Plain, SRT, JSON output writers
โ”‚   โ””โ”€โ”€ utils.py           # FFmpeg, validation, formatting
โ”œโ”€โ”€ requirements.txt       # Dependencies
โ”œโ”€โ”€ README.md              # Documentation
โ”œโ”€โ”€ CONTRIBUTING.md        # Contribution guide
โ”œโ”€โ”€ LICENSE                # MIT License
โ””โ”€โ”€ .gitignore

๐ŸŽฏ Examples

Transcribe a Bengali lecture

voxcribe bangla_lecture.mp4 --language bn --format txt,srt

Transcribe an English podcast with all outputs

voxcribe podcast.mp3 --language en --format txt,plain,srt,json

Auto-detect language from a Reel or educational clip

voxcribe reel_video.mp4 --format txt

High-quality transcription

voxcribe important_lecture.mp4 --model medium --format txt,srt,json

Quick transcription of a short clip

voxcribe clip.mp3 --model tiny

๐Ÿ” Troubleshooting

"FFmpeg not found"

  • Install imageio-ffmpeg: pip install imageio-ffmpeg
  • Or install FFmpeg system-wide and add it to PATH

"CUDA is not available"

  • You requested --device cuda but CUDA is not configured
  • Run with --device cpu (default) or install CUDA toolkit

"Not enough memory"

  • Use a smaller model: --model base or --model tiny
  • Close other applications to free RAM
  • large-v3 requires 10+ GB RAM

"Failed to download model"

  • Check your internet connection
  • The model downloads only once and is cached locally
  • Cache location: ~/.cache/huggingface/hub/

Poor transcription quality

  • Use a larger model: --model medium or --model large-v3
  • Specify the language explicitly: --language bn
  • Ensure the audio is clear with minimal background noise
  • Try --no-vad if VAD is cutting off speech

Slow transcription

  • Use a smaller model: --model base or --model tiny
  • If you have a CUDA GPU: --device cuda --compute-type float16

๐Ÿ”’ Privacy

Voxcribe is designed for privacy:

  • โœ… All processing is local โ€” audio/video never leaves your machine
  • โœ… No analytics or telemetry โ€” zero tracking
  • โœ… No cloud APIs โ€” no OpenAI API key needed
  • โœ… No automatic uploads โ€” your content stays yours
  • โœ… Offline capable โ€” after model download, no internet needed

The only network activity is the one-time model download from Hugging Face when you first use a model.

๐Ÿ“ License

MIT License โ€” see LICENSE for details.

๐Ÿ™ Acknowledgments

  • faster-whisper โ€” CTranslate2-based Whisper reimplementation by SYSTRAN
  • OpenAI Whisper โ€” Original Whisper speech recognition research by OpenAI
  • CTranslate2 โ€” Fast inference engine

๐Ÿ“ž Support

  • ๐Ÿ› Bug Reports: GitHub Issues
  • ๐Ÿ’ก Feature Requests: Open a discussion
  • โ“ Questions: Check the troubleshooting section above

โญ If Voxcribe helps your learning, give it a star!

About

BanglaSTT ๐ŸŽ™๏ธ | Bangla Speech-to-Text using OpenAI Whisper. Fast, accurate, and open-source transcription for 230M+ Bangla speakers.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages