Posts tagged ‘bash’

Как делать “ps” и не делать “grep -v”

Коллеги подсказали кашерный трик с ps и grep, вместо того чтобы делать так:

ps -ef | grep tomcat | grep -v grep

Можно делать так:

ps -ef | grep tomca[t]

Суть в том, что grep принимает регулярное выражение и в вывод строка “grep” не попадет.

P.S. Фанатов psgrep и прочих “Ubuntu на серверах” просьба не беспокоить.

Две фишки BASH которые позволят работать с консолью еще быстрее

Есть два “трика” которые позволяют еще быстрее работать с консолью.
Continue reading ‘Две фишки BASH которые позволят работать с консолью еще быстрее’ »

А я же говорил…или мир меняется пока нас нет

Забавно, живешь себе и не знаешь что мир оказывается изменился, то что было совсем недавно неотъемлемой частью твоего существования оказывается живет без тебя в твое отсутствие. Примерно такие эмоции я испытал когда по совету KsenZ вбил в Google запрос “узявимости BASH OpenSSL”

Continue reading ‘А я же говорил…или мир меняется пока нас нет’ »

Распознавание голоса из консоли

Почему бы не порадовать себя в понедельник прикольной игрушкой? Вот и я так подумал и начал баловаться со скриптом распознавания голоса!
Из статьи на Хабре: Распознавание речи на Bash. Работает и прекрасно распознает!

Ставим нужные пакеты:

sudo apt-get install lame sox

Сохраняем в скрипт и запускаем!

#!/bin/bash
echo "Начинается запись..."
arecord -d 3 -q -f cd -r 16000 speech.wav # Записываем звуковой файл speech.wav длиной в 3 секунды с рейтом 16 мГц
echo "Запись закончена"
sox speech.wav speech.flac gain -n -5 silence 1 5 2% # Конвертируем speech.wav в speech.flac
rm speech.wav # Удаляем speech.wav, т.к. он нам уже не требуется
echo "Анализ голоса..."
wget -q -U "Mozilla/5.0" --post-file speech.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=ru-RU&client=chromium" > all.ret # Отправляем Google speech.flac и полученный ответ сохраняем в файл all.ret
rm speech.flac # Удаляем speech.flac, т.к. он нам уже не требуется
cat all.ret | sed 's/.*utterance":"//' | sed 's/","confidence.*//' > text.txt # Вычленяем значение utterance в файл text.txt
cat all.ret | sed 's/.*confidence"://' | sed 's/}]}.*//' > confidence.txt # Вычленяем значение confidence в файл confidence.txt
rm all.ret # Удаляем all.ret, т.к. он нам уже не требуется
TEXT="$(cat text.txt)" # Переменной TEXT присваиваем содержимое файла text.txt 
CONFIDENCE="$(cat confidence.txt)" # Переменной CONFIDENCE присваиваем содержимое файла confidence.txt
rm text.txt # Удаляем text.txt, т.к. он нам уже не требуется
rm confidence.txt # Удаляем confidence.txt, т.к. он нам уже не требуется
echo $TEXT # Выводим значение переменной TEXT
echo $CONFIDENCE # Выводим значение переменной CONFIDENCE