PatysBlog

Czarodziej JavaScript, Poliglota, Miłośnik Podróży

Rozpoznawanie mowy w Python – własny Jarvis do kopii zapasowej

Rozpoznawanie mowy w Python – własny Jarvis do kopii zapasowej

Inspiracja

Siedziałem ostatnio tworząc sobie narzędzie do automatyzacji kopiowania na wirtualny dysk moich projektów i uznałem, że fajnie byłoby zautomatyzować to jeszcze bardziej. Męczyło mnie, że po zamknięciu wszystkich programów, które używam do tworzenia mojego oprogramowania muszę odpalać kolejny, który zrobi mi kopię. Niby wysiłek nie duży, ale kiedy kończysz swoją pracę, to można powiedzieć odrywa cię od poczucia, że skończyłeś. W końcu jeszcze musisz zrobić jakiś backup. Ech… A gdyby tak rzucać  na koniec pracy jedno słowo i żeby komputer sam się tym zajął?

Rozpoznawanie mowy w Python

No to zaczynamy. Google i inne mądre strony mówią, że mogę użyć “Speech Recognition”. A mianowicie tego: https://github.com/Uberi/speech_recognition Tak więc tworzymy plik o dumnej nazwie jarvis.py. I piszemy taki kod, który za chwilę omówię chociaż jest bardzo prosty:

# -*- coding: utf-8 -*-
import pyaudio,os
import speech_recognition as sr
import platform
import subprocess
import sys

def mainfunction(source):
    audio = r.listen(source)
    user = r.recognize_sphinx(audio)
    print user
    if user == "secure system" or user == "security system" or user == "secure":
        os.system("python backup.py")

if __name__ == "__main__":
    neuralNetwork.init()
    r = sr.Recognizer()
    with sr.Microphone() as source:
        while 1:
            mainfunction(source)

 

Omówienie kodu

Zaczynając od góry definiujemy kodowanie pliku na utf-8 (wtedy bez problemu polskie znaczki będą działać jeśli ich użyjemy np do jakiegoś print’a). Następnie importujemy wszystkie potrzebne nam moduły. Dalej zrobiłem sobie funkcję mainfunction, która odpowiada za wszystko co się dzieje w programie. Za argument bierze źródło dźwięku, czyli nasz mikrofon. Musimy teraz rozpoznać naszą mowę. Zlecamy to naszej bibliotece, którą zaimportowaliśmy wcześniej. Dla pewności wypiszmy sobie co użytkownik powiedział. Przyda się do testowania co komputer rozpoznaje w naszych słowach. Teraz instrukcja warunkowa porównuje to co powiedzieliśmy z tym co chcemy mieć jako komendę.

W moim przypadku po wielu, ale to wielu próbach i wykrzyczanych do komputera słów, słowa “secure” i “system” były najlepiej rozpoznawalne. Niestety często zdarza się, że komputer bierze słowa zbliżone do tego co chcemy powiedzieć. Może to wynika z akcentu? Sam nie wiem. Dla przykładu kiedy mówiłem “backup” to program rozpoznawał to jako “that up”. Dlatego uznałem, że słowa “secure system” będą równie odpowiednie.

Dalej uruchamiam mój program do backup’u http://blog.patys.pl/2017/03/15/automatyczny-backup-moich-projektow-google-drive-python/

Następnie tworzę funkcję główną i przekazuję jej mikrofon jako źródło dźwięku. Wszystko jest w pętli while, dzięki czemu program nasłuchuje nas nawet w tle. I w sumie to tyle.

Można też dodać sobie w harmonogramie zadań, aby program się uruchamiał wraz z systemem. Jeśli dodamy kolejne komendy możemy bardzo szybko zrobić tak, aby system dało się obsługiwać tylko za pomocą głosu.

Please follow and like us:
0
« »

© 2017 PatysBlog. Theme by Anders Norén.