Пишем в twitter голосом

в 15:35, , рубрики: Google API, linux, twitter, метки:

Тема может показаться «заезженной», но вдруг кому-нибудь пригодится. Как-то копал в сторону Google Speech Recognition и её реализацию в Chrome. И в голову пришла мысль написать простенький скрипт для постинга в твиттер голосом. Распознование конечно не особо — но такие фразы как «уехал за грибами» или «отошёл» — воспринимает вполне адекватно. Дома — ОС Ubuntu -потому для deb-подобных систем — всё будет описано.

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

sudo apt-get install rec
sudo apt-get install flac
sudo apt-get install sox
sudo apt-get install sed
sudo apt-get install ttytter

Ttytter необходимо настроить (получить пин и натравить на вашу ленту).

И собственно исполняем скриптик на Bash:

#!/bin/bash
FILEWAV="sound.wav" # сюда пишем звук с микрофона
FILEFLAC="sound.flac" # конвертируем во flac
#echo "Recording from microphone..."
rec -r 16000 -b 16 -c 1 $FILEWAV >/dev/null 2>&1 &
echo "Tweeting this speech..."
read KEYPRESSED
#
killall rec
# конвертируем во flac
sox $FILEWAV $FILEFLAC gain -n -5 silence 1 5 2%
# удаляем временный wav-файл
rm $FILEWAV

echo "You said: "
wget -q -U "Mozilla/5.0" --post-file $FILEFLAC --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=ru-RU&client=chromium" > test.ret
cat test.ret | sed 's/.*utterance":"//' | sed 's/","confidence.*//' > test.txt
rm test.ret
TWITEXT="$(cat test.txt)"
echo $TWITEXT
ttytter -status="$TWITEXT"

Всем спасибо за внимание. Может кому-то понадобится. P.s. в баше не силён — да и разбираться было влом — знаю, что много в конце всякого бреда, который можно было проще написать — но кому надо — поправит.

Автор: modestguy

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js