• Stars
    star
    110
  • Rank 316,770 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created about 4 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python Voice Assistant project can: recognize and synthesize speech without Internet access; report the weather forecast anywhere in the world; make a search in the Google; make a video search in the YouTube; make a search for a definition in Wikipedia and read it; translate from the target language to the user's native language, and much more

Voice Assistant Python App for Windows, Linux & MacOS

Возможности приложения

Данный проект голосового ассистента на Python 3 для Windows и Linux умеет:

  • распознавать и синтезировать речь в offline-режиме (без доступа к Интернету);
  • сообщать о прогнозе погоды в любой точке мира;
  • производить поисковый запрос в поисковой системе Google (а также открывать список результатов и сами результаты данного запроса);
  • производить поисковый запрос видео в системе YouTube и открывать список результатов данного запроса;
  • выполнять поиск определения в Wikipedia c дальнейшим прочтением первых двух предложений;
  • переводить с изучаемого языка на родной язык пользователя (с учетом особенностей воспроизведения речи);
  • искать человека по имени и фамилии в соцсетях ВКонтакте и Facebook;
  • "подбрасывать монетку";
  • воспроизводить случайное приветствие;
  • воспроизводить случайное прощание с последующим завершением работы программы;
  • менять настройки языка распознавания и синтеза речи;
  • TODO многое другое...

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

pip install requirements.txt

Настройка синтеза и анализа речи с возможностью offline-работы

Голосовой ассистент использует для синтеза речи встроенные в операционные системы возможности (т.е. голоса зависят от настроек операционной системы). Для этого используется библиотека pyttsx3. Подробнее здесь

Для корректной работы системы распознавания речи в сочетании с библиотекой SpeechRecognition
используется библиотека PyAudio для получения звука с микрофона.

В целом, решение работает на Windows, Linux и MacOS с незначительными различиями при установке библиотек PyAudio и Google.

Для установки PyAudio на Windows можно найти и скачать нужный в зависимости от архитектуры и версии Python whl-файл здесь в папку с проектом. После чего его можно установить при помощи подобной команды:

pip install PyAudio-0.2.11-cp38-cp38m-win_amd64.whl

В случае проблем с установкой PyAudio на MacOS может помочь данное решение.

Для использования SpeechRecognition в offline-режиме (без доступа к Интернету), 
потребуется дополнительно установить Vosk (качество моделей близко к Google)

В проекте преимущественно используется Google при наличии доступа в Интернет и
предусмотрено переключение на Vosk в случае отсутствия доступа к сети.

Для избежания проблем с установкой Vosk на Windows, я предлагаю скачать whl-файл в зависимости от требуемой архитектуры и версии Python. Его можно найти здесь. Загрузив файл в папку с проектом, установку можно будет запустить с помощью подобной команды:

pip install vosk-0.3.7-cp38-cp38-win_amd64.whl

Модели для распознавания речи с помощью Vosk можно найти здесь. Я использовала в проекте ru и en модели

Настройка получения прогноза погоды от OpenWeatherMap

Для получения данных прогноза погоды мною был использован сервис OpenWeatherMap, который требует API-ключ. Получить API-ключ и ознакомиться с документацией можно после регистрации (есть Free-тариф) здесь. Примеры использования можно найти здесь

Прочие зависимости

Команды для установки прочих сторонних библиотек:

Команда установки Назначение библиотеки
pip install google Поисковые запросы в Google
pip install SpeechRecognition Распознавание речи (Speech-To-Text)
pip install vosk Offline распознавание речи (Speech-To-Text)
pip install pyttsx3 Offline синтез речи на Windows (Text-To-Speech)
pip install wikipedia-api Wikipedia API
pip install googletrans Google Translate
pip install pyowm Получение данных погоды с помощью OpenWeatherMap
pip install python-dotenv Работа с .env-файлами для хранения API-ключей
pip install scikit-learn Машинного обучение для угадывания намерений

Дополнительную информацию по установке и использованию библиотек можно найти здесь

У меня на Windows не возникало проблем с установкой библиотек, перечисленных в таблице выше, 
потому прилагаю только команды для установки.

В случае возникновения проблем с установкой на Windows, вы можете воспользоваться тем же способом, 
который я предлагала для установки PyAudio выше.

More Repositories

1

VK-Auto-Reply-Bot

VKontakte User Bot with scheduled message sending, NLU and managed responses
Python
33
star
2

Parking-Lot-Video-Object-Detection

Transport means detection using image detection by Yolo. It can count free parking places and transport means in the parking area
Python
9
star
3

RayTracing

Ray Tracing algorithm using transparent glass and mirror materials. A cylinder and a ball are used as figures. There are directional and point light sources. The camera can be controlled using the keyboard.
C#
9
star
4

True-Love-Finder

CNN that will help you find yours truly ;)
Python
6
star
5

Unity-Scene-Updater

Simple script with common functions to update all project Unity scenes with one click
C#
6
star
6

Yolo-Object-Detection-Examples

Example of using YOLO to detect objects in images and videos
Python
6
star
7

WIN_API

The scariest thing I've ever written. Лабораторные по дисциплине "Операционные системы" под Windows
C++
5
star
8

RecommendationSystem

В данной системе рекомендаций использован механизм рекомендаций на основе контента. Система принимает проект, который нравится пользователю, а затем анализирует его, чтобы получить список похожих проектов (например, по ключевым словам), используя оценку сходства.
Python
5
star
9

SimpleBuildSystem

Developed with Unreal Engine 4. This project contains: objects of construction; functionality for selecting / changing the construction object; switching between building modes; logic for setting the position and rotation of the object before construction; spawn objects; functionality for removing objects from the scene (canceling construction).
5
star
10

TankOpenGL

Tank BT-5, created using OpenGL (OpenTK). Light is set, textures are superimposed. You can rotate the tank tower using the keyboard, as well as zoom in and out of the picture.
C#
4
star
11

EnjiRouz

About me
4
star
12

2D-Fantasy-Game

2D platformer in the fantasy genre with RPG element. Implemented systems: movement and interaction with objects; artificial intelligence of enemy characters; inventory and store; dialogues and quests; leveling up for character; saving/loading the game process. [FantsyHeroes pack is not included]
C#
4
star
13

react-quiz-app

React.js App for Quiz creating and taking quizes with multiple answers. Made using Firebase, React, Redux and Router. Deployed on Firebase with write rules disabled
JavaScript
4
star
14

Vue.js-Notes-App

Simple notes app with editing and searching. Powered by Vue.js
Vue
3
star
15

Habr-Reader-Extension

Простое расширение-читалка для Chrome/Opera, позволяющее воспроизводить текстовое содержимое статьи на Habr. Для воспроизведения используется встроенный TextToSpeech, управляемый через popup-интерфейс с помощью кнопок ▶,⏸ и ⏹.Можно выбирать язык воспроизведения (между английским en-US и русским ru-RU), а также регулировать скорость (по умолчанию, от 0.5 до 2).
JavaScript
2
star
16

Text-To-Speech

Text To Speech using JavaScript with play, pause, stop buttons, language and speed rate changing
JavaScript
2
star
17

Telegram-Event-Reminder-Bot

Telegram Bot with event registration and reminder function, also it could collect information about users to register for the event
Java
1
star
18

react-js-notes-app

Simple ToDo/Notes React.js App made using React Hooks and JSON Placeholder REST API
JavaScript
1
star
19

DFA-and-DFMA-Visualization

A graphical application that will show the operation of a finite deterministic automaton and a finite deterministic MP automaton. You specify a word from the alphabet characters, for this word, transitions from state to state are shown. At the end of the work it is said whether this word is allowed by the given automaton.
Python
1
star
20

Unity-Custom-Editor-Tool-Example

Custom Unity Editor tool that helps you customize scene objects faster
C#
1
star
21

IntelligentSystems

Expert systems examples: production type expert systems with direct and reverse logical conclusion; numpy perceptron; numpy neural network trained on logic AND operation; convolutional neural network for image recognition using cifar10 dataset and keras
Python
1
star
22

IETS-Individual-Educational-Trajectory-System

Прототип системы построения индивидуальной образовательной траектории для абитуриентов и студентов IT-направлений ИРИТ-РтФ. Web-based application that helps students choose their field of study for UrFU
PHP
1
star
23

Skyline-Text-Novel

Текстовая новелла, написанная просто развлечения ради, в которой будет сложно не сдохнуть :D
C++
1
star
24

TrajectorySystemPrototype

Prototype of the trajectory system for UrFU
PHP
1
star
25

Interactive-Schedule

Interactive Schedule template for UrFU IT-majors using redips-drag-min.js and jspdf.min.js
JavaScript
1
star
26

KonturTask-hashes-readonly-bytes

Пример выполнения практики «Readonly bytes» в рамках курса по программированию от СКБ Контур по работе с FNV
C#
1
star