SoundWatch is an Android-based app designed for commercially available smartwatches to provide glanceable, always-available, and private sound feedback in multiple contexts. SoundWatch informs users about three key sound properties: sound identity, loudness, and time of occurrence through customizable sound alerts using visual and vibrational feedback. We use a deep learning-based sound classification engine (running on either the watch or on the paired phone or cloud) to continually sense and process sound events in real-time. SoundWatch supports four different architectural configurations: watch-only, watch+phone, watch+phone+cloud, and watch+cloud.
server
: Python server to serve predictions from raw audio data sent from phone or watch. Refer to server documentationSoundWatch/Application
: Android phone application to configure list of displayed sounds on watch and serve audio predictions from watch. Refer to phone app documentationSoundWatch/Wearable
: Android watch application to listen for ambient sounds and display the predicted sound list from ML model.Refer to watch app documentationbuild.gradle
to your local python installation (both of application and wearable modules), i.e: python {
// If Chaquopy fails to find Python on your build machine, enable the following
// line and edit it to point to Python 3.4 or later.
buildPython "C:/Python36/python3.exe"
// buildPython "C:\\Users\\hungn\\AppData\\Local\\Programs\\Python\\Python36\\python.exe"
pip {
install "numpy==1.14.2"
}
}
ndk {
abiFilters "armeabi-v7a", "x86"
}
Application
and Wearable
projects. Wearable
is chosen and click Run
button. It is much preferred to use a physical Android Wear device, which is how we developed and tested the project. Otherwise, refer to the Android documentation to set up the virtual Android WatchbuildPython
in build.gradle
to your local python installation (both of application and wearable modules)ARCHITECTURE
in MainActivity for both Phone and Watch to switch between Architecturestflite
model and labels.txt
(downloaded above) into src/assets
folder in Watch Application
src folder, and specify the filename inside MODEL_FILENAME in MainActivitytflite
model and labels.txt
into src/assets
folder in Watch Wearable
src folder, and specify the filename inside MODEL_FILENAME in MainActivityWATCH_ONLY_ARCHITECTURE
, please copy the tflite model into assets folder in Wearable src folder, and specify the filename inside MODEL_FILENAME
in SoundRecorderAUDIO_TRANMISSION_STYLE
in MainActivity.java
for both Phone and Watch to change the Audio Transmission Style ("Raw Audio" which is faster to process and transmit vs. "Audio Features" which are more private)After enabling the boolean flags, just run the watch and phone app like usual. The test results will be output as *.txt
(i.e: watch_model.txt
, e2e_latency.txt
) to local device directory (phone or watch) inside the com.wearable.sound
folder.
Under $200
Under $300
Above $300
The Chaquopy
SDK (SoundWatch uses this to include Python components in the Android app) requires a proper license to work. Please contact Hang Do (doh25@cs.washington.edu) or Dhruv Jain for more information.
My phone and watch have become unpaired. How do I fix this?
How do I set SoundWatch to listen for sounds?
My watch is not responding to touch or buttons. How do I get it to respond?
How do I select and deselect sounds for the watch to listen for?
How do I snooze a sound on my watch?
How do I see notifications if they aren’t popping up?
akhoa99
at cs.washington.eduhvn297
at cs.washington.eduDrop us a note if you are using or plan to use SoundWatch for research purposes. We are also happy to help with any questions or issues.