Application that allows users to upload/record speech/conversation of up to 60 minutes, translates the audio and sends a text transcript to the user’s email upon completion.
This project uses the following technologies:
- MongoDB for the database
- Express together with Node for the backend
- React and React Router for frontend
- Google Speech To Text and Google Cloud Storage
- Jest and Enzyme for testing
- Passport and JWTs for authentication
- Socket.io for handling streaming.
- Eslint for clean coding style.
- Register / Login / Logout using JWTs for authentication.
- Allow upload / record audio up to 60 minutes. You can even upload an audio and record your speech at the same time.
- Support multi languages and punctuation.
- Transcribe audio recorded by microphone in real time. For audio file, handle 2 channels audio and support LINEAR16 / FLAC encoding.
- Sending email after transcribing.
- Store user previous transcripts.
- Testing: Snapshot, Unit, Interaction, Mock, Database.
Make sure to add your own MONGOURI
from your mLab database and your email credentials (to send email using nodemailer) in config/keys.js
.
module.exports = {
mongoURI: "YOUR_MONGO_URI_HERE",
secretOrKey: "secret",
username: Your email username,
password: Your email password,
};
Also, you need your set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the file path of the JSON file that contains your service account key.
export GOOGLE_APPLICATION_CREDENTIALS="./config/credentials.json"
// Install dependencies for server & client
npm install && npm run client-install
// Run client & server with concurrently
npm run dev
// Run test on client & server concurrently
npm run dev-test
// Server runs on http://localhost:5000 and client on http://localhost:3000
Live version can be found here career-foundry.herokuapp.com
You can find sample audio files in dist
folder.