Skip to main content

LipReader

A lightweight, CPU-only lip reading toolkit for command recognition from video.
No GPU required — runs efficiently on Intel i5 and similar systems.

✨ Features

  • CPU-only: No GPU or deep learning dependencies.
  • CLI & API: Use via command line or import as a Python library.
  • Trainable: Learn custom lip motion patterns from your own videos.
  • JSON-based: All data stored in human-readable JSON format.
  • Real-time ready: Optimized for low-latency inference.

📦 Installation

Install in development mode (recommended):

git clone https://github.com/Parhamfakhar1/lipreader.git
cd lipreader
pip install -e .

Requires: Python 3.7+, OpenCV, NumPy

🚀 Usage

Train a new command

lipreader train --video start.mp4 --word start

You can train the same word multiple times with different videos:

lipreader train -v start1.mp4 -w start
lipreader train -v start2.mp4 -w start

Predict from a video

lipreader predict --video test.mp4

Sample output:

🎯 Prediction: start

📈 Probabilities:
   start: 86.3%
   stop: 13.7%

CLI Options

Flag Description
-v, --video Path to input video (MP4, AVI, etc.)
-w, --word Label for training (e.g., "start", "stop")
-d, --data Path to JSON data file (default: lip_data.json)

💻 Python API

Use LipReader directly in your code:

from lipreader import LipReader

# Initialize
reader = LipReader("commands.json")

# Train
reader.train("start.mp4", "start")

# Predict
predicted_word, probabilities = reader.predict("unknown.mp4")
print(f"Detected: {predicted_word}")

🗃️ Data Format

All trained patterns are saved in lip_data.json:

{
  "start": {
    "samples": [
      {
        "avg_ratio": 1.28,
        "ratio_std": 0.25,
        "min_ratio": 0.78,
        "max_ratio": 1.88,
        "frame_count": 120,
        "video": "start1.mp4"
      }
    ]
  }
}

⚠️ Limitations

  • Works best in good lighting with front-facing video.
  • Accuracy depends on clear lip motion (silent articulation works).
  • Not designed for full-sentence lip reading — optimized for short commands.

📄 License

MIT License

Release files for lipreader 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lipreader 0.1.0
File Size Uploaded
lipreader-0.1.0.tar.gz 5.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lipreader 0.1.0
File Interpreter ABI Platform
lipreader-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.4 kB

Release files / lipreader-0.1.0.tar.gz

Download URL lipreader-0.1.0.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
617c3b9220310eee692794afb1066c0d3d4718db20f8c857e1853b7c11fb3987
BLAKE2b-256 checksum
How to use checksums
cee30ca26e45e6390683153eb6a08cd0bec7cef42d810d82afb93ff7aaea5f3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.0

Release files / lipreader-0.1.0-py3-none-any.whl

Download URL lipreader-0.1.0-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e9a5059ab9ddd180f5839ce10a5126114935d02117339771673829286706144
BLAKE2b-256 checksum
How to use checksums
654e8784b0fc07c63132c257e280bd8da9ee2926955edabba4b6789f49864cb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.0

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page