Введение
Голосовой помощник - это программа, которая позволяет пользователю взаимодействовать с компьютером с помощью голоса. Голосовые помощники широко используются в настоящее время, потому что они позволяют упростить ряд задач, таких как поиск информации в Интернете, управление устройствами домашней автоматизации, запуск приложений, отправка сообщений и т.д.
Обзор рынка голосовых помощников показывает, что существует множество голосовых помощников, таких как Алиса, Siri, Google Assistant, Alexa и Cortana. Каждый из них имеет свои особенности и преимущества.
Python - это широко используемый язык программирования, который можно использовать для создания голосового помощника. Python имеет множество библиотек и инструментов, которые могут быть использованы для работы с голосовым вводом и выводом, а также для обработки естественного языка. Это делает Python идеальным выбором для создания голосового помощника.
Актуальность темы: Голосовые помощники стали все более популярными среди пользователей в последние годы, и использование языка программирования Python для их создания имеет несколько преимуществ. Во-первых, Python является одним из самых популярных языков программирования в мире, и он имеет обширную базу пользователей и разработчиков. Это означает, что существует множество инструментов и библиотек для создания голосовых помощников на языке Python, а также обширное сообщество, готовое помочь в решении проблем. Во-вторых, Python имеет простой и понятный синтаксис, который облегчает создание голосового помощника и сокращает время разработки.
Цель: Разработка голосового помощника «Сарюна» с функциями распознавания и синтеза речи, обработки естественного языка и выполнения пользовательских запросов для повышения удобства взаимодействия с компьютерными системами.
Задачи проекта:
Анализ существующих технологий распознавания и синтеза речи.
Исследование методов NLP для понимания пользовательских команд.
Разработка модульной архитектуры ассистента (ввод, обработка, вывод данных).
Реализация прототипа с базовым функционалом (управление приложениями, поиск в интернете, работа с IoT).
Ключевыми направлениями исследования стали:
Алгоритмы распознавания и синтеза речи.
Интеграция с системными приложениями через subprocess.
Автоматизация действий в браузере с помощью webbrowser.
Подключение к IoT-устройствам через API (например, Yandex Smart Home).
Практическая значимость:
Адаптивность под индивидуальные нужды (автоматизация рабочих процессов, помощь людям с ограниченными возможностями).
Модульная архитектура кода — возможность легкого расширения функционала.
Основное содержание
Голосовой помощник – это программа на основе искусственного интеллекта, которая понимает человеческую речь, обрабатывает запросы и выполняет команды или отвечает на вопросы с помощью голосового или текстового интерфейса. Они обладает способностью выполнять многочисленные задачи, используя технологии распознавания речи и искусственного интеллекта. Этот инструмент помогает пользователям работать с устройствами или решать иные задачи без необходимости набирать текст на клавиатуре, а вместо этого общаться с помощником голосом. Голосовой помощник создает возможность общения между человеком и машиной в более естественной и понятной для пользователей форме, поскольку голосовые команды более просты в использовании и быстро выполняемы.
I этап. Проектирование программы «Сарюна».
Для реализации своего проекта я выбрал язык программирования «Python».
Python – это язык программирования общего назначения. Python отличается от других языков программирования своей простотой и элегантностью, что делает его одним из самых доступных и популярных языков программирования в мире. Он имеет мощные библиотеки и инструменты, которые облегчают разработку программ с использованием небольшого количества строк кода. Кроме того, многие известные голосовые помощники, такие как Алиса от Yandex, Siri от Apple и Google Assistant, были созданы с использованием языка Python.
В моем проекте будут использованы следующие библиотеки:
1. speech_recognition: используется для распознавания речи пользователя.
2. pyttsx3: используется для озвучивания текста.
3. webbrowser: используется для открытия веб-сайтов.
4. pyautogui: используется для эмуляции действий с клавиатурой и мышью.
5. subprocess: используется для запуска внешних программ.
6. os: используется для взаимодействия с операционной системой.
7. YandexIOT: библиотека для взаимодействия с умным домом.
Выбор конкретных технологий обоснован их функциональностью и соответствием поставленным задачам в программе голосового помощника. Каждая библиотека и модуль используется для конкретной задачи, такие как распознавание речи, озвучивание текста, управление умным домом, запуск программ и т.д.
Упрощенная структура программы выглядит следующим образом:
Этап II. Реализация распознавания речи программой «Сарюна».
Библиотека SpeechRecognition предназначена для распознавания речи в Python. Она позволяет преобразовать аудиозапись в текст с помощью различных онлайн сервисов распознавания голоса.
SpeechRecognition имеет простой и понятный интерфейс, легко настраивается.
Этот код будет запрашивать у пользователя голосовой ввод, передавать его для распознавания через Google Speech Recognition API и выводить текст, который был распознан в консоль.
Примеркода:
import speech_recognition as sr
defrecognize_speech():
recognizer = sr.Recognizer()
with sr.Microphone()as source:
print("Скажитечто-нибудь...")
audio = recognizer.listen(source)
try:
command = recognizer.recognize_google(audio, language="ru-RU")
return command
except sr.UnknownValueError:
print("Речьнераспознана")
return ""
Этап III. Реализация выполнения команд программой.
Для выполнения команд ассистентом “Сарюна” нужны библиотеки Subprocess , Webbrowser, YandexIOT.
Subprocess – это библиотека для выполнения команд которые относятся к встроенными приложениями Windows
elif "запусти камеру" in command.lower():
speak("Включаю камеру")
subprocess.Popen("microsoft.windows.camera")
Webbrowser – это библиотека для команд которые выполняются в браузере
elif "включивидео" in command.lower():
speak("Открываюрутуб")
webbrowser.open(f"https://rutube.ru")
YandexIOT – взаимодействие с умными устройствами (лампочки, розетки).
elif "включисвет" in command.lower():
speak("Включаюсвет")
light.turn_on()
Заключение
В ходе проекта был разработан голосовой помощник «Сарюна», способный:
Распознавать речь и преобразовывать ее в текст.
Обрабатывать команды с использованием NLP.
Выполнять действия (управление ПК, поиск в интернете, работа с IoT).
Перспективы развития:
Добавление машинного обучения для персонализации ответов.
Поддержка мультиязычности.
Интеграция с дополнительными API (погода, новости, умные устройства других производителей).
Также перспективы дальнейшего развития голосового помощника на Python включают улучшение его функциональности, увеличение скорости и точности распознавания речи, а также можно рассмотреть возможность обучения голосового помощника.
В конечном итоге могу сказать, что цели мною достигнуты, задачи выполнены при помощи множества библиотек, я смог создать Голосовой Помощник «Сарюна», который слушает, и отвечает на запросы.
Голосовые помощники в будущем станут неотъемлемой частью цифровой экосистемы, превратившись из простых инструментов выполнения команд в полноценных виртуальных компаньонов, способных к осмысленному диалогу и предвосхищению потребностей пользователя.
Список использованной литературы
1. https://habr.com/ru/post/529590/
2. https://pythonist.ru/golosovoj-pomoshhnik-na-python/
4. https://ru.wikipedia.org/wiki/Google_Assistant
5. https://habr.com/ru/post/577806/
6. https://pypi.org/project/vosk/
Приложение 1.
Кодпрограммы
# Библиотеки
import sys
import speech_recognition as sr
import subprocess
import pyttsx3
import webbrowser
import wmi
import os
import pyautogui
import subprocess, os
from YandexIOT import SmartHome
home = SmartHome(")))))))")
light = home.get_device_by_name("Лампочка")
# Настройкиозвучки
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
# Функцияозвучки
def speak(text):
engine.say(text)
engine.runAndWait()
# Распознованиеголоса
def recognize_speech():
recognizer = sr.Recognizer()
with sr.Microphone() as source:
print("Скажитечто-нибудь...")
speak("Сарюнавасслушает")
audio = recognizer.listen(source)
try:
print("Распознаю...")
command = recognizer.recognize_google(audio, language="ru-RU")
print("Высказали: " + command)
return command
except sr.UnknownValueError:
print("Команданераспознана")
return ""
except sr.RequestError:
print("Неудаетсяподключитьсякслужбераспознаванияречи")
return ""
# Команды
def execute_command(command):
# browser, sites
if "github" in command.lower():
speak("Открываюгитхаб")
webbrowser.open("https://github.com")
elif "запустикамеру" in command.lower():
speak("Включаюкамеру")
subprocess.Popen("microsoft.windows.camera")
elif "включивидео" in command.lower():
speak("Открываюрутуб")
webbrowser.open(f"https://rutube.ru")
elif "включисвет" in command.lower():
speak("Включаюсвет")
light.turn_on()
elif "выключисвет" in command.lower():
speak("Выключаюсвет")
light.turn_off()
elif "отключись" in command.lower():
speak("Сарюнаотключается")
sys.exit()
# settings
elif "поменяйязык" in command.lower() or "раскладка" in command.lower() or "раскладку" in command.lower():
speak("Меняюраскладкуклавиатуры, сэр")
pyautogui.hotkey('alt', 'shift')
speak("Готово")
elif "окно" in command.lower():
speak("Сворачиваюокно, сэр")
pyautogui.hotkey('win', 'd')
# softs
elif "откройкалькулятор" in command.lower():
speak("Открываюкалькулятор")
subprocess.Popen("calc.exe")
elif "откройблокнот" in command.lower():
speak("Открываюблокнот, сэр")
subprocess.Popen("notepad.exe")
else:
speak('Покачтояэтонеумею')
if __name__ == "__main__":
while True:
voice_command = recognize_speech()
if voice_command:
execute_command(voice_command)