This document provides a software design document for an Android mobile application called Help that allows users to send an alert message with their location to emergency contacts by saying "Help". The application uses speech recognition to detect when a user says "Help" and then sends a text message with the user's location to their emergency contacts. It includes information on the problem statement, current solutions, use cases, architecture diagram, MVC framework, and components like activities, database, and speech recognition. The goal is to create a simple one-touch emergency alert system that can be used even in situations where the user may not have time or ability to open the app and send an alert manually.
This application is basically designed for girl’s safety, this is not only emergency app but it has many other features which plays important role in women’s life.
Some features of this App:
User (female user only) can create their account in this app by provide some information about them.
If any user is in problem, she can notify her friend or close one by taking photo or by calling them through power button of your smart phone 2 times consecutively begins sending out alert messages to your contacts that you feed into the app as the designated people.
User can follow and unfollow people in their nearby location; if she follows any other user then her feeds will be displayed on that user wall.
Women can add their stories and thoughts and can read others stories and thoughts too.
Women’s can check different alert and safe places, so that they can know which places they should visit and which not.
Your Smartphone CAN help you work smarter in your busines.Bryna Lee Jacobson
From presentation to ITA Feb 2015. Learn ways to secure your phone and its data and use apps in ways you may not have thought of doing. Add to your peace of mind, feeling of being in control and make it fun! My Tech Tutor helps you get to, "I Can Do It!" It's easy when you know how. Beginners of all ages are welcome.
A report on SOS App For Android platform,AN ANDROID APPLICATION FOR EMERGENCIES/The aim of the project is to develop an Android application that lets its users to send notifications in case of an emergency or a panic situation. The users can send multiple text messages and emails on the press of a single button. The phone numbers, email ids and the contents of the text and email messages can be set from within the application. The text messages and emails sent, along with the content, also have the last known location of the user. This is very helpful in tracking the whereabouts of the person. The user can also call 911 directly from within the application, if the nature of the situation demands it.
Women safety is a prime concern in today’s world, considering the spurt in the number of incidents and crime rate against women, especially in the metro cities where women have to stay out for long.
As women need to travel late at night sometimes, it is important for them to stay alert and safe. The government regularly takes necessary measures to ensure women’s safety. However, it is still important to take the matter into your own hands and download safety apps for women.
AppSpy is a participant in the Avangate Associates Program, an affiliate advertising program designed to provide a means for website owners to earn advertising fees by advertising and linking to avanagte.com, thetruthspy.com, and any other website that may be affiliated with TheTruthSpy Associates Program. AppSpy is the mobile monitoring app that has been taking care of all your personal and professional digital safety needs. It’s an app that’s trusted by thousands of businesses and families all around the world.
http://appspy.net
A women secure mobile app for emergency usage (go safe app)eSAT Journals
Abstract Many unfortunate incidents have been taking place . Problems may come from any direction such as walking on the road after the
work, going to super market or many other reasons for which they go alone. People at home are not sure of their return safely. In
order to overcome such problems the GO SAFE (security app) mobile based application is not only necessary to use but also
plays a pivotal role with android software. The usage of smart phones equipped with GPS navigation unit have increased rapidly.
The “GO SAFE” application is mainly developed to safeguard. By clicking on the buttons (power & volume button) alert message
is sent. Application communicates the user’s location to the registered contacts in the form of message. Thus, it acts like a sentinel
following behind the person till the user feels she is safe. Also, the registered contacts and GPS location are saved from time to
time in a database.
Keywords: Apps, Android, Mobile, Safety. Etc…
REMOTE SOLAR MONITORING SYSTEM - A solution to make battery life extend by 300%Mamoon Ismail Khalid
AIM OF PROJECT
Battery Monitoring System
Efficient usage of Battery
Integrating solar panel real time data with building computer
Storage of data
Like EGAUGE
METHODS OF S.O.C MEASUREMENT
Voltage Measurement
Specific Gravity Method
Quantum Magnetism
Integrated Current Method
PROBLEMS ASSOCIATED :
Better S.O.C Measurement :
Capacity changes :
Temperature
Depth Of Discharge Effect
Charge / Discharge cycles
Self Discharge
Charge Rate (C-Rate) dependence
HOW TO INCORPORATE THESE FACTORS ?
Piece Wise Linearization :
Temperature effect
C-Factor effect
Depth Of Discharge effect
Number Of Cycles effect
Incorporate these factors through feed back control into Simulink Model
Network Traffic Adaptable Image Codec - A solution to make streaming fasterMamoon Ismail Khalid
During online video streaming, if network congestion occurs, the resolution is
downscaled, leading to deteriorated video experience.
This occurs even when slight network congestion occurs.
For example streaming videos on youtube provides option of streaming in
480p, 360p, 240p etc.
Downscaling resolution greatly reduces the bandwidth, leaving some
bandwidth unused, leading to inefficiency.
Downscaling also results in deteriorated video quality, while some bandwidth
is still unused and could have been utilized.
Proposed Solution
Keep resolution constant and vary coding parameters, e.g. macro-block size, quantization
step-size etc.
For example, assume a 1MBps channel bandwidth and a video streaming in 640*480 that needs
1.2 Mbps.
Traditional solution: reduce resolution to 320*240, requiring a bitrate of 0.6 Mbps, leaving 0.4
Mbps unused, and deteriorated video quality.
Proposed solution: Resolution remains same 640*480, adjust one parameter, required bandwidth
now: 0.9. Wasted:0.1Mbps, and enhanced video quality.
More Related Content
Similar to Design Document Final for HELP application
This application is basically designed for girl’s safety, this is not only emergency app but it has many other features which plays important role in women’s life.
Some features of this App:
User (female user only) can create their account in this app by provide some information about them.
If any user is in problem, she can notify her friend or close one by taking photo or by calling them through power button of your smart phone 2 times consecutively begins sending out alert messages to your contacts that you feed into the app as the designated people.
User can follow and unfollow people in their nearby location; if she follows any other user then her feeds will be displayed on that user wall.
Women can add their stories and thoughts and can read others stories and thoughts too.
Women’s can check different alert and safe places, so that they can know which places they should visit and which not.
Your Smartphone CAN help you work smarter in your busines.Bryna Lee Jacobson
From presentation to ITA Feb 2015. Learn ways to secure your phone and its data and use apps in ways you may not have thought of doing. Add to your peace of mind, feeling of being in control and make it fun! My Tech Tutor helps you get to, "I Can Do It!" It's easy when you know how. Beginners of all ages are welcome.
A report on SOS App For Android platform,AN ANDROID APPLICATION FOR EMERGENCIES/The aim of the project is to develop an Android application that lets its users to send notifications in case of an emergency or a panic situation. The users can send multiple text messages and emails on the press of a single button. The phone numbers, email ids and the contents of the text and email messages can be set from within the application. The text messages and emails sent, along with the content, also have the last known location of the user. This is very helpful in tracking the whereabouts of the person. The user can also call 911 directly from within the application, if the nature of the situation demands it.
Women safety is a prime concern in today’s world, considering the spurt in the number of incidents and crime rate against women, especially in the metro cities where women have to stay out for long.
As women need to travel late at night sometimes, it is important for them to stay alert and safe. The government regularly takes necessary measures to ensure women’s safety. However, it is still important to take the matter into your own hands and download safety apps for women.
AppSpy is a participant in the Avangate Associates Program, an affiliate advertising program designed to provide a means for website owners to earn advertising fees by advertising and linking to avanagte.com, thetruthspy.com, and any other website that may be affiliated with TheTruthSpy Associates Program. AppSpy is the mobile monitoring app that has been taking care of all your personal and professional digital safety needs. It’s an app that’s trusted by thousands of businesses and families all around the world.
http://appspy.net
A women secure mobile app for emergency usage (go safe app)eSAT Journals
Abstract Many unfortunate incidents have been taking place . Problems may come from any direction such as walking on the road after the
work, going to super market or many other reasons for which they go alone. People at home are not sure of their return safely. In
order to overcome such problems the GO SAFE (security app) mobile based application is not only necessary to use but also
plays a pivotal role with android software. The usage of smart phones equipped with GPS navigation unit have increased rapidly.
The “GO SAFE” application is mainly developed to safeguard. By clicking on the buttons (power & volume button) alert message
is sent. Application communicates the user’s location to the registered contacts in the form of message. Thus, it acts like a sentinel
following behind the person till the user feels she is safe. Also, the registered contacts and GPS location are saved from time to
time in a database.
Keywords: Apps, Android, Mobile, Safety. Etc…
REMOTE SOLAR MONITORING SYSTEM - A solution to make battery life extend by 300%Mamoon Ismail Khalid
AIM OF PROJECT
Battery Monitoring System
Efficient usage of Battery
Integrating solar panel real time data with building computer
Storage of data
Like EGAUGE
METHODS OF S.O.C MEASUREMENT
Voltage Measurement
Specific Gravity Method
Quantum Magnetism
Integrated Current Method
PROBLEMS ASSOCIATED :
Better S.O.C Measurement :
Capacity changes :
Temperature
Depth Of Discharge Effect
Charge / Discharge cycles
Self Discharge
Charge Rate (C-Rate) dependence
HOW TO INCORPORATE THESE FACTORS ?
Piece Wise Linearization :
Temperature effect
C-Factor effect
Depth Of Discharge effect
Number Of Cycles effect
Incorporate these factors through feed back control into Simulink Model
Network Traffic Adaptable Image Codec - A solution to make streaming fasterMamoon Ismail Khalid
During online video streaming, if network congestion occurs, the resolution is
downscaled, leading to deteriorated video experience.
This occurs even when slight network congestion occurs.
For example streaming videos on youtube provides option of streaming in
480p, 360p, 240p etc.
Downscaling resolution greatly reduces the bandwidth, leaving some
bandwidth unused, leading to inefficiency.
Downscaling also results in deteriorated video quality, while some bandwidth
is still unused and could have been utilized.
Proposed Solution
Keep resolution constant and vary coding parameters, e.g. macro-block size, quantization
step-size etc.
For example, assume a 1MBps channel bandwidth and a video streaming in 640*480 that needs
1.2 Mbps.
Traditional solution: reduce resolution to 320*240, requiring a bitrate of 0.6 Mbps, leaving 0.4
Mbps unused, and deteriorated video quality.
Proposed solution: Resolution remains same 640*480, adjust one parameter, required bandwidth
now: 0.9. Wasted:0.1Mbps, and enhanced video quality.
Hospital Management and Inventory Control Solution for Public Hospitals in De...Mamoon Ismail Khalid
Historic underinvestment in public health has left Ecuador
with one of the most inefficient health systems in the region.
The Problem
Little info sharing
The lack of interoperable
systems and records
management contributes to a
lack of understanding of public
health needs leads to
treatments that don't really
address overall health issues
Bureaucracy
Public health employees are
engaged in redundant
administrative tasks that divert
resources from patient care and
clog system
PAPER RECORDING OF INFORMATION
Medical assistants need to manually fill in 5
different records (1 per prescription), they
first do it in paper and then typed it in the
computer since the Wi-Fi is not reliable.
Excessive waits
Lead times for getting
appointments in and long
check in processes lead to
patients abandoning
preventative care that could
save money and improve
patient outcomes
Most people we surveyed
complained about lead time. It
becomes even more
aggravating when it’s an
emergency.
Abuse and waste
Inability to track prescriptions
and inventory offer opportunity
for abuse that undermines the
system's overall quality
The result:
Costly, Inefficient
and non-citizen
centric public
healthcare system
The result:
Costly, Inefficient
and non-citizen
centric public
healthcare system
AES is pioneering the transformation of solar installation to make it more accessible, efficient,
and scalable, thereby accelerating global decarbonization efforts. To achieve this vision, AES
has developed Atlas, a groundbreaking solar robot designed to enhance the speed, efficiency,
and safety of solar panel installation. Atlas will revolutionize the solar industry by automating
labor-intensive tasks, reducing costs, and improving project scalability
Start-up name ----> (crunchbase/Google api/Yahoo finance/LinkedIn) ---->extract features ----> classification----> analyze ------>, predict cross border expansion needs
Features:
Stage
Geography not at (to predict cross border readiness
Geography already at (to predict cross border readiness)
Number of employees (to predict cross border readiness)
Revenue stage (to predict investment need vs clientele need vs strategic partnership need)
Product stage (to predict manufacturer partnership etc.)
Corporations name ----> (crunchbase/Google api/Yahoo finance/LinkedIn) ---->extract features ----> classification----> analyze ------>, predict cross border expansion needs
Features:
Industry in at
Industries/categories in that cluster
Possible problems they could face to keep up with tech singularity
Employees worldwide
Geographies at and not at (to predict whether they have access to VCs or entrepreneurship ecosystems like Israel NYC Silicon Valley and China(Szehnzen))
Competitors in China-
When they say solution intro - keyword pick up and run search on jing data to retrieve all relevant results ---> input into “Competitors field”
Matching criteria:
Matching algorithm:
Goal: matching needs of international startups and china investors manufacturers etc
Data filtering:
Filter by participation goal: look for a company in need of capital raise? Partners? Business acceleration?
Filter by Industry/categories
Filter by Funding stage
Filter by capital needed
Filter by company valuation
Filter by expansion timeline
Filter by location of the startups(city or country)
Search for Keywords (Or company name):
Match the word in the company description or product intro
Ideal providing format of data:
Filtered data ordered by relevance score or reliability score(professional background of team member)?
PlanA: Filter data(by category, participation goal, currency allowed,timeline) and score those filtered startups, and list the top ones
PlanB: Do not filter, score every startup, and list the top ones
Joint3DShapeMatching - a fast approach to 3D model matching using MatchALS 3...Mamoon Ismail Khalid
we extend the global optimization-based
approach of jointly matching a set of images to jointly
matching a set of 3D meshes. The estimated correspon
dences simultaneously maximize pairwise feature affini
ties and cycle consistency across multiple models. We
show that the low-rank matrix recovery problem can be
efficiently applied to the 3D meshes as well. The fast
alternating minimization algorithm helps to handle real
world practical problems with thousands of features. Ex
perimental results show that, unlike the state-of-the-art
algorithm which rely on semi-definite programming, our
algorithm provides an order of magnitude speed-up along
with competitive performance. Along with the joint shape
matching we propose an approach to apply a distortion
term in pairwise matching, which helps in successfully
matching the reflexive sub-parts of two models distinc
tively. In the end, we demonstrate the applicability of
the algorithm to match a set of 3D meshes of the SCAPE
benchmark database
Attempted implementation of the following paper:
" GOLFPOSE:GOLFSWINGANALYSESWITHAMONOCULARCAMERABASEDHUMAN
POSEESTIMATION
Zhongyu Jiang1⋆, Haorui Ji2⋆, Samuel Menaker2 and Jenq-Neng Hwang1
1Dept. Electrical & Computer Engineering , University of Washington
2SPORTSBOX.AI INC.
zyjiang@uw.edu, haoruij@sportsbox.ai, samm@sportsbox.ai, hwang@uw.edu
ABSTRACT
With the rapid developments of computer vision and deep
learning technologies, artificial intelligence takes a more and
more important role in sports analyses. In this paper, to at
tain the objective of automated golf swing analyses, we pro
pose a lightweight temporal-based 2D human pose estimation
(HPE) method, called GolfPose, which achieves improved
performance than the state-of-the-art image-based HPE meth
ods. Unlike traditional image-based methods, our temporal
based method, designed for efficient and effective golf swing
analyses, takes advantage of the temporal information to im
prove the estimation accuracy of fast-moving and partially
self-occluded keypoints. Furthermore, in order to make sure
the golf swing analyses can run on mobile devices, we op
timize the model architecture to achieve real-time inference.
With around 10% of the parameters and half of the GFLOPs
used in the state-of-the-art HRNet, our proposed GolfPose
model can achieve 9.16 mean pixel error (MPE) in our golf
swing dataset, compared with 9.20 MPE for HRNet. Further
more, the proposed temporal-based method, facilitated with
golf club detection(GCD), significantly improves the accu
racy of keypoints on the golf club from 13.98 to 9.21 MPE.
Index Terms— SportsAnalysis, HumanPoseEstimation,
Golf Swing, Line Segment Detection"
There is an increased global
awareness that a modern
economy cannot reach its full
potential without nurturing the
innovation of its entrepreneurs,
and that realization enhances
the prospects for venture capital.
I am very passionate about using investment strategies combined with leveraging political and
corporate support to create radical social transformation and new markets in the developing world.
Since past year I have been compiling a set of ideas that IF implemented with the right
partnerships - can turnaround the fate of any developing country.
Please note that in this document we take the example of Pakistan. However the thesis underlying
the suggestions embedded in this document holds true in the author's opinion for other
developing countries/regions as well. Some of the ideas listed here are inspired from my work of
consulting governments and large corporations across LatAm and China. In my years of being an
investor in the U.S venture capital industry, I have had the privilege to meet entrepreneurs, Venture
Capitalists, innovation thought leaders etc. from 50+ countries (Germany, UK, Israel, India,
Singapore,Turkey, France, China, Saudi Arabia, Dubai, Iran, etc. etc.). I can safely conclude that the
secret recipe to the success of U.S. economy and military might lies, to a major credit, in the
thought leadership and effective capital market of venture capital. Most smart countries I have
worked with have figured out tailored cross border investment strategies to be involved in the U.S
innovation ecosystem. Developing countries can learn from some these examples and replicate to
achieve great outcomes
Returnable Plastics Ecosystem
Latin America’s first returnable plastics ecosystem which recycle and replaces
the 100 billion plastics products used in El-Salvador and Vietnam every year.
This is a multi-phased solution which leverages to incentivize the average consumer to follow better sorting habits (particularly sorting organic and in- organic waste separately), towards the goal of being able to extract valuable waste items from the value chain in a manner that leads to cost savings compared to the status quo methodologies.
1) Partnerships with
ecosystem
stakeholders
(corporations, and government)
2) Sophisticated
technology (computer vision, RFIDs/QR
codes, sensor, networks)
3) Business model
Innovation
(reward mechanism for good
sorting habits among consumers)
Future of agriculture agriculture - technology is a necessity in 2020 and beyondMamoon Ismail Khalid
The pace of change is accelerating with technological advances, innovative business models, and changing consumer preferences. Many of the world’s leading industries are grinding to a halt as governments across the globe attempt to thwart the further spread of Covid-19. Industries that involve bringing large numbers of people together physically are bearing the brunt, including sporting events, restaurants, education, and tourism.
But there are a few that have been deemed essential to everyday life, including healthcare, emergency services, food manufacturing, and farming.
Researched improvements on increasing efficiency of organic solar cells by utilizing and modifying the Purdue University researchers NanoMOS MATLAB simulations
https://nanohub.org/resources/1305?rev=1
There are opportunities for blockchain in many facets of commercial real estate transactions including property and title searches, financing, leasing, purchasing and selling, due diligence, managing cash flows, and payment management, including cross-border transactions.
In this document we focus on the the use cases and merits as pertinent to raising capital via Digital Initial Public Offering.
Cohort analysis is an important analysis that VC can utilize to understand the LTV and expected revenue a e-commerce/subscription driven startup can expect to generate.
A compilation of all the articles and sources I have found useful to value early stage (including pre-revenue) startups.
Sources of compiled information:
• UpCounsel https://www.upcounsel.com/startup-valuation-methods
• http://billpayne.com/wp-content/uploads/2011/01/Scorecard-Valuation-Methodology-Jan111.pdf
• https://www.investopedia.com/terms/d/dcf.asp
• https://en.wikipedia.org/wiki/Cost_of_capital
• http://andrewchen.co/how-to-measure-if-users-love-your-product-using-cohorts-and-revisit-rates/
• http://www.perceptualedge.com/articles/guests/intro_to_cycle_plots.pdf
Detect Negative and Positive sentiment in user reviews using python word2vec ...Mamoon Ismail Khalid
detect Negative and Positive Sentiment in User Reviews_using Python word2vec model
libraries used:
Unsupervised training
from gensim.models.doc2vec import TaggedDocument
from gensim.models import Doc2Vec
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
import numpy as np
workflows can be made my efficient by upto 80% in the early stage venture investing process using google APIs, App Script and few other softwares .
----------------------------------------------------------------------------------------------------------------------
Written, Ideated, Implemented by Mamoon Ismail Khalid | mik279@Nyu.edu
2. 2 | P a g e
Android CS9033
Software Design Document
CS 9033: Mobile Application Development
Mamoon Ismail Khalid
Trishla Shah
Chai-Chi
3. 3 | P a g e
DATE VERSION DESCRIPTION
11/15/2015 1 Initial Design Document
12/20/2015 2 Final Design Document
4. 4 | P a g e
Table of Contents
Topic Page
1. Problem Statement and Solution 1
2. Current Solution & Related Work 3
3. Solution 53. Use Cases 6
4. MVC Framework 7
5. Other Components 10
6. Database Design and Schema
7. User Interface Screens 14
8. Features Built and Future Developments
Future Development
24
9. Project Member Breakdown 25
10. Project Milestones 27
11. Bibliography
7. Bibliography
28
28
5. 5 | P a g e
1.Problem Statement and Introduction
Most of us who have lived in “the big cities” for all our lives, we feel safe when we are out for a night
on the town. But traveling alone through certain areas, especially late at night, often makes everybody
nervous. We would feel a lot safer, generally, if there was someone there making the walk with us.
Thankfully, if you own a mobile device, you’re never truly alone. If you have an ongoing concern for
your personal safety, use our Help app.
In case of a medical emergency. For example, a heart attack strikes when no is around. You don’t
have time to think or do anything but scream once for help and this activates the app. It saves lives!
In case of a robbery, mugging or unsolicited behavior like a rape. These situations do not give enough
time to do or say anything .But luckily you involuntarily happen to say “Help!” and this triggers the
app and you may be saved. Got into a road accident in a lonely area? Have a few minutes before
losing consciousness, you got to say “Help”. And you will be saved. Realize your brakes are failing?
Shout for help and let your friends know you are in need.
When there is a natural calamity. Disaster strikes and there is no way to get in touch with people. You
are stuck somewhere and maybe your phone is a little far away. Scream “Help” and you may be
saved. Someone following you late at night. See something suspicious going on. Whisper “Help”.
What if you are a realtor? This app is so useful whilst showing houses to unknown people.
The best time to prepare for a disaster is BEFORE! No one likes to think about emergencies and
disasters, but you need to be prepared. If you are caught in a dangerous situation, you won’t have the
time to open your phone, make a call, inform someone where you are exactly. This is the problem we
are trying to solve. This app will help keep you and your loved ones safe by making sure you have
someone who knows where you are.
This app consists of a sign up for every user of the phone .The user must enter his/her emergency
contacts which is stored in the app. When the user of the phone shouts or even says the word “Help”,
a message is sent out to his/her emergency contacts regarding his/her location. This therefore
commands safety of the user of the phone and app. His/her whereabouts are known and she/he can
be saved
6. 6 | P a g e
The UI of this app is very simple and easy to use .So even elders who may be technically challenged
can set up the app. The false alarms are taken care of. Whenever the sound “Help” is heard and the
user does not want the message to be sent out .There is a time delay of one minute within which the
user must enter a 4-digit pin onto the screen, in order to stop the message from sending.
2.Current Solutions and Related Work
HelPls
HelPls which helps send SMS to your friends or family or police with your location through GEO
code and Direct Map. In order to launch the app, users have to shake their phones and press some
buttons to send SMS. However, the truth is that when users are in emergency, they don’t have time
to do all the things above. Sometimes, doing that puts them in more dangerous place. So, our feature
is that users use voice to launch the app makes it easier to use in an emergency. Also false alarms are
taken care of with the 4-digit pin code to stop the sending of the SMS.
Kitestring
Kitestring which is a web-based service that checks in with users and sends an alert to pre-selected
contacts. Kitestring works through users’ inaction. Users need to visit the free service’s website at
kitestring.io to customize their SOS message and activate an SMS message broadcast that will be sent
out in 30 minutes, 2 hours, 5 hours or 12 hours. Once the time is up, users get a check in message and
if for some reasons they’re unable to respond to that text withing 5 minutes, Kitestring will let their
contacts know. Our feature is different from it because we don’t use web-based service. We set up
7. 7 | P a g e
our own database and store the information. And we don’t have check in messages to assure if we are
safe or not. Check in messages would be annoying to a user.
SafeTrek
SafeTrek which lets users alert the police when they are in an unsafe situation, but with a failsafe in
case they don’t need help. When users launch the app, they place their thumbs on the Safe button. If
they release their thumbs off the button, they are asked to enter a 4-digit code. If they don’t enter the
code, the police are notified. If they do, nothing happens. Our feature is that we’ll get an icon on the
tool bar to notify us the SMS will be sent in 5 mins. And we can can cancel it within that time. This
way, some unpurposed SMS reduce.
Red Panic Button
Allows users to send their GPS location to pre-set emergency contacts with just one touch. Our app
consists of voice recognition which helps the user to not touch anything in the app. No mechanism to
abort false alarms.
Social Alert
It sends out a message to your friends and relatives in case of an emergency or crime. Integrating with
social networks most of us already use such as Facebook, Twitter and text messages, you can send out
a custom emergency message with your exact location, helping authorities pinpoint exactly when and
where you are. This again requires the user to press a button. We are using voice recognition instead.
It does not have any way of aborting false alarms.
8. 8 | P a g e
3.Use Cases
1. In case of a medical emergency. For example, a heart attack strikes when no is around. You don’t
have time to think or do anything just scream once for help and this activates the app. It saves lives!
2. In case of a robbery, mugging or unsolicited behavior like a rape. These situations do not give
enough time to do or say anything .But luckily you involuntarily happen to say “ Please Help Me! “
and this triggers the app and you may be saved.
3. When there is a natural calamity. Disaster strikes and there is no way to get in touch with people.
You are stuck somewhere and maybe your phone is a little far way. Scream “Please Help Me” and
you may be saved4. Someone following you late at night. See something suspicious going on.
Whisper “Please Help Me”
5. Realtors or any professionals who need to network and meet people who are unknown, require a
safety measure. This app can be used by them.
6. When you meet with an accident and maybe no one is around, use the app to send your location
and you are saved
9. 9 | P a g e
4.Architecture Diagram
The Database and CMU dict interacts with the entire application
The background Service Acitivity is using GPS
The setProfileActivity,EditUserDetails,MyDetails all interact with the SQLiteDatabase
and Contact book
The Main Activtity interacts with the SMS application of the phone and GPS and
background
Serivce Acitivity as well as all other Acitivities
10. 10 | P a g e
5.MVC FRAMEWORK
Models:
Person: This is a sign up page for the person who downloads the app and wants to use it.
He/She must enter Name and Phone number. We store this information in a database
Views:
Main.xml : The layout where the Audio Recognizer is running in the background. It is the
main screen view
activity_setprofile.xml : This is the Create Account xml file where the user is prompted to set
up the profile the first time the user installs the app and also adds their Emergency Contacts
Mydetails.xml : Where the user can view their own input information and that of their
Emergency Contacts.
Edit.xml :. This is the layout where the user can edit his Emergency Contacts and his own
information.
Controllers:
MainActivity
This is the main activity .This also consists of a speech to text convertor code. This is used to
generate an alert message sent out to emergency contacts when a person screams for the unique
phrase to trigger the Help Application. The sound is taken in through the microphone of the phone
and this code will set up the scenario for sending the message.
SetProfileActivity
The name and phone number of the phone user is added here. We use TextEdits. The user is
asked to set up their password as well .This code is used when there is a false alarm and enables
the user to abort the alert. All this is stored in a database for future access. There is a button to
access the contact book and you can add contacts into your app .The database helper is used to
store the contacts in the database. There is a SET profile button and a Home button to go back to
the Main Acvtivity. There is a field that asks the user to set up their customizable message that
is sent out as an alert text to their emergency contacts.
DatabaseHelper
This java class works to sync up the user information and the emergency contacts information in
the SQLite Database.
11. 11 | P a g e
MyDetails
This opens up the UI for editing your details and that of your Emergency contacts in the
Database.The user can add or delete contacts using the phonebook as well. You can also change
the customized message sent within the alert text.
EditUserDetails
This will enable you to see and change the people you to add as emergency contacts. Just a
Textview of all the people. You can select a contact and delete it with a button Delete. This will
contain Go back to main activity button and also Add contact button. The database is accessed
and we can see a listView of all the people you have added as contacts. You can also edit your
own name and phone number within this activity. Name and Phone number as well as the
password set up by the user can be edited using this Activity. These are stored in a database and
we will overwrite these values in the database.
BackgroundService
This activity gives the GPS coordinates of the person seeking help. This activity consists of a
GPS running as a service in the background in order to retrieve the users current location in order
to be sent out within an SMS.
SplashScreen/ImageView in Main Activity
This is used to just display the splash screen for 3 s when the app is started and the recognizer for
the voice recognition is being set up. It uses a Handler to run this splash screen for 3000ms.
12. 12 | P a g e
6.Other Components:
Async Task in Main Activity: This AsyncTask launches a Listener for the Audio. Recognizer
in the background to match the phrase that you enter in the app.
List Adapters: Simple List adapters to show the emergency contacts as you add then and when
you want to view them
CMU-Dict: This is the dictionary that the recognizer in the main activity uses to match the words
with your phrase. It has a collections of thousands of words and its associated pronunciations. We
used this to create a unique SOS Phrase that is not confused with simple, ordinary life
conversational sentences. We used “Please Help me “in the end because if we used anything that
started with “I……” it would send it a lot of false alarms.
CMU Pocket Sphinx
Library is distributed as architecture-independent pocketsphinx-android-5prealpha-nolib.jar and
binary .so files for different hardware architectures.
In Android Studio you need to place jar file in app/libs folder and jni .so files
into app/src/main/jniLibs folder.
We put the resource asset files in assets/ directory of your project. But in order to make them available
for pocketsphinx files should have physical path, as long as they are within .apk they don't have one.
Assets class from pocketsphinx-android provides a method to automatically copy asset files to external
storage of the target device. edu.cmu.pocketsphinx.Assets#syncAssetssynchronizes resources reading
items from assets.lst file located on the top assets/.
This makes us of hashing and MD5. PocketSphinxAndroidDemo contains ant script that
generates assets.lst as well as .md5 files, look for assets.xml
We made use of the CMU Pocket Sphinx speech recognizer. It uses g streamer to automatically split
the incoming audio into utterances to be recognized, and offers services to start and stop recognition.
Currently, the recognizer requires a language model and dictionary file. These can be automatically
built from a corpus of sentences using the Online Sphinx Knowledge Base Tool. Example launch files,
language models, and dictionary files can be found in the demo directory of the package.
The voice_cmd example controls a mobile base using commands such as "move forward" or "stop".
The robocup example uses some of the standard items and names from the
RoboCup@Home contest, for instance, it should recognize "hello, my name is Michael" or "Bring
me the Original Pringles"
13. 13 | P a g e
How the word recognition works:
In example above trigram “is one of” is queried. Each node contains “next pointer” to the beginning of
successors list. Separate array for each ngram order is maintained. Each node contains quantized
weights: probability and backoff. Nodes are stored in bit array, i.e. minimum amount of bits required
to store next pointers and word IDs are used.
In the main activity that uses the pocket Sphinx library, there is a SpeechRecognizer implemented and
encapsulated within an Async Task by us.
public void onResult(Hypothesis hypothesis) {} that’s is called when we end the application
ourselves.
public void onEndOfSpeech() {} that’s called if the recognizer discovers an end of speech.
Both displayed the input audio to a string and then matches the input audio string with the
KEYWORD_PHRASE which we have preloaded into the application as “Please Help Me”. We used
this audio-to-string feature of the pocketshpnix recognizer and used it to trigger out application into
doing other stuff such as shring location, sending message and prompting the password for SMS abort.
We found this approach much better than using AT&T API as first suggested by the professor, but
PocketSphinx Recognizer solves our purpose in a much less complicated manner.
14. 14 | P a g e
7.Database Design and Schema
The DatabaseHelper class is consists of all functions that the application uses to store data in tables. A
local SQLiteManager is used for the database. It consists of the following tables to store data specific
to the users as follows:
1. userDetails
This table is used to store details that are relevant to the user.
CREATE TABLE userDetails
(
fname TEXT,
lname TEXT,
contact TEXT PRIMARY KEY,
password TEXT
)
2. emergencyContacts
This table is used to store all emergency contacts that the user wants. Whenever needed, a
message is sent only to these contacts with a customizable message and location of the user.
CREATE TABLE emergencyContacts
(
name TEXT,
contact TEXT,
PRIMARY KEY(name, contact)
)
3. phraseTable
This table is used to store phrases for the user. Based on the user preferences, the phrase to be
sent to emergency contacts can be added or deleted from this table.
CREATE TABLE phraseTable
(
id TEXT Primary Key ,
userPhrase TEXT ,
FOREIGN KEY (id) REFERENCES userDetails (fname)
)
15. 15 | P a g e
8.Attempt to run Voice Recognition as a
Background Service
We tried to implement the running of the recognizer as a background service using the
following Activities.
We were successful in getting a runnable task even when the app was not open as shown in
the screenshot below.
The "testttttttttttttttt" is a string in the background service task and shows that the Runnable
MyTask is called every few seconds even when the app is not open.
This was implemented by making use of the service and binding and messaging.
17. 17 | P a g e
( Reference: Professor Jeffrey Bickford’s Slides)
18. 18 | P a g e
9.USER INTERFACE SCREENS
1. The Main Activity Screen with a Create A/C button to set up the user profile.
2. This is the UI for setting up of the profile for the user.
19. 19 | P a g e
3. Home Screen after account is created with changed button name MY DETAILS
4. This is the Viewing of details set up by the user
20. 20 | P a g e
5. My Details screen for entering your name, phone number, the message content.
6. Pick Emergency Contact from Phonebook
21. 21 | P a g e
7. View emergency Contacts screen
22. 22 | P a g e
8. Delete Emergency Contacts screen
9. Password Abort pop-up when Phrase detected
23. 23 | P a g e
10. Text message sent. Both GPS ON and GPS OFF messages shown here.
24. 24 | P a g e
10. Features built already and future
developments
Things implemented since last demo:
1. Customized the message that the user can send out as a text to his/her emergency contacts.
2. Changed the UI. Added animation translates to the buttons, changed colors and added a ripple effect.
3. Gave a larger delay for the password and abortion of sending of the alert.
4. Executed a code for background service in a runnable task but could not integrate it within the
project.
Feedback Received during final DemoPoster Presentation:
1. Having a database on a web server instead of using a local database. This would be helpful when
the user is using multiple devices and needed it on every device. This way he would not be required
to enter his details separately on every device.
2. Display a countdown timer when the password box springs up for message abort option. This would
allow the user to see how much time they have left to prevent a false positive being sent out.
3. Running the voice recognition as a background service so the user wouldn’t have to open the app
to send out an emergency notification (We already tried this out and have detailed why this was not
working to the TA and the professor during the demo).
4. Following up with 3), if the app is running in the background, the user should be notified by using
the phone vibration (or a ringtone) if the application is triggered and the message is about to be sent
out.
Future Developments:
1. App recognizes your voice even when the phone is locked and the voice recognition is running as
a background service and the microphone is always listening.
2. Sending emergency message via WhatsApp, Facebook and other social networking apps.
3. Video/Audio Recording of events taking place once the user shouts for help which can be used as
evidence later on.
4. Customize phrase used for sending out the alert message
25. 25 | P a g e
11. PROJECT MEMBER BREAKDOWN
5.1 Chai-Wei Chang
Asynctasks for the Audio Listener and Recognizer .Implementation of Pocketsphinx
library in the Main Activity
Background Service Activity which runs GPS in the background.
Using Google Voice API implemented ‘on button’ touch voice recognition (not used
finally)
Design Document 1-(Current Solutions and Architecture Diagram)
Enabled user to set their personal information which also includes adding multiple
contacts without using database (modified finally and not used)- SetProfileActivity
,Person Model
Stored voice into files every one minute in the background service (however, we couldn’t
figure how using AT&T API , so we don’t use this service)
5.2 Mamoon Ismail Khalid (Team Leader)
Led the application development – what features to be added
Worked with Chai-Wei Chang on the voice recognition in the Main activity and its
integration into the project.
Assisted Chai-Wei Chang on his research of the voice recognition using AT&T API
Found the idea of wrapping up the application so as to handle any unhandled
exception and tested the app for any conditions where it may crash and rectified the same
Tested the phrase sequences that work for the app using the CMU Dictionary that Pocket
Sphinx uses and found that Please Help Me is the unique phrase and anything that starts
with “ I ……” may cause false alarms.
Poster Presentation
Design Document (final)
Presentation (first prototype)
Splash Screen image view part of UI
26. 26 | P a g e
5.3 Trishla Shah
Researched and found the Pocket Sphinx Library and found their base demo on GitHub
implemented in the project.
Added to the main activity the function of displaying an alert dialog box to abort false alarms.
Added to the main activity the function of sending an SMS with GPS location on voice
recognition.
Implemented a database helper and used it to store user information and emergency contacts-
Database Helper.
The activity for setting up a profile and adding emergency contacts – SetProfileActivity and a
model Person.
The activity for editing entered details of the user in case they need to change their contacts or
edit their other details – EditUserDetails.
The activity for displaying to the user their details and emergency contacts – MyDetails.
Final integration and testing of the voice recognition in the main activity with the rest of the
project.
Design Document 1
Assisted Mamoon with Poster presentation
Design Document (final)
Front end UI screens: layouts, styles, buttons, TextViews, colors EditViews,
animations, ripple effect, Splash Screen.
Attempted to send push notifications to users using Google Cloud Messaging but failed
to do so.
27. 27 | P a g e
11. PROJECT MILESTONES
DATE TASKS COMPLETED
10/18/2015 o Initial Design Document
4/2/2014 o Base User Interface completion
o Standalone functionality
implementation
o Update design document
11/2/2015 o Initial Prototype Presentation
12/6/2015 o Initial wiring of android application with amazon web
serviceo Refining and Testing of UI
4/15/2015 o Integration of android application with the web server
CMU-Dictionary and final prototype ready for
demonstration.
12/15/2015 o Presentation at LC400
28. 28 | P a g e
12. BIBLIOGRAPHY
1. “The CMU Pronouncing Dictionary.” http://www.speech.cs.cmu.edu/cgi-bin/cmudict
2. “APKtool documentation and wiki” https://code.google.com/p/android-apktool/
3. “Speech Recognizer without using PocketSphinx”
http://developer.android.com/reference/android/speech/SpeechRecognizer.html
4. “The PocketSphinx Library”
http://sourceforge.net/p/cmusphinx/discussion/help/thread/4ee9e2b5/
http://sourceforge.net/p/cmusphinx/code/HEAD/tree/trunk/pocketsphinx-
android/jni/Android.mk
5. “Android-er” Apply Animation on Button
http://android-er.blogspot.com/2012/02/apply-animation-on-button.html
6. “How to Send Push Notifications Using GCM Service?” Android Tutorial Blog N.p 22
Sept. 2014. Web http://programmerguru.com/android-tutorial/how-to-send-push-
notifications-using-gcm-service
7. “Dialogs.” Dialogs
http://developer.android.com/guide/topics/ui/dialogs.html
8. “SmsManager.” SmsManager
http://developer.android.com/reference/android/telephony/SmsManager.html