Rhema (ROCSpeak_Glass)

Rhema ("Utterance" or "Things Said" in Greek) a.k.a. ROCSpeak_Glass is a Google Glass based application to help people in public speaking. Its intelligent interface can detect the speaker's volume and speaking rate to provide feedback with a goal of modulating the voice. The application utilizes knowledge from human factors to significantly reduce the level of distraction from the feedback during the actual delivery of speech. Experiments with various feedback schemes show that sparse recommendation is more effective to minimize distraction than continuous stream of information.

More information on Rhema is available in the following paper:
M. Iftekhar Tanveer, Emy Lin, and Mohammed (Ehsan) Hoque. Rhema: A Real-Time In-Situ Intelligent Interface to Help People with Public Speaking, In Proceedings of the 20th ACM Conference on Intelligent User Interfaces (IUI’15), Atlanta, GA, USA, 2015

Rhema consists of two main pieces of software: the server and the client. The two pieces of software runs in two different hardware and connect between them using a WiFi network.The server is designed to run on a Windows computer. The client works on Google Glass. However, it can be tested in any android platform as long as there is WiFi connectivity. Our software is currently in Alpha stage so you might experience glitches. Please leave your comments if you need help installing the software.

Code

The Rhema code is now released. Please check our github repository here.

Download and Installation

The server program will currently run only in a Windows machine. Please download this compressed zip file and extract in a suitable location. Now, run soundGrabber.exe with administrator privilege. If your firewall asks for any permission, please allow all the permissions by checking the corresponding check-boxes. The program will prompt the IP address (XXX.XXX.X.XXX) of the system as follows:

Waiting for connection in 192.168.0.102 (Port: 9090)

This IP address has to be set up with the client app. This is described below in the section titled "Setting up IP address".

Installing the Clients

The client apps are distributed as .apk files. Please check out these instructionson how to install the apk files. Please follow the second option in that page (Installing Applications With Android SDK)

Plot2 Feedback Scheme
This apk will show the feedback on volume and speed using two line plots. A video prototype of this feedback scheme is shown below:

Bars Feedback Scheme
Shows the volume and speaking rate using two bars. Please note, in the main app, speed is represented using a horizontal bar rather than a vertical one.

Quads Feedback Scheme
It uses a 2D plot to show volume and speaking rate.

Words Feedback Scheme It provides feedback using two words at a time.

Calibrator App This app is used to calibrate the app to suit the loudness level of a particular person.

Setting up IP address

To establish connection between the client and the server please take the following steps:

  1. Make sure the client and server hardware is connected to the same wifi network.
  2. If you have not done already, install the android SDK.
  3. We'll use Android Debug Bridge (ADB) to put the IP address of the server computer in the android device.
  4. Connect your android device with your computer using a usb cable
  5. Open command window, navigate to <AndroidSDK>\platform-tools\adb.exe and apply the following command: 
    adb devices
  6. If you see a device number similar to the one shown below, your adb could correctly identify your device.
    List of devices attached
    04e409bf209e0733        device
  7. OEM usb driver from Google and also you need to make sure that  USB Debugging is enabled in your device. On Glass,  go to Settings > Device Info > Turn on debug to enable adb.
  8. Now open notepad and write the IP address. Save the file using the following name: ipaddress.txt
  9. Navigate to where ipaddress.txt is located. Apply the following command:
    adb push ipaddress.txt /sdcard/ROCHCIStorage
  10. This will enable the client apps to communicate with the server program