370-Alexa-Project / CS370_Echo_Demo

CS 370 - Amazon Echo project template code and details
MIT License
1 stars 2 forks source link

Shorten location names for Alexa to say #10

Closed eBucher closed 8 years ago

eBucher commented 8 years ago

As of right now, there are long location names being stored in the database and different versions of the same name. For example, here are ways that the Green Music Center is listed in the database:

They are slightly different, but the user is probably only going to care about the event being at the Green Music Center and would not want to hear the entire location being read (especially since some are repetitive). On the other hand, for some buildings, the user would probably want to know the specific location listed, such as whether something is in Ives 76 or Ives 101.

The goal is to come up with a way to shorten long names to what the user would likely want to hear. Not all location names should be shortened, but some (like the green music center example) should be. See the suggestions listed below for doing this.

eBucher commented 8 years ago

Possible solutions:

ghost commented 8 years ago

This functionality would ideally be implemented in the database in order to minimize the latency of our responses. The additional table or column approach would be fairly straightforward, but the search and replace method might be more appropriate or scalable.

I'm in the process of checking what language extensions I can install on Amazon RDS to make the task more approachable.

ghost commented 8 years ago

Another thing that comes to mind on this is that I noticed some of these locations are actually a comma-separated list of different rooms at the same location. We could potentially break the locations down into buildings and rooms, by altering the schema as such and tweaking the scraper to break the field apart for us.

ghost commented 8 years ago

I think creating columns for SSML marked-up versions of the locations (as well as event types and categories eventually) would be easiest, at the possible expense of some duplication of information.

On the other hand, a series of transformations approach could transform a location into something sensible and the result of that could pass through a function that transforms words Alexa has trouble with into SSML marked-up versions. The "pronunciation function" would be reusable for any field, and different versions of the first function could be made for any field.

For example, to apply the same process to the event descriptions, we would make a function that strips the HTML tags (and any other transformations we need to get a presentable string), then that string would pass through the pronunciation function.

The decision can be up to whoever wants to tackle the problem, but I suspect the latter is more challenging and more interesting. The first solution would be tedious but simple enough.

We should get the rest of the calendars in the database before deciding either way, so this issue is blocked by #5

pineda756 commented 8 years ago

Shortened responses where necessary.

ghost commented 8 years ago

This was merged as #74