$cmd="arecord -d 10 -t wav -f cd ".$fn;
echo $cmd;
playsound("/var/www/sounds/ok.mp3");
shell_exec($cmd);
playsound("/var/www/sounds/ok.mp3");
echo "записан файл: ".$cmd;
playsound($fn);
runScript('speechyandexcurl', array('fn' =>$fn));
{
$result=array();
if($min>$max) return $result;
$count=min(max($count,0),$max-$min+1);
while(count($result)<$count) {
$value=rand($min,$max-count($result));
foreach($result as $used) if($used<=$value) $value++; else break;
$result[]=dechex($value);
sort($result);
}
shuffle($result);
return $result;}
$key="c3aedb53-///fb";
$filename="@".$params['fn'];
if ($fn=="@"){$filename='@/var/www/cached/voice/8622cf4b70d9508f1910bdb77e74d5d8_ivona.mp3';}
//$filename='@/var/www/cached/voice/probki.wav';
//echo substr($filename,-5);
$ras=explode(".",substr($filename,-5));
if ($ras[1]=="wav"){$tip="audio/x-wav";}
else if ($ras[1]=="mp3"){$tip="audio/x-mpeg-3";}
$uuid=generateRandomSelection(0,30,64);
$uuid=implode($uuid);
$uuid=substr($uuid,1,32);
$url="curl -X POST -H \"Content-Type: ".$tip."\" --data-binary \"".$filename."\" \"https://asr.yandex.net/asr_xml?uuid=".$ ... ic=queries\"";
//echo $url;
say('Пытаюсь распознать файл '.$filename,1);
$answ=shell_exec($url);
echo $answ;
say($answ,2);
Пока только штатными средствами отправляет файл и получает ответ. Ключ получать тут https://developer.tech.yandex.ru/
Проверено, работает на Orange Pi plus 2, но думаю должно работать и на любой linux liked системе при наличии микрофона. Пока это самое простое решение из имеющихся тут на форуме без установки каких-либо систем распознавания.
Осталось научиться слушать ключевую фразу. Видимо придется ставить PocketSphinx.
Или как вариант использовать sox http://tuksik.ru/voicecom/