На Python можно строить как простые программы, так и сложные ИИ системы. В данной статье мы покажем как реализовать распознавание голоса и выполнение различных команд.
Перед стартом работы, вам стоит убедиться в нескольких вещах:
Для распознавания голоса вам необходимо установить библиотеки:
SpeechRecognition - команда pip install SpeechRecognition;
gTTS - команда pip install gTTS;
PyAudio - команда pip install PyAudio.
Все библиотеки стоит устанавливать через терминал в ваш проект через программу PyCharm:
После установки всех библиотек начните прописывать код самой программы. Ниже мы приведем весь код программы с комментариями, дабы вам было проще в нём разобраться:
# Подключение всех необходимых библиотек # Нам нужно: speech_recognition, os, sys, webbrowser # Для первой бибилотеки прописываем также псевдоним import speech_recognition as sr import os import sys import webbrowser # Функция, позволяющая проговаривать слова # Принимает параметр "Слова" и прогроваривает их def talk(words): print(words) # Дополнительно выводим на экран os.system("say " + words) # Проговариваем слова # Вызов функции и передача строки # именно эта строка будет проговорена компьютером talk("Привет, чем я могу помочь вам?") """ Функция command() служит для отслеживания микрофона. Вызывая функцию мы будет слушать что скажет пользователь, при этом для прослушивания будет использован микрофон. Получение данные будут сконвертированы в строку и далее будет происходить их проверка. """ def command(): # Создаем объект на основе библиотеки # speech_recognition и вызываем метод для определения данных r = sr.Recognizer() # Начинаем прослушивать микрофон и записываем данные в source with sr.Microphone() as source: # Просто вывод, чтобы мы знали когда говорить print("Говорите") # Устанавливаем паузу, чтобы прослушивание # началось лишь по прошествию 1 секунды r.pause_threshold = 1 # используем adjust_for_ambient_noise для удаления # посторонних шумов из аудио дорожки r.adjust_for_ambient_noise(source, duration=1) # Полученные данные записываем в переменную audio # пока мы получили лишь mp3 звук audio = r.listen(source) try: # Обрабатываем все при помощи исключений """ Распознаем данные из mp3 дорожки. Указываем что отслеживаемый язык русский. Благодаря lower() приводим все в нижний регистр. Теперь мы получили данные в формате строки, которые спокойно можем проверить в условиях """ zadanie = r.recognize_google(audio, language="ru-RU").lower() # Просто отображаем текст что сказал пользователь print("Вы сказали: " + zadanie) # Если не смогли распознать текст, то будет вызвана эта ошибка except sr.UnknownValueError: # Здесь просто проговариваем слова "Я вас не поняла" # и вызываем снова функцию command() для # получения текста от пользователя talk("Я вас не поняла") zadanie = command() # В конце функции возвращаем текст задания # или же повторный вызов функции return zadanie # Данная функция служит для проверки текста, # что сказал пользователь (zadanie - текст от пользователя) def makeSomething(zadanie): # Попросту проверяем текст на соответствие # Если в тексте что сказал пользователь есть слова # "открыть сайт", то выполняем команду if 'открыть сайт' in zadanie: # Проговариваем текст talk("Уже открываю") # Указываем сайт для открытия url = 'https://itproger.com' # Открываем сайт webbrowser.open(url) # если было сказано "стоп", то останавливаем прогу elif 'стоп' in zadanie: # Проговариваем текст talk("Да, конечно, без проблем") # Выходим из программы sys.exit() # Аналогично elif 'имя' in zadanie: talk("Меня зовут Сири") # Вызов функции для проверки текста будет # осуществляться постоянно, поэтому здесь # прописан бесконечный цикл while while True: makeSomething(command())
Как видите, программа простая и не требует гигантского количества строчек кода. Сам код можете подстраивать в любую программу, дабы добавить в неё функционал прослушивания речи.
Также предлагаем посмотреть видео, где все описано еще более детально: