Google ASR рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рд╣рдХ рд╕реНрд╡рдпрдВ рд╕реЗрд╡рд╛

рдпрд╣ рд╕рдм рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ рдерд╛, рдЬреЛ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЗрд╡ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдПрдХ рд╕реБрд▓реЗрдорд╕ рд░реЛрдмреЛрдЯ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддреЗ рдереЗ - рдЯреЗрд▓реАрдлреЛрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореАрдЯрд░ рд░реАрдбрд┐рдВрдЧ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред DTMF рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд╡реЙрдЗрд╕ рдЗрдирдкреБрдЯ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рдХрдЯ рдХреЗ рддрд╣рдд, рдмреЙрдХреНрд╕рд┐рдВрдЧ рддрд╛рд░рд╛рдВрдХрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдЧреВрдЧрд▓ рдПрдПрд╕рдЖрд░ рдХреЛ рдЦрд░рд╛рдм рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдореИрдиреБрдЕрд▓ред

рдХреБрдЫ рдЗрдВрдЯрд░рдиреЗрдЯ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рдмрд╛рдж, рдПрдордбреАрдЬреА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрдИ рдЯрд░реНрдирдХреА рд╕рдорд╛рдзрд╛рди рдкрд╛рдП рдЧрдПред рд╢рд╛рдпрдж рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореВрд▓реНрдп рдЯреИрдЧ 150 рдХрд┐рд▓реЛ рд░реВрдмрд▓ рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо (рд╣реЗрд▓реЛ рдЯреЙрдб) рджреНрд╡рд╛рд░рд╛ рдЪрд▓рддреЗ рд╣реИрдВред

рдЙрдиреНрд╣реЛрдВрдиреЗ рдирдЧреНрди рддрд╛рд░рд╛рдВрдХрди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдЧреБрдИ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, FreePBX рднреА рдЬрдВрдЧрд▓ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝реЗ рдХрд╕реНрдЯрдо-рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ XVB - VirtualPBX рдХрд╛ рдПрдХ рдмреЙрдХреНрд╕ рд▓рд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐: crr, TTS, рдЬреАрдПрд╕рдПрдо рдореЙрдбрдо, рдСрдЯреЛрдЗрдВрдлреЙрд░реНрдорд░ (рд╣рдорд╛рд░рд╛ рджреВрд╕рд░рд╛ рдЪрд░рдг) рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ , Http рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, ASR рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ред рд╣рдо рдПрдХ рдореБрдлреНрдд рдПрдХ рд▓реЗрддреЗ рд╣реИрдВ (рдпрд╣ рдХреЗрд╡рд▓ 10 рдПрдХ рд╕рд╛рде рдХреЙрд▓ рдХреА рд╕реАрдорд╛ рд╕реЗ рднреБрдЧрддрд╛рди рд╡рд╛рд▓реЗ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ), рд╕рдВрд╕реНрдХрд░рдг рд╣рдорд╛рд░реА 2 рдкреАрдПрд╕рдЯреАрдПрди рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рдЖрдВрдЦреЛрдВ рдХреЗ рд▓рд┐рдП 2 3 рдЬреА рд╕реАрдЯреА рдХреЗ рд▓рд┐рдП рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ рд╣реА рд╕реНрд╡рд┐рдЪрд╡реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реВрд┐рдВрдЧ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

рдЖрдЗрдП рдЬрд╛рдиреЗ:


VMWare рдкреНрд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП рд░реЗрдбреА-рдЯреВ-рдпреВрдЬрд╝ рдЗрдореЗрдЬ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдпрд╛ рдорд┐рд░рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рд╕реНрдерд┐рд░ рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдкреБрд░рд╛рдиреЗ рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╕рд╛рде) рдПрдХ рдмрдбрд╝рд╛ tar.bz2 рд╕рдВрдЧреНрд░рд╣ред рдпрд╛ рдЕрдЧрд░ рдХреЛрдИ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рддреЛ рд╣рдо рдЕрдкрдбреЗрдЯ рдбрд╛рд▓рддреЗ рд╣реИрдВред

VMWare рдкреНрд▓реЗрдпрд░ рдореЗрдВ рдЕрдирдкреИрдХ рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ рдпрд╛ ESXi рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ рдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдбрдВрдк рдХрд░реЗрдВред рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдкрд╣рд▓рд╛ рд▓реЙрдиреНрдЪ рдереЛрдбрд╝рд╛ рд▓рдВрдмрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдзреНрд╡рдирд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИред

рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░:
рд╕рд┐рд╕реНрдЯрдо рдХреА рдХрд▓реНрдкрдирд╛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдкреАрдмреАрдПрдХреНрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рд╣рдо рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдкреНрд░рд╡реЗрд╢ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ `рдЧреМрд░реИрдпрд╛` рдХрд╛ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА` рддреЛрдк` рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрд╣рд╛рд░ рднреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреЙрдХреНрд╕ рд╕реЗ рдХрдИ рдХреНрдпреВрдП рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

рд╣рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдбреАрдЖрдИрдбреА тАЛтАЛрдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЙрд╕рдХреА рднрд╛рд╖рд╛ рд░реВрд╕реА-рдорд╣рд┐рд▓рд╛ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ (рдпрд╣ Google рдЯреАрдЯреАрдПрд╕ рд╣реИ) - рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓ рдкреАрдмреАрдПрдХреНрд╕ рд╣рдорд╛рд░реА рд╕реНрд╡рдпрдВ-рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реА рд╣реЛрдЧреАред рд╕рдВрднрд╡рддрдГ рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдпрд╣рд╛рдВ рд▓рд┐рдЦрд╛ рдерд╛ред

рдлрд┐рд░ рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕реНрдЯрдВрдк рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ cgi рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ Google рдкрд░ рдЬрд╛рдПрдЧреАред рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдЬреАрдЖрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИ:

#!/usr/bin/perl ######################################################################## use strict; use CGI qw(:standard); use LWP::UserAgent; use JSON::XS; my $lang = param('lang'); my $file = param('file'); my $var_name = param('var') || 'ASR_RESULT'; print "Content-type: text/plain; charset=utf-8\n\n"; my $url; if ( lc($lang) eq 'ru' ) { $url = "http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=ru-RU"; } else { $url = "http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=en-US"; } my $new_file = "/tmp/google-asr-$$.wav"; open(TMP,">$new_file"); my $buffer; while ( !eof($file) ) { read( $file, $buffer, 16384 ); print TMP $buffer; } system "ffmpeg -y -i $new_file $new_file.flac 2>/dev/null"; if ( $? ) { print "$var_name=\n"; die "Can't convert file $new_file to $new_file.flac: $?\n"; } else { $new_file .= '.flac'; } my $file_info = `file $new_file`; if ( $file_info =~ /FLAC audio.*\s([\d.]+)\s*kHz/ ) { $file_info = $1 * 1000; } else { unlink $new_file; print "$var_name=\n"; die "Incorrect FLAC file: $file_info\n"; } unless ( open( FILE, "<$new_file" ) ) { print "$var_name=\n"; die "Can't open input file[$file]: $!\n"; } undef $/; my $audio = <FILE>; $/ = "\n"; close(FILE); unlink $new_file; my $ua = LWP::UserAgent->new( debug => 1 ); my $response = $ua->post($url, Content_Type => "audio/x-flac; rate=$file_info", Content => $audio); if ( $response->is_success ) { my $h_ref; eval { my $json = JSON::XS->new(); $h_ref = $json->decode($response->content()); }; if ( ref $h_ref eq 'HASH' and exists $h_ref->{'hypotheses'} ) { my $data = $h_ref->{'hypotheses'}->[0]->{'utterance'}; my $map = { 'o' => 0, 'o' => 1, 'a' => 2, '' => 3, '' => 4, '' => 5, '' => 6, '' => 7, 'o' => 8, '' => 9, '' => 10, '' => '', '' => '', '' => '', '' => '', '' => '', '' => '', '' => '', '' => '', '' => '', '' => '', '' => '', '' => '', }; my $result = ''; foreach my $ch ( split(/\s+/,$data) ) { $result .= length($map->{$ch}) ? $map->{$ch} : $ch; } print "$var_name=$result\n"; exit; } } print "$var_name=\n"; 


рд╕реАрдЬреАрдЖрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рдлреЙрд░реНрдо 'рд╡рди', 'рдЯреВ', рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╕реЗ `рд░реВрдкрд╛рдВрддрд░рдг 'рдХреЛ рднреА рдЬреЛрдбрд╝рд╛, рдФрд░ рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдФрд░ рдХрдиреНрдлрд░реНрдореЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдХрдИ' рдПрд▓рд┐рдпрд╛рдЬрд╝ '(рд╣рд╛рдБ == рд╣рд╛рдБ)" рдЕрдЧрд▓рд╛ "рд╕рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдкрд░, 'рдЖрдЧреЗ' рдХреЛ рд╕рд┐рд░реНрдл 'рд╣рд╛рдВ' рд╕реЗ рдмреЗрд╣рддрд░ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрдирдкреБрдЯ рдкрд░, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ wav рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ рдФрд░ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рдирд╛рдо рдкрд░ рдЬрд╣рд╛рдВ рд╡реИрд▓реНрдпреВ рд▓рд┐рдЦрдиреА рд╣реЛрддреА рд╣реИ (рдпрд╣ XVB рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рд╣реЛрддреА рд╣реИ рдФрд░ рдбрд╛рдпрд▓рдкреНрд▓рд╛рди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрддреА рд╣реИ), рд╣рдо 2 рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ:



рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рдирд╣реАрдВ рд▓рд╛рдКрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рддреАрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддрд╛ рд╕рдВрдЦреНрдпрд╛ / рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд / рд╕рдВрдХреЗрдд рдФрд░ рд╕рдВрдХреЗрдд рд▓реЗрддреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрддреА рд╣реИ рдФрд░ рдЕрдВрддрд░ рд▓реМрдЯрд╛рддреА рд╣реИред рд╣рдо рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдЙрд╕реА рдорд╢реАрди (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░) / var / www / cgi-bin / рдореЗрдВ рд╕реЗрд╡ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдЧрд▓рд╛, рд▓рдЧрднрдЧ рд╕рдорд╛рди рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рдПрдХ рдЙрдмрд╛рдК рдбрд╛рдпрд▓ рдпреЛрдЬрдирд╛ рд╕реЗрдЯрдЕрдк рд╣реЛрддрд╛ рд╣реИ:



рдпрд╣реА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдХреЗрддрдХ рдХреЗ рд▓рд┐рдП рд╣рдо рдХрд░рддреЗ рд╣реИрдВ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрд░рд┐рдпрд╛рдПрдБ рдмрд╣реБрдд рдЙрдмрд╛рдК рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдпрд╣ рд╕рдм рд╣рд╛рде рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди XML рдХреЙрдиреНрдлрд┐рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛
(XVB XML рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓реЛрдбрд┐рдВрдЧ / рдЕрдирд▓реЛрдбрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ)ред рдХреНрдпрд╛ рд╣реБрдЖ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЯреБрдХрдбрд╝рд╛:

 <opt> <IVR name="0" EXT_NUMBER="0" NAME="." GREET_REPEAT_CNT="1" GREETING="     ." GREET_REPEAT_DELAY="0.00" NEXTEXTENSION="V5_2*0" TYPE="1" WAITEXTENSION="0"> </IVR> <IVR name="error" EXT_NUMBER="error" NAME="WEB " GREETING=" .   ." GREET_REPEAT_CNT="1" GREET_REPEAT_DELAY="0.00" NEXTEXTENSION="hangup" TYPE="1" WAITEXTENSION="0"> </IVR> <IVR name="V5_2*0" EXT_NUMBER="V5_2*0" NAME="  -  --------------" GREET_REPEAT_CNT="0" GREET_REPEAT_DELAY="0.00" NEXTEXTENSION="V5_2*1" TYPE="1" WAITEXTENSION="0"> </IVR> <IVR name="V5_2*1" EXT_NUMBER="V5_2*1" NAME="  -  /  " GOTO_IF_FAIL="error" GREETING="    " GREET_REPEAT_DELAY="0.00" GREET_REPEAT_CNT="1" MAX_MSG_DURATION="10" MAX_SILENCE="2" NEED_VOICE="1" NEXTEXTENSION="V5_2*2" TYPE="20" WAITEXTENSION="0" WEBVAR_URL="http://localhost/cgi-bin/gv.pl?lang=ru&file=% VAR:FILE_DATA %&var=ASR_RESULTV5_2"> </IVR> <IVR name="V5_2*2" EXT_NUMBER="V5_2*2" NAME="  -  /  " GREET_REPEAT_CNT="0" GREET_REPEAT_DELAY="0.00" NEXTEXTENSION="V5_2*3" TYPE="21" WAITEXTENSION="0"> <_VB_DATA COND="==" FUNC="strlen" PRIORITY="5" REDIRECT_TO="V5_2*2*1" VAR_NAME="ASR_RESULTV5_2" VAR_VALUE="0"/> </IVR> <IVR name="V5_2*2*1" EXT_NUMBER="V5_2*2*1" NAME="  -  /  " GREETING="    ,    ." GREET_REPEAT_CNT="1" GREET_REPEAT_DELAY="0.00" NEXTEXTENSION="V5_2*1" TYPE="1" WAITEXTENSION="0"> </IVR> <IVR name="V5_2*3" EXT_NUMBER="V5_2*3" NAME="  -  /  " GREETING=" " GREET_REPEAT_CNT="1" GREET_REPEAT_DELAY="0.00" NEXTEXTENSION="V5_2*4" SAY_PATTERN="char" SAY_PATTERN_ID="0" TEXT_STR="% VAR:ASR_RESULTV5_2 %" TYPE="25" WAITEXTENSION="0"> </IVR> <IVR name="V5_2*4" EXT_NUMBER="V5_2*4" NAME="  -  / " GOTO_IF_FAIL="error" GREETING=",    ." GREET_REPEAT_DELAY="0.00" GREET_REPEAT_CNT="1" MAX_MSG_DURATION="3" MAX_SILENCE="2" NEED_PARAMS="0" NEED_VOICE="1" NEXTEXTENSION="V5_2*4*1" TYPE="20" WAITEXTENSION="0" WEBVAR_URL="http://localhost/cgi-bin/gv.pl?lang=ru&file=% VAR:FILE_DATA %"> </IVR> <IVR name="V5_2*4*1" EXT_NUMBER="V5_2*4*1" NAME="  -  /  " GREET_REPEAT_CNT="0" GREET_REPEAT_DELAY="0.00" NEXTEXTENSION="V5_2*3" TYPE="21" WAITEXTENSION="0"> <_VB_DATA COND="==" FUNC="value" PRIORITY="5" REDIRECT_TO="V5_2*0" VAR_NAME="ASR_RESULT" VAR_VALUE=""/> <_VB_DATA COND="==" FUNC="value" PRIORITY="5" REDIRECT_TO="V5_2*1" VAR_NAME="ASR_RESULT" VAR_VALUE=""/> </IVR> <IVR name="V5_3*9" EXT_NUMBER="V5_3*9" NAME="  -  / " GREET_REPEAT_CNT="0" GREET_REPEAT_DELAY="0.00" NEXTEXTENSION="V5_3*9*1" TYPE="6" WAITEXTENSION="0" QUIET_MODE="1" GOTO_IF_FAIL="error" TTS_URL="http://127.0.0.1/cgi-bin/commit.pl?level=V5_3&account=% VAR:ASR_RESULTV1 %&value1=% VAR:ASR_RESULTV5_1 %&value2=% VAR:ASR_RESULTV5_2 %&value3=% VAR:ASR_RESULTV5_3 %"> </IVR> <IVR name="V5_3*9*1" EXT_NUMBER="V5_3*9*1" NAME="-----------------------" GREET_REPEAT_CNT="1" GREETING="  . .       ." GREET_REPEAT_DELAY="0.00" NEXTEXTENSION="0" TYPE="1" WAITEXTENSION="0"> </IVR> </opt> 


рдЖрдк xxx.xml рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЛ рд╕реЗрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рд┐рд╕реНрдЯреЛрд░ рдЖрдЗрдЯрдо рдХреЗ рдЬрд░рд┐рдП рдпреВрдЬрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рднрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡реЗрдм рдкрд░, рд╣рдо рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдП:



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╛рдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ DTMF (VirtualPBX рдореЗрдВ DTMF рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдХреЗ рд╕реНрд╡рдпрдВ рд╕реЗрд╡рд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ) рдореИрдВ рддреИрдпрд╛рд░ рд╣реВрдВред рдЕрдм рд╣рдо рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреАрд╕рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдзреНрд╡рдирд┐ рдЕрднрд┐рд╡рд╛рджрди рд▓рд┐рдЦрддреЗ рд╣реИрдВред


PS рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХрд┐рддрдиреЗ рд▓реЛрдЧ DTMF рдХреА рдЖрд╡рд╛рдЬ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдореЗрд░реЗ рд▓рд┐рдП DTMF рд╕рд░рд▓ (рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд) рдФрд░ рддреЗрдЬ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ DTMF рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

Source: https://habr.com/ru/post/In188382/


All Articles