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

В последнее время использование виртуальных помощников для контроля вашего окружения становится обычной практикой. Мы используем Google AI, Siri, Alexa, Cortana и многие другие подобные виртуальные помощники, чтобы выполнять задачи для нас с помощью простой голосовой или звуковой команды. Вы можете попросить их воспроизвести музыку, открыть определенный файл или любую другую подобную задачу, и они с легкостью выполнят эти действия.

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

В этой статье мы будем работать над вводным проектом для помощника ИИ, который вы можете использовать для управления своим ПК или любым другим подобным устройством с помощью голоса. Мы начнем с введения в некоторые из основных зависимостей, необходимых для создания этого проекта, и приступим к объединению всего этого в файл Python, с помощью которого создается голосовой помощник AI для выполнения ваших команд.

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



Начало работы с основами:

Часть 1: Управление рабочим столом

В этом разделе статьи мы узнаем, как управлять нашим компьютером. Мы узнаем, как управлять и обрабатывать некоторые основные операции на физическом экране. С помощью PyAutoGUI мы можем выполнять множество функций, необходимых для этого проекта. Этот инструмент библиотеки автоматизации позволяет пользователям программно управлять мышью и клавиатурой.

Вы можете установить требования для обработки всех задач, связанных с курсором, мышью и клавиатурой, с помощью библиотеки PyAutoGUI с помощью простой команды pip, как показано ниже.

pip install PyAutoGUI

Давайте начнем с некоторых основных команд из этой библиотеки, которые нам потребуются для разработки нашего проекта Python для искусственного интеллекта с голосовой поддержкой. Через пару минут установка должна быть завершена в соответствующей среде без особых хлопот.

Во-первых, давайте импортируем библиотеку PyAutoGUI, как показано в приведенном ниже фрагменте кода. Следующий важный шаг — узнать разрешение вашего рабочего экрана. Мы можем распечатать размер экрана по умолчанию и высоту экрана с помощью функции размера, доступной в недавно установленной библиотеке.

import pyautogui
# Printing the default screen width and height
screenWidth, screenHeight = pyautogui.size()
print(screenWidth, screenHeight)

Вывод: 1920 1080

Вы можете заметить, что разрешение моего экрана составляет 1920 x 1080, что должно быть размером экрана по умолчанию для большинства компьютеров. Однако, если у вас более высокое или низкое разрешение на экране монитора, вы все равно можете легко следовать руководству. Команды можно использовать взаимозаменяемо для получения желаемых координат в любом разрешении. Просто не забудьте соответствующим образом изменить некоторые параметры, если разрешение вашего экрана не соответствует моему.

Другая важная команда, которую мы рассмотрим в этом разделе, — это команда для определения текущего местоположения и положения указателя мыши. Функция position() библиотеки определяет текущие координаты, в которых находится указатель мыши. Мы можем использовать эти позиции для поиска папок и других важных каталогов на экране вашего рабочего стола. Ниже приведен фрагмент кода для выполнения следующего действия.

# Showing the current cursor position
currentMouseX, currentMouseY = pyautogui.position() # Get the XY position of the mouse.
print(currentMouseX, currentMouseY)

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

# Locating on the Screen by getting the co-ordinates
x, y = pyautogui.locateCenterOnScreen("image.png")

Последняя важная команда, которую мы рассмотрим в этом разделе, — это функция, которая позволяет нам открывать нужный каталог. Поместив курсор в верхний левый угол, я смог определить координаты моей папки администратора. Мы можем переместить курсор в соответствующее место, используя функцию moveTo() вместе с соответствующей позицией папки. Затем мы можем использовать команду click(), указав количество щелчков левой или правой кнопкой мыши и количество щелчков, которые вы хотите сделать.

# Open The Admin Directory
pyautogui.moveTo(37, 35, 1)
pyautogui.click(button='left', clicks=2)

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

Часть 2: Управление голосовыми командами

В этом разделе статьи мы поймем некоторые основные требования к распознаванию речи, которое является вторым наиболее важным компонентом этого проекта. Нам потребуется микрофон, чтобы передавать наши команды голосом и соответствующим образом интерпретировать информацию. Рекомендуется использовать библиотеку распознавания речи вместе с преобразователем текста в речь по вашему выбору. Также убедитесь, что в вашей рабочей среде установлен PyAudio.

Если зрители не слишком знакомы с преобразованием текста в речь, я настоятельно рекомендую ознакомиться с одной из моих предыдущих статей, где я рассказываю о преобразовании текста в речь Google с помощью Python с кодами для начинающих, чтобы вы могли начать. Ссылка на то же самое приведена ниже.



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

import speech_recognition as sr
import pyttsx3
r = sr.Recognizer()

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

with sr.Microphone() as source:
    r.adjust_for_ambient_noise(source)
    print ("Say Something")
    audio = r.listen(source)
          
    try:
        text = r.recognize_google(audio)
        print("you said: ", text)
      
    except sr.UnknownValueError:
        print("Google Speech Recognition could not understand audio")
      
    except sr.RequestError as e:
        print("Could not request results from Google Speech Recognition service; {0}".format(e))

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

Разработка окончательной сборки для AI Voice Assistant:

Теперь, когда у нас есть общее представление о двух основных основных компонентах этой статьи — управлении устройствами и распознавании речи, мы можем начать комбинировать оба этих элемента для разработки нашего проекта. Давайте начнем с импорта необходимых библиотек, как показано ниже.

import pyautogui
import speech_recognition as sr
r = sr.Recognizer()

В следующем фрагменте мы определим функцию команды, где мы будем интерпретировать многочисленные действия. В приведенном ниже блоке кода я определил только пару функций, т. Е. Чтобы открыть мой каталог администратора или меню «Пуск». Функция принимает текстовый ввод, предоставленный пользователем. Мы можем добавить несколько других необходимых команд для дальнейших улучшений этого проекта.

def commands(text):
    if text == "open admin":
        # Open The Admin Directory
        pyautogui.moveTo(37, 35, 1)
        pyautogui.click(button='left', clicks=2)
    elif text == "open start menu":
        # Open The start menu
        pyautogui.moveTo(18, 1057, 1)
        pyautogui.click(button='left', clicks=1)

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

with sr.Microphone() as source:
    r.adjust_for_ambient_noise(source)
    print ("Say Something")
    audio = r.listen(source)
          
    try:
        text = r.recognize_google(audio)
        print("you said: ", text)
        commands(text.lower())
      
    except sr.UnknownValueError:
        print("Google Speech Recognition could not understand audio")
      
    except sr.RequestError as e:
        print("Could not request results from Google Speech Recognition service; {0}".format(e))

Предпочтительный метод запуска вашего проекта — свернуть все вкладки и открыть терминал для запуска кода Python. Вы можете дать команду открыть администратора, чтобы посмотреть, как курсор перемещается из местоположения по умолчанию в указанное положение, и открыть его по желанию. Все необходимые файлы для следующего проекта находятся в моем репозитории GitHub. Проверьте это по следующей ссылке.

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

Заключение:

«Все, что может привести к развитию более умного, чем человеческий интеллект, — в форме искусственного интеллекта, интерфейсов мозг-компьютер или улучшения человеческого интеллекта на основе нейронауки — бесспорно выигрывает, поскольку делает больше всего для изменения мира. Ничто другое не находится в той же лиге».
— Элиэзер Юдковски

Распознавание речи и голоса — это примитивные задачи, понятные людям. Мы способны воспринимать и отвечать на большинство человеческих эмоций, слушая и считывая различные типы голосов и фигур речи. Однако машины еще не обладают полной способностью понимать эмоции, стоящие за речью.

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

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

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



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

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

Ознакомьтесь с некоторыми другими моими статьями по теме, затронутой в этой статье, которые, возможно, вам также понравится читать!







Всем спасибо, что дочитали до конца. Надеюсь, всем вам понравилось читать статью. Желаю всем прекрасного дня!