A powerful mobile application that provides real-time voice translation with dialer filtering capabilities. The app translates your voice in real-time during phone calls, allowing seamless communication across language barriers while preserving your natural voice characteristics.
- Real-time Voice Translation: Translate speech instantly during phone calls
- Dialer Integration: Built-in dialer with translation capabilities
- Voice Profile Management: Create custom voice profiles for improved translation accuracy
- Multi-language Support: Support for 10+ languages including English, Spanish, French, German, Italian, Portuguese, Russian, Chinese, Japanese, and Korean
- Offline Mode: Basic translation capabilities without internet connection (coming soon)
- Voice Recognition: Advanced speech-to-text processing
- Text-to-Speech: Natural voice synthesis with custom voice profiles
- Audio Processing: Real-time audio streaming and processing
- Contact Integration: Access and call contacts with translation enabled
- Translation History: Keep track of all translations with confidence scores
- Intuitive Interface: Clean, modern design with easy navigation
- Real-time Feedback: Visual indicators for recording, translating, and speaking
- Customizable Settings: Adjust translation speed, voice profiles, and preferences
- Accessibility: Support for various accessibility features
Screenshots will be added once the app is built and tested
- Node.js (v16 or higher)
- React Native CLI
- Android Studio (for Android development)
- Xcode (for iOS development)
-
Clone the repository
git clone https://github.com/9pros/voice-translator-app.git cd voice-translator-app -
Install dependencies
npm install
-
iOS Setup
cd ios && pod install && cd ..
-
Android Setup
- Ensure Android SDK is installed
- Create a virtual device or connect a physical device
For Android:
npm run androidFor iOS:
npm run iosStart Metro bundler:
npm startsrc/
├── components/ # Reusable UI components
├── context/ # React Context providers
├── screens/ # Main app screens
├── services/ # Business logic and API services
├── types/ # TypeScript type definitions
└── utils/ # Utility functions
- TranslationService: Handles text translation using multiple APIs (OpenAI, Google Translate, Azure)
- VoiceService: Manages voice recognition, recording, and text-to-speech
- Real-time Processing: Streams audio chunks for continuous translation
- Profile Creation: Record voice samples to create personalized profiles
- Voice Training: Process audio samples to extract voice characteristics
- Profile Management: Store, activate, and manage multiple voice profiles
- Dialer Interface: Custom dialer with contact integration
- Call Management: Handle call states and audio routing
- Translation Overlay: Real-time translation display during calls
- OpenAI GPT: Primary translation service with context awareness
- Google Translate: Fallback translation service
- Azure Translator: Alternative translation provider
- Speech-to-Text: Convert audio to text for translation
- Text-to-Speech: Generate natural speech from translated text
- Voice Cloning: Preserve user's voice characteristics in translations
Create a .env file in the root directory:
OPENAI_API_KEY=your_openai_api_key
GOOGLE_TRANSLATE_API_KEY=your_google_api_key
AZURE_TRANSLATOR_KEY=your_azure_key<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><key>NSMicrophoneUsageDescription</key>
<string>This app needs microphone access for voice translation</string>
<key>NSContactsUsageDescription</key>
<string>This app needs contacts access to show them in the dialer</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>This app needs speech recognition for voice translation</string>- Open the Translation tab
- Select source and target languages
- Tap the microphone button and speak
- View the real-time translation
- Tap the speaker button to hear the translation
- Go to Settings → Voice Profiles
- Tap "Create New Profile"
- Enter a profile name
- Record 5 sample phrases as prompted
- Wait for the profile to be trained
- Set as active profile for improved translations
- Open the Dialer tab
- Enter a phone number or select a contact
- Tap "Translation Call" instead of regular call
- Speak normally - your voice will be translated in real-time
- The other party hears the translation in their language
- Update the
SUPPORTED_LANGUAGESarray insrc/screens/TranslationScreen.tsx - Add language support in translation services
- Test voice recognition and synthesis for the new language
- Modify
src/services/TranslationService.ts - Add new provider methods
- Update fallback logic
- Test with various text inputs
- Update
src/services/VoiceService.ts - Add new voice processing capabilities
- Integrate with voice profile system
- Test across different devices and languages
npm testnpm run test:integrationnpm run test:e2enpm run build:androidnpm run build:ios- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@voicetranslator.com or create an issue in this repository.
- Offline translation support
- Group call translation
- Real-time conversation mode
- Advanced voice customization
- Video call translation
- Text message translation
- Cloud sync for voice profiles
- Multi-device support
- AI-powered conversation context
- Emotion preservation in translation
- Professional translation modes
- Enterprise features
- OpenAI for GPT-based translation
- Google for translation services
- React Native community for excellent libraries
- Voice processing libraries and contributors
Made with ❤️ for seamless global communication