A complete full-stack application that converts speech to text in multiple languages with real-time updates and persistent storage.
- 🎙️ Real-time Speech Recognition - Convert speech to text using Web Speech API
- 🌍 Multilingual Support - Support for 12+ languages including English, Spanish, French, German, Chinese, Hindi, and more
- 💾 Persistent Storage - Notes saved to database with full CRUD operations
- 🔄 Real-time Updates - WebSocket integration for live collaboration
- 📊 Analytics - Statistics and insights about your notes
- 🎨 Modern UI - Beautiful, responsive design with animations
- 📱 Mobile Friendly - Works on desktop, tablet, and mobile devices
- ⚡ Offline Support - Continue working even when backend is unavailable
- REST API - Full CRUD operations for speech notes
- WebSocket - Real-time updates and live transcription sharing
- H2 Database - Embedded database for development
- JPA/Hibernate - Object-relational mapping
- Validation - Input validation and error handling
- Modern React - Hooks-based functional components
- Real-time Speech - Web Speech API integration
- WebSocket Client - Live updates and collaboration
- Responsive Design - Mobile-first CSS with animations
- Error Handling - Graceful degradation and offline support
- Java 17 or higher
- Node.js 14 or higher
- Maven 3.6 or higher
-
Start Backend:
double-click start-backend.bat
-
Start Frontend:
double-click start-frontend.bat
-
Backend Setup:
cd backend mvn clean package java -jar target/speech-to-text-backend-1.0.0.jar -
Frontend Setup:
cd frontend npm install npm start
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- H2 Database Console: http://localhost:8080/h2-console
- Open the app in Chrome or Edge (required for speech recognition)
- Select your language from the dropdown
- Click "Start Listening" and allow microphone access
- Speak clearly - you'll see live transcription
- Pause briefly - a note will be automatically created
- Edit or delete notes using the buttons
- Search notes using the search box
- 🇺🇸 English (US)
- 🇪🇸 Spanish
- 🇫🇷 French
- 🇩🇪 German
- 🇮🇹 Italian
- 🇧🇷 Portuguese
- 🇷🇺 Russian
- 🇯🇵 Japanese
- 🇰🇷 Korean
- 🇨🇳 Chinese
- 🇮🇳 Hindi
- 🇸🇦 Arabic
GET /api/notes- Get all notesPOST /api/notes- Create new noteGET /api/notes/{id}- Get specific notePUT /api/notes/{id}- Update noteDELETE /api/notes/{id}- Delete noteGET /api/notes/search?q={query}- Search notesGET /api/notes/stats- Get statistics
ws://localhost:8080/ws- WebSocket endpoint for real-time updates
speech-to-text-app/
├── backend/ # Spring Boot backend
│ ├── src/main/java/ # Java source code
│ ├── src/main/resources/ # Configuration files
│ └── pom.xml # Maven dependencies
├── frontend/ # React frontend
│ ├── src/ # React source code
│ ├── public/ # Static assets
│ └── package.json # npm dependencies
├── start-backend.bat # Backend startup script
├── start-frontend.bat # Frontend startup script
└── README.md # This file
- Backend: Spring Boot, Spring Data JPA, WebSocket, H2 Database
- Frontend: React, Web Speech API, WebSocket, CSS3 Animations
- Build Tools: Maven, npm
- Server port, database settings, CORS configuration
- WebSocket settings and supported languages
- API base URL in
frontend/src/services/apiService.js - Language settings in
frontend/src/components/LanguageSelector.js
-
Speech recognition not working:
- Use Chrome or Edge browser
- Allow microphone permissions
- Check if HTTPS is required (some browsers)
-
Backend connection failed:
- Ensure Java 17+ is installed
- Check if port 8080 is available
- Verify Maven is installed correctly
-
Frontend won't start:
- Ensure Node.js 14+ is installed
- Run
npm installin frontend directory - Check if port 3000 is available
Enjoy building with speech! 🎤✨