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
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