talonhub / community

Voice command set for Talon, community-supported.
MIT License
617 stars 767 forks source link

Alphabet standardization #344

Open The-JMFB opened 3 years ago

The-JMFB commented 3 years ago

I wonder if the project considered adopting the standard NATO phonetic alphabet for the default_alphabet?

The primary benefit is that this is a standardized and globally recognized phonetic structure that millions of people are already comfortable with and use regularly (I've been using it daily for many years). It will reduce and streamline the learning curve for new users that are already familiar with the alphabet, while also preventing frustrations and confusion for people already using it regularly in other daily operations. It is also an intuitive and simple phonetic alphabet that is quick and easy to learn.

Just a suggestion I thought might be beneficial for a wider section of users, as I find it frustratingly difficult to use multiple phonetic alphabets.

Great project, please keep it up!

rntz commented 3 years ago

As I understand it Talon uses a custom phonetic alphabet primarily for speed. Most words in the NATO phonetic alphabet are multiple syllables; the Talon alphabet is almost entirely monosyllabic. However, you can customise the alphabet by editing code/keys.py, so if you're used to the NATO alphabet go ahead and use it.

I'm going to close this for now. If you feel strongly about it we might consider adding a setting for using the NATO alphabet, but I think generally the idea is that most users will not have practice with any phonetic alphabet and so should default to learning Talon's, and users who prefer a different alphabet can customise theirs if they want to.

The-JMFB commented 3 years ago

I had actually just changed my keys.py when I thought to check the github issues and see if there had been any conversation about this, so your logic was definitely intuited there - thanks!

I have a lot of dialogue with people using phonetics on the phone, so this suggestions value is definitely subjective. However, looking at this project from the context of helping people with disabilities or from the disabled user context, standards are important where they can be followed or utilized.

The enormous amount of additional effort required for disabled people to adapt to a world not built with them (us) in mind is unbelievably overwhelming - especially for those of us that develop disabilities later in life when we have to simultaneously adapt to new circumstances and restrictions while trying to merge pre-disability knowledge, experience, and workflows. It's neither unnoticed or unappreciated when we are able to improve our effective workflow without having to learn some new, proprietary, language/skill/concept.

The phonetics are just an example of an opportunity to capitalize on lowering the cost of entry (to a subset of users, at least). It's not that I feel strongly about the NATO phonetics specifically, just the utilization of standards wherever possible because finding a standard that you can use to interact universally is such a relief when you are trying to figure out how to operate and communicate as broadly and simply as possible.

For example, the entire reason the default phonetics are a problem for me: I spend my work hours primarily communicating on the phone. I use my computer simultaneously, so I mute the phone when not speaking so that I can control my PC with my voice without confusing the other parties. As we use a lot of phonetics to communicate serial numbers, product keys, licenses, various location abbreviations, etc. it's not feasible to operate with multiple phonetic libraries in that workflow.

In my case, I am a very technical user and have no problem with exploring and modifying code, configurations and tools to better meet my specific needs and/or expectations. At this point, I have 3 different machines running a Frankenstein's monster patchwork of tools and utilities to try and find the right/best setup for my every day needs.

Please do consider, where possible, sane and standardized options will be very much appreciated to less technical users that are already feeling overwhelmed by adapting their workflows/lives/abilities. As the stated goal is to remove barriers for people with disabilities, my opinion is that standards are the single biggest impact for adoption because it is so much easier to adopt something new when you are simply reapplying an already adopted standard or skill.

I recognize this is still a young project with plenty of not yet realized potential. No doubt it can mature into an immensely beneficial tool for the vast majority of the disabled community. However, keeping the barrier for entry as low as possible and taking advantage of standards (as options, at least) will have a direct impact on adoption and overall success. Food for thought, is all :)

rntz commented 3 years ago

I don't think a switch to the NATO alphabet by default is likely, it would break backward compatibility for existing users, but it is possible we could make it an option that's easy to select without having to edit a python file.

@knausj @lunixbochs how do you feel about this? Specifically:

  1. Does making the NATO alphabet an easy-to-select option seem reasonable, on the grounds that some folks might come into Talon with prior experience or have to use the NATO alphabet in other contexts (see discussion above)?

  2. If we wanted to do this, what's the right way? Initially I thought a talon setting, but I don't actually know how/if a setting can affect the contents of a list.

knausj85 commented 3 years ago

yeah, I don't believe that setting is a solution for this one. someday, .talon may support lists, which would probably be the correct place

for now, I would not be opposed to just having it commented out to make it slightly easier to switch to. Ryan put a lot of effort into the talon alphabet, it has a lot of advantages for people just starting out with voice coding/hands-free usage. at least for native speakers

PetrKryslUCSD commented 2 years ago

I think it would be nice if it was really simple to replace the alphabet on the fly. This is one of the major differences between this repository and my fork of it. I found some words used for letters, as pronounced by me, were often confused with other things. I changed them, for instance air did not really work for me so I changed it to amp, similarly caf for c, and a few others. Being able to swap out one alphabet and replace it with another, for instance in a configuration file, I think would be really nice.