Temat: Sterowanie głosowe
Witam w kolejnym HOWTO serii jak ułatwić sobie życie
Jak zwykle podziękowania dla Cezarego
Tym razem opiszę sposób jak dodać sobie sterowanie głosem w OpenWRT
dzięki wykorzystaniu usługi w Google
A więc co potrzebujemy?
- extroot
- zainstalowana karta dźwiękowa ze sterownikiem alsa polecam tę
- mikrofon
- dostęp do internetu
Na początek pobieramy:
ffmpeg
opkg update
opkg install ffmpeg
opkg install libffmpeg-full
i jeśli nie mamy pełnej wersji wget to pobieramy gdyż domyślna może nie mieć opcji --post-file
opkg install wget-nossl
teraz tworzymy plik np: voicecommand.sh
touch /voicecommand.sh
chmod 755 /voicecommand.sh
z taką zawartością
#!/bin/sh
arecord -f S16_LE -d 2 -r 8000 /message.wav # -d x ustawić długość nagrania
ffmpeg -i /message.wav -ar 16000 /message.flac
wget -q -U "Mozilla/5.0" --post-file /message.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=pl-pl&client=chromium" > /message.ret
tekst=$(cat /message.ret | sed 's/.*utterance":"//' | sed 's/","confidence.*//')
echo "$tekst" > /wynik.txt # można zostawić aby sprawdzić co nam zwruciło
rm /message.wav
rm /message.flac
rm /message.ret
if [ "$tekst" == "słowo" ]; then # za "słowo" podstawić wyraz po którym ma się wykonać polecenie
"komenda_do_wykonania"
fi
Prędkość wykonania komendy zależy od długości nagrania i prędkości łącza, więc najlepiej ustawić na 2 - 3 sek.
co w zupełności wystarcza na wypowiedzenie komendy.
można wykorzystać pilota ( instalacja ) do wykonania skryptu i dodać do samego skryptu linijkę odtwarzająca sygnał dźwiękowy po którym rozpocznie się nagranie próbki.
pozdrawiam
wabikboy
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka