Инструменты пользователя

Инструменты сайта


яндекс_голос

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
яндекс_голос [2015/08/28 09:59]
83.220.55.174
яндекс_голос [2015/08/28 12:59] (текущий)
Строка 1: Строка 1:
-скрипт php-agi.+#!/usr/bin/php -q 
 +<?php 
 +ребуется пакет SOX
  
-''#!/usr/bin/php -q\\ 
-<?php\\ 
-#Требуется пакет SOX \\ 
  
 +#Пример вызова из dialplan
 +#;Voice Module
 +#exten => _504,1,Answer
 +#exten => _504,n,Record(/tmp/${UNIQUEID}.wav,3,20);
 +#exten => _504,n,AGI(yandex-voice2.php,/tmp/${UNIQUEID});
 +#exten => _504,n,NoOp(${TEXT});
 +#exten => _504,n,Hangup
  
-#Пример вызова из dialplan\\ 
-#;Voice Module\\ 
-#exten => _504,1,Answer\\ 
-#exten => _504,n,Record(/tmp/${UNIQUEID}.wav,3,20);\\ 
-#exten => _504,n,AGI(yandex-voice2.php,/tmp/${UNIQUEID}); \\ 
-#exten => _504,n,NoOp(${TEXT});\\ 
-#exten => _504,n,Hangup\\ 
  
  
 +#получаем переменные из AGI
 +$agivars = array();
 +while (!feof(STDIN)) {
 +    $agivar = trim(fgets(STDIN));
 +    if ($agivar === '')
 +        break;
  
-#получаем переменные из AGI \\ +    $agivar explode(':', $agivar); 
-$agivars array();\\ +    $agivars[$agivar[0]] = trim($agivar[1]); 
-while (!feof(STDIN)){ \\ +
-    $agivar = trim(fgets(STDIN)); \\ +extract($agivars);
-    if ($agivar === '')\\ +
-        break;\\+
  
-    $agivar explode(':', $agivar); \\ +$filename = $_SERVER["argv"][1];
-    $agivars[$agivar[0]] = trim($agivar[1]);\\ +
-}\\ +
-extract($agivars)\\+
  
-$filename $_SERVER["argv"][1];\\+#ключ от yandex speech kit  можно получить на: 
 +#https://developer.tech.yandex.ru/ 
 +#требуется учётка яндекса 
 +$key '6be78e3c-6184-4f83-b18d-cf33c6727735';
  
-#ключ от yandex speech kit  можно получить на:\\ 
-#https://developer.tech.yandex.ru/\\ 
-#требуется учётка яндекса\\ 
-$key = '6be78e3c-6184-4f83-b18d-cf33c6727735';\\ 
  
-\\ +#$topic = 'maps' — тема для распознавания, возможны следующие варианты: 
-#$topic = 'maps' — тема для распознавания, возможны следующие варианты:\\ +#• freeform — произвольный текст, заметки и т.д. Вариант применения: переводим в текст сообщение голосовой почты и отправляем его на email или виде SMS. 
-#• freeform — произвольный текст, заметки и т.д. Вариант применения: переводим в текст сообщение голосовой почты и отправляем его на email или виде SMS.\\ +#• general — web поисковые запросы, не могу придумать к чему это можно применить в данном контексте; 
-#• general — web поисковые запросы, не могу придумать к чему это можно применить в данном контексте;\\ +#• maps — адреса, GEO-точки (название баров, автозаправочные станции, гостиницы и так далее), и т.д.; 
-#• maps — адреса, GEO-точки (название баров, автозаправочные станции, гостиницы и так далее), и т.д.;\\ +#• music — названия песен, музыкальных групп и т.д. 
-#• music — названия песен, музыкальных групп и т.д.\\ +$topic = "freeform";
-$topic = "freeform";\\+
  
-#$lang = 'ru-RU' — язык на котором будет происходить распознавание, на данный момент поддерживается русский 'ru-RU' и турецкий 'tr-TR', причем турецкий поддерживается только для тем «general» и «maps»;\\ +#$lang = 'ru-RU' — язык на котором будет происходить распознавание, на данный момент поддерживается русский 'ru-RU' и турецкий 'tr-TR', причем турецкий поддерживается только для тем «general» и «maps»; 
-$lang = "ru-RU";\\+$lang = "ru-RU";
  
-#генерация рандомного ID \\ +#генерация рандомного ID  
-$randtoken=rand(1000);\\ +$randtoken=rand(1000); 
-$uuid=md5($randtoken);\\+$uuid=md5($randtoken);
  
-#перекодируем файл в формат яндекса\\ +#перекодируем файл в формат яндекса 
-system('sox '.$filename.'.wav -r 16000 -b 16 -c 1 '.$filename.'-pcm.wav');\\+system('sox '.$filename.'.wav -r 16000 -b 16 -c 1 '.$filename.'-pcm.wav');
  
-#отсылаем файл и получаем в ответ xml\\+#отсылаем файл и получаем в ответ xml
 $cmd = exec('curl -F "Content-Type=audio/x-pcm;bit=16;rate=16000" -F "audio=@'.$filename.'-pcm.wav" asr.yandex.net/asr_xml\?key='.$key.'\&uuid='.$uuid .'\&topic='.$topic.'\&lang='.$lang, $xml);  $cmd = exec('curl -F "Content-Type=audio/x-pcm;bit=16;rate=16000" -F "audio=@'.$filename.'-pcm.wav" asr.yandex.net/asr_xml\?key='.$key.'\&uuid='.$uuid .'\&topic='.$topic.'\&lang='.$lang, $xml); 
  
-#дербаним регекспом ответ сервера, выдёргиваем первое значение как наиболее релевантное\\ +#дербаним регекспом ответ сервера, выдёргиваем первое значение как наиболее релевантное 
-$res_xml = implode($xml);\\ +$res_xml = implode($xml); 
-if (preg_match('!<variant .*?>(.*)</variant>!si', $res_xml, $arr)) $voice_text = $arr[1];\\ +if (preg_match('!<variant .*?>(.*)</variant>!si', $res_xml, $arr)) $voice_text = $arr[1]; 
-    else $voice_text='';\\+    else $voice_text='';
          
-#передаём ответ от скрипта в поток ввода\\ +#передаём ответ от скрипта в поток ввода 
-echo 'SET VARIABLE TEXT "'.$voice_text.'"'."\n";\\ +echo 'SET VARIABLE TEXT "'.$voice_text.'"'."\n"; 
-fgets(STDIN);\\ +fgets(STDIN); 
-echo 'VERBOSE ("'.$voice_text.'")'."\n";\\ +echo 'VERBOSE ("'.$voice_text.'")'."\n"; 
-fgets(STDIN);\\ +fgets(STDIN); 
-exit(0);\\ +exit(0); 
-?>\\ +?> 
-''+
яндекс_голос.1440755952.txt.gz · Последнее изменение: 2015/08/28 12:59 (внешнее изменение)

DokuWiki Appliance - Powered by TurnKey Linux