A React Native mobile application for recording, transcribing, and playing back multilingual audio segments with continuous playback functionality.
- Audio Recording: Record audio in segments of approximately 2 seconds each
- Real-time Transcription: Transcribe audio segments using OpenAI's transcription service
- Continuous Playback: Seamlessly play back all recorded segments with smooth transitions
- Interactive Timeline: Navigate through recordings with a draggable progress bar
- Segment Highlighting: Visual indication of the currently playing segment
- Multilingual Support: Works with multiple languages for transcription
- Node.js (v14 or newer)
- npm or yarn
- Expo CLI (
npm install -g expo-cli) - OpenAI API Key (for transcription functionality)
-
Create a
.envfile in the root directory with the following content:OPENAI_API_KEY=your_openai_api_key_here -
Replace
your_openai_api_key_herewith your actual OpenAI API key.
-
Clone the repository:
git clone https://github.com/yourusername/multilingual-record.git cd multilingual-record -
Install dependencies:
npm install # or yarn install
-
Start the Expo development server:
npx expo start
-
Use one of the following methods to run the app:
- Scan the QR code with the Expo Go app on your mobile device
- Press
ato open on an Android emulator - Press
ito open on an iOS simulator - Press
wto open in a web browser (note: some features may not work in web mode)
-
Build the Android APK:
expo build:android -t apk
-
Or build an Android App Bundle:
expo build:android -t app-bundle
expo build:ios-
Home Screen:
- Tap the microphone button to start recording
- The timer at the top shows your recording duration
- Real-time transcription appears as you speak
-
Recording Screen:
- View all recorded segments with their transcriptions
- Use the playback bar to control audio playback
- Drag the slider to navigate to specific parts of the recording
- Tap on any segment to jump to that point in the recording
-
Playback Controls:
- Play/Pause: Control audio playback
- Progress Bar: Shows current position in the overall recording
- Time Display: Shows current position and total duration
app/: Main application screensindex.tsx: Home/recording screenrecord.tsx: Playback and transcription review screen
src/: Source codecomponents/: Reusable UI componentsservices/: API services (OpenAI integration)store/: State management with Zustand
- React Native
- Expo
- Expo Audio
- react-native-reanimated
- Zustand (for state management)
- OpenAI API (for transcription)
- Audio Permission Issues: Ensure your device has granted microphone permissions to the app
- Transcription Not Working: Verify your OpenAI API key is correct in the
.envfile - Playback Issues: Make sure audio files are properly saved and accessible
MIT
- Edward Ha
- Other Contributors
For any questions or support, please open an issue on the GitHub repository.
