Простой голосовой помощник на Python за 30 минут

Введение в создание голосового помощника

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

Что нам понадобится

Для начала убедитесь, что у вас установлен Python версии 3.6 или выше. Также вам понадобятся следующие библиотеки:

  • speech_recognition — для распознавания речи;
  • pyttsx3 — для синтеза речи;
  • wikipedia — для поиска информации в Википедии;
  • datetime — для работы с датой и временем.

Установить необходимые библиотеки можно с помощью pip:

pip install SpeechRecognition pyttsx3 wikipedia

Создание простого голосового помощника

Теперь давайте перейдем к написанию кода. Откройте ваш текстовый редактор и создайте новый файл, например, assistant.py. Вставьте следующий код:

import speech_recognition as sr
import pyttsx3
import wikipedia
from datetime import datetime

# Инициализация синтезатора речи
engine = pyttsx3.init()

def speak(text):
    engine.say(text)
    engine.runAndWait()

def listen():
    recognizer = sr.Recognizer()
    with sr.Microphone() as source:
        print("Слушаю...")
        audio = recognizer.listen(source)
        try:
            command = recognizer.recognize_google(audio, language='ru-RU')
            print(f"Вы сказали: {command}")
            return command
        except sr.UnknownValueError:
            print("Не удалось распознать речь.")
            return ""
        except sr.RequestError:
            print("Ошибка сервиса распознавания.")
            return ""

def respond(command):
    if 'время' in command:
        current_time = datetime.now().strftime("%H:%M")
        speak(f"Сейчас {current_time}")
    elif 'поиск' in command:
        query = command.replace("поиск", "")
        result = wikipedia.summary(query, sentences=1)
        speak(result)
    else:
        speak("Извините, я не понимаю команду.")

if __name__ == "__main__":
    speak("Привет, я ваш голосовой помощник.")
    while True:
        command = listen()
        respond(command)

Как работает код

Давайте разберем, что делает каждая часть нашего кода:

  1. Импорт библиотек: Мы импортируем необходимые библиотеки для распознавания речи, синтеза речи и работы с Википедией.
  2. Функция speak: Эта функция принимает текст и произносит его с помощью синтезатора речи.
  3. Функция listen: Она активирует микрофон и слушает команды пользователя. Если речь распознана, она возвращает текст команды.
  4. Функция respond: В зависимости от команды, она выполняет разные действия, такие как озвучивание текущего времени или поиск информации в Википедии.
  5. Основной цикл: В бесконечном цикле программа слушает команды и отвечает на них.

Запуск голосового помощника

Чтобы запустить вашего голосового помощника, просто выполните команду:

python assistant.py

После этого вы сможете взаимодействовать с ним, задавая вопросы о времени или запрашивая информацию из Википедии.

Примечание

Не забудьте проверить настройки вашего микрофона и убедиться, что он работает корректно!

Расширение функционала

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

  • Добавьте возможность управлять музыкой на вашем компьютере;
  • Интегрируйте API для получения погоды;
  • Создайте напоминания и задачи;
  • Добавьте поддержку нескольких языков.
Идея для проекта

Попробуйте интегрировать вашего помощника с другими сервисами, такими как Google Calendar или Todoist, чтобы сделать его ещё более полезным!

Заключение

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

Не бойтесь экспериментировать и добавлять новые функции. Удачи в ваших начинаниях!