استخراج متن از عکس و PDF و تبدیل گفتار به نوشتار — از نصب تا اجرای اولین دستور، در گوشی و کامپیوتر
ترموکس یک ترمینال واقعی لینوکس داخل اندروید است و خوشبختانه موتور OCR (تسرکت) هم داخل مخازن آن هست؛ یعنی بدون نیاز به فایل APK جدا، همان نسخه کامپیوتر را روی گوشی اجرا میکنی.
termux-setup-storage
pkg update && pkg install -y python tesseract poppler ffmpeg git curl
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
git clone https://github.com/Alvandcode/ocr-stt-tool.git cd ocr-stt-tool pip install -r requirements.txt
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
ساخت APK با Buildozer فقط روی لینوکس انجام میشود و چون باینری تسرکت داخل پکیج موبایل نیست، بخش OCR عکس روی APK کار نمیکند. اگر فقط استخراج متن PDF میخواهی:
pip install buildozer buildozer -v android debug
اپل اجازه نصب ابزارهای خط فرمان مثل تسرکت را نمیدهد، پس اجرای مستقیم پروژه روی آیفون عملی نیست. دو جایگزین داری:
tesseract --version tesseract --list-langs
git clone https://github.com/Alvandcode/ocr-stt-tool.git cd ocr-stt-tool pip install -r requirements.txt
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
sudo apt update && sudo apt install -y python3 python3-pip \ tesseract-ocr tesseract-ocr-fas tesseract-ocr-eng poppler-utils ffmpeg git
git clone https://github.com/Alvandcode/ocr-stt-tool.git cd ocr-stt-tool pip install -r requirements.txt
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
brew install python tesseract tesseract-lang poppler ffmpeg git
git clone https://github.com/Alvandcode/ocr-stt-tool.git cd ocr-stt-tool pip3 install -r requirements.txt
python3 -m app.cli image photo.jpg --ocr-lang fas+eng --normalize-fa python3 -m app.cli audio voice.wav --lang fa-IR
pip install -r requirements-gui.txt python -m app.gui_kivy
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
| نشانه | علت | راهحل |
|---|---|---|
| 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 آفلاین استفاده کن.