Рисование на Canvas с помощью голосовых команд в Tkinter

Рисование на Canvas с помощью голосовых команд в Tkinter

Рисование на Canvas с помощью голосовых команд в Tkinter

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

Для реализации задачи потребуются следующие библиотеки Python:

  1. Tkinter — стандартная библиотека для создания графического интерфейса.
  2. SpeechRecognition — библиотека для распознавания речи.

Убедитесь, что все необходимые библиотеки установлены. Для установки SpeechRecognition выполните команду:

pip install SpeechRecognition



Шаг 1: Создание графического окна

Первым шагом создадим окно приложения с помощью Tkinter. В нём мы разместим холст для рисования и кнопку для запуска голосового управления.



import tkinter as tk



# Создаем главное окно

root = tk.Tk()

root.title("Рисование голосом")



# Создаем Canvas

canvas = tk.Canvas(root, width=600, height=400, bg="white")

canvas.pack()



# Запуск окна

root.mainloop()

Этот код создаёт окно с холстом белого цвета.

Шаг 2: Добавление распознавания речи

Теперь добавим функцию, которая будет слушать голос пользователя и распознавать команды. Для этого используем библиотеку SpeechRecognition.

import speech_recognition as sr



def recognize_speech():

    recognizer = sr.Recognizer()

    with sr.Microphone() as source:

        print("Говорите, я слушаю...")

        try:

            audio = recognizer.listen(source, timeout=5)

            command = recognizer.recognize_google(audio, language="ru-RU")

            print("Распознано:", command)

            return command.lower()

        except sr.UnknownValueError:

            print("Не удалось распознать голос.")

            return None

        except sr.RequestError as e:

            print(f"Ошибка сервиса: {e}")

            return None

Эта функция возвращает текст распознанной команды или сообщает о проблемах.

Шаг 3: Выполнение команд на Canvas

Теперь добавим функцию, которая будет интерпретировать распознанный текст и выполнять соответствующие действия на Canvas.

def execute_command(canvas, command):

    if "круг" in command:

        canvas.create_oval(100, 100, 200, 200, fill="blue", outline="black")

    elif "квадрат" in command:

        canvas.create_rectangle(250, 100, 350, 200, fill="green", outline="black")

    elif "линия" in command:

        canvas.create_line(400, 100, 500, 200, width=3, fill="red")

    else:

        print("Команда не распознана или не поддерживается.")

Эта функция создаёт фигуры на холсте в зависимости от распознанной команды.

Шаг 4: Соединение всех частей

Теперь объединим всё вместе. Добавим кнопку, которая запускает процесс распознавания речи, и интегрируем это с Tkinter.

def start_recognition():

    command = recognize_speech()

    if command:

        execute_command(canvas, command)



start_button = tk.Button(root, text="Сказать команду", command=start_recognition)

start_button.pack()



root.mainloop()



Запустите приложение, скажите «круг», «квадрат» или «линия», и вы увидите, как соответствующие фигуры появляются на холсте!

Заключение

Таким образом, мы создали приложение, которое рисует фигуры на Canvas с помощью голосовых команд. Этот проект можно легко расширить: добавлять новые фигуры, управлять их размерами или цветами, а также добавлять более сложные команды.

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

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий