Распознавание речи на Python: простой AI

Простая программа на Python, распознающая голосовые команды и выполняющая соответствующие действия.

Необходимые инструменты

Для работы потребуется:

  • Текстовый редактор (рекомендуется PyCharm Community).
  • Установленная среда Python и пакетный менеджер pip. (На macOS Python часто устанавливается по умолчанию; на других операционных системах его необходимо установить вручную с официального сайта Python. Инструкции по установке pip доступны на ссылка на сайт pip).

Установка пакетов

Установите пакеты speech_recognition, pyaudio и playsound через pip:

  • pip install SpeechRecognition
  • pip install pyaudio
  • pip install playsound

Установка pyaudio на macOS:

На macOS для установки pyaudio может потребоваться Homebrew (ссылка на сайт Homebrew). Выполните команды:

  1. brew uninstall portaudio
  2. brew install portaudio
  3. pip3 install —upgrade pyaudio

Также потребуется установить Xcode из App Store.

Установка pyaudio на Windows:

При проблемах с установкой pyaudio на Windows, попробуйте установить дополнительно pip install pywin32 и pip install pyaudio-x64 (или pyaudio-win32, в зависимости от разрядности системы).

Код программы

import speech_recognition as sr
import os
import webbrowser
import playsound

def talk(words):
    print(words)
    playsound.playsound('path/to/your/audio.mp3') # Замените 'path/to/your/audio.mp3' на путь к аудиофайлу

def command():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        r.adjust_for_ambient_noise(source)
        print("Говорите")
        audio = r.listen(source)
    try:
        command = r.recognize_google(audio, language="ru-RU").lower()
        print(f"Вы сказали: {command}")
        return command
    except sr.UnknownValueError:
        talk("Я вас не понял")
        return command()
    except sr.RequestError as e:
        print(f"Ошибка сервиса распознавания: {e}")
        return ""

def make_something(command):
    if "открыть сайт" in command:
        talk("Уже открываю")
        webbrowser.open("ваш_сайт.com") # Замените 'ваш_сайт.com' на нужный URL
    elif "стоп" in command:
        talk("Да, конечно, без проблем")
        exit()
    elif "имя" in command:
        talk("Меня зовут Терри")
    else:
        talk("Я вас не понял")

while True:
    make_something(command())

Программа распознаёт голосовые команды на русском языке, выполняет заданные действия и общается с пользователем. Поддерживаемые команды можно расширить, добавив условия в функцию make_something. Для повышения устойчивости к шуму используйте adjust_for_ambient_noise. Убедитесь в корректности путей к файлам и URL-адресов.

Что будем искать? Например,программа