Показаны различия между двумя версиями страницы.
voice3 [2022/03/24 09:49] kirill создано |
voice3 [2022/03/24 09:54] (текущий) kirill |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
# | # | ||
<?php | <?php | ||
- | #Т~@еб~Cе~B~A~O | + | #Требуется |
- | + | ||
- | + | ||
- | #~_~@име~@ в~Kзова из dialplan | + | #Пример вызова из dialplan |
#;Voice Module | #;Voice Module | ||
#exten => _504, | #exten => _504, | ||
Строка 11: | Строка 11: | ||
#exten => _504, | #exten => _504, | ||
#exten => _504, | #exten => _504, | ||
- | + | ||
- | #пол~C~Gаем пе~@еменн~Kе из AGI | + | #получаем переменные из AGI |
$agivars = array(); | $agivars = array(); | ||
while (!feof(STDIN)) { | while (!feof(STDIN)) { | ||
$agivar = trim(fgets(STDIN)); | $agivar = trim(fgets(STDIN)); | ||
if ($agivar === '' | if ($agivar === '' | ||
+ | |||
$agivar = explode(':', | $agivar = explode(':', | ||
$agivars[$agivar[0]] = trim($agivar[1]); | $agivars[$agivar[0]] = trim($agivar[1]); | ||
} | } | ||
extract($agivars); | extract($agivars); | ||
+ | |||
$filename = $_SERVER[" | $filename = $_SERVER[" | ||
- | + | ||
- | #кл~N~G о~B yandex speech kit можно пол~C~Gи~B~L на: | + | #ключ от yandex speech kit можно получить на: |
# | # | ||
- | #~B~@еб~Cе~B~A~O ~C~G~Q~Bка ~Oндек~Aа | + | #требуется учётка яндекса |
$key = ' | $key = ' | ||
- | + | ||
- | #$topic = ' | + | #$topic = ' |
- | ~B~K: | + | #• freeform |
- | #~@ freeform | + | #• general |
- | ~O: пе~@еводим в ~Bек~A~B ~Aооб~Iение голо~Aовой по~G~B~K | + | #• maps — адреса, GEO-точки (название баров, автозаправочные станции, гостиницы и так далее), |
- | го | + | #• music — названия песен, музыкальных групп и т.д. |
- | #~@ general | + | |
- | ожно п~@имени~B~L в данном кон~Bек~A~Bе; | + | |
- | #~@ maps ~@~T ад~@е~Aа, GEO-~Bо~Gки (название ба~@ов, ав~Bозап~@аво~Gн~Kе ~A~Bан | + | |
- | ~Fии, го~A~Bини~F~K и ~Bак далее), | + | |
- | #~@ music ~@~T названи~O пе~Aен, м~Cз~Kкал~Lн~K~E г~@~Cпп и ~B.д. | + | |
$topic = " | $topic = " | ||
- | + | ||
- | #$lang = ' | + | #$lang = ' |
- | на данн~Kй момен~B подде~@живае~B~A~O ~@~C~A~Aкий ' | + | |
$lang = " | $lang = " | ||
- | + | ||
- | #гене~@а~Fи~O ~@андомного ID. | + | #генерация рандомного ID. |
$randtoken=rand(1, | $randtoken=rand(1, | ||
$uuid=md5($randtoken); | $uuid=md5($randtoken); | ||
- | #пе~@екоди~@~Cем ~Dайл в ~Dо~@ма~B ~Oндек~Aа | + | #перекодируем файл в формат яндекса |
system(' | system(' | ||
- | + | ||
- | #о~B~A~Kлаем | + | #отсылаем |
+ | |||
$cmd = exec(' | $cmd = exec(' | ||
- | #де~@баним | + | #дербаним |
- | е как наиболее | + | |
$res_xml = implode($xml); | $res_xml = implode($xml); | ||
if (preg_match(' | if (preg_match(' | ||
Строка 65: | Строка 58: | ||
else $voice_text=''; | else $voice_text=''; | ||
+ | |||
############### | ############### | ||
- | + | ||
- | if (intval(substr_count($voice_text, | + | if (intval(substr_count($voice_text, |
- | $ress = 1; } | + | $ress = 1; } #если в результатах есть слово «оператор», то в диалплан возвращаем 1 |
- | иалплан возв~@а~Iаем 1 | + | |
elseif (intval(substr_count($voice_text, | elseif (intval(substr_count($voice_text, | ||
- | $ress = 2;} #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «заказ», | + | $ress = 2;} #если в результатах есть слово «заказ», |
- | ан возв~@а~Iаем 2 | + | elseif (intval(substr_count($voice_text, |
- | elseif (intval(substr_count($voice_text, | + | $ress = 3;} #если в результатах есть слово «секретарь», то в диалплан возвращаем 3 |
- | $ress = 3;} #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «~Aек~@е~Bа~@~L», ~Bо | + | elseif (intval(substr_count($voice_text, |
- | диалплан возв~@а~Iаем 3 | + | $ress = 4;} #если в результатах есть слово «менеджер», то в диалплан возвращаем 4 |
- | elseif (intval(substr_count($voice_text, | + | |
- | $ress = 4;} #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «менедже~@», ~Bо в ди | + | |
- | алплан возв~@а~Iаем 4 | + | |
else | else | ||
- | | + | |
+ | |||
##################### | ##################### | ||
- | + | ||
- | #пе~@еда~Qм о~Bве~B о~B ~Aк~@ип~Bа в по~Bок ввода | + | #передаём ответ от скрипта в поток ввода |
echo 'SET VARIABLE TEXT "' | echo 'SET VARIABLE TEXT "' | ||
fgets(STDIN); | fgets(STDIN); | ||
Строка 92: | Строка 81: | ||
exit(0); | exit(0); | ||
?> | ?> | ||
- | |||