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

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


voice3

**Это старая версия документа!**

Содержание

!/usr/bin/php -q

<?php

Т~@еб~Cе~B~A~O паке~B SOX

~_~@име~@ в~Kзова из 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

пол~C~Gаем пе~@еменн~Kе из AGI

$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];

кл~N~G о~B yandex speech kit можно пол~C~Gи~B~L на:

https://developer.tech.yandex.ru/

~B~@еб~Cе~B~A~O ~C~G~Q~Bка ~Oндек~Aа

$key = '6be78e3c-6184-4f83-b18d-cf33c6727735';

$topic = 'maps' ~@~T ~Bема дл~O ~@а~Aпознавани~O, возможн~K ~Aлед~C~N~Iие ва~@иан

~B~K:

~@ freeform ~@~T п~@оизвол~Lн~Kй ~Bек~A~B, заме~Bки и ~B.д. ~Rа~@иан~B п~@именен

~O: пе~@еводим в ~Bек~A~B ~Aооб~Iение голо~Aовой по~G~B~K и о~Bп~@авл~Oем е го

~@ general ~@~T web пои~Aков~Kе зап~@о~A~K, не мог~C п~@ид~Cма~B~L к ~Gем~C ~M~Bо м

ожно п~@имени~B~L в данном кон~Bек~A~Bе;

~@ maps ~@~T ад~@е~Aа, GEO-~Bо~Gки (название ба~@ов, ав~Bозап~@аво~Gн~Kе ~A~Bан

~Fии, го~A~Bини~F~K и ~Bак далее), и ~B.д.;

~@ music ~@~T названи~O пе~Aен, м~Cз~Kкал~Lн~K~E г~@~Cпп и ~B.д.

$topic = «freeform»;

$lang = 'ru-RU' ~@~T ~Oз~Kк на ко~Bо~@ом б~Cде~B п~@ои~A~Eоди~B~L ~@а~Aпознавание,

на данн~Kй момен~B подде~@живае~B~A~O ~@~C~A~Aкий 'ru-RU' и ~B~C~@е~Fкий 't $lang = «ru-RU»;

гене~@а~Fи~O ~@андомного ID.

$randtoken=rand(1,1000); $uuid=md5($randtoken);

пе~@екоди~@~Cем ~Dайл в ~Dо~@ма~B ~Oндек~Aа

system('sox '.$filename.'.wav -r 16000 -b 16 -c 1 '.$filename.'-pcm.wav');

о~B~A~Kлаем ~Dайл и пол~C~Gаем в о~Bве~B xml

$cmd = exec('curl –form-string «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);

де~@баним ~@егек~Aпом о~Bве~B ~Aе~@ве~@а, в~Kд~Q~@гиваем пе~@вое зна~Gени

е как наиболее ~@елеван~Bное $resxml = implode($xml); if (pregmatch('!<variant .>(.)</variant>!si', $resxml, $arr)){ $voicetext = $arr[1];

 }

else $voice_text='';

if (intval(substrcount($voicetext, 'опе~@а~Bо~@')) > 0){

 $ress = 1; }         #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «опе~@а~Bо~@», ~Bо в д

иалплан возв~@а~Iаем 1 elseif (intval(substrcount($voicetext, 'заказ')) > 0){

 $ress = 2;}          #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «заказ», ~Bо в диалп

ан возв~@а~Iаем 2 elseif (intval(substrcount($voicetext, '~Aек~@е~Bа~@~L')) > 0){

 $ress = 3;}          #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «~Aек~@е~Bа~@~L», ~Bо 

диалплан возв~@а~Iаем 3 elseif (intval(substrcount($voicetext, 'менедже~@')) > 0){

 $ress = 4;}          #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «менедже~@», ~Bо в ди

алплан возв~@а~Iаем 4 else

 {$ress = 0;}         #е~Aли ~Aовпадени~O не найдено, ~Bо 0

пе~@еда~Qм о~Bве~B о~B ~Aк~@ип~Bа в по~Bок ввода

echo 'SET VARIABLE TEXT «'.$ress.'»'.«\n»; fgets(STDIN); echo 'VERBOSE («'.$ress.'»)'.«\n»; fgets(STDIN); exit(0); ?>

voice3.1648115357.txt.gz · Последнее изменение: 2022/03/24 09:49 — kirill

DokuWiki Appliance - Powered by TurnKey Linux