Aurora C++ SDK & Proof of Concept. Final Report

Size: px
Start display at page:

Download "Aurora C++ SDK & Proof of Concept. Final Report"

Transcription

1 Aurora C++ SDK & Proof of Concept Final Report CS 130 Spring 2018 Discussion 1A Team Name: Team Yaacov James Dickie ( ) Seth Eisner ( ) Benjamin Lawson ( ) Jaron Mink ( ) Yaacov Tarko ( ) Nicandro Vergara ( )

2 1 Table of Contents 1. Motivation and Application Overview 3 2. Improvements Since Midterm Report 3 3. Features UML Use Case Diagram Use Case Descriptions 4 4. SDK Design UML Class Diagram Application Architecture General Application Architecture API Class Backend Class Config Class Text Class Speech Class Interpret Class AudioFile Class External Libraries C++ Requests PortAudio JSON for Modern C Libsndfile Google Test 8 5. User Interface Documentation 9 6. Testing Unit Tests Example Programs Proof of Concept GitHub Links Individual Contributions 15 James Dickie 15 Seth Eisner 15 Benjamin Lawson 16

3 2 Jaron Mink 16 Yaacov Tarko 16 Nicandro Vergara 16

4 3 1. Motivation and Application Overview The Aurora C++ SDK is a software library that helps facilitate the use of Aurora API services in C++ applications. This application abstracts away the intricacies of recording audio, playing audio, and making API requests to Aurora servers through a custom library intended for use by developers wishing to receive these services. It's main use is for internet-of-things (IoT) devices and thus performance and dependencies are of utmost importance in this SDK. Additionally, we created a small proof of concept program to help explain the general workflow of the SDK and to demonstrate how these services can be utilized by a simple C++ program. The C++ port of the Aurora API software development kit provides a high-level interface for Aurora s text-to-speech, speech-to-text, and language interpretation services. C++ application developers, our users, are able to have their applications utilize the SDK in order to receive resources from Aurora's API, located on their remote servers. This API is already directly accessible for C++ developers via an HTTP API however, it it is far more accessible to developers if an SDK abstracts the HTTP requests away and provides idiomatic classes and functions for the concepts of speech, text, and interpreting. The C++ SDK should make it easy to integrate Aurora s services with embedded systems and IoT devices, which have low memory and power requirements. 2. Improvements Since Midterm Report Since the midterm report, we have implemented all of the audio functionality needed in the SDK. The SDK now supports recording audio, playing audio, speech-to-text, and text-to-speech. Furthermore, our AudioFile class now supports writing and reading WAV files, and trimming or padding silence in audio. Additionally, we wrote many more unit tests and some example programs that exercise the functionality of our new classes and check for corner cases (where exceptions are thrown). Finally, we developed the proof-of-concept trivia game requested by our client that uses our API to implement a purely voice-based trivia game. In the game, the computer announces trivia questions, and the player speaks their answers. The computer then announces the final score. There has not been a need to make any significant design changes since the midterm report.

5 4 3. Features 3.1 UML Use Case Diagram Figure 3.1 Use Case Diagram showing the five use cases 3.2 Use Case Descriptions 1. Developer wishes to convert text to speech by invoking the speech class Example: A developer would like an IoT device to ask a question by converting the question to speech 2. Developer creates a scenario where a user of their program talks to device using either listen() or continuouslylisten() in order to create a speech object Example: A developer would like to record speech to either later manipulate or convert into text 3. Developer creates text from audio by either utilizing the Speech class or by using listenandtranscribe() Example: A developer would like to convert user speech into text so they can determine the interpretation

6 5 4. The device interprets a set of text to determine the user s intent and any entities that may have been detected in the utterance. Example: A developer is creating a voice activated lamp. They can implement the IoT to turn off or on based on the intents of turn off or turn on with the entities of light or lamp while ignoring things such as turn up the music 5. The developer manipulates or plays the audio data by using the AudioFile class and its methods Example: A developer would like to remove all silence from a recording and then save it as a wav file. 4. SDK Design 4.1 UML Class Diagram Figure 4.1: UML Class Diagram showing the class structure of the C++ sdk

7 6 4.2 Application Architecture General Application Architecture Figure 4.2: The design of the SDK This SDK will be used to communicate with the Aurora API Endpoint servers on behalf of a C++ application. Using this SDK provides a generous amount of abstraction, allowing the application to believe it is calling methods on local variables when it is in fact communicating with a database via an HTTP API. In Figure 4.2, there is a C++ application, such as our proof of concept trivia game, that is developed using the SDK. The SDK allows the developer to easily connect to the Aurora Endpoint server to facilitate development. In our proof of concept, the user will communicate with the application via speech. The application then uses the SDK to communicate with the server in order to learn how to respond to the user API Class The API class provides the backend methods that the Speech, Interpret, and Text classes use to invoke calls with the Aurora server. gettts() queries the Aurora TTS server with text and returns an audio file getsst() queries the Aurora SST server with an audio file and returns text getinterpret() queries the API with provided Text object and returns a list of intents and entities Backend Class The Backend class provides an abstraction of HTTP requests, with the call() method, that the API class uses to make requests to the Aurora API. The Text class is a container for a string object. It can be created by using a string or by transcribing audio. Interpret() uses the API class in order to create an interpret object based on the text Speech() uses the API class in order to create a speech object based on the text gettext() returns the text held as a string

8 Config Class The Config class is a container for API credentials that the user can set. The Backend class sends these credentials with each HTTP request Text Class The Text class is a container for a string object. It can be created by using a string or by transcribing audio. Interpret() uses the API class in order to create an interpret object based on the text Speech() uses the API class in order to create a speech object based on the text gettext() returns the text held as a string Speech Class The Speech class is an object created using an AudioFile, an API response to text, or by using the listen() method Text() uses the API in order to create a text version of the audio in the speech object Interpret Class The Interpret class holds interpretation of a text object. It has no methods outside of the constructor, but has two members Intent - a string that holds the intent of the text based on pre-determined values on the Aurora dashboard Entities - an unordered map of all entities mentioned in the text object. It is a key-value listing according to values on the Aurora dashboard AudioFile Class The AudioFile class has the purpose of playing, recording, and manipulating WAV data. WriteToFile() writes WAV data to the specified location. Pad(), PadLeft(), PadRight(), and TrimSilence() all adjust the data within the WAV Stop() and Play() allow the user to start and stop playing the underlying audio recording NewRecordingStream() records new audio based on given parameters of length

9 8 Figure 4.3: Class Interaction Workflow Class Workflow Diagram Above shows the general interactions between the user and the C++ SDK and within the SDK itself. 4.3 External Libraries A large portion of design considerations we had to make were decisions on choosing C/C++ libraries to utilize. A majority of project development time has been spent configuring CMake to build these libraries, reading library documentation, and then integrating these libraries with our SDK C++ Requests C++ Requests is a C++ wrapper around the popular C networking library libcurl. It abstracts the process of performing HTTP requests, which is needed in the SDK to make GET and POST requests to the Aurora API server.

10 PortAudio PortAudio is a cross-platform library for processing audio data. It enables recording and playing back audio data on most modern computers. It is needed in the SDK for the speech-to-text and text-to-speech functionality JSON for Modern C++ Unlike many other modern languages, the C++ standard library does not support parsing or creating JSON data structures. JSON for Modern C++ enables us to convert the response string from the Aurora API server into a C++ Map object, which is a practical format that can be given to the user Libsndfile Libsndfile is a popular C library for reading and writing audio data into common audio file formats. The Aurora API handles all audio in the WAV file format, so in order to avoid parsing and forming WAV file headers and bodies ourselves, we are using this library to abstract that process Google Test Google Test is an extremely popular library for creating unit tests for C++ code. It supports mocking classes so that we can insert stub method implementations and return dummy values and avoid making actual network requests. It also provides many types of assert statements and a framework for naming, setting up, executing, and tearing down groups of tests. 5. User Interface Since this project is an SDK, the users are developers and the user interface is the collection of high-level classes and public methods for interacting with the Aurora SDK. The front facing classes that users will be utilizing are Text, Speech, AudioFile, Interpret, and Config. The methods and members of these classes are described in the design section. Additionally, users can use the free functions listen(), listencontinuously(), and listenandtranscribe() to utilize the speech-to-text functionality of the SDK. There are several classes in our design that are not intended for users to use or even know about, and so they are not considered part of the user interface. They are implementation details. These classes include the API, WAV, and Backend classes.

11 Documentation Documentation is a critical part of the user s interaction with the SDK, and it is highly valued by our client. Most of our code is commented with Doxygen formatted comments, and we have a build target that generates Doxygen documentation files from our source files. The user interface of our SDK s Doxygen documentation looks like figure 5.1 and figure 5.2. Figure 5.1 : The list of classes and their descriptions.

12 11 Figure 5.2 : The documentation page of our Text class. It includes a detailed description of the interpret() method. Furthermore, our code repository s README file has many code examples illustrating how to use core features of our API.

13 12 Figure 5.3 : README code example documentation showing usage of Speech class. 6. Testing Both unit tests and example programs were used to detect bugs in our SDK and increase our confidence in the correctness of our software product. 6.1 Unit Tests The Google Test framework was chosen to automate our unit tests. These tests check each of the major classes in our design diagram. Most tests fall into one of two categories: those which attempt to ensure that the unit under test produces correct output when provided with valid input, and those which attempt to ensure that the program correctly detects and handles failures caused by invalid input or invalid server responses. After building the project with make, all tests can be run automatically with the make test command, as shown in figure 6.1.

14 13 Figure 6.1: Running all test groups and getting a results summary. Figure 6.2: Google Test output showing passing API class tests for interpretation, exceptions, and speech-to-text.

15 14 Every class used in our project is covered by unit tests. Unit tests cover nearly every substantial class method as well as most of our free functions. In order to test our Backend class, we created a MockBackend subclass which produces realistic output without communicating with the Aurora server. We test robustness in multiple scenarios in which the backend would be instantiated incorrectly, such as faulty credentials, bad call methods, and empty queries. The MockBackend subclass is also used to test other classes which depend on the Backend class s functionality, without requiring a connection to Aurora s servers. All classes are tested for an encompassing range of fault scenarios, including errors returned from the server, incorrect typing, empty or missing data, and missing or incorrect credentials. Additionally, all classes are tested using normal input data which is expected to result in successful execution, and the outputs of that class s functions are then compared with the expected outputs. After any bug was found, a test case was added which fails when the bug is present and passes after it is fixed. As a single example, the WAV class s trimsilent function is intended to delete segments below a volume threshold, except for a buffer of a specified length, from the beginning and end of a wav file. Tests include: Trimming segments below the maximum threshold and leaving no buffer, and ensuring the entire file is erased. Trimming segments below an intermediate threshold and leaving no buffer, and ensuring some but not all of the file is erased. Trimming segments below an intermediate threshold and attempting to leave a buffer larger than the entire file, and ensuring that none of the file is erased. This test case was added after a bug was located which caused the program to loop infinitely when the buffer was larger than the file. Trimming segments below a realistic threshold, and leaving a buffer of realistic size (similar to the way our program will actually use the function), and ensuring that the correct portion, and only the correct portion, of the file is deleted. 6.2 Example Programs In addition to unit tests, several example programs have been created to test and demonstrate the proper usage of our SDK s functionality. One example program takes English phrases (or other text strings) as input, posts them to the Aurora server, and retrieves and prints a JSON object describing the semantic meaning of the string. Another example program, our Proof of Concept game, is a broader test of our SDK s ability to listen to audio from a user s device microphone, convert its audio output to text using the Aurora server, convert stored text to audio using Aurora s server, and play that stored text over the user s microphone.

16 15 7. Proof of Concept The Proof of Concept is a trivia game designed to showcase the Text, Speech, and AudioFile functions. First the program converts a predefined list of questions to audio format using the Text class s speech() method. The program then plays this audio to the player, by utilizing the AudioFile class, and uses ListenAndTranscribe() to convert their speech to a Text object. The program then verifies the answer and plays audio indicating whether the user gave a correct or incorrect response. After all questions have been responded to, the program gives the user their total score. 8. GitHub Links Aurora API SDK GitHub: Aurora API SDK Tests Folder: Aurora API SDK Example Folder: Proof of Concept GitHub: 9. Individual Contributions James Dickie Wrote part of SRS Wrote most of midterm report Created midterm report diagrams Created midterm presentation Developed and tested Proof of Concept program Wrote most of final report Created final presentation Seth Eisner Started proof of concept Wrote midterm/final report introduction section Helped with midterm presentation Helped with final presentation

17 16 Benjamin Lawson Wrote large portion of SRS Configured CMake build systems for Aurora SDK & proof of concept Configured Doxygen documentation generation Implemented Backend, Speech, Text, AudioFile, and Config classes Wrote unit tests for API, Text, Backend, Speech, AudioFile classes Wrote code example documentation (README) Wrote External Libraries, User Interface, and Improvements sections of midterm & final report Midterm/Final presentation Documentation slide Recorded final presentation demo video Jaron Mink Implemented API class Implemented listenandtranscribe() function (speech-to-text) within Speech Class Implemented silence detection and trimming in record() function and rewrote to conform to client standards Formatted SRS in LaTex Wrote part of SRS Made SRS diagrams Developed midterm presentation demo program Wrote examples Created class workflow diagram for final presentation and final report Refined Final Report Yaacov Tarko Implemented WAV class to generate, read, and write.wav audio files Designed and implemented test cases for the WAV class Implemented utilities required for the WAV class. These functions were required to determine whether a WAV file is silent, calculate the root mean square of an array, and convert between little-endian byte arrays and unsigned integers of any available size. Assisted with configuration of CMake for automatic build management Wrote the Test section of the final report

18 17 Nicandro Vergara Formatted some of the midterm report Proofread midterm report with minor fixes Midterm & final presentation formatting Midterm presentation speaker notes Implemented CMake configuration bug fix for Windows systems Added testing and wrote requirements slides for final presentation

Voice activated spell-check

Voice activated spell-check Technical Disclosure Commons Defensive Publications Series November 15, 2017 Voice activated spell-check Pedro Gonnet Victor Carbune Follow this and additional works at: http://www.tdcommons.org/dpubs_series

More information

Voice-controlled Home Automation Using Watson, Raspberry Pi, and Openwhisk

Voice-controlled Home Automation Using Watson, Raspberry Pi, and Openwhisk Voice-controlled Home Automation Using Watson, Raspberry Pi, and Openwhisk Voice Enabled Assistants (Adoption) Voice Enabled Assistants (Usage) Voice Enabled Assistants (Workflow) Initialize Voice Recording

More information

Voice Biometric Integration

Voice Biometric Integration Voice Biometric Integration Product Requirements Document, Version 2 November 28, 2016 Team Tres Commas Members: Jonathan Easterman, Sasha Shams, Arda Ungun, Carson Holoien, Vince Nicoara Mentors: Mike

More information

Develop Mobile Front Ends Using Mobile Application Framework A - 2

Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 3 Develop Mobile Front Ends Using Mobile Application Framework A - 4

More information

MRCP. Google SR Plugin. Usage Guide. Powered by Universal Speech Solutions LLC

MRCP. Google SR Plugin. Usage Guide. Powered by Universal Speech Solutions LLC Powered by Universal Speech Solutions LLC MRCP Google SR Plugin Usage Guide Revision: 6 Created: May 17, 2017 Last updated: January 22, 2018 Author: Arsen Chaloyan Universal Speech Solutions LLC Overview

More information

Michigan State University Team MSUFCU Banking with Amazon s Alexa and Apple s Siri Project Plan Spring 2017

Michigan State University Team MSUFCU Banking with Amazon s Alexa and Apple s Siri Project Plan Spring 2017 1 Michigan State University Team MSUFCU Banking with Amazon s Alexa and Apple s Siri Project Plan Spring 2017 MSUFCU Contacts: Emily Fesler Collin Lochinski Judy Lynch Benjamin Maxim Andy Wardell Michigan

More information

Summary. Speech-Enabling Visual Basic 6 Applications with Microsoft SAPI Microsoft Corporation. All rights reserved.

Summary. Speech-Enabling Visual Basic 6 Applications with Microsoft SAPI Microsoft Corporation. All rights reserved. Speech-Enabling Visual Basic 6 Applications with Microsoft SAPI 5.1 2001 Microsoft Corporation. All rights reserved. Summary Prerequisites You need no previous experience with speech recognition, but you

More information

Application Development in ios 7

Application Development in ios 7 Application Development in ios 7 Kyle Begeman Chapter No. 1 "Xcode 5 A Developer's Ultimate Tool" In this package, you will find: A Biography of the author of the book A preview chapter from the book,

More information

IBM Image-Analysis Node.js

IBM Image-Analysis Node.js IBM Image-Analysis Node.js Cognitive Solutions Application Development IBM Global Business Partners Duration: 90 minutes Updated: Feb 14, 2018 Klaus-Peter Schlotter kps@de.ibm.com Version 1 Overview The

More information

Your Voice is Your Passport: Implementing Voice-driven Applications with Amazon Alexa

Your Voice is Your Passport: Implementing Voice-driven Applications with Amazon Alexa Your Voice is Your Passport: Implementing Voice-driven Applications with Amazon Alexa Stephen Lippens Solutions Architect slippens@microstrategy.com This presentation may include statements that constitute

More information

HKIoTDemo Documentation

HKIoTDemo Documentation HKIoTDemo Documentation Release 1.0 Eric Tran, Tyler Freckmann October 12, 2016 Contents 1 Video of the Demo 3 2 About the project 5 3 Challenges we ran into 7 4 Architecture Overview 9 4.1 Architecture

More information

Microsoft speech offering

Microsoft speech offering Microsoft speech offering Win 10 Speech APIs Local Commands with constrained grammar E.g. Turn on, turn off Cloud dictation Typing a message, Web search, complex phrases Azure marketplace Oxford APIs LUIS

More information

Aastra 673xi / 675xi. Telephony with SIP Phones at the Aastra 800/OpenCom 100 Communications System User Guide

Aastra 673xi / 675xi. Telephony with SIP Phones at the Aastra 800/OpenCom 100 Communications System User Guide Aastra 673xi / 675xi Telephony with SIP Phones at the Aastra 800/OpenCom 100 Communications System User Guide Welcome to Aastra Thank you for choosing this Aastra product. Our product meets the strictest

More information

Cisco Unified Workforce Optimization

Cisco Unified Workforce Optimization Cisco Unified Workforce Optimization Quality Management Integration Guide for CAD and Finesse Version 10.5 First Published: June 2, 2014 Last Updated: September 15, 2015 THE SPECIFICATIONS AND INFORMATION

More information

Uber Push and Subscribe Database

Uber Push and Subscribe Database Uber Push and Subscribe Database June 21, 2016 Clifford Boyce Kyle DiSandro Richard Komarovskiy Austin Schussler Table of Contents 1. Introduction 2 a. Client Description 2 b. Product Vision 2 2. Requirements

More information

ITP 342 Mobile App Dev. Audio

ITP 342 Mobile App Dev. Audio ITP 342 Mobile App Dev Audio File Formats and Data Formats 2 pieces to every audio file: file format (or audio container) data format (or audio encoding) File formats describe the format of the file itself

More information

Enhancing applications with Cognitive APIs IBM Corporation

Enhancing applications with Cognitive APIs IBM Corporation Enhancing applications with Cognitive APIs After you complete this section, you should understand: The Watson Developer Cloud offerings and APIs The benefits of commonly used Cognitive services 2 Watson

More information

V-9908 Message Page Panel Programming Utility

V-9908 Message Page Panel Programming Utility General V-9908 Message Page Panel Programming Utility The Message Page Panel Programmer (MCPP.exe) is a Windows Tool used to record phrases for the Message Page Panel (V-9908), to save the digitized audio

More information

MRCP. AWS Lex Plugin. Usage Guide. Powered by Universal Speech Solutions LLC

MRCP. AWS Lex Plugin. Usage Guide. Powered by Universal Speech Solutions LLC Powered by Universal Speech Solutions LLC MRCP AWS Lex Plugin Usage Guide Revision: 2 Created: October 15, 2018 Last updated: November 1, 2018 Author: Arsen Chaloyan Universal Speech Solutions LLC Overview

More information

Fusion Voic Plus User Guide For the iphone

Fusion Voic Plus User Guide For the iphone Fusion Voicemail Plus User Guide For the iphone Welcome to Fusion Voicemail Plus! Fusion Voicemail Plus (FVM+) is a replacement for the ordinary voicemail that you use with your cellular phone company.

More information

CS 1110, LAB 3: MODULES AND TESTING First Name: Last Name: NetID:

CS 1110, LAB 3: MODULES AND TESTING   First Name: Last Name: NetID: CS 1110, LAB 3: MODULES AND TESTING http://www.cs.cornell.edu/courses/cs11102013fa/labs/lab03.pdf First Name: Last Name: NetID: The purpose of this lab is to help you better understand functions, and to

More information

Participant User Guide, Version 2.6

Participant User Guide, Version 2.6 Developers Integration Lab (DIL) Participant User Guide, Version 2.6 3/17/2013 REVISION HISTORY Author Date Description of Change 0.1 Laura Edens Mario Hyland 9/19/2011 Initial Release 1.0 Michael Brown

More information

Cisco Unified Workforce Optimization

Cisco Unified Workforce Optimization Cisco Unified Workforce Optimization Quality Management Integration Guide for CAD and Finesse Version 11.5 First Published: July 28, 2016 Last Updated: July 28, 2016 Cisco Systems, Inc. www.cisco.com THE

More information

Developing Intelligent Apps

Developing Intelligent Apps Developing Intelligent Apps Lab 1 Creating a Simple Client Application By Gerry O'Brien Overview In this lab you will construct a simple client application that will call an Azure ML web service that you

More information

Caching. Caching Overview

Caching. Caching Overview Overview Responses to specific URLs cached in intermediate stores: Motivation: improve performance by reducing response time and network bandwidth. Ideally, subsequent request for the same URL should be

More information

Selenium Testing Course Content

Selenium Testing Course Content Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference

More information

Podcasting: How to Create Your Own in 30-Minutes

Podcasting: How to Create Your Own in 30-Minutes Podcasting: How to Create Your Own in 30-Minutes Podcasts Included in this Tutorial: o What is a Podcast? o What are the Learning Benefits of Podcasts? o Creating a Podcast with Audacity o Creating a Podcast

More information

Program Correctness and Efficiency. Chapter 2

Program Correctness and Efficiency. Chapter 2 Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you

More information

2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level

2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level D Y Patil Institute of Engineering and Technology, Ambi, Pune Address:Sr.No.124 & 126, A/p- Ambi, Tal-Maval, MIDC Road, TalegaonDabhade, Pune-410506, Maharashtra, India Tel: 02114306229, E-mail : info@dyptc.edu.in

More information

P2P Programming Assignment

P2P Programming Assignment P2P Programming Assignment Overview This project is to implement a Peer-to-Peer (P2P) networking project similar to a simplified Napster. You will provide a centralized server to handle cataloging the

More information

d. Delete data e. Transactions Realtime Features a. Value Listener b. Child Listener c. Remove Listeners

d. Delete data e. Transactions Realtime Features a. Value Listener b. Child Listener c. Remove Listeners Contents 1. License... 5 2. Introduction... 5 3. Plugin updates... 7 a. Update from previous versions to 1.5.0... 7 4. Example project... 8 5. GitHub Repository... 8 6. Getting started... 9 7. Database

More information

CSSE 460 Computer Networks Group Projects: Implement a Simple HTTP Web Proxy

CSSE 460 Computer Networks Group Projects: Implement a Simple HTTP Web Proxy CSSE 460 Computer Networks Group Projects: Implement a Simple HTTP Web Proxy Project Overview In this project, you will implement a simple web proxy that passes requests and data between a web client and

More information

DESIGN AS RISK MINIMIZATION

DESIGN AS RISK MINIMIZATION THOMAS LATOZA SWE 621 FALL 2018 DESIGN AS RISK MINIMIZATION IN CLASS EXERCISE As you come in and take a seat What were the most important risks you faced in a recent software project? WHAT IS A RISK? WHAT

More information

Build, Deploy & Operate Intelligent Chatbots with Amazon Lex

Build, Deploy & Operate Intelligent Chatbots with Amazon Lex Build, Deploy & Operate Intelligent Chatbots with Amazon Lex Ian Massingham AWS Technical Evangelist @IanMmmm aws.amazon.com/lex 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

More information

Automated Tagging to Enable Fine-Grained Browsing of Lecture Videos

Automated Tagging to Enable Fine-Grained Browsing of Lecture Videos Automated Tagging to Enable Fine-Grained Browsing of Lecture Videos K.Vijaya Kumar (09305081) under the guidance of Prof. Sridhar Iyer June 28, 2011 1 / 66 Outline Outline 1 Introduction 2 Motivation 3

More information

Project 2 Implementing a Simple HTTP Web Proxy

Project 2 Implementing a Simple HTTP Web Proxy Project 2 Implementing a Simple HTTP Web Proxy Overview: CPSC 460 students are allowed to form a group of up to 3 students. CPSC 560 students each must take it as an individual project. This project aims

More information

Form. Settings, page 2 Element Data, page 7 Exit States, page 8 Audio Groups, page 9 Folder and Class Information, page 9 Events, page 10

Form. Settings, page 2 Element Data, page 7 Exit States, page 8 Audio Groups, page 9 Folder and Class Information, page 9 Events, page 10 The voice element is used to capture any input from the caller, based on application designer-specified grammars. The valid caller inputs can be specified either directly in the voice element settings

More information

UCT Application Development Lifecycle. UCT Business Applications

UCT Application Development Lifecycle. UCT Business Applications UCT Business Applications Page i Table of Contents Planning Phase... 1 Analysis Phase... 2 Design Phase... 3 Implementation Phase... 4 Software Development... 4 Product Testing... 5 Product Implementation...

More information

Apptec Corporation. Our products and solutions make your work easier!

Apptec Corporation. Our products and solutions make your work easier! PCRRecorder Voice-Activated Pedal Controlled PC Recorder DigiLog Manual Installation, setup and use. Availability and specifications subject to change without notice. Version 08.00.04 COPYRIGHT Copyright

More information

x. The optional Cross-compiler word set x.1 Introduction x.2 Additional terms and notation x.2.1 Definitions of terms

x. The optional Cross-compiler word set x.1 Introduction x.2 Additional terms and notation x.2.1 Definitions of terms x. The optional Cross-compiler word set x.1 Introduction The purpose of this optional wordset is to facilitate writing programs that may be compiled to run on s other than the system performing the compilation.

More information

Project 2 Group Project Implementing a Simple HTTP Web Proxy

Project 2 Group Project Implementing a Simple HTTP Web Proxy Project 2 Group Project Implementing a Simple HTTP Web Proxy Overview: This is a group project. CPSC 460 students are allowed to form a group of 3-4 students (It is ok if you want to take it as an individual

More information

Cisco CVP VoiceXML 3.0. Element Specifications

Cisco CVP VoiceXML 3.0. Element Specifications Cisco CVP VoiceXML 3.0 CISCO CVP VOICEXML 3.0 Publication date: 14 January 2005 Copyright (C) 2000-2005 Audium Corporation. All rights reserved. Distributed by Cisco Systems, Inc. under license from Audium

More information

Selection tool - for selecting the range of audio you want to edit or listen to.

Selection tool - for selecting the range of audio you want to edit or listen to. Audacity Quick Guide Audacity is an easy-to-use audio editor and recorder. You can use Audacity to: Record live audio. Convert tapes and records into digital recordings or CDs. Edit sound files. Cut, copy,

More information

How A Website Works. - Shobha

How A Website Works. - Shobha How A Website Works - Shobha Synopsis 1. 2. 3. 4. 5. 6. 7. 8. 9. What is World Wide Web? What makes web work? HTTP and Internet Protocols. URL s Client-Server model. Domain Name System. Web Browser, Web

More information

CS112 Lecture: Exceptions and Assertions

CS112 Lecture: Exceptions and Assertions Objectives: CS112 Lecture: Exceptions and Assertions 1. Introduce the concepts of program robustness and reliability 2. Introduce exceptions 3. Introduce assertions Materials: 1. Online Java documentation

More information

EXIT ENGLISH TEST (EET) SPEAKING

EXIT ENGLISH TEST (EET) SPEAKING EXIT ENGLISH TEST (EET) SPEAKING User Guide for Students AKADEMI PENGAJIAN BAHASA UiTM Instructions for Users Please make sure your computer is installed with the latest ADOBE PLAYER. Download: www.adobe.com

More information

GuideAutomator: Automated User Manual Generation with Markdown

GuideAutomator: Automated User Manual Generation with Markdown GuideAutomator: Automated User Manual Generation with Markdown Allan dos Santos Oliveira 1, Rodrigo Souza 1 1 Department of Computer Science Federal University of Bahia (UFBA) Salvador BA Brazil allanoliver@dcc.ufba.br,

More information

How Agencies are Developing Accessible E-Government. By Stephen Condon Software Engineer Fig Leaf Software

How Agencies are Developing Accessible E-Government. By Stephen Condon Software Engineer Fig Leaf Software How Agencies are Developing Accessible E-Government By Stephen Condon Software Engineer Fig Leaf Software www.figleaf.com scondon@figleaf.com 1 Objectives 2 Define a custom skill for Amazon Alexa Define

More information

P2: Collaborations. CSE 335, Spring 2009

P2: Collaborations. CSE 335, Spring 2009 P2: Collaborations CSE 335, Spring 2009 Milestone #1 due by Thursday, March 19 at 11:59 p.m. Completed project due by Thursday, April 2 at 11:59 p.m. Objectives Develop an application with a graphical

More information

Speaker Recognition Enhanced Voice Conference

Speaker Recognition Enhanced Voice Conference Advanced Internet Service Project Report Speaker Recognition Enhanced Voice Conference Yancheng Li, Liang Wei, Zhaoyuan Zhang I. Introduction With the development of the whole world, more and more people

More information

Communication Manager API Release Notes Release 2.1, Build , May

Communication Manager API Release Notes Release 2.1, Build , May INTRODUCTION Communication Manager API Release Notes Release 2.1, Build 2.1.25, May 2005 03-300136 This document introduces the latest release of the Communication Manager API (Release 2.1), describes

More information

Introducing working with sounds in Audacity

Introducing working with sounds in Audacity Introducing working with sounds in Audacity A lot of teaching programs makes it possible to add sound to your production. The student can either record her or his own voice and/or add different sound effects

More information

Regis University CC&IS CS362 Data Structures

Regis University CC&IS CS362 Data Structures Regis University CC&IS CS362 Data Structures Programming Assignment #5 (covers classes and objects) Due: midnight Sunday of week 6 A college wants to you to write a test program for tracking their course

More information

Develop Unified SNMP, XML, CLI, and Web-based Management for Embedded Real-Time Systems with MIBGuide

Develop Unified SNMP, XML, CLI, and Web-based Management for Embedded Real-Time Systems with MIBGuide 1 Overview Develop Unified SNMP, XML, CLI, and Web-based Management for Embedded Real-Time Systems with MIBGuide SNMP Research International, Inc. Knoxville, Tennessee 1 Overview Support for remote management

More information

Beginning jquery. Course Outline. Beginning jquery. 09 Mar

Beginning jquery. Course Outline. Beginning jquery. 09 Mar Course Outline 09 Mar 2019 Contents 1. Course Objective 2. Pre-Assessment 3. Exercises, Quizzes, Flashcards & Glossary Number of Questions 4. Expert Instructor-Led Training 5. ADA Compliant & JAWS Compatible

More information

CMPSCI 145 MIDTERM #1 Solution Key. SPRING 2017 March 3, 2017 Professor William T. Verts

CMPSCI 145 MIDTERM #1 Solution Key. SPRING 2017 March 3, 2017 Professor William T. Verts CMPSCI 145 MIDTERM #1 Solution Key NAME SPRING 2017 March 3, 2017 PROBLEM SCORE POINTS 1 10 2 10 3 15 4 15 5 20 6 12 7 8 8 10 TOTAL 100 10 Points Examine the following diagram of two systems, one involving

More information

Leveraging the Globus Platform in your Web Applications. GlobusWorld April 26, 2018 Greg Nawrocki

Leveraging the Globus Platform in your Web Applications. GlobusWorld April 26, 2018 Greg Nawrocki Leveraging the Globus Platform in your Web Applications GlobusWorld April 26, 2018 Greg Nawrocki greg@globus.org Topics and Goals Platform Overview Why expose the APIs A quick touch of the Globus Auth

More information

1. Rich video conference control. Video Conferencing. System Solutions. Video Conferencing System

1. Rich video conference control. Video Conferencing. System Solutions. Video Conferencing System Video Conferencing System Solutions SparkleConference-Video Supports single node video conferencing for 100 people Supports multi-node overlay Support standard SIP rfc-4579 conference control protocol

More information

Menu Support for 2_Option_Menu Through 10_Option_Menu

Menu Support for 2_Option_Menu Through 10_Option_Menu Menu Support for 2_Option_Menu Through 10_Option_Menu These voice elements define menus that support from 2 to 10 options. The Menu voice elements are similar to the Form voice element, however the number

More information

Documenting APIs with Swagger. TC Camp. Peter Gruenbaum

Documenting APIs with Swagger. TC Camp. Peter Gruenbaum Documenting APIs with Swagger TC Camp Peter Gruenbaum Introduction } Covers } What is an API Definition? } YAML } Open API Specification } Writing Documentation } Generating Documentation } Alternatives

More information

Leveraging the OO Jenkins Plugin in DevOps scenarios

Leveraging the OO Jenkins Plugin in DevOps scenarios Leveraging the OO Jenkins Plugin in DevOps scenarios HP OO Webinar, October 2015 Remus Golgot, HP Operations Orchestration RnD Agenda Introduction Overview OO Jenkins Plugin Download and Installation Configurations

More information

A Mini Challenge: Build a Verifiable Filesystem

A Mini Challenge: Build a Verifiable Filesystem A Mini Challenge: Build a Verifiable Filesystem Rajeev Joshi and Gerard J. Holzmann Laboratory for Reliable Software, Jet Propulsion Laboratory, California Institute of Technology, Pasadena, CA 91109,

More information

A GET YOU GOING GUIDE

A GET YOU GOING GUIDE A GET YOU GOING GUIDE To Your copy here Audio Notetaker 4.0 April 2015 1 Learning Support Getting Started with Audio Notetaker Audio Notetaker is highly recommended for those of you who use a Digital Voice

More information

English. Smart API Using Smart API for open data and in the sharing economy

English. Smart API Using Smart API for open data and in the sharing economy English Smart API Using Smart API for open data and in the sharing economy Table of Contents 1. Why and how should you share data... 1 2. Smart API Sharing... 2 2.1. How does it work... 2 2.2. How to take

More information

CS112 Lecture: Exceptions. Objectives: 1. Introduce the concepts of program robustness and reliability 2. Introduce exceptions

CS112 Lecture: Exceptions. Objectives: 1. Introduce the concepts of program robustness and reliability 2. Introduce exceptions CS112 Lecture: Exceptions Objectives: 1. Introduce the concepts of program robustness and reliability 2. Introduce exceptions Materials: 1. Online Java documentation to project 2. ExceptionDemo.java to

More information

TYPIO BY ACCESSIBYTE LLC

TYPIO BY ACCESSIBYTE LLC TYPIO BY ACCESSIBYTE LLC All information contained is Accessibyte LLC 1 OVERVIEW 1. Forward Thank you for using Typio! The intent of Typio is to teach touch typing to students in the most accessible and

More information

ITP 342 Mobile App Development. APIs

ITP 342 Mobile App Development. APIs ITP 342 Mobile App Development APIs API Application Programming Interface (API) A specification intended to be used as an interface by software components to communicate with each other An API is usually

More information

LucidWorks: Searching with curl October 1, 2012

LucidWorks: Searching with curl October 1, 2012 LucidWorks: Searching with curl October 1, 2012 1. Module name: LucidWorks: Searching with curl 2. Scope: Utilizing curl and the Query admin to search documents 3. Learning objectives Students will be

More information

Review of Previous Lecture

Review of Previous Lecture Review of Previous Lecture Network access and physical media Internet structure and ISPs Delay & loss in packet-switched networks Protocol layers, service models Some slides are in courtesy of J. Kurose

More information

Full Stack Developer with Java

Full Stack Developer with Java Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed

More information

USER GUIDE FOR TWO MICROPHONE DIRECTION OF ARRIVAL ESTIMATION ON ANDROID SMARTPHONE FOR HEARING AID APPLICATIONS

USER GUIDE FOR TWO MICROPHONE DIRECTION OF ARRIVAL ESTIMATION ON ANDROID SMARTPHONE FOR HEARING AID APPLICATIONS USER GUIDE FOR TWO MICROPHONE DIRECTION OF ARRIVAL ESTIMATION ON ANDROID SMARTPHONE FOR HEARING AID APPLICATIONS Anshuman Ganguly, Abdullah Kucuk, Yiya Hao, Dr. Issa M.S. Panahi STATISTICAL SIGNAL PROCESSING

More information

Salesforce1 - ios App (Phone)

Salesforce1 - ios App (Phone) Salesforce1 - ios App (Phone) Web Content Accessibility Guidelines 2.0 Level A and AA Voluntary Product Accessibility Template (VPAT) This Voluntary Product Accessibility Template, or VPAT, is a tool that

More information

Alexa, what did I do last summer?

Alexa, what did I do last summer? , what did I do last summer? Vladimir Katalov, ElcomSoft SecTor 2018 ElcomSoft Ltd. www.elcomsoft.com 1 Who s Alexa? Amazon Alexa is a virtual assistant developed by Amazon She s 4 years young First appeared

More information

Libelium Cloud Hive. Technical Guide

Libelium Cloud Hive. Technical Guide Libelium Cloud Hive Technical Guide Index Document version: v7.0-12/2018 Libelium Comunicaciones Distribuidas S.L. INDEX 1. General and information... 4 1.1. Introduction...4 1.1.1. Overview...4 1.2. Data

More information

Management of Prompts, Grammars, Documents, and Custom Files

Management of Prompts, Grammars, Documents, and Custom Files Management of Prompts, Grammars, Documents, and Custom Files Manage Prompt Files Unified CCX applications can make use of many auxiliary files that interact with callers, such as scripts, pre-recorded

More information

RESTFUL WEB SERVICES - INTERVIEW QUESTIONS

RESTFUL WEB SERVICES - INTERVIEW QUESTIONS RESTFUL WEB SERVICES - INTERVIEW QUESTIONS http://www.tutorialspoint.com/restful/restful_interview_questions.htm Copyright tutorialspoint.com Dear readers, these RESTful Web services Interview Questions

More information

Testing & Debugging TB-1

Testing & Debugging TB-1 Testing & Debugging TB-1 Need for Testing Software systems are inherently complex» Large systems 1 to 3 errors per 100 lines of code (LOC) Extensive verification and validiation is required to build quality

More information

Actions on Landing Pages

Actions on Landing Pages Technical Disclosure Commons Defensive Publications Series July 03, 2017 Actions on Landing Pages John D. Lanza Foley & Lardner LLP John D. Lanza Foley & Lardner LLP Follow this and additional works at:

More information

Sonatype CLM - Release Notes. Sonatype CLM - Release Notes

Sonatype CLM - Release Notes. Sonatype CLM - Release Notes Sonatype CLM - Release Notes i Sonatype CLM - Release Notes Sonatype CLM - Release Notes ii Contents 1 Introduction 1 2 Upgrade instructions 2 3 Sonatype CLM for Bamboo 3 4 Sonatype CLM 1.13 4 5 Sonatype

More information

Software Test Plan Version 1.0

Software Test Plan Version 1.0 Software Test Plan Version 1.0 3/23/2017 Team Name: Skyward Team Members: Gage Cottrell Justin Kincaid Chris French Alexander Sears Sponsors: Dr. Michael Mommert and Dr. David Trilling Mentor: Dr. Otte

More information

Lecture 15 Software Testing

Lecture 15 Software Testing Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered

More information

IF YOU D LIKE TO BUILD ALONG WITH ME

IF YOU D LIKE TO BUILD ALONG WITH ME IF YOU D LIKE TO BUILD ALONG WITH ME 1. Visual Studio 2015 (or newer) with AWS Toolkit for Visual Studio https://aws.amazon.com/visualstudio/ 2. Sign up for an AWS Account (Free, requires credit card):

More information

Manual Cellip 365 Centrex Dashboard Audio Library Recording a Sound File Auto attendant (IVR)...

Manual Cellip 365 Centrex Dashboard Audio Library Recording a Sound File Auto attendant (IVR)... TABLE OF CONTENTS Manual Cellip 365 Centrex... 2 1. Dashboard... 2 2. Audio Library... 2 2.1 Recording a Sound File... 3 3. Auto attendant (IVR)... 3 4. Response group... 6 4.1 Change the name of the response

More information

Nabto SDK Nabto Serial Link Protocol

Nabto SDK Nabto Serial Link Protocol Nabto SDK Nabto Serial Link Protocol Nabto/001/TEN/011 Nabto Nabto/001/TEN/011 Nabto Serial Link Protocol Page 1 of 23 Vocabulary Contents 1 Vocabulary... 4 2 Introduction... 5 3 Access control... 5 3.1

More information

Biocomputing II Coursework guidance

Biocomputing II Coursework guidance Biocomputing II Coursework guidance I refer to the database layer as DB, the middle (business logic) layer as BL and the front end graphical interface with CGI scripts as (FE). Standardized file headers

More information

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.1

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.1 Job Reference Guide SLAMD Distributed Load Generation Engine Version 1.8.1 December 2004 Contents 1. Introduction...3 2. The Utility Jobs...4 3. The LDAP Search Jobs...11 4. The LDAP Authentication Jobs...22

More information

1 P age NEXTIVA CALL CENTER. Supervisor User Guide. nextiva.com/support 2015 NEXTIVA, ALL RIGHTS RESERVED

1 P age NEXTIVA CALL CENTER. Supervisor User Guide. nextiva.com/support 2015 NEXTIVA, ALL RIGHTS RESERVED 1 P age NEXTIVA CALL CENTER Supervisor User Guide nextiva.com/support 2015 NEXTIVA, ALL RIGHTS RESERVED 2 P age Creating Employees... 3 Creating an Employee... 3 Assigning Licenses to Employees... 7 Schedules...

More information

Chapter Ten String Manipulation and Menus

Chapter Ten String Manipulation and Menus Microsoft Visual Basic 2015: Reloaded Sixth Edition Chapter Ten String Manipulation and Menus Objectives After studying this chapter, you should be able to: Determine the number of characters in a string

More information

Ohio s State Tests and Ohio English Language Proficiency Assessment Practice Site Guidance Document Updated September 14, 2018

Ohio s State Tests and Ohio English Language Proficiency Assessment Practice Site Guidance Document Updated September 14, 2018 Ohio s State Tests and Ohio English Language Proficiency Assessment Practice Site Guidance Document Updated September 14, 2018 This document covers the following information: What s new for 2018-2019 About

More information

On the right side, you will find a headphone jack closest to you, followed by Volume Down and Volume Up buttons.

On the right side, you will find a headphone jack closest to you, followed by Volume Down and Volume Up buttons. 8GB Micro-Speak Plus User Guide Thank you for purchasing the Micro-Speak Talking Digital Voice Recorder from Talking Products Limited and A T Guys. Let s get you oriented so you can use your new recorder

More information

TESL-EJ 11.1, June 2007 Audacity/Alameen 1

TESL-EJ 11.1, June 2007 Audacity/Alameen 1 June 2007 Volume 11, Number1 Title: Audacity 1.2.6 Publisher: Product Type: Platform: Minimum System Requirements: Developed by a group of volunteers and distributed under the GNU General Public License

More information

Javadoc. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 7

Javadoc. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 7 Javadoc Computer Science and Engineering College of Engineering The Ohio State University Lecture 7 Motivation Over the lifetime of a project, it is easy for documentation and implementation to diverge

More information

door Sasa Berberovic

door Sasa Berberovic door Sasa Berberovic Overview Reusable Components Subsystems Reusable Components Reuse Mechanisms The Role of Testing in Reuse Reusing Test Suites Test Design Patterns Abstract Class Test Generic Class

More information

Application Note for Emergency Broadcast System PHP Sample Code - Issue 1.0

Application Note for Emergency Broadcast System PHP Sample Code - Issue 1.0 Avaya Solution & Interoperability Test Lab Application Note for Broadcast System PHP Sample Code - Issue 1.0 Abstract These Application Notes describes the installation and operation of the Broadcast System

More information

Management of Prompts, Grammars, Documents, and Custom Files

Management of Prompts, Grammars, Documents, and Custom Files Management of Prompts, Grammars, Documents, and Custom Files Unified CCX applications can make use of many auxiliary files that interact with callers, such as scripts, pre-recorded prompts, grammars, and

More information

Dialog Designer Call Flow Elements

Dialog Designer Call Flow Elements Dialog Designer Call Flow Elements A DevConnect Tutorial Table of Contents Section 1: Dialog Designer Call Flow Elements Section 1: Dialog Designer Call Flow Elements... 1 1.1 About this Tutorial When

More information

B. Subject Workbook. Introduction. Tutorial

B. Subject Workbook. Introduction. Tutorial 183 B. Subject Workbook Introduction In this experiment we hope to discover whether a technique known as musical program auralisation creates musical representations of Pascal programs that are easily

More information

MRCP. Kaldi SR Plugin. Usage Guide. Powered by Universal Speech Solutions LLC

MRCP. Kaldi SR Plugin. Usage Guide. Powered by Universal Speech Solutions LLC Powered by Universal Speech Solutions LLC MRCP Kaldi SR Plugin Usage Guide Revision: 1 Created: February 6, 2018 Last updated: February 6, 2018 Author: Arsen Chaloyan Universal Speech Solutions LLC Overview

More information

MRCP. Yandex SS Plugin. Usage Guide. Powered by Universal Speech Solutions LLC

MRCP. Yandex SS Plugin. Usage Guide. Powered by Universal Speech Solutions LLC Powered by Universal Speech Solutions LLC MRCP Yandex SS Plugin Usage Guide Revision: 1 Created: November 19, 2018 Last updated: November 19, 2018 Author: Arsen Chaloyan Universal Speech Solutions LLC

More information

Distributed Systems 8. Remote Procedure Calls

Distributed Systems 8. Remote Procedure Calls Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier

More information