# Voice Assistant For Your Bills

As you get older, your obligations and responsibilities increase.

That includes the bills you need to pay.

Paying your bills on time is one of the most crucial things a person needs to master. Paying bills on time contributes to building a solid credit rating, and having a solid credit rating enables one to finance important life purchases, like a home.

## What is "Never Miss A Bill"?

"Never Miss A Bill" is a Google Voice Assistant that takes your bills and tells you pertinent information like your next upcoming bill, the total amount that your bills cost each month, or the kind of bill obligations you already have. Keeping track of this information is important so that you stay on top of your bills and keep them at manageable levels.

## What You Can Ask

Ask things like:

*What are my bills?*

*What bill is due next?*

*How much do I owe this month?*
## Inspiration

Have you ever had a friend owe you money but never have cash on them? Worry no more with this application. With the use of Interac Public API, you too can collect the debts owed to you. Make requests using simple NFC technology and recover lost capital today.

## Difficulties

Hooking up RESTful API to Android was difficult but so was establishing a user connection and transmitting user data over an NFC connection.

## What we learned

A good amount about Android, multitude of protocols in our attempt to find a suitable solution.

## Next Steps:

OAuth is a big factor, adding security to functionality. Possible addition of cryptocurrencies to trade with. iOS development also possible.
## Inspiration

<https://www.youtube.com/watch?v=lxuOxQzDN3Y>
Robbie's story stuck out to me at the endless limitations of technology. He was diagnosed with muscular dystrophy which prevented him from having full control of his arms and legs. He was gifted with a Google home that crafted his home into a voice controlled machine. We wanted to take this a step further and make computers more accessible for people such as Robbie.

## What it does

We use a Google Cloud based API that helps us detect words and phrases captured from the microphone input. We then convert those phrases into commands for the computer to execute. Since the python script is run in the terminal it can be used across the computer and all its applications.

## How I built it

The first (and hardest) step was figuring out how to leverage Google's API to our advantage. We knew it was able to detect words from an audio file but there was more to this project than that. We started piecing libraries to get access to the microphone, file system, keyboard and mouse events, cursor x,y coordinates, and so much more. We build a large (~30) function library that could be used to control almost anything in the computer

## Challenges I ran into

Configuring the many libraries took a lot of time. Especially with compatibility issues with mac vs. windows, python2 vs. 3, etc. Many of our challenges were solved by either thinking of a better solution or asking people on forums like StackOverflow. For example, we wanted to change the volume of the computer using the fn+arrow key shortcut, but python is not allowed to access that key.

## Accomplishments that I'm proud of

We are proud of the fact that we had built an alpha version of an application we intend to keep developing, because we believe in its real-world applications. From a technical perspective, I was also proud of the fact that we were able to successfully use a Google Cloud API.

## What I learned

We learned a lot about how the machine interacts with different events in the computer and the time dependencies involved. We also learned about the ease of use of a Google API which encourages us to use more, and encourage others to do so, too. Also we learned about the different nuances of speech detection like how to tell the API to pick the word "one" over "won" in certain context, or how to change a "one" to a "1", or how to reduce ambient noise.

## What's next for Speech Computer Control

At the moment we are manually running this script through the command line but ideally we would want a more user friendly experience (GUI). Additionally, we had developed a chrome extension that numbers off each link on a page after a Google or Youtube search query, so that we would be able to say something like "jump to link 4". We were unable to get the web-to-python code just right, but we plan on implementing it in the near future.