Это без сфинска, надо вручную запускать. Для того что бы работало как вам надо, нужно будет написать небольшой парсер, который будет вывод сфинска перехватывать, и когда найдено ключевое слово запускать этот скриптик. По первому пункту.. Тоже возможно, но только костыльными методами)
Например распознавать через гугл, потом распознанное слово записывать в файл, из которого сфинкс берет ключевое слово, и перезапускать сфинкс.
Код: Выделить всё
#!/bin/bash
#echo "Начинается запись..."
arecord -D hw:1,0 -d 3 -q -f S16_le /tmp/speech.wav ## записываем исходный файл, параметр -f зависит от аудиокарты, это качество записи
#echo "Запись закончена"
sox /tmp/speech.wav -r 16000 -b 16 -c 1 /tmp/speech.flac gain -n -5 silence 1 5 2% ## конвертируем в формат понятный гуглу. моно, 16кгц, 16 бит, + немного чистим шумы
rm /tmp/speech.wav
#echo "Анализ голоса..."
wget -q -U "Mozilla/5.0" --post-file /tmp/speech.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "https://www.google.com/speech-api/v2/recognize?output=json&lang=ru-RU&key=тут ваш api ключ" > /tmp/all.ret ## отправляем запрос в гугл, тот возвращает json. может еще xml по моему возвращать
rm /tmp/speech.flac
cat /tmp/all.ret | sed 's/*transcript":"//' | sed 's/","confidence.*//' | sed -n 2p | cut -c 43- > /tmp/text.txt ## выцепляем из json распознанные слова, в этой строчке несколько часов мучений)
rm /tmp/all.ret
TEXT="$(cat /tmp/text.txt)"
rm /tmp/text.txt
wget -q -U "Mozilla/5.0" -O - "http://10.10.158.220/command.php?qry=$TEXT" > /dev/null ##вот так я отправлял в majordomo
#echo $TEXT