Добавить в корзинуПозвонить
Найти в Дзене
Я'ж Программист

Простейший голосовой ассистент на Python

Salve , народ . В этой статье мы напишем программу , которая сможет искать информацию в браузере . Да не просто так , а с помощью голоса ! ( Полный код по прежнему по ссылке в самом конце ) Так ещё и что нибудь нам будет в ответ говорить . Для голоса мы будем использовать RHVoice , который можно установить с GitHub . Для распознавания речь можно было бы использовать Sphinx , но ну его на фиг . Оставим Sphinx для чего-нибудь более серьёзного , поэтому будем использовать Google для распознавания речи . Для непосредственно открытия браузера и поиска в нём информации можно использовать стандартные библиотеки os и webbrowser , в общем , везде можно разгуляться . Из зависимостей понадобится : PortAudio , ставится этой командой : sudo apt install portaudio19-dev Также PyAudio Ставится этой командой : pip3 install PyAudio и SpeechRecognition , который ставится этой командой : pip3 install SpeechRecognition Все остальное , что нам понадобится это стандартные библиотеки . Поэтому с зависимост

Salve , народ . В этой статье мы напишем программу , которая сможет искать информацию в браузере . Да не просто так , а с помощью голоса !

( Полный код по прежнему по ссылке в самом конце )

Так ещё и что нибудь нам будет в ответ говорить .

Для голоса мы будем использовать RHVoice , который можно установить с GitHub .

Для распознавания речь можно было бы использовать Sphinx , но ну его на фиг . Оставим Sphinx для чего-нибудь более серьёзного , поэтому будем использовать Google для распознавания речи .

Для непосредственно открытия браузера и поиска в нём информации можно использовать стандартные библиотеки os и webbrowser , в общем , везде можно разгуляться .

Из зависимостей понадобится :

PortAudio , ставится этой командой :

sudo apt install portaudio19-dev

Также

PyAudio

Ставится этой командой :

pip3 install PyAudio

и SpeechRecognition , который ставится этой командой :

pip3 install SpeechRecognition

Все остальное , что нам понадобится это стандартные библиотеки .

Поэтому с зависимостями покончено .

А вот теперь начинаем писать код .

Но для начала импортируем всё нужное нам добро ( Целых ТРИ модуля ):

from speech_recognition import Microphone , Recognizer
import os
import webbrowser

А вот теперь можно и продолжать .

На будущее создам функцию , которая в будущем будет отвечать за ... Голос ?.. :

def golos(a):
print(a)

А теперь , хоба ! :

while True:
with Microphone(device_index=0) as source:
print('Скажи что-нибудь ...')
audio = r.listen(source)
try:
query = r.recognize_google(audio , language ="ru-RU")
skazano = query.lower()
except :
golos('Кортавый ты блин')
skazano = ''
print(skazano)
webbrowser.open('https://yandex.ru/search/?lr=11285&text= ' + skazano, new=2)

Это вся оставшаяся программа , кстати , если вам выпадает эта ошибка :

OSError: [Errno -9998] Invalid number of channels

То найдите эту строку <with Microphone(device_index=0) as source:>

и измените значение device_index на 1 .

Вот по этой ссылке можно посмотреть видео с работой этой версии .

Кстати , я решил , что будет символично , если я буду использовать гугловский переводчик =)

Дальше сделаем так , чтобы это ... нечто что нибудь нам отвечало , для этого установим RHVoice.

Для этого выполните эти команды по порядку :

  1. sudo apt install git
  2. git clone https://github.com/Olga-Yakovleva/RHVoice.git
  3. cd RHVoice
  4. sudo apt install scons
  5. scons
  6. sudo scons install
  7. sudo ldconfig

А дальше вводим эту команду :

echo «Привет , как дела ?» | RHVoice-test -p anna

Отлично , можно продолжать .

Особо заморачиваться не будем , поэтому вот :

И вот :

-2

Теперь ... Ладно , нужно придумать этому чуду имя , пускай будет Олеся .

Так вот , теперь Олеся может нам отвечать .

А дальше я вспомнил про Pyowm и приделал его сюда .

В начале кода импортируем его :

import pyowm

А конец кода теперь выглядит так :

-3

Напоминаю , в строке < owm = OWM(......) > вам нужно будет указать свой Api Key , который вы сможете получить после регистрации на сайте Open Weather Map , если при попытке регистрации сайт выдает ошибку , то воспользуйтесь VPN . Ну а свой я вам не дам =)

Дальше я добавил команду , открывающую яндекс.музыку , и команду , услышав которую Олеся скажет своё имя . ( Почему имя Олеся у меня выделяется как ошибка ??? ) .

Так же я сделал , так , чтобы пока мы не скажем <привет> Олеся ни на что реагировать не будет

Вот как то так это выглядит :

Вот собака какая , в кадр влезла
Вот собака какая , в кадр влезла
Шо , опять ? На этом изображении , почти что по середине мы отчетливо видим непонятную , прозрачную сущность , неужели , мне удалось заснять ... Нечто паранормальное ? Нет , это всего лишь не успевшее исчезнуть окошко создания скриншота , так что на этом моменте 100 % нет никакой мистики .
Шо , опять ? На этом изображении , почти что по середине мы отчетливо видим непонятную , прозрачную сущность , неужели , мне удалось заснять ... Нечто паранормальное ? Нет , это всего лишь не успевшее исчезнуть окошко создания скриншота , так что на этом моменте 100 % нет никакой мистики .

На этом как бы всё , полный код можно найти по этой ссылке , ну , на этом я прощаюсь , увидимся завтра , а возможно послезавтра , а возможно и завтра и послезавтра =/

Кстати , по традиции :

Если уж вы дошли до этого момента , то почему бы вам не поставить класс и не подписаться ?