Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

kavehs87/TalkINK

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TalkInk

TalkInk is a portable ESP32-based device that listens to your speech when you press a button, sends the audio to a local server for translation, and displays the translated text on an ePaper screen. It's designed for accessibility, travel, and embedded multilingual communication.


📦 Features

  • Push-to-talk interaction using a physical button
  • Real-time voice recording using ESP32 ADC
  • Sends audio data to a PHP server over Wi-Fi
  • Translates speech into multiple languages using Python (mtranslate)
  • Displays translated text on a Waveshare ePaper display
  • Supports Persian/Farsi text rendering via PHP GD
  • Uses LittleFS to cache images locally

🛠 Hardware Requirements

  • ESP32 Dev Module
  • Analog microphone (connected via ADC)
  • Waveshare ePaper display (with UART interface)
  • Push button (for triggering voice capture)
  • Wi-Fi access point

🧠 Project Structure

ink32/
├── src/                # ESP32 firmware source
│   ├── main.cpp
│   ├── config.h
│   ├── ADCSampler.*    # Audio capture
│   ├── I2SSampler.*    # Base class for I2S/ADC mic
├── lib/
│   └── epaper/         # ePaper display driver
├── server/
│   ├── php/            # Audio receiver and Farsi renderer
│   ├── python/         # Translation using mtranslate
│   └── javascript/     # Optional backend (TypeScript)

🔌 Setup Instructions

ESP32 Firmware

  1. Install PlatformIO
  2. Edit src/config.h with your Wi-Fi credentials and server IP
  3. Build and upload:
    platformio run --target upload

Server Setup

PHP Server

  • Receives and stores audio via index.php
  • Use deliver.php to process and respond with translated text
  • Optional: php-gd-farsi renders Persian text as BMP images

Python Translator

  • Located in server/python/translate.py
  • Uses mtranslate to convert text to other languages
  • Run standalone or integrate with PHP delivery
pip install mtranslate
python translate.py

🎯 How It Works

  1. Press and hold the button to speak
  2. ESP32 records audio and streams to the server
  3. On release, ESP32 requests a translation
  4. Translated text is split into 2 lines and shown on the ePaper

🌍 Supported Languages

  • English → Farsi, French, Chinese, Italian, Russian, Turkish, etc.
  • Configurable via translate() in Python or server logic

📜 License

This project is licensed under the MIT License. You are free to use, modify, and distribute it.


🤝 Contributions

Pull requests welcome! Help improve language support, UI design, or server-side robustness.

About

TalkInk — A speech-to-text and translation device using ESP32, ePaper display, and server-side processing in Python, PHP, and TypeScript.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.