Looking through the available challenges, we thought working with the Bose Soundtouch API would be intriguing and we wanted to see the features we could implement with the given API. We quickly decided that live streaming audio from any device over the local network to the speakers would be a great use case for such a speaker system. We also added timed reminders as an additional feature.

What it does

The main feature of our app is the live streaming feature. We enable users, through the web app interface, to stream live audio directly from the browser to the speakers with minimal latency and maximum quality. We also added the ability to set timed reminders through our app which are played at user-specified timings. These reminders can either be pre-recorded or written and converted to speech using text-to-speech technology.

How we built it

The web server is mainly built using Python with the Flask library. The web front end is done with HTML, CSS and JavaScript. Audio recording from the client is done with web APIs, and then sent to the server as .mp3 or .wav files. These audio files can then be directly played on the speakers.

Challenges we ran into

The first challenge was performing audio recording on the client side and sending back the files to the server. We were having issues with the audio quality and jitters in the stream. We were able to solve this by tuning the different parameters which affect the sending of the audio packets from the client to the server.

Another challenge that we encountered was actually getting the live streaming audio to work. According to the Soundtouch API, the common live streaming protocols were not supported. We spent the majority of our time trying to decipher the best way to push the audio packets as audio files towards the speakers.

Accomplishments that we're proud of

Getting live audio to finally play on the speakers was something that really motivated us to push through and continue working through all the other problems that we encountered.

What we learned

Before starting on this project, none of us had any experience in audio related technologies and protocols. We spent a great deal of time at the beginning just learning about these differnet protocols, audio file types and etc.

What's next for Streaming and Reminders with Bose

Features on this app is best paired with the original Bose Soundtouch app that boasts the numerous other controls and features meant for the Bose Soundtouch Speakers. We believe the features shown in our application will be good candidates to be added to existing Bose products.

Share this project: