
Нажмите на 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.Если вы хотите проверить или видеть приложение самостоятельно.
Оригинал