Нажмите на Key Morse Key, приложение, которое облегчает людям с ограниченными возможностями общаться

Нажмите на Key Morse Key, приложение, которое облегчает людям с ограниченными возможностями общаться

8 августа 2025 г.

Общение имеет основополагающее значение для человеческой связи, но для многих людей, разговор или набор печати даже невозможна. Я хотел создать простой инструмент, который мог бы помочь тем, кто не может общаться, позволив им говорить только с использованием только одного пальца и некоторых простых входов клавиатуры.


Моя цель состояла не в том, чтобы создать коммерческий продукт, а продемонстрировать, что любой, даже без обширного опыта программирования, может создать полезные инструменты при поддержке ИИ и доступных библиотек кодирования.


Этот проект показывает, как четкая проблема в сочетании с базовым программированием и руководством по ИИ может привести к функциональному инструменту коммуникации для людей, которые в противном случае могут изо всех сил пытаться выразить себя.


Как я построил клавиши Tap-to-Morse с помощью Python и AI


Эта программа позволяет пользователям общаться, нажав клавиши со стрелками:


Оставленный на точку (.)


Правильно для Dash (-)


Один раз, чтобы положить конец письму


Вверх дважды быстро, чтобы закончить слово


Вниз, чтобы прочитать фразу вслух


Место для удаления последней точки/приборной


Он использует код Морзе, чтобы перевести эти краны в буквы, слова и фразы, а затем говорит их вслух. Вот код с подробными объяснениями.


1. Импорт и настройка


Импорт pyttsx3


импортировать клавиатуру


Время импорта


Pyttsx3: двигатель текста в речь, чтобы озвучить декодированную фразу.


Клавиатура: чтобы обнаружить нажатие клавиши стрелки в режиме реального времени.


Время: для измерения интервалов между нажатиями клавиш, особенно для обнаружения двойного нажатия.


2. Словарь кода Морзе


morse_dict = {

'.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E',

'..-.': 'F', '--.': 'G', '....': 'H', '..': 'I', '.---': 'J',

'-.-': 'K', '.-..': 'L', '--': 'M', '-.': 'N', '---': 'O',

'.--.': 'P', '--.-': 'Q', '.-.': 'R', '...': 'S', '-': 'T',

'..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X', '-.--': 'Y',

'--..': 'Z', '-----': '0', '.----': '1', '..---': '2',

'...--': '3', '....-': '4', '.....': '5', '-....': '6',

'--...': '7', '---..': '8', '----.': '9'

}


Карты точки и черты на буквы и цифры для перевода.


Программа ищет здесь последовательности пользователей, чтобы найти соответствующий символ.



3. Инициализация текста в речь и переменные


engine = pyttsx3.init()

engine.setProperty('rate', 150)

current_morse = ''

current_word = ''

phrase = ''

previous_key = ''

last_up_time = 0


Инициализирует речевой двигатель и устанавливает удобную скорость разговора.


Переменные отслеживать ввод:


current_morse: удерживает последовательность точечной/приборной последовательности текущей буквы.


current_word: буквы, собранные для формирования слова.


Фраза: Полная фраза, построенная из нескольких слов.


Предыдущий_key предотвращает повторяющиеся входы из удерживаемого ключа.


Last_up_time помогает обнаружить, нажата ли стрелка вверх один или два раза.



4. Отображение элементов управления пользователю


print("Controls:")

print("← = Dot | → = Dash | ↑ (once) = End Letter | ↑ (twice) = End Word")

print("↓ = Read Phrase | Space = Delete Last Dot/Dash")

print("-" * 50)


Простые инструкции, чтобы направлять, как использовать программу.


Показывает, какая стрелка соответствует каждому вводу кода Морса или команде управления.



5. прослушивание точечного ввода (стрелка влево)


while True:

if keyboard.is_pressed('left'):

if previous_key != 'left':

current_morse += '.'

print(f"Dot (.) | Morse: {current_morse}")

previous_key = 'left'

time.sleep(0.2)


Обнаружение левой стрелки.


Отпечатает текущий код Морзе для обратной связи.


Кратко спит, чтобы избежать множества подсчетов из одного ключа.



6. Прослушивание ввода DASH (стрелка справа)


elif keyboard.is_pressed('right'):

if previous_key != 'right':

current_morse += '-'

print(f"Dash (-) | Morse: {current_morse}")

previous_key = 'right'

time.sleep(0.2)

Detects Right arrow, adds a dash (-).

Provides feedback similarly to dot input.



7. Удаление последней точки/прибор (космическая планка)


elif keyboard.is_pressed('space'):

if previous_key != 'space':

if current_morse:

print(f"Deleted: {current_morse[-1]}")

current_morse = current_morse[:-1]

print(f"Current Morse: {current_morse}")

else:

print("Nothing to delete.")

previous_key = 'space'

time.sleep(0.2)


Удаляет последний входной символ (точка или DASH) в текущей букве Морса.


Полезно для исправления ошибок, прежде чем положить конец письму.



8. Конец букв и слов (стрелка вверх)


elif keyboard.is_pressed('up'):

if previous_key != 'up':

current_time = time.time()

if current_time - last_up_time < 1.0:

# Second up press within 1 second = end word

if current_morse:

letter = morse_dict.get(current_morse, '?')

current_word += letter

current_morse = ''

phrase += current_word + ' '

print(f"Word: {current_word}")

current_word = ''

else:

# First up press = end letter

if current_morse:

letter = morse_dict.get(current_morse, '?')

current_word += letter

print(f"Letter: {letter} | Word: {current_word}")

current_morse = ''

last_up_time = current_time

previous_key = 'up'

time.sleep(0.2)


Сначала нажмите: заканчивает текущую букву, преобразует Морса в букву и добавляет в текущее слово.


Second Up Press (в течение 1 секунды): заканчивает текущее слово, добавляет его плюс пространство к фразе, затем очищает текущий буфер слова.


Отпечатает отзывы о буквах и словах, чтобы пользователь информировал.



9. Чтение фразы вслух (стрелка вниз)


elif keyboard.is_pressed('down'):

if previous_key != 'down':

if current_morse:

letter = morse_dict.get(current_morse, '?')

current_word += letter

current_morse = ''

if current_word:

phrase += current_word

current_word = ''

if phrase.strip():

print(f"Phrase: {phrase.strip()}")

engine.say(phrase.strip())

engine.runAndWait()

phrase = ''

previous_key = 'down'

time.sleep(0.5)


Завершает любое незаконченное письмо или слово.


Использует pyttsx3 для чтения всей фразы вслух.


Сбрасывает фразу, чтобы начать все сначала.



10. Сброс обнаружения ключей


else:

previous_key = '' # Reset when no key pressed


Позволяет программе обнаружить новые нажатия клавиш после выпуска клавиш.



Последние мысли


Имея всего несколько библиотек и строк кода, я создал инструмент связи с одним пальцем, используя кодирование с A-A-Assist, а также кодирование. Этот проект показывает, как любой с любопытством и некоторая помощь со стороны ИИ может создавать инструменты, которые позволяют людям с проблемами общения.


Если вы хотите помочь другим или экспериментировать с доступными технологиями, начните с малого, используйте ИИ, чтобы направлять вас и продолжать строить. Подобные инструменты могут иметь реальное значение.


АКоды и файл .exe.Если вы хотите проверить или видеть приложение самостоятельно.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE