Akeam Woods

Arrow

Who am I?

Profile Picture

BSc Computer Science Student
Exeter University - Class of 2018
Available for freelance work

Front-End

HTML, CSS, JavaScript & jQuery

Back-End

Java, C, PHP, SQL & MySQL

Graphics

Photoshop, Illustrator & InDesign

Amazon Echo Simulator

About

The Amazon Echo Simulator was a second year university project I worked on as part of a team. The brief assigned to us was to develop a software version of Amazon’s smart speaker, the Amazon Echo. The program had to be able to process a user's spoken question and return an answer. A variety of API's were available to help solve these challenges. Here is a video demonstration of the final project. I will discuss the development of this project in greater depth below.

We decided it was necessary to split this project into four separate areas:

  • Graphical User Interface (GUI)
  • Speech Recognition: process voice inputs from a user
  • Speech Processing: convert the audio input into text
  • Web Querying: query the web with the text and retrieve an answer
  • Text-to-Speech: convert the answer into speech and relay it to the user

Graphical User Interface (GUI)

The GUI for this project was made entirely in Photoshop. Initially, I decided to design a single view for the user which was dubbed “Side View” mode. It was essentially just a white background with a picture of an amazon echo layered on top, and a snazzy title at the top of the window. I made a button in Photoshop and layered this over the amazon echo. This single button controlled the echo. When the user clicked the button once the echo powered on and began listening for a question. A second click turned the power off. As you can probably imagine, this worked out to be incredibly unintuitive as the user had to turn the echo off and back on every time they wanted to ask another question. To counter this a second mode, “Top View” mode, was added.

Top view mode consisted of a top-down image of the echo containing two buttons: a mute button, and an action button. The mute button disables the microphone, and the action button is used to activate listening mode, enabling the user to ask questions. A change view button was added to the top-right corner of the window which enabled the user to switch between the two views, with side view mode now being used to power on the echo. The top view graphics were animated using key-frame animation in Photoshop. I animated the ring of light providing circular movement. The animation runs when the echo is in mute mode, as well as when listening mode is active. I felt animation would help reassure the users that the software was working as intended whilst they had to wait for it to process their questions as it provided visible feedback.

Click an image to enlarge

Speech Recognition

The Java Sound API is a low-level API which is used to control the input/output of audio, this was essential for capturing the users voice input. The program needed to begin recording when the user pressed the action button, to solve this various modes were created which were used to dictate the echo’s functionality. There were four modes: OFFMODE, LISTENINGMODE, ANSWERMODE, and MUTEMODE. Each was assigned a unique integer value from one to four, and a method was created to switch between the various modes depending on which button was pressed. When the programs mode was switched to Listening Mode, the Lights “turned on”, this was done by swapping the images from a grey, stationary light, to the animated blue gif version. The Listening thread then began to run, this used the Java Sound API to open an audio stream and record sound to a .WAVE file. Initially this recorded for specific amount of time, usually 10 seconds. As you can probably imagine, this was problematic as not all questions are 10 seconds long, meaning either the user had to wait in silence after asking a question until the timer ran out, or the user would sometimes be cut off mid-question if asking a particularly long question. To solve this problem, the root mean square (RMS) was used to calculate the average volume of the microphone input. If the average volume dropped below a certain level, the microphone stopped recording as this indicated the user had finished speaking. Obviously there is always going to be a case of background noise, so the threshold for which the volume had to drop below in order to stop recording was calculated based on the levels observed from when a user talked into the microphone.

The rest of this project write-up will be coming soon.

Cargo Cult

About

Cargo Cult was a database focussed website which I designed for a second year university project. The brief specified that the website required user registration and login capabilities, as well as giving registered users the ability to view/modify (upload/delete) cargo ships listed in the database. The brief also requested that the website use JavaScript to enhance the user experience, as well as AJAX to dynamically update the search results. Multiple filtering options were also required as per the brief, the filter functions included a dynamically updated drop-down list, upper and lower integer bounds, and a text input filter. Throughout this project, numerous languages were used including: HTML/CSS, JavaScript, the AJAX framework, PHP and MySQL. As well as designing the website, I also designed and created the logo which can be seen below:


Portfolio Website

About

This portfolio website, akeam.com, was developed by me using various programming languages and frameworks such as HTML/CSS, JavaScript, AJAX, Bootstrap and PHP. It is a side project which I have been working on recently. Constant improvements are being made, and there are still issues which I have yet to fix, however working on this website has vastly improved my knowledge surrounding web design, particularly in responsive design.

iTunes Redesign

About

This project focussed on UI design and enhancing user experience. This redesign was before iTunes revamped their software to the modern version. Before the revamp, the iTunes UI was in dire need of a redesing, and that's what this project focussed on. The new UI was designed in Photoshop, with all elements being designed by myself, besides the album covers of course!

The Black and White Series

About

The Black and White series was a project I did which aimed to bring colour to black and white photos. I aimed to use naturalistic colours which made the photos seem as though they were taken with a modern day colour camera. The selection of photos vary, from amateur snapshots, to famous pictures. You can view the photos below, as well as the black and white originals.


Contact Me