TrackMeaning
is an application that takes as an input a track (WAV file) and a prefferred language (english, french, german, etc) and it gives you back the message of the song (what is the artist singing about) in the language you specified.
- Get the id of the track of the specified track using
Recognise Audio API
- Get the lyrics of the song using
Lookup Track API
- Translate the lyrics in the preffered language using translation API
- Determine the topic of the text using NLP techniques
- Present the topic to the user
- Programming language -
Go
- Framework for creating the REST API -
Gin
- External APIs used -
Recognition Audio API, Lookup Track API, Google NLP API, Google Translate API
- Programming language -
JavaScript
- Library -
React
,Redux
- Other technologies for building and compiling JS -
Webpack
,Babel
- Most of the http requests can be turned into
Goroutines
so that they run concurrently - Improve the NLP techniques used so the result is better
- Add more languages (currently only four are available - English, French, Italian, Bulgarian)
To run the application:
- Get SHAZAM API (.txt) and GOOGLE API credentials (.json) that you need to place inside
/api/go
as wel - Run from the main directory
docker build --rm -f api/react/Dockerfile -t boyan.bonev:intern-hackday-react api/react
- Run from the main directory
docker build --rm -f api/go/Dockerfile -t boyan.bonev:intern-hackday-go api/go
- Run
docker run -d -p 5000:5000 boyan.bonev:intern-hackday-react
- Run
docker run -d -p 8080:8080 boyan.bonev:intern-hackday-go
Go to localhost:5000
and you will see the app running.