рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрдиреЗрдХреНрдЯрд░ рдирд╛рдордХ
рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╛рдзрд╛рди
рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рд╣реИ : Google рдХреЗ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдФрд░ рд╣рдорд╛рд░реЗ Voximplant рдХреНрд▓рд╛рдЙрдбред рдХрдиреЗрдХреНрдЯрд░ рдПрдХ рдХреЙрд▓ рд╕реЗрдВрдЯрд░ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрдЯрд┐рд▓ рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЖрдИрд╡реАрдЖрд░ рдкрд░рд┐рджреГрд╢реНрдп рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рджрд┐рдП рдЧрдП рд╕реЗрдЯ рд╕реЗ рд╢рдмреНрджреЛрдВ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдореЗрдиреВ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реИред Google рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд┐рд╕реА рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдореЗрдВ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "
рд╕реНрд▓реЙрдЯ рднрд░рдиреЗ " рдХреЛ рд╕реБрдирд╛ рд╣реИ
, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд╣реИред рд╡рд┐рд╡рд░рдг рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдЖрдк рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд┐рдЬреНрдЬрд╛ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЙрдЯ рдХрд┐рдпрд╛ рдерд╛ - рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, рдЖрдк рдХреБрдЫ рд╕рдорд╛рди рд╕рдорд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреБрд╢реА рд╣реИ рдХрд┐ рд▓рд┐рдлреНрдЯ рдХреЗ рд╕рдордп рдФрд░ "рдЧреНрдпрд╛рд░рд╣" рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓реЗ рдЧрдП рд╣реИрдВ ...
рдлреЛрди рдирдВрдмрд░
рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдирдВрдмрд░ рдХрд┐рд░рд╛рдП рдкрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕ рдкрд░ рдмреЙрдЯ "рдЬрд╡рд╛рдм" рджреЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
"рдирдВрдмрд░" рдореЗрдиреВ рдореЗрдВ Voximplant рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ,
" рдлрд╝реЛрди рдирдВрдмрд░ рдЦрд░реАрджреЗрдВ
" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдирдИ рд╕реНрдХреНрд░реАрди рдкрд░, рд╕реНрд╡рд┐рдЪ рдХреЛ "рдЯреЗрд╕реНрдЯ рдирдВрдмрд░" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦреЗрдВ - рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдирдВрдмрд░ рдХрд┐рд░рд╛рдП рдкрд░ рджреЗрдЧрд╛ред
рд╡рд░реНрдЪреБрдЕрд▓ рдирдВрдмрд░ рдмрд╣реБрдд рд╕рд╕реНрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рдХрдорд░рд╛ рдФрд░ рдХрд┐рд░рд╛рдпрд╛ ...
... рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ
рдЕрдм рд╣рдореЗрдВ рдПрдХ рдмрд╛рджрд▓ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдгрдп рдХрд╛ рджрд┐рд▓ред рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛, рднрд╛рд╖рдг рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╛рдПрдВ рдореЗрдиреВ рдореЗрдВ,
"рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдЪреБрдиреЗрдВ , рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдирд╛рдо рджреЗрдВред
рдлрд┐рд░ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ "рд▓рд┐рдкрд┐рдпреЛрдВ" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдкреНрд▓рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрдирд╛рдПрдВред рдЗрд╕реЗ рдПрдХ рдирд╛рдо рджреЗрдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛред
рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп!
рдЖрдЗрдП
рдПрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ - рдЗрд╕рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рдФрд░ рдШрдЯрдирд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рд╕рд╛рде рд╣реА рд╕рд╛рде
рднрд╛рд╖рдг рдорд╛рдиреНрдпрддрд╛ рдореЙрдбреНрдпреВрд▓ рдФрд░
рдЦрд┐рд▓рд╛рдбрд╝реА ред рд╣рдо рд╡реИрд░рд┐рдПрдмрд▓ рдФрд░
рдЯреНрд░рд┐рдХреА рд╡рд░реНрдбреЗрди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдПрдХ рдЗрдирдкреБрдЯ рдорд╛рддреНрд░рд╛ (рдкрд┐рдЬреНрдЬрд╛) рдФрд░ рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА ('рдорд╛рд░реНрдЧрд░рд┐рдЯрд╛', 'рдорд╛рд░реНрдЧрд░рд┐рдЯреНрд╕', 'рдорд╛рд░реНрдЧрд░рд┐рдЯреНрд╕') рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╢рдмреНрдж рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╕ рдирдВрдмрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдмреЙрдЯ "4 рдорд╛рд░реНрдЧрд░рд┐рдЯрд╛рд╕" рди рдХрд╣реЗ, рд▓реЗрдХрд┐рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ "4 рдорд╛рд░реНрдЧрд░рд┐рдЯреНрд╕" рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред
require(Modules.AI); require(Modules.ASR); require(Modules.Player); let mycall = null, voice = Language.Premium.RU_RUSSIAN_YA_FEMALE, account_name = "", dialed_number = "", caller_id = "", flow, lastText = '', player function wordend(num, words) { return words[ ((num=Math.abs(num%100)) > 10 && num < 15 || (num%=10) > 4 || num === 0) + (num !== 1) ]; }
рдЕрдм рдЖрдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓ рдФрд░
рд╕реНрдЯрд╛рд░реНрдЯрд░ рд╣реЗрд▓реНрдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝реЗрдВ:
VoxEngine.addEventListener(AppEvents.CallAlerting, (e) => { mycall = e.call; mycall.addEventListener(CallEvents.Connected, handleCallConnected); account_name = e.toURI.substring(e.toURI.indexOf('.') + 1); account_name = account_name.substring(0, account_name.indexOf('.')); dialed_number = e.destination; caller_id = e.callerid; mycall.answer(); }); function startASR() { mycall.removeEventListener(CallEvents.PlaybackFinished, startASR); mycall.sendMediaTo(flow); }
рдЬрдм
рдХрдиреЗрдХреНрдЯреЗрдб рдИрд╡реЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ
handleConnected рдлрд╝рдВрдХреНрд╢рди рдХреЛ
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред рджрд░рдЕрд╕рд▓, рдЗрд╕рдореЗрдВ рдкреВрд░реА рд╕реНрдЯрдлрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ:
- рдПрдХ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдПрдХ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдЖрд╡рд╛рдЬ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдмрдзрд╛рдИ рджреЗрддреА рд╣реИ рдФрд░ рдПрдХ рдЖрджреЗрд╢ рджреЗрдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреА рд╣реИ;
- рдорд╛рдиреНрдпрддрд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдЧреНрд░рд╛рд╣рдХ рдПрдХ рдЖрджреЗрд╢ рджреЗрддрд╛ рд╣реИ;
- рдХреНрд▓рд╛рдЗрдВрдЯ рд╢рдмреНрдж рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдПрдХ рдлрд╝рд┐рд▓рд┐рдВрдЧ рд╕реНрд▓реЙрдЯ рд╣реЛрддрд╛ рд╣реИ;
- рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдЖрд╡рд╛рдЬ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЖрджреЗрд╢ рдФрд░ рдкрддреЗ рдХреЛ рдЖрд╡рд╛рдЬ рджреЗрддреА рд╣реИ;
- рдмреЙрдЯ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ, рд╕рддреНрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдлрд╝реАрдЪрд░ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ:
handleCallConnected | function handleCallConnected(e) { |
| |
| flow = AI.createDialogflow({ |
| lang: "ru" |
| }); |
| |
| if (AI.Events.DialogflowResponse !== undefined) |
| flow.addEventListener(AI.Events.DialogflowResponse, (event) => { |
| if (event.response.queryResult !== undefined) { |
| let result = event.response.queryResult |
| |
| if (result.queryText === undefined) { |
| if (result.languageCode !== undefined) startASR(); |
| return |
| } |
| |
| |
| if (result.fulfillmentText !== undefined) { |
| try { |
| player = VoxEngine.createTTSPlayer(result.fulfillmentText, voice) |
| player.addMarker(-500) |
| player.addEventListener(PlayerEvents.PlaybackMarkerReached, startASR) |
| player.sendMediaTo(mycall) |
| } catch (err) {} |
| |
| if (result.allRequiredParamsPresent == true && |
| result.outputContexts !== undefined && |
| result.parameters.PizzaType != undefined) { |
| |
| let msg = " "; |
| for (let k = 0; k < result.parameters.PizzaType.length; k++) { |
| let count = result.parameters.count[k] !== undefined ? result.parameters.count[k] : 1 |
| switch (count) { |
| case 1: |
| msg += " "; |
| break; |
| case 2: |
| msg += " "; |
| break; |
| default: |
| msg += count + " "; |
| break; |
| } |
| |
| if (result.parameters.PizzaSize[k] !== undefined) { |
| switch (result.parameters.PizzaSize[k]) { |
| case "small": |
| msg += wordend(count, ['', '', '']); |
| break; |
| case "medium": |
| msg += wordend(count, ['', '', '']); |
| break; |
| case "large": |
| msg += wordend(count, ['', '', '']); |
| break; |
| } |
| } |
| msg += " " |
| switch (result.parameters.PizzaType[k]) { |
| case "margarita": |
| msg += wordend(count, ['', '', '']); |
| break; |
| case "fourcheese": |
| msg += wordend(count, ['', '', '']) + " "; |
| break; |
| case "vegetarian": |
| msg += wordend(count, [' ', ' ', ' ']); |
| break; |
| case "pepperoni": |
| msg += wordend(count, ['', '', '']) + " "; |
| break; |
| case "cheese": |
| msg += wordend(count, [' ', ' ', ' ']); |
| break; |
| case "chicken": |
| msg += wordend(count, ['', '', '']) + " "; |
| break; |
| } |
| if (k == result.parameters.PizzaType.length - 1) msg += " , " |
| else msg += " "; |
| } |
| msg = msg.slice(0, msg.length - 2); |
| if (result.parameters.time !== undefined && result.parameters.time != "") { |
| let time = new Date(result.parameters.time), |
| local = time.toTimeString() |
| local = local.split(":") |
| time = local[0] + ":" + local[1] |
| msg += ". " + time |
| } |
| if (result.parameters.deliveryaddress !== undefined) msg += ". " + result.parameters.deliveryaddress |
| msg += ". ?"; |
| |
| player.stop() |
| player = VoxEngine.createTTSPlayer(msg, voice) |
| player.addMarker(-500) |
| player.addEventListener(PlayerEvents.PlaybackMarkerReached, startASR) |
| player.sendMediaTo(e.call) |
| |
| } else { |
| |
| player.stop() |
| lastText = result.fulfillmentText |
| player = VoxEngine.createTTSPlayer(result.fulfillmentText, voice) |
| if (result.action == "pizzaorder.pizzaorder-yes") { |
| player.addEventListener(PlayerEvents.PlaybackFinished, () => mycall.hangup()) |
| player.sendMediaTo(e.call) |
| } else { |
| player.addMarker(-500) |
| player.addEventListener(PlayerEvents.PlaybackMarkerReached, startASR) |
| player.sendMediaTo(e.call) |
| } |
| |
| } |
| } |
| } |
| }) |
| |
| player = VoxEngine.createTTSPlayer("! , !", voice); |
| player.addMarker(-500); |
| player.addEventListener(PlayerEvents.PlaybackMarkerReached, startASR); |
| player.sendMediaTo(e.call); |
| |
| mycall.record(); |
| mycall.addEventListener(CallEvents.Disconnected, (event) => { |
| VoxEngine.terminate(); |
| }) |
| } |
рдмрд╣реБрдд рдХрдо рдмрдЪрд╛ рд╣реИред рд░реВрдЯрд┐рдВрдЧ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ -> "рдмрдирд╛рдПрдБ"ред рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдПрдХ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред рдирд╛рдо рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╕рдВрд╡рд╛рдж рдкреНрд░рд╡рд╛рд╣-рдирд┐рдпрдоред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рд╕реНрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╡рд╛рдж рдкреНрд░рд╡рд╛рд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реИред "рдирд┐рдпрдо рдмрдирд╛рдПрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧреАред

рдЕрдм рдЖрдкрдХреЛ рдЦрд░реАрджреА рдЧрдИ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрджрд░ "рд╕рдВрдЦреНрдпрд╛" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ, "рдЙрдкрд▓рдмреНрдз" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЪрдпрдирд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЧрд▓ рдореЗрдВ "рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ"ред рдПрдХ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдЦреБрд▓реЗрдЧреА, рдпрд╣ рдХреЗрд╡рд▓ рд╡рд╛рдВрдЫрд┐рдд рдирд┐рдпрдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рдФрд░ "рд╕рдВрд▓рдЧреНрди" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

"рд╕рд╣реЗрдЬреЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЕрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рд░рд╛рдП рдкрд░ рд▓реА рдЧрдИ рдХрд┐рд╕реА рднреА рдбрд╛рдпрд▓ рдХрд┐рдП рдЧрдП рдирдВрдмрд░ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдпрд╣реА рдЪрд╛рд╣рд┐рдПред
рдорд╣рд╛рди, рдЕрдм рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!
рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдПрдЬреЗрдВрдЯ
рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдПрдХ рдПрдЬреЗрдВрдЯ рдмреЙрдЯ рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА
рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ
рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдПрдЬреЗрдВрдЯ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рд╣рдо рдЕрдкрдиреЗ рд╡рд░реНрдХрдкреАрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред
рдЖрдкрдХреЛ
Dialflow.com рдкрд░ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛
рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ рдирдпрд╛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рд░реВрд╕реА рднрд╛рд╖рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛:
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдЬреЗрдВрдЯ рдПрдХ рднреА рд╡рд┐рд╡рд░рдг (рдЗрдВрдЯреНрд░реЗрдВрдЯ) рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдПрдЬреЗрдВрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдкрд╛рд╕ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ: рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдЬреЗрдВрдЯ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ, "рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдЖрдпрд╛рдд" -> "рдЬрд╝рд┐рдк рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВред
рдкрд┐рдЬреНрдЬрд╛ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реЗрдЯ рд╣реИ! рдЖрдк рдЙрдиреНрд╣реЗрдВ "рдЗрд░рд╛рджреЗ" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдЬреЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рд╕рд╣рд╛рдпрдХ рдХрдерди
рдкрд┐рдЬрд╝реНрдЬрд╝рд╛.рд╕рд╛рдЗрдЬрд╝рд╣реЗрд▓реНрдк рдФрд░
рдкрд┐рдЬрд╝реНрдЬрд╝рд╛рдЯрд╛рдЗрдкрд╣реЗрд▓реНрдк рд╣реИрдВ ред рдЙрдирдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдкрд┐рдЬрд╝реНрдЬрд╝реЗрд░рд┐рдпрд╛ рдХреЗ рдЕрднрд┐рд╡рд╛рджрди рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╛рд╣рдХ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реИ, "рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдкрд┐рдЬреНрдЬрд╛ рд╣реИ" рдФрд░ рдмреЙрдЯ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдореЗрдиреВ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред
рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдм рдкрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдкреАрдЖрдИ рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдЕрдкрдиреЗ Google рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХрд╛ JSON рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ -
рдпрд╣ рдХреБрдЫ рд╣реА рдХреНрд▓рд┐рдХ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
Voximplant рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдб рдПрдЬреЗрдВрдЯ
рдЕрдкрдиреЗ Voximplant рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рдореЗрдиреВ рдореЗрдВ, "рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрдиреЗрдХреНрдЯрд░" рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рджрд┐рдЦрд╛рдИ рджрд┐рдП рдЧрдП рдореЛрдбрд▓ рдлреЙрд░реНрдо JSON рдореЗрдВ "Add" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ "Add" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ JSON рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИред
рд╣реЛ рдЧрдпрд╛! Dialoglow + Voximplant рдмрдВрдбрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ рдПрдХ рд╕рд╛рде рдЗрдХрдЯреНрдареЗ рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рдереЗ, рддреЛ рдЖрдк рд╣рдорд╛рд░реЗ рдкрд┐рдЬрд╝реНрдЬрд╝реЗрд░рд┐рдпрд╛ рдбреЗрдореЛ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- http://demos05.voximplant.com/pizza/ рдкрд░ рдЬрд╛рдПрдВ ;
- рдлрд╝реЛрди рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░реЗрдВ (рд░реВрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ 7900 рд╣реЛрдЧрд╛ ...) рдФрд░ "рдЕрдЧрд▓рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ;
- рд╕рдВрдХреЗрддрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдбрд╛рдпрд▓ +74999384952 рд╕реЗ;
- рдЪрдорддреНрдХрд╛рд░ рдмреАрдУрдЯреА рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ :)