How to Build a Karaoke App with Amazon IVS and Switchboard
Amazon’s Interactive Video Service (IVS) is a managed live streaming service for live streaming video and audio at scale. But what if you want to do more with that audio on device, before broadcasting it, or after receiving it? Or what if the audio from your Amazon IVS live stream is only one part of a more complex audio pipeline? Enter the Switchboard SDK.
The Switchboard SDK is a cross platform audio SDK that makes it easier to develop complex audio features and applications without needing to be a specialist in audio programming or C++. Building an application with advanced audio features can take months or longer, but using the Amazon IVS extension in the Switchboard SDK, that effort can be reduced to days or hours. The Amazon IVS extension in Switchboard makes it easy to build complex audio pipelines that can allow for Amazon IVS to work alongside features such as external media players, voice changers, stem separation, advanced noise filtering and other DSP, mixing, ducking, and handling various OS related audio issues, Bluetooth, and more.
Karaoke Apps are one of many use cases in which such audio pipelines are useful. In the rest of this article, we will walk you through a step by step process of building an Android karaoke app that combines Switchboard and IVS. Switchboard is used to apply various voice changing effects (such as pitch correction and reverb), while Amazon IVS is used to broadcast the resulting voice and music streams.
Find the tutorial's code on GitHub, along with its iOS version. Check out the live demo of the web app too.
What you will learn
How to create a real-time streaming experience with with Amazon IVS
How to integrate the Switchboard SDK Extensions into your application
How to test and apply voice changing effects from Switchboard SDK
How to live stream your new voice to an audience using Amazon IVS
Attributes
🏅 AWS Level | Intermediate - 200
🕑 Time to complete | 60 minutes
💰 Cost to complete | Free when using the AWS Free Tier
🧩 Prerequisites | - AWS Account
💻 Code Sample | Code sample used in tutorial on GitHub
📢 Feedback | Any feedback or issues?
⏰ Last Updated | See tutorial
Solution Overview
Let's take a quick look at the high level solution overview in Figure 1. The Switchboard SDK is a versatile toolkit that streamlines audio app development across different platforms. It features a collection of AudioNodes—like players, recorders, and mixers—that interconnect within an AudioGraph. This graph operates via an AudioEngine, leveraging advanced platform-specific capabilities. The SDK also provides various extensions (nodes), which are wrappers around popular libraries, such as Amazon IVS. We will revisit each component in more detail in later steps.
This tutorial consists of 3 parts:
Part 1 - Creating a real-time streaming app with Amazon IVS and SwitchboardSDK
Part 2 - Importing and applying voice changing effects
Part 3 - Testing your new found voice