IndicTrans2 is an open-source neural machine translation model developed by AI4Bharat at IIT Madras, designed to translate between 22 scheduled Indian languages and English. Running IndicTrans2 locally on a Windows machine provides complete data privacy, eliminates API costs, and enables offline processing. This guide explains the exact installation steps using Windows Subsystem for Linux (WSL2), Python environment configuration, model execution, and performance optimization.
- Hardware and System Requirements for Local Execution
- Step 1: Enable WSL2 and Install Ubuntu on Windows
- Step 2: Install CUDA Support and Python Environment
- Step 3: Install Dependencies and Model Repositories
- Step 4: Download Model Weights and Write Translation Script
- 1. Define directional model and device
- 2. Load Tokenizer and Model Weights
- 3. Input Text and Target Script Configuration
- 4. Preprocess Input
- 5. Generate Translation
- 6. Postprocess Output
- Optimizing Memory and Performance (CTranslate2 & Quantization)
- Integrating Translation Outputs with AI Content Workflows
- Common Error Codes and Fixes
- What This Guide Does Not Cover
- Sources
Hardware and System Requirements for Local Execution
Before installing IndicTrans2, ensure your Windows machine meets the hardware specifications required to load and run state-of-the-art transformer models smoothly.
IndicTrans2 models typically come in 1B (1 billion) parameter configurations for direct language-to-language translations (Indic-to-English, English-to-Indic, and Indic-to-Indic). Loading these parameters into memory requires adequate GPU VRAM or system RAM.
| Requirement | Minimum Specification | Recommended Specification |
|---|---|---|
| Operating System | Windows 10 (Build 19044+) or Windows 11 | Windows 11 (64-bit) with WSL2 enabled |
| Processor (CPU) | Intel Core i5 (10th Gen) / AMD Ryzen 5 3600 | Intel Core i7 (12th Gen+) / AMD Ryzen 7 5700X+ |
| System Memory (RAM) | 16 GB DDR4 | 32 GB DDR4/DDR5 |
| Graphics Card (GPU) | Nvidia GTX 1660 Super (6 GB VRAM) | Nvidia RTX 4060 / 4070 (8 GB to 12 GB VRAM) |
| Storage | 30 GB free space (SSD required) | 50 GB NVMe SSD space |
| Python Version | Python 3.10 or 3.11 | Python 3.10.x inside WSL2 (Ubuntu 22.04 LTS) |
If you plan to process batch translation files locally or build AI pipelines, an Nvidia GPU with CUDA support is strongly recommended to accelerate inference speed. You can view compatible GPU hardware online: Check Price on Amazon ↗.
Step 1: Enable WSL2 and Install Ubuntu on Windows

While native Windows Python environments can run PyTorch, IndicTrans2 relies on dependencies such as fairseq, sacremoses, indic-nlp-library, and specific tokenizers that build significantly faster and with fewer binary conflicts inside a Linux kernel. Using Windows Subsystem for Linux (WSL2) is the standard method.
- Open PowerShell or Command Prompt as Administrator (Right-click > Run as Administrator).
- Type the following command and press Enter:
“bash
wsl --install
`
- Restart your computer when prompted by Windows.
- After restarting, open the newly installed Ubuntu app from the Start Menu and complete the initial user account creation (enter your chosen username and password).
- Update system packages inside the Ubuntu terminal by running:
`bash
sudo apt update && sudo apt upgrade -y
`
Step 2: Install CUDA Support and Python Environment
To allow your local GPU inside WSL2 to process translation workloads, verify Nvidia CUDA drivers on Windows. WSL2 automatically shares your Windows host Nvidia display driver with the Linux container.
- Verify that your Nvidia drivers are detected inside Ubuntu:
`bash
nvidia-smi
`
If your GPU details and driver versions are displayed, CUDA support is ready.
- Install Python build tools, pip, and virtual environment utilities:
`bash
sudo apt install -y python3-pip python3-venv git build-essential
`
- Create a dedicated directory for your IndicTrans2 project:
`bash
mkdir ~/indictrans2-local && cd ~/indictrans2-local
`
- Create and activate a Python virtual environment to avoid package dependency conflicts:
`bash
python3 -m venv venv
source venv/bin/activate
`
Step 3: Install Dependencies and Model Repositories

AI4Bharat maintains official repositories and model weights hosted on Hugging Face. Follow these exact steps inside your active virtual environment (venv).
- Install PyTorch compiled for CUDA. According to PyTorch's official installation documentation (updated in 2026), run the CUDA-enabled wheel installation:
`bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
`
- Install Hugging Face transformers
,accelerate,sentencepiece, and support libraries:
`bash
pip install transformers accelerate sentencepiece sacremoses subword-nmt
`
- Install the specialized indic-nlp-library
for Indic language preprocessing:
`bash
pip install git+https://github.com/anoopkunchukuttan/indic_nlp_library.git
`
- Install AI4Bharat's official preprocessing repository (IndicTransTokenizer
):
`bash
pip install git+https://github.com/AI4Bharat/IndicTransTokenizer.git
`
Step 4: Download Model Weights and Write Translation Script
IndicTrans2 offers three primary checkpoint directional models:
- ai4bharat/indictrans2-en-indic-1B
: Translates from English to 22 Indian languages. - ai4bharat/indictrans2-indic-en-1B
: Translates from 22 Indian languages to English. - ai4bharat/indictrans2-indic-indic-1B
: Translates between any of the 22 Indian languages.
Supported 8th Schedule Indian languages include Hindi (hin_Deva), Bengali (ben_Beng), Tamil (tam_Tamld), Telugu (tel_Telu), Marathi (mar_Deva), Gujarati (guj_Gujr), Kannada (kan_Knda), Malayalam (mal_Mlym), Punjabi (pan_Guru), Odia (ory_Oory), Assamese (asm_Beng), and 11 others.
Create a Python script named test_translation.py inside your project folder:
`python
import torch
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
from IndicTransTokenizer import IndicProcessor, IndicTransTokenizer
1. Define directional model and device
model_name = "ai4bharat/indictrans2-en-indic-1B"
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Loading model on {device}...")
2. Load Tokenizer and Model Weights
tokenizer = IndicTransTokenizer(direction="en-indic")
model = AutoModelForSeq2SeqLM.from_pretrained(
model_name,
trust_remote_code=True,
torch_dtype=torch.float16 if device == "cuda" else torch.float32
).to(device)
ip = IndicProcessor(inference=True)
3. Input Text and Target Script Configuration
input_sentences = [
"Digital infrastructure in India has made public services accessible to millions of citizens."
]
src_lang = "eng_Latn"
tgt_lang = "hin_Deva" # Hindi in Devanagari script
4. Preprocess Input
batch = ip.preprocess_batch(input_sentences, src_lang=src_lang, tgt_lang=tgt_lang)
inputs = tokenizer(batch, src=True, return_tensors="pt").to(device)
5. Generate Translation
with torch.no_grad():
generated_tokens = model.generate(
**inputs,
min_length=0,
max_length=256,
num_beams=5,
num_return_sequences=1
)
6. Postprocess Output
with tokenizer.as_target_tokenizer():
generated_tokens = tokenizer.batch_decode(generated_tokens, src=False)
translations = ip.postprocess_batch(generated_tokens, lang=tgt_lang)
print("\n--- Translation Output ---")
print(f"Source Text: {input_sentences[0]}")
print(f"Translated Text ({tgt_lang}): {translations[0]}")
`
Run the script in your WSL terminal:
`bash
python test_translation.py
`
Upon first run, Hugging Face will automatically download the 1B model weights (~4.2 GB) to your local cache (~/.cache/huggingface/hub/). Subsequent runs will load instantly from your hard drive without requiring internet access.
Optimizing Memory and Performance (CTranslate2 & Quantization)
Running raw PyTorch models in Float32 mode can consume up to 8 GB of VRAM. If your graphics card has lower VRAM (e.g., 4 GB or 6 GB), you can reduce GPU resource usage by using quantization or switching to CTranslate2.
1. Float16 Execution
Ensure torch_dtype=torch.float16 is enabled in your script when calling .from_pretrained(). This cuts VRAM consumption by nearly 50% with negligible loss in translation BLEU/chrF quality scores.
2. CTranslate2 Conversion
CTranslate2 is an optimized inference engine for Transformer models that supports 8-bit quantization (INT8). Running IndicTrans2 via CTranslate2 reduces latency by 2x to 4x and allows inference on low-cost servers or developer workstations.
If you publish local translation API endpoints online for web applications, reliable cloud hosting platforms like Hostinger India provide Linux VPS instances where CTranslate2 quantized models run smoothly on CPU cores.
Integrating Translation Outputs with AI Content Workflows
Once your local IndicTrans2 instance generates accurate regional language translations, you can pipe the output into advanced generative workflows:
- Voice Generation: Translate English text scripts into Hindi, Tamil, or Marathi using IndicTrans2, then generate natural, emotional regional voiceovers using AI speech engines like ElevenLabs.
- Search Engine Optimization: Expand your digital footprint by translating blog posts into Indic languages for local SEO, or streamline multicultural article generation using platforms like Writesonic.
To estimate hardware costs, token budgets, or operational savings of running local open-source models versus API endpoints, check out our Free Interactive Smart Calculators & Decision Tools Hub.
Common Error Codes and Fixes
| Error Message / Code | Root Cause | Exact Resolution Step |
|---|---|---|
CUDA out of memory | GPU VRAM capacity exceeded during model loading or beam search. | Add torch_dtype=torch.float16 to script, reduce num_beams to 1 or 2, or lower batch size. |
ModuleNotFoundError: No module named ‘IndicTransTokenizer’ | Git repository package was not installed in active environment. | Run pip install git+https://github.com/AI4Bharat/IndicTransTokenizer.git inside active venv. |
OSError: Incorrect path or model name | Wrong Hugging Face repository identifier specified. | Verify repository string: ai4bharat/indictrans2-en-indic-1B or ai4bharat/indictrans2-indic-en-1B. |
wsl: command not found | WSL component disabled or missing on host Windows build. | Open Windows Features dialog, check "Windows Subsystem for Linux", reboot host PC. |
What This Guide Does Not Cover
- Model Fine-Tuning: This tutorial covers local inference setup only. Fine-tuning IndicTrans2 on custom datasets requires multi-GPU training setups (Nvidia A100/H100) and deep-learning infrastructure.
- Direct Native Windows Execution without WSL: Installing fairseq` dependencies natively on Windows Command Prompt without WSL2 often causes C++ compilation errors and is not officially supported by AI4Bharat.
- Real-time Audio Speech Translation: IndicTrans2 processes text inputs. For end-to-end speech-to-speech translation, it must be paired with Speech-to-Text models (like Whisper) and Text-to-Speech models.
Frequently Asked Questions
Can I run IndicTrans2 locally on Windows without a dedicated Nvidia GPU?
Automate workflows, generate Indic audio, and accelerate research with tested production AI platforms.
Is IndicTrans2 free for commercial use?
Yes. IndicTrans2 is released by AI4Bharat under open-source licensing (MIT License), allowing developers, researchers, and enterprises to build local products, services, and APIs without paying per-character translation API fees.
How many Indian languages are supported by IndicTrans2?
IndicTrans2 supports 22 scheduled official languages of India (including Hindi, Bengali, Tamil, Telugu, Marathi, Gujarati, Kannada, Malayalam, Odia, Punjabi, Assamese, Sanskrit, and others) plus English, supporting direct Indic-to-English, English-to-Indic, and Indic-to-Indic translations.
What is the difference between IndicTrans2 and Bhashini API?
IndicTrans2 is the underlying open-source translation model developed by AI4Bharat at IIT Madras. Bhashini is the National Language Translation Mission initiative by MeitY, which hosts cloud API endpoints built upon models like IndicTrans2.
Sources
- Bhashini Official Portal: https://bhashini.gov.in/
- IndiaAI Initiative: https://indiaai.gov.in/
- AI4Bharat IndicTrans2 Documentation: https://github.com/AI4Bharat/IndicTrans2
- PyTorch Official Hardware Setup Guide: https://pytorch.org/get-started/locally/







