Build a web app designed to process audio files, transcribe them, and summarise the transcripts using OpenAI. This role requires both backend and frontend development.
Backend Development
1. Endpoint for File Upload:
- Create a RESTful API endpoint to receive audio file uploads.
- Ensure the endpoint supports the specified audio formats.
- Validate the uploaded files for type and size constraints.
2. File Name Processing:
- Extract the phone number from the uploaded file’s name using a regex or string processing based on the provided naming convention.
3. File splitting:
- If the audio file exceeds 25 MB, split it into 25 MB segments for processing.
- Maintain the order of the segments for accurate transcription and concatenation later.
4. Transcription with the OpenAI API:
- Send each audio segment to OpenAI’s Speech-to-Text API for transcription.
- Ensure that API requests are handled asynchronously and efficiently.
5. Transcript Concatenation:
- Concatenate the transcribed text from each segment in the correct order to create a complete transcript.
6. Transcript Summarization:
- Generate a detailed summary of the complete transcript using OpenAI’s summarization feature.
- Implement functionality to allow customisation of the OpenAI prompt from the front end.
7. Google Sheets Integration:
- Use the Google Sheets API to send the data to a specified spreadsheet.
- Record the timestamp of the file submission and the extracted phone number.
- Store the combined transcript and its summary in the spreadsheet.
Frontend Development
1. File Upload Interface:
- Design a file upload component that allows users to select and submit audio files.
2. Data Display:
- Retrieve and display a list of processed transcriptions and summaries from the backend.
- Implement pagination or infinite scroll if the list is expected to be long.
3. Editing the OpenAI Prompt:
- Provide a text input field for users to edit the OpenAI summarization prompt.
- This input should be sent to the backend and used when generating the summary.
Security and Performance
- Ensure secure file transfers using HTTPS.
- Authenticate users before allowing file uploads or edits.
- Sanitise file names and user input to prevent injection attacks.
- Implement rate limiting and handle API quota limits for OpenAI and Google Sheets.
Testing
- Write unit and integration tests for each API endpoint.
- Test the file upload and splitting functionality with various file sizes.
- Validate the transcription and summarization accuracy.