Распознавание речи используя Google Speech API
Написано: понедельник, 8 июля 2013 г. автор Максим Ярлыки: php
Здравствуйте дорогой читатель моего блога!
Если вы читаете этот пост, то вы несомненно заинтересованны в такой потрясающей вещице как Google Speech API. Собственно как это работает?
План:
План:
- Записать звуковой файл с частотой от 8000 до 16000 Гц в формате Flac.
- Отправить Googl'у звуковой файл.
- Получить ответ вида:
{"status":0,"id":"37h03bf4efe17fa76594732d6dokf3-1","hypotheses":[{"utterance":"привет мир","confidence":0.75936891}]}
- 0.75936891 - качество распознанного текста, если оно больше 0.5.. то вы получили достоверный ответ.
- Вывод распознанного текста.
Старт записи:
shell_exec('rec.exe -q -c 1 -r 16000 record.flac');Остановка: (как вариант убить процесс)
shell_exec("TASKKILL /F /IM rec.exe");
А теперь 'мозг'-главный механизм нашего распознования.
$file = file_get_contents(getFileName("Путь до flac файла")); $socket = fsockopen('www.google.com', 80, $errno, $errstr, 30); fwrite($socket, "POST /speech-api/v1/recognize?xjerr=1&client=chromium&lang=ru-RU HTTP/1.1\r\n"); fwrite($socket, "Host: www.google.com\r\n"); fwrite($socket,"Content-Type: audio/x-flac; rate=16000\r\n"); fwrite($socket,"Content-length:".strlen($file)."\r\n"); fwrite($socket,"Connection:Close\r\n"); fwrite($socket,"\r\n"); fwrite($socket,"$file\r\n"); fwrite($socket,"\r\n"); for ($i = 1; $i <= 13; $i++) { $s = fgets($socket,512); $r[] = $s; } $res = json_decode($r[12])->hypotheses[0]->utterance; $res= iconv("utf-8", "windows-1251", $res); echo $res;
Копирование материала только при указании ссылки на ресурс
Спасибо за ценную информацию!
Не подскажите, сколько примерно минут аудио может быть в одном файле: 1, 5, 10 мин? Есть ли ограничения на объем файла и к-во запросов?