Search code examples
alexa-skills-kit

Alexa AMAZON.City slot type recognizing minor hamlet instead of a big city


I'm working on a skill that asks user for city names and checks where these cities are located (using geolocation service). I'm using AMAZON.City for en-GB and AMAZON.US_CITY for en-US as slot types.

The problem I've encountered is that Alexa makes strange choices when choosing among places with the same or very similiar name. An example is Brussels - when I speak it using Alexa simulator on developer.amazon.com set to en-GB, it recognizes it as Brussells (notice two L letters), Missouri, but when I switch to en-US, I get Brussels, the capital of Belgium (which is definitely a desired one for en-GB).

I had the en-GB version tested by a native speaker (as english is not my mother tongue) and Brussels was again recognized as a tiny hamlet in Missouri instead of a state capital.

The list of such potential mistakes is quite big: https://en.wikipedia.org/wiki/List_of_US_places_named_for_non-US_places

Is there a way to be more specific with these slot types, to always select most important city when multiple choices are available ?


Solution

  • Changing slot type from Amazon.City to AMAZON.GB_CITY fixed the problem for Brussels. The reasons might be twofold:

    • while both Amazon.City and AMAZON.GB_CITY are described in documentation as recognizing names "commonly used by speakers in the United Kingdom", Amazon.City description adds: "This slot type recognizes common variations of city names"

    • Amazon.City is marked as "public beta", while AMAZON.GB_CITY is "available" (october 2018)

    https://developer.amazon.com/docs/custom-skills/slot-type-reference.html