A sophisticated real-time transcription and translation application with separated concerns, featuring voice-to-text conversion, multi-language translation, and Named Entity Recognition (NER) capabilities.
This project follows a microservices architecture with clear separation of concerns:
βββββββββββββββββββ
β Frontend β React App (Voice β Text via Chrome Web Speech API)
β (Port 80) β
ββββββββββ¬βββββββββ
β WebSocket
β
ββββββββββΌβββββββββ
β Backend β Django Channels (Translation + NER Processing)
β (Port 8000) β
ββββββββββ¬βββββββββ
β
ββββββββββΌβββββββββ
β Redis β Channel Layer & Message Broker
β (Port 6379) β
βββββββββββββββββββ
Real-time-translator/)Responsibility: Voice input capture and text display
react-speech-recognition)Technologies:
back2/)Responsibility: Translation and NER processing
Technologies:
Supported Languages for NER:
en_core_web_sm)es_core_news_sm)it_core_news_sm)xx_ent_wiki_sm)nginx_backend_server/)Responsibility: Additional NER model serving (optional)
Clone the repository
git clone <repository-url>
cd RTT_deploy
Start the services
docker-compose up --build
This will start:
Access the application
http://localhostRTT_deploy/
βββ Real-time-translator/ # Frontend React application
β βββ src/
β β βββ components/ # React components
β β β βββ voiceInput.js # Voice capture component
β β β βββ translationBoxes.js
β β β βββ ...
β β βββ pages/
β β β βββ translationPage.js # Main translation page
β β βββ connection/
β β βββ wsConnection.js # WebSocket connection
β βββ Dockerfile
β βββ package.json
β
βββ back2/ # Backend Django application
β βββ app/
β β βββ consumers.py # WebSocket consumers (Translation + NER)
β β βββ routing.py # WebSocket routing
β β βββ views.py
β βββ back2/
β β βββ settings.py
β β βββ asgi.py # ASGI configuration
β βββ requirements.txt
β βββ Dockerfile
β
βββ nginx_backend_server/ # NER model server
β βββ NER_models.py # Advanced NER models
β βββ Dockerfile
β
βββ docker-compose.yml # Service orchestration
cd back2
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
daphne back2.asgi:channel_layer --port 8000 -b 0.0.0.0
cd Real-time-translator
npm install
npm start
The application uses default configurations. For production, consider setting:
REDIS_URL: Redis connection stringALLOWED_HOSTS: Django allowed hostsCORS_ORIGINS: Frontend origin URLsThe system supports translation between any languages supported by Google Translate. However, NER is currently optimized for:
ws://localhost:8000/ws/translate/{
"transcript": "Hello, my name is John.",
"fromLanguage": "en",
"toLanguage": "es"
}
{
"translation": "Hola, mi nombre es John.",
"speechHighlitedWords": {
"label": ["PERSON"],
"entity": ["John"]
},
"highlightedWords": {
"label": ["PERSON"],
"entity": ["John"]
}
}
[Add your license information here]
[Add contribution guidelines here]
[Add author information here]
6 commits
Python
71.7%
JavaScript
11.0%
HTML
5.0%
Roff
4.8%
Makefile
3.2%
Batchfile
3.2%
A sophisticated real-time transcription and translation application with separated concerns, featuring voice-to-text conversion, multi-language translation, and Named Entity Recognition (NER) capabilities.
This project follows a microservices architecture with clear separation of concerns:
βββββββββββββββββββ
β Frontend β React App (Voice β Text via Chrome Web Speech API)
β (Port 80) β
ββββββββββ¬βββββββββ
β WebSocket
β
ββββββββββΌβββββββββ
β Backend β Django Channels (Translation + NER Processing)
β (Port 8000) β
ββββββββββ¬βββββββββ
β
ββββββββββΌβββββββββ
β Redis β Channel Layer & Message Broker
β (Port 6379) β
βββββββββββββββββββ
Real-time-translator/)Responsibility: Voice input capture and text display
react-speech-recognition)Technologies:
back2/)Responsibility: Translation and NER processing
Technologies:
Supported Languages for NER:
en_core_web_sm)es_core_news_sm)it_core_news_sm)xx_ent_wiki_sm)nginx_backend_server/)Responsibility: Additional NER model serving (optional)
Clone the repository
git clone <repository-url>
cd RTT_deploy
Start the services
docker-compose up --build
This will start:
Access the application
http://localhostRTT_deploy/
βββ Real-time-translator/ # Frontend React application
β βββ src/
β β βββ components/ # React components
β β β βββ voiceInput.js # Voice capture component
β β β βββ translationBoxes.js
β β β βββ ...
β β βββ pages/
β β β βββ translationPage.js # Main translation page
β β βββ connection/
β β βββ wsConnection.js # WebSocket connection
β βββ Dockerfile
β βββ package.json
β
βββ back2/ # Backend Django application
β βββ app/
β β βββ consumers.py # WebSocket consumers (Translation + NER)
β β βββ routing.py # WebSocket routing
β β βββ views.py
β βββ back2/
β β βββ settings.py
β β βββ asgi.py # ASGI configuration
β βββ requirements.txt
β βββ Dockerfile
β
βββ nginx_backend_server/ # NER model server
β βββ NER_models.py # Advanced NER models
β βββ Dockerfile
β
βββ docker-compose.yml # Service orchestration
cd back2
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
daphne back2.asgi:channel_layer --port 8000 -b 0.0.0.0
cd Real-time-translator
npm install
npm start
The application uses default configurations. For production, consider setting:
REDIS_URL: Redis connection stringALLOWED_HOSTS: Django allowed hostsCORS_ORIGINS: Frontend origin URLsThe system supports translation between any languages supported by Google Translate. However, NER is currently optimized for:
ws://localhost:8000/ws/translate/{
"transcript": "Hello, my name is John.",
"fromLanguage": "en",
"toLanguage": "es"
}
{
"translation": "Hola, mi nombre es John.",
"speechHighlitedWords": {
"label": ["PERSON"],
"entity": ["John"]
},
"highlightedWords": {
"label": ["PERSON"],
"entity": ["John"]
}
}
[Add your license information here]
[Add contribution guidelines here]
[Add author information here]
6 commits
Python
71.7%
JavaScript
11.0%
HTML
5.0%
Roff
4.8%
Makefile
3.2%
Batchfile
3.2%