Современные технологии позволяют управлять компьютером не только клавиатурой и мышью, но и голосом. В этой статье мы рассмотрим, как реализовать «замок» – голосовой пароль, который при правильном произношении будет закрывать выбранную программу. Такой подход полезен для быстрого завершения работы приложений, повышения безопасности и просто для развлечения.
Содержание
- Что такое «замок» в контексте программ?
- Почему голосовое управление?
- Подготовка окружения
- Шаг 1: Выбор библиотеки для распознавания речи
- Шаг 2: Создание «замка» – голосовой пароль
- Шаг 3: Интеграция с целевой программой
- Шаг 4: Тестирование и отладка
- Полезные советы и лучшие практики
Что такое «замок» в контексте программ?
Под «замком» здесь понимается механизм, который блокирует выполнение определённого действия пока не будет выполнено условие – в нашем случае правильное голосовое подтверждение. Это аналогично обычному паролю, только вместо ввода текста клавиатурой используется распознавание речи.
Почему голосовое управление?
- Скорость: произнесение фразы часто быстрее набора пароля.
- Удобство: руки остаются свободными для других задач.
- Безопасность: голосовой пароль сложно подобрать методом перебора, особенно если использовать уникальную фразу.
- Интересный эксперимент: сочетание биометрии и программного управления.
Подготовка окружения
Для реализации потребуется:
- Операционная система: Windows 10/11, macOS Ventura+ или любой современный дистрибутив Linux.
- Python версии 3.8 или выше (можно использовать и другие языки, но примеры будут на Python).
- Микрофон, подключённый к компьютеру.
- Библиотеки для распознавания речи и управления процессами.
- достаточно длинной (минимум 3‑);
- содержала uncommon звуки, чтобы снизить вероятность ложного срабатывания;
- была легко произносима вам лично.
- Запустите целевое приложение (например, Блокнот).
- Запустите наш скрипт в отдельном терминале.
- Чётко произнесите голосовой пароль. Убедитесь, что микрофон не заглушён и уровень шума низкий.
- Если процесс не завершается, проверьте:
- Соответствие имени процесса (регистр не важен, но нужно точное совпадение без расширения .exe в некоторых системах).
- Доступ права: иногда для завершения процесса нужны права администратора.
- Работает ли распознавание речи: можно вывести распознанный текст в консоль для отладки.
- При необходимости замените recognize_google на офлайн‑движок (например, Vosk) для работы без интернета.
- Выбирайте фразу, которая не используется в обычной речи, чтобы избежать ложных срабатываний.
- Добавьте проверку на длительность аудио: очень короткие фразы могут быть недоразумением.
- Для повышения безопасности можно использовать двухфакторную проверку: голосовое подтверждение + нажатие клавиши (например, Ctrl+Shift).
- Если планируется закрывать несколько разных программ, сделайте словарь, где ключ – голосовая фраза, значение – имя процесса.
- Логируйте события (время, распознанный текст, результат) в файл – это поможет отслеживать попытки несанкционированного доступа.
- Не забывайте освобождать ресурсы: после завершения работы скрипта корректно завершайте поток аудиозахвата.
Установим необходимые пакеты через pip:
pip install SpeechRecognition pyaudio psutil
# Для Windows может потребоваться дополнительная установка PyAudio через колесо
Шаг 1: Выбор библиотеки для распознавания речи
Самой популярной и простой в использовании является SpeechRecognition. Она поддерживает несколько движков (Google Web Speech API, Sphinx, Wit.ai и др.). Для офлайн‑работы можно использовать Vosk или CMU Sphinx, но в примере ниже будем полагаться на бесплатный Google API (требуется интернет).
Шаг 2: Создание «замка» – голосовой пароль
Определим фразу, которая будет служить паролем. Желательно, чтобы она была:
Пример фразы: «закрыть программу голосом».
Мы создадим функцию, которая будет постоянно слушать микрофон и сравнивать распознанный текст с нашей фразой (без учёта регистра и лишних пробелов).
import speech_recognition as sr
import psutil
import time
VOICE_LOCK = «закрыть программу голосом»
TARGET_PROCESS = «notepad.exe» # пример программы, которую будем закрывать
def listen_for_lock -> bool:
recognizer = sr.Recognizer
with sr.Microphone as source:
print(«Слушаю… скажите голосовой пароль»)
recognizer.adjust_for_ambient_noise(source, duration=1)
audio = recognizer.listen(source)
try:
text = recognizer.recognize_google(audio, language=»ru-RU»)
print(f»Вы сказали: {text}»)
return text;lower.strip == VOICE_LOCK
except sr.UnknownValueError:
print(«Не удалось распознать речь»)
return False
except sr.RequestError as e:
print(f»Ошибка сервиса распознавания: {e}»)
return False
Шаг 3: Интеграция с целевой программой
Теперь нужно добавить логику, которая при успешном распознавании пароля ищет указанный процесс и завершает его.
def close_target_process -> None:
for proc in psutil.process_iter([‘pid’, ‘name’]):
if proc.info[‘name’] and proc.info[‘name’].lower == TARGET_PROCESS.lower:
print(f»Найден процесс {proc.info[‘name’]} (PID {proc.info[‘pid’]}). Завершаю…»)
proc.terminate # можно использовать kill для принудительного завершения
return
print(«Целевой процесс не найден.»)
Основной цикл программы будет выглядеть так:
def main -> None:
while True:
if listen_for_lock:
close_target_process
print(«Ожидание следующей команды…»)
time.sleep(1) # небольшая пауза между попытками
if __name__ == «__main__»:
main
Запустив этот скрипт, вы сможете сказать фразу «закрыть программу голосом», и если запущен процесс notepad.exe (или любой другой, указанный в TARGET_PROCESS), он будет завершён.
Шаг 4: Тестирование и отладка
Полезные советы и лучшие практики
Использование голосового «замка» для закрытия программ – это интересное сочетание удобства и безопасности. При минимальном наборе библиотек и нескольких строках кода вы получаете возможность управлять своими приложениями голосом, не отрывая рук от текущей задачи. Экспериментируйте с фразами, добавляйте многофакторную защиту и адаптируйте решение под свои нужды – и ваш компьютер станет чуть более интуитивным и отзывчивым.
Удачной реализации!