When I first gained inspiration for this project, I was actually working on another submission for the AWS Skills for Students challenge - FeedMe, submitted by a few friends and myself. When I was designing the dialogue model for the skill, I noticed something: the Synthetic Speech Markup Language (SSML) used by Alexa allows words to be entered phoneme-by-phoneme using the International Phonetic Alphabet (IPA), instead of just English letter-by-letter. I thought back to the previous semester when I was taking my first linguistics course, and struggled with attaining familiarity with the IPA mostly because I was not sure how exactly words written in the IPA should be pronounced. I always thought that if there was a resource that I could use to test out pronunciations, it would be a lot easier for me. And now, with Alexa and SSML, I have the opportunity to make lives easier for myself and every other beginning linguist struggling with the IPA.
What it does
In the IPA Phoneme Pronouncer skill, users input a list of IPA phonemes to compose a word for Alexa to pronounce. For example, if a user wasn't sure how to pronounce "æpəl", they would say "pronounce near open front unrounded vowel, voiceless bilabial plosive, mid central vowel, alveolar lateral approximate." Alexa would then respond with "apple," pronounced properly. This works with combinations that aren't actually words too - if the user replaced the first vowel with "open mid back unrounded vowel," Alexa would say "opple." If a user enters an invalid phrase or otherwise makes an error, they are prompted to look at IPAchart.github.io, which is a simple HTML webpage I created to display a list of all the valid phonemes.
How I built it
I used AWS Lambda to host the code, and the Alexa Developer Console to create the framework for the skill.
Accomplishments that I'm proud of
I am proud that this skill can actually be used as a tool for learning - when I was demonstrating the skill to some of my friends, I realized that the phoneme I thought was used to represent the "o" in the word "top" (/ʌ/), should actually be the phoneme /ɑ/. I had learned something from my own skill, and I think that is fascinating.
What's next for IPA Phoneme Pronouncer
One idea that I plan to implement is to allow users to use simple English letters instead of the IPA phoneme names when they are identical - for example, it would be a lot easier to say "b" than "voiced bilabial plosive."