VoicePrint

Team Name

Senior Rangers

Timeline

Fall 2018 – Spring 2019

Students

  • Brian Leonard
  • Kamal Mistry
  • Quy Pham
  • Peter Severynen
  • William Wallace

Abstract

Online retailers spend tens of billions of dollars on shipping costs every year. For example, “In 2017, Amazon spent $21.7 billion on shipping costs,” it said in its most recent annual report, “nearly double the amount it spent in 2015,” (Semuels). If customers could print some of these items at home, it would eliminate shipping costs for the retailer. However, the user interface of the current generation of 3D printers is not user-friendly enough for non-technical users to use 3D printing as a regular part of their everyday lives.

VoicePrint is an Android app that allows a user to control a 3D printer using voice commands.  A user selects files from local storage or cloud storage, downloads them, and issues voice commands to the app to print them. VoicePrint transcribes the user’s speech input, parses it, and translates it into commands that can be sent to OctoPrint, which is an open-source 3D printer interface.

VoicePrint uses Android voice recognition for voice transcription. It also stores and retrieves STL files (models of 3D objects) or GCODE files to and from Firebase (cloud storage). Finally, it sends commands to the OctoPrint API over a local area network (LAN), and OctoPrint controls the 3D printer while it creates the object.

Background

The inspiration for VoicePrint began long ago. One of its creators grew up watching Star Trek: The Next Generation. On this television program, there is a device called the Replicator. When users speak to the ship’s computer, the Replicator executes their commands and creates the three-dimensional object that they have requested. During the summer of 2018, this team member decided to make a simpler version of the Replicator in real-life. It would be a smartphone app that would take speech input from the user, send commands to a 3D printer, and print 3D objects. This developer watched YouTube videos about 3D printing and voice commands, and he built Android apps in Java. He also conferred with his Computer Vision professor, who is now the Director of Senior Design at the University of Texas at Arlington, about the merits of his idea.

In the fall, a team formed around this idea. Our team consists of four computer science majors and one computer engineer. Our diverse team combines experience with mobile app development, Java programming, and software engineering, with seven years of project management experience in industry.

Project Requirements

  • VoicePrint shall permit a user to control a 3D printer using voice commands
  • VoicePrint shall transcribe audio input into usable commands
  • VoicePrint shall interact with the user through voice commands and the device’s touchscreen
  • VoicePrint shall be able to obtain the OctoPrint API key by scanning a QR code
  • VoicePrint shall be able to connect to an OctoPrint instance on the same LAN to control the printer
  • VoicePrint shall download files stored online using Firebase (cloud storage)
  • VoicePrint shall permit the user to download files and store them locally on the phone
  • VoicePrint shall permit a user to print GCODE files on a connected 3D printer
  • VoicePrint shall permit a user to cancel a print job after it has begun
  • VoicePrint shall not cause damage nor performance degradation during normal operation on an Android device.

System Overview

VoicePrint contains four main layers: the Controller layer, the Firebase layer, the Voice layer, and the Printer layer. The Controller layer is deployed on an Android device, and ties the system together. The Firebase layer is accessed via APIs and provides file storage for VoicePrint. The Voice layer uses built-in Android voice recognition to interpret user voice commands and return text. The Printer Layer consists of the OctoPi software running on the Raspberry Pi and the programmatic interface within the app that connects to this software over a local area network.

Results

The development team created an app that controls a 3D printer using voice commands. The app connects to OctoPrint by scanning a QR code. A user can select a GCODE file using voice commands and print it by saying “PRINT”. The app also allows a user to move the 3D printer’s print head in xyz-space using voice commands.

Screenshots

Getting API key from QR code

 

The About Page

 

The Upload File Activity. A user can select an existing file from OctoPrint Server, upload a file from the phone and print it, or download a file from Firebase.

 

GCODE files on OctoPrint available for printing

 

The MoveHead Activity. A user can move the print head in xyz-space using either voice commands or buttons.

 

The Printing Activity. A user can print the selected GCODE file by saying “Print”

Future Work

  • Release an iOS version of the app
  • add user authentication/multiple user profiles
  • allow a user to select from different UI themes.

Project Files

Project Charter projectCharter_rev1.3

System Requirements Specification SRS_rev1.4

Architectural Design Specification ADS_rev1.4

Detailed Design Specification DDS_rev0.5

Project Poster Project_Poster

Product Demo Video Moving Printer Head with Voice

Source Code

Link to our GitHub repository https://github.com/UTASeniorRangers/voiceprint_kml

References

[1] Semuels, Alana. “Free Shipping Isn’t Hurting Amazon.” theatlantic.com. 27 Apr 2018. Accessed 29 Mar 2019.
[2] Murry, Sarah. “HP Says Hello to Voice-Activated Printing.” hp.com. 31 Jan 2018. Accessed 28 Mar 2019.
https://garage.ext.hp.com/us/en/news/hp-says-hello-to-voice-activated-printing-.html
[3] “Gabi Voice brings the power of Artificial Intelligence and voice recognition to AltaLink devices.” xerox.com. 2018. Accessed 28 Mar 2019.
https://www.xerox.com/en-us/office/altalink-voice-activated-printers
[4] Yahoo Japan. “Voice Activated 3D Printer for the Visually Impaired.” designboom.com. 2013. Accessed 28 Mar 2019.
[5] Burns, Matt. “XYZprinting Adds Voice Control to its Color 3D Printers.” techcrunch.com. 1 Aug 2018. Accessed 28 Mar 29.
[6] Jan Ageling, Willem. “Who decides what goes in the Sprint Backlog?” medium.com. 27 Jul 2018. Accessed 28 Mar 2019.
[7] Google. “Processes and threads overview.” developer.android.com. 2018. Accessed 28 Mar 2019.
[8] Google. “Services overview.” developer.android.com. 2018. Accessed 28 Mar 2019.
[9] foosel. “What is the difference between octoprint and octopi?…” community.octoprint.org 12 Feb 2018. Accessed 28 Mar 2019.
[10] Strepp, Marty. “CS 193A Spring 2016 Lecture Videos, Lecture 05: Multiple Activities and Intents.” Stanford University Computer Science Department. Jan 2016. Accessed 28 Mar 2019.

chenc4