ИИ на Python для распознавания голоса и выполнения команд

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


На Python можно строить как простые программы, так и сложные ИИ системы. В данной статье мы покажем как реализовать распознавание голоса и выполнение различных команд.

Перед стартом работы, вам стоит убедиться в нескольких вещах:

  • у вас установлен Python на вашем компьютере;
  • у вас установлен текстовый редактор, к примеру PyCharm;
  • у вас установлен пакетный менеджер Pip.

Установка библиотек

Для распознавания голоса вам необходимо установить библиотеки:

  1. SpeechRecognition - команда pip install SpeechRecognition;
  2. gTTS - команда pip install gTTS;
  3. 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())

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

Также предлагаем посмотреть видео, где все описано еще более детально:

Полезные ссылки из видео:

  1. Скачать редактор PyCharm;
  2. Скачать пакетный менеджер Pip;
  3. Скачать Homebrew для установки PyAudio;
  4. Пример установки библиотеки PyAudio;
  5. Поддержка различных языков.

Источник: itproger.com

Комментарии: