Now more than ever we find ourselves in Discord calls with friends. Sure you can play music in the background for everyone to enjoy, but if you can't sing together like Karaoke where's the fun in that? That was the problem we wanted to solve, to have a fun and competitive Karaoke feature in Discord!
What it does
KaraokeBot takes a song and artist name and then plays that song. It then detects if you speaking/singing and starts recording. From there it calculates the accuracy of your vocal pitch and lyrical accuracy with that of the song and artist. Once complete, you will be given a score that you can compare with friends to see who is the most talented!
~start: Queues your song input for karaoke! Format:~play~artist~song Ex. ~play~BLACKPINK~Whistle' ~stop: Stops recording your song to calculate your karaoke score! ~exit: Removes karaoke bot from the voice channel \n :(', inline: false}, ) ~shutdown: Shutdown bot from the server. ~help: List of available commands
How we built it
- Pydub Utils
Challenges we ran into
- All of our analysis was done in Python files, so we struggled to link node.js and Python together and return values to be sent back to the bot
- A lot of the libraries used in this bot are more obscure and don't have a sufficient amount of documentation/examples behind them, which meant a lot of learning and guess and checking to ensure that what we were doing was right
Accomplishments that we're proud of
We're happy to see that what we imagined at the start of the hackathon is now a reality! We've had some fun testing it and after the hackathon, we're looking to forward to making some final changes and adding it to our personal discord servers to share with our friends!
What we learned
What's next for KaraokeBot
Our bot currently uses a simpler formulation to complete analysis, but in the future we want to use regression analysis, ANOVA or other analytical methods to complete analysis and output a better response to the user. We could also use some type of machine learning approach if it is viable! In addition, data is currently stored locally so storing data into a database and creating a leaderboard for the best singers in the discord server would be ideal.
Our bot currently works with one user and the music bot at one time, but we hope to add functionality for every user that is inside the discord server, and create a 'versus' mode system for each song, to determine the best singer in the group!