آموزش قدم‌به‌قدم OCR-STT Tool

استخراج متن از عکس و PDF و تبدیل گفتار به نوشتار — از نصب تا اجرای اولین دستور، در گوشی و کامپیوتر

اندروید و آیفون ویندوز لینوکس مک پشتیبانی از فارسی

بخش اول: استفاده با گوشیسه راه پیش رو داری — از ساده به سخت مرتب شده

راه پیشنهادی اندروید: ترموکس (Termux) پیشنهاد ما

ترموکس یک ترمینال واقعی لینوکس داخل اندروید است و خوشبختانه موتور OCR (تسرکت) هم داخل مخازن آن هست؛ یعنی بدون نیاز به فایل APK جدا، همان نسخه کامپیوتر را روی گوشی اجرا می‌کنی.

  1. نصب ترموکس: از F-Droid یا صفحه GitHub ترموکس نصب کن (نسخه گوگل‌پلی قدیمی و خراب است).
  2. دسترسی به حافظه: این دستور را یک‌بار بزن و دسترسی را تأیید کن تا به عکس‌ها و فایل‌هایت برسی:
    termux
    termux-setup-storage
  3. نصب ابزارهای لازم (دقت: پکیج ترموکس فقط زبان انگلیسی را همراه دارد):
    termux
    pkg update && pkg install -y python tesseract poppler ffmpeg git curl
  4. افزودن زبان فارسی به تسرکت: فایل زبان را دستی داخل پوشه tessdata بگذار و تست کن:
    termux
    mkdir -p $PREFIX/share/tessdata
    curl -L -o $PREFIX/share/tessdata/fas.traineddata https://github.com/tesseract-ocr/tessdata/raw/main/fas.traineddata
    tesseract --list-langs
    اگر در خروجی fas را دیدی یعنی فارسی فعال شده است.
  5. دریافت پروژه:
    termux
    git clone https://github.com/Alvandcode/ocr-stt-tool.git
    cd ocr-stt-tool
    pip install -r requirements.txt
  6. اولین اجرا: فایل‌ها داخل /sdcard هستند؛ مثلاً:
    termux
    python -m app.cli pdf /sdcard/Download/book.pdf --max-pages 3
    python -m app.cli image /sdcard/DCIM/photo.jpg --ocr-lang fas+eng
    python -m app.cli audio /sdcard/Download/voice.wav --lang fa-IR
نکته مهم حافظه گوشیفایل صوتی طولانی را یک‌جا رونویسی نکن؛ ابزار کل فایل را در RAM می‌خواند. فایل‌های بالای ~۳۰ دقیقه را اول با اپ‌های برش صدا تکه‌تکه کن.

راه پیشرفته اندروید: فایل APK آزمایشی

ساخت APK با Buildozer فقط روی لینوکس انجام می‌شود و چون باینری تسرکت داخل پکیج موبایل نیست، بخش OCR عکس روی APK کار نمی‌کند. اگر فقط استخراج متن PDF می‌خواهی:

  1. روی یک سیستم لینوکس، مخزن را کلون کن و
    bash
    pip install buildozer
    buildozer -v android debug
  2. فایل خروجی داخل پوشه bin/ ساخته می‌شود؛ آن را به گوشی منتقل و نصب کن.

آیفون (iOS) توصیه نمی‌شود

اپل اجازه نصب ابزارهای خط فرمان مثل تسرکت را نمی‌دهد، پس اجرای مستقیم پروژه روی آیفون عملی نیست. دو جایگزین داری:

  • راه ساده: فایل را با همان گوشی برای خودت بفرست و روی کامپیوتر یا داکر اجرا کن (بخش‌های بعدی).
  • راه فنی: بیلد Kivy-iOS فقط رابط گرافیکی را بالا می‌آورد و OCR عکس همچنان کار نمی‌کند؛ وقتش را فقط اگر توسعه‌دهنده iOS هستی بگذار.

بخش دوم: ویندوز (۱۰ و ۱۱)حدود ۱۰ دقیقه تا اولین استخراج متن

  1. نصب پایتون 3.12: از python.org نسخه 3.12 را دانلود کن (نه 3.13 به بالا — موتور گفتار و whisper رویشان نصب نمی‌شوند) و موقع نصب تیک Add python.exe to PATH را حتماً بزن. اگر چند نسخه داری، در ادامه به‌جای pip و python بنویس py -3.12 -m pip و py -3.12 -m app.cli.
  2. نصب تسرکت: نصب‌کننده UB-Mannheim را بگیر و موقع نصب زبان Persian (fas) را هم انتخاب کن. بعد در CMD تست کن:
    cmd
    tesseract --version
    tesseract --list-langs
    اگر دستور شناخته نشد، پوشه نصب (مثلاً C:\Program Files\Tesseract-OCR) را به PATH ویندوز اضافه کن.
  3. دریافت و نصب پروژه:
    cmd
    git clone https://github.com/Alvandcode/ocr-stt-tool.git
    cd ocr-stt-tool
    pip install -r requirements.txt
  4. اولین دستورها:
    cmd
    python -m app.cli pdf examples\sample.pdf
    python -m app.cli image "C:\Users\You\Pictures\note.jpg" --ocr-lang fas+eng
    python -m app.cli audio voice.wav --lang fa-IR -o result.txt
    --- Page 1 ---
    Hello OCR-STT
مسیر فارسی و فاصله‌داراگر مسیر فایل فارسی است یا فاصله دارد، حتماً داخل گیومه بگذار: "C:\My Docs\کتاب.pdf"

بخش سوم: لینوکس (اوبونتو / دبیان)سریع‌ترین مسیر؛ همه‌چیز با یک خط نصب می‌شود

  1. نصب یکجای وابستگی‌های سیستمی:
    bash
    sudo apt update && sudo apt install -y python3 python3-pip \
      tesseract-ocr tesseract-ocr-fas tesseract-ocr-eng poppler-utils ffmpeg git
  2. دریافت و نصب پروژه:
    bash
    git clone https://github.com/Alvandcode/ocr-stt-tool.git
    cd ocr-stt-tool
    pip install -r requirements.txt
  3. اولین دستورها + خروجی JSON و زیرنویس:
    bash
    python -m app.cli pdf examples/sample.pdf
    python -m app.cli pdf scan.pdf --ocr-fallback --ocr-lang fas+eng
    python -m app.cli audio speech.wav --lang fa-IR --format json -o res.json
    pip install faster-whisper
    python -m app.cli audio speech.wav --engine whisper --format srt -o subs.srt
چرا لینوکس بهترین است؟ساخت APK، داکر و نصب فارسی تسرکت همه بدون دردسر اضافه (PATH و نصب‌کننده جدا) انجام می‌شود.

بخش چهارم: مک (macOS)با Homebrew در سه قدم

  1. نصب Homebrew (اگر نداری، دستورش در سایت brew.sh است) و بعد:
    bash
    brew install python tesseract tesseract-lang poppler ffmpeg git
  2. دریافت و نصب پروژه:
    bash
    git clone https://github.com/Alvandcode/ocr-stt-tool.git
    cd ocr-stt-tool
    pip3 install -r requirements.txt
  3. اجرا:
    bash
    python3 -m app.cli image photo.jpg --ocr-lang fas+eng --normalize-fa
    python3 -m app.cli audio voice.wav --lang fa-IR

بخش پنجم: رابط گرافیکی (بدون تایپ دستور)برای هر سه سیستم‌عامل یکسان است

  1. اول پکیج گرافیکی را نصب کن:
    bash
    pip install -r requirements-gui.txt
    python -m app.gui_kivy
  2. از لیست فایل‌ها، فایلت را انتخاب کن (فیلتر فرمت‌ها فعال است).
  3. زبان گفتار (fa-IR/en-US)، زبان OCR و موتور (google/whisper) را از منوها بگذار؛ تیک Normalize FA خروجی فارسی را تمیز می‌کند.
  4. دکمه Image / PDF / Audio به متن را بزن؛ نتیجه در کادر اسکرول‌دار می‌آید و موتور و زمان اجرا هم در نوار وضعیت نمایش داده می‌شود.

بخش ششم: راه میان‌بر — داکربدون نصب پایتون و تسرکت؛ فقط داکر کافی است

bash
docker build -t ocrstt:1.2.0 .
docker run --rm -v "$PWD/examples:/data" ocrstt:1.2.0 pdf /data/sample.pdf
docker run --rm -v "$PWD:/work" ocrstt:1.2.0 audio /work/speech.wav --lang fa-IR --format json
در ویندوزبه‌جای $PWD مسیر کامل پوشه را بگذار، مثلاً -v "C:\Docs:/work". اول Docker Desktop را نصب و اجرا کن.

بخش هفتم: عیب‌یابی سریع۹۰٪ خطاها یکی از این شش‌تاست

نشانهعلتراه‌حل
Tesseract binary not foundتسرکت نصب نیست یا در PATH نیستبخش نصب سیستم‌عامل خودت را دوباره انجام بده و tesseract --version را تست کن
خروجی PDF خالی استPDF اسکن‌شده و بدون لایه متن استبا --ocr-fallback اجرا کن (نیازمند poppler + تسرکت)
SpeechRecognition / aifc خطا می‌دهد، یا Pillow و faster-whisper نصب نمی‌شوندپایتون 3.13+ است؛ این کتابخانه‌ها رویش ویل/ماژول ندارندپایتون 3.12 نصب کن و با py -3.12 اجرا کن؛ یا فقط استخراج PDF را با همین نسخه انجام بده
Unsupported audio extension (mp3…)فقط wav/aiff/flac مستقیم خوانده می‌شودبا ffmpeg تبدیل کن: ffmpeg -i in.mp3 out.wav
سرویس گوگل در دسترس نیست / اینترنتقطعی نت، فیلترینگ یا سقف سهمیهاتصال را چک کن یا آفلاین با --engine whisper کار کن
حروف فارسی به‌هم‌ریخته (ي / ك عربی)خروجی خام OCR استفلگ --normalize-fa را اضافه کن

یادآوری حریم خصوصی

حالت گفتار با موتور google صدا را به سرور گوگل می‌فرستد و اینترنت می‌خواهد. برای فایل‌های حساس از whisper آفلاین استفاده کن.