Inspiration

The inspiration for Perplexity Karaoke came from my own frustrating experiences with people having difficulty with outdated karaoke machines. They often struggled to find the songs they wanted, and sometimes I found myself wondering about the beautiful background visuals with no way to learn more about them. I thought—what if karaoke could be smarter? With the rise of generative AI, I saw an opportunity to reimagine the karaoke experience: one that’s intuitive, intelligent, and interactive. That vision became Perplexity Karaoke.

What it does

  • Smart Song Discovery: Easily search and add any song using the Perplexity Sonar API, which fetches lyrics and song details—even when they're not preloaded.
  • AI-Powered Visual Insights: Curious about the karaoke background visuals? Just click "What is this picture?" and the machine will identify and explain it using AI.
  • Modern, Personalized Experience: With a sleek interface, scoring, and singer rankings, Perplexity Karaoke blends traditional karaoke fun with next-gen AI features for a truly engaging singing session.

How we built it

I started to create a web app with basic functionalities first. Then, I tested out Perplexity Sonar API endpoint directly through curl command to see how it works. After I got the basic functionality to search the information about the song by entering its name, I added other functionalities such as searching for the lyric, searching for the image.

I originally thought about leveraging something like Azure AI functionality voice-to-text so it can actually give a score based on the lyrics comparison, but this idea got scratched off.

Challenges we ran into

Certain functionalities such as adding voice, files, etc as context were not supported for Perplexity Sonar API, so I had to pivot my original plan for designing this karaoke machine. Also, because the lyrics do carry copyright, lyrics cannot be often retrieved, which needed to handle error handling for the case. And there are certain error cases that could not be all taken care of.

Accomplishments that we're proud of

The product is a fully functional karaoke simulator just without a way to record your singing :)

What we learned

As far the experience of building an application with Perplexity Sonar API goes, I found that the Perplexity Sonar API was pretty easy to use, and the documentation was easy to follow.

What's next for Perplexity Karaoke

This shows the future improvement idea.

  • Implementing voice recording functionality: Current Perplexity Karaoke does not have an ability to actually judge your singing skill. To do this, something like voice-to-text functionality, for example Speech-to-Text by Microsoft, may be used.

  • Updating the score functionality by actually judging of the singer's ability: At the moment, the score is purely random. Instead, scores can be actually measured. By recording the voice, the scores can be calculated by matching the lyric against the text recorded from the voice in terms of accuracy, tone of the voice, loudness of the voice, etc.

  • Optimizing the execution speed through caching: Querying Perplexity Sonar API can take quite sometime to respond back, not to mention it consumes the token rates. We can optimize by caching the information for what has been previously called already

  • Improving the user experiences of highlighting lyrics: When a song starts to play, Perplexity Karaoke currently does not highlight each word one by one. Instead, it highlights the entire line with a fixed time duration. Instead, each word can be highlighted with varying speed that is more intuitive based on the song's rhythm.

  • Adding multiplayer capability: Right now, Perplexity Karaoke is just a simple web application that can run locally. Instead, it can be deployed as as service, so it can be made available for many users. In addition, score keeping functionalities can be added so people can enjoy.

  • Fixing few errors for the boundary cases: Not all errors have been tested, and there are much more rooms for refactoring and fixing.

Share this project:

Updates