WoZ Way -- Version 2
This project contains all the code to run Woz Way Version 2, a Wizard of Oz controlled speech agent. This work is part of Nik Martelaro's thesis, "The Needfinding Machine." There are two components to the system, the BOT and the CONTROL. The BOT is the in-home radio with speech agent. The CONTROL interface provides the a tool for remote designers and researchers to control the vocie of the Bot and to takes notes on the interaction.
BOT
The BOT directory contains the souce code for the in-context Bot. The Bot uses the Apple Text-to-Speech system to control music and speak messages. The Bot also steams a live video/audio feed over web chat (using Hangouts or Skype),
Requirements
- MacOS
- Installed Apple voices - whichever voices and languages you would like. I recommend the high quality versions.
- NodeJS and NPM
- Speakers
- Webcam with microphone
- forever.js (a system to keep node apps running in the background)
Instructions
- Clone this repo using git
- Navigate to
BOT
directory using your Terminal - Run
npm install
- Run
npm install forever -g
to install forever.js - Run
forever start_bot.json &
- To stop the process, run
forever stopall
CONTROL
The CONTROL directory contains the source code for running the Bot control page. It is a NodeJS based web application that allows for the remote wizard to control the speech of the Bot and the music volume. There are three areas to on the interface.
- A section to write custom messages that are sent to the Bot and spoken out loud.
- A section with pre-defined messages and quick play buttons.
- A notes section which sends messages to the Bot in order to log them in-sync with the video.
Requirements
- NodeJS and NPM
- An open network port that can be used for serving the web application.
- forever.js (a system to keep node apps running in the background)
- A known MQTT broker
Instructions
- Clone this repo using git
- Navigate to
CONTROL
directory using your Terminal - Run
npm install
- Run
npm install forever -g
to install forever.js - Run
forever start_control.json &
- To stop the process, run
forever stopall
ForeverJS and Log Files
I have provided a start_bot.json
and start_control.json
to setup logging with forever.js
. This create log files from the timestampped output.
The paths for the log file locations are saved using absolute paths. You will need to change the JSON files to match your absolute path directory.
Also, the log files do not seem to be overwritten or appended. Ater each session, I recommend that you copy the log file over from the logs
directory, save the data with your other data, and then clean the logs
directory so it is ready for the next run.
Starting Local video recording using QuickTime for MacOS
There is a start_video.command
file which can be turned into a desktop icon on MacOS. This will create a new directory in a folder on the desktop called WoZ-Way-Sessions/
and will save a text file with the start time of the video. The command will then call start_video.py
which will call AppleScript to start a video recording. Make sure that the right camera and mic is set in QuickTime (the quad input).