Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Распознавание речи от Google

0

Раньше реализовывал, все работало без вопросов, однако с недавноего времени голос перестал распознаваться... Подскажите, если кто пользуется сервисом распознавания речи от гугла, они у вас в настоящее время работают? Может гугл что стал блокировать?

ps Скрипт voice.php:

#!/usr/bin/php -q
<?
$agivars = array();
while (!feof(STDIN)) {
    $agivar = trim(fgets(STDIN));
    if ($agivar === '')
        break;

    $agivar = explode(':', $agivar);
    $agivars[$agivar[0]] = trim($agivar[1]);
}
extract($agivars);

$filename = $_SERVER["argv"][1];

exec('flac -f -s '.$filename.'.wav -o '.$filename.'.flac');

$file_to_upload = array('myfile'=>'@current.flac');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=ru-RU");
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: audio/x-flac; rate=16000"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $file_to_upload);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);

$json_array = json_decode($result, true);
$voice_cmd = $json_array["hypotheses"][0]["utterance"];

unlink($filename.'.flac');
unlink($filename.'.wav');

echo 'SET VARIABLE VOICE "'.$voice_cmd.'"'."\n";
fgets(STDIN);
echo 'VERBOSE ("'.$voice_cmd.'")'."\n";
fgets(STDIN);
exit(0);
?>

ffmpeg и flac стоят, права на festivalcache так же есть

chmod +x /var/lib/asterisk/agi-bin/* уже пробывал, не помогает...

Может еще каких прав недостаточно? Либо действительно что-то с сервисом не так....

pps Синтез текста в речь от гугла работает отл.

удалить закрыть спам изменить тег редактировать

спросил 2014-06-06 13:48:09 +0400

nyll Gravatar nyll
1 8 1 5

Comments

Спасибо всем :) Буду ковырять

nyll ( 2014-06-06 14:31:31 +0400 )редактировать

glukinho, а можете скинуть формат новый jcon? Все настроил, запросы отправляет (видно по статистике в гугле), но ответ не могу получить... В скриптах не так силен, как хотелось бы... Я так понял, что меняется сама ссылка (сделал) и меняется что-то после $jsonarray = jsondecode($result, true); ...

nyll ( 2014-06-06 16:16:00 +0400 )редактировать

Обновил свой предыдущий ответ.

glukinho ( 2014-06-06 16:43:54 +0400 )редактировать

спасибо тебе, добрый человек! Все работает :)

nyll ( 2014-06-06 17:15:50 +0400 )редактировать

А у меня, блин, как раз перестало почему-то :(

glukinho ( 2014-06-06 17:16:36 +0400 )редактировать

2 Ответа

0

вы будете удивлены, но у гугла НЕТ такого сервиса

все эти скрипты используют недокументированное api из пакета google translate. наверно гугл его поменял.

ну либо вы настроить чтото не можете. в любом случае это не по теме данного форума

рабочий скрипт есть вот тут

http://zaf.github.io/asterisk-speech-recog/

ссылка удалить спам редактировать

ответил 2014-06-06 13:58:33 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2014-06-06 14:00:26 +0400

0

Копал недавно, когда у нас сломалось. Гугл закрыл APIv1, теперь есть APIv2, но нужно зарегистрироваться как Chromium Developer, получить свой ключик для доступа к API. Гугл обещает ограничить доступ к API (50 запросов в день), но по факту, по-моему, ограничения сейчас не действуют.

Как регистрироваться: http://www.chromium.org/developers/how-tos/api-keys

Вот на какую засаду я напоролся, когда переделывал на v2: https://stackoverflow.com/questions/23682441/google-speech-api-duplicates-responses (может быть, у вас все будет нормально).

Да, и там еще изменился формат json-ответа. Теперь гугл отдает несколько вариантов.

Ответ приходит в таком формате: Результат приходит в таком формате:

{"result":[{"alternative":[{"transcript":"упоротый","confidence":0.75232214},{"transcript":"упороты"},{"transcript":"упоротые"},{"transcript":"упорный"},{"transcript":"упоротая"}],"final":true}],"result_index":0}

Я его разбираю вот так:

$result=curl_exec ($ch);
$json_array = json_decode($result, true);
$voice_cmd = $json_array['result'][0]['alternative'][0]['transcript'];

В $voice_cmd получаю текст, который далее использую как надо.

ссылка удалить спам редактировать

ответил 2014-06-06 14:08:59 +0400

glukinho Gravatar glukinho
661 4 3 12

обновил 2014-06-06 16:43:26 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
2 закладки

подписаться на rss ленту новостей

Статистика

Задан: 2014-06-06 13:48:09 +0400

Просмотрен: 1,708 раз

Обновлен: Jun 06 '14

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.