РАЗРАБОТКА ГОЛОСОВОГО АССИСТЕНТА «САРЮНА» НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ “PYTHON”

XXVII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

РАЗРАБОТКА ГОЛОСОВОГО АССИСТЕНТА «САРЮНА» НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ “PYTHON”

Батоболотов Т.Г. 1
1МАОУ АСОШ № 2
Дондоков Т.Д. 1Батоболотова С.Э. 2
1МАОУ Агинская окружная гимназия-интернат
2МАОУ Агинская СОШ № 2
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

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

Обзор рынка голосовых помощников показывает, что существует множество голосовых помощников, таких как Алиса, Siri, Google Assistant, Alexa и Cortana. Каждый из них имеет свои особенности и преимущества.

Python - это широко используемый язык программирования, который можно использовать для создания голосового помощника. Python имеет множество библиотек и инструментов, которые могут быть использованы для работы с голосовым вводом и выводом, а также для обработки естественного языка. Это делает Python идеальным выбором для создания голосового помощника.

Актуальность темы: Голосовые помощники стали все более популярными среди пользователей в последние годы, и использование языка программирования Python для их создания имеет несколько преимуществ. Во-первых, Python является одним из самых популярных языков программирования в мире, и он имеет обширную базу пользователей и разработчиков. Это означает, что существует множество инструментов и библиотек для создания голосовых помощников на языке Python, а также обширное сообщество, готовое помочь в решении проблем. Во-вторых, Python имеет простой и понятный синтаксис, который облегчает создание голосового помощника и сокращает время разработки.

Цель: Разработка голосового помощника «Сарюна» с функциями распознавания и синтеза речи, обработки естественного языка и выполнения пользовательских запросов для повышения удобства взаимодействия с компьютерными системами.

Задачи проекта:

  1. Анализ существующих технологий распознавания и синтеза речи.

  1. Исследование методов NLP для понимания пользовательских команд.

  1. Разработка модульной архитектуры ассистента (ввод, обработка, вывод данных).

  1. Реализация прототипа с базовым функционалом (управление приложениями, поиск в интернете, работа с 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)

Просмотров работы: 9