한국어

IPPBX/GW

온누리070 플레이스토어 다운로드
    acrobits softphone
     온누리 070 카카오 프러스 친구추가온누리 070 카카오 프러스 친구추가친추
     카카오톡 채팅 상담 카카오톡 채팅 상담카톡
    
     라인상담
     라인으로 공유

     페북공유

   ◎위챗 : speedseoul


  
     PAYPAL
     
     PRICE
     

pixel.gif

    before pay call 0088 from app

    
    
구매가격선택


Speech Recognition on Asterisk: Getting Started

2017.08.28 09:29

admin 조회 수:19125

https://mojolingo.com/blog/2015/speech-rec-asterisk-get-started/



Having talked with several people at various AstriCons and local Asterisk meetups, I’ve heard that many people have not tried to set up speech engines to work with Asterisk. This is a quick tutorial for the way that we integrate Text-to-Speech and Speech Recognition engines with Asterisk.

Start your Engines

AsteriskBefore you dive into Asterisk, you need to select a speech engine. There are two main types of speech engines: Text-to-Speech (TTS) and Automatic Speech Recognition (ASR). Generally speaking, your choices for TTS engines are more plentiful. There are more vendors in the TTS market and they cover more languages. ASR vendors and languages tend to be more sparse, though coverage for North American languages is good. Mojo Lingo has worked with several over the years: LumenVoxNeoSpeechNuanceCepstral, and AT&T Watson, to name a few. All of these companies provide TTS voices. Only LumenVox, Nuance, and AT&T Watson provide any ASR. All of these except AT&T Watson provide an MRCP interface, which will be the focus of this article.

In case you’re wondering, yes you can mix-and-match TTS and ASR engines. If you find that you prefer the synthesized voice from one vendor, say NeoSpeech, you can still use LumenVox’s ASR at the same time. This is especially useful in situations where you need international language support.

MRCP vs. HTTP

UniMRCP
Traditional telephony systems have used MRCP, Media Resource Control Protocol, as the interface between a telephony server (Asterisk) and a TTS or ASR speech engine. MRCP offers several advantages over HTTP: the audio is streamed in real-time to or from the engine, meaning that there is lower delay in processing the audio. MRCP version 2, the most common version, is actually an extension of SIP. This means existing SIP knowledge can be used to troubleshoot it, and existing SIP infrastructure can be used to load balance it.

On the other hand, HTTP is more familiar to developers, especially modern web and mobile developers. However, besides being a slower interface for Asterisk, there is no native support in Asterisk for HTTP speech engines. As such, we recommend using MRCP whenever connecting a speech engine to Asterisk.

MRCP in Asterisk

The best way to connect Asterisk to an MRCP server is to use the UniMRCP package. UniMRCP consists of a library that provides MRCP support, as well as a suite of native Asterisk applications to interface with MRCP servers from the Dialplan.

Installation instructions for UniMRCP on Asterisk can be found on the UniMRCP site.

Once you have UniMRCP installed and loaded in Asterisk, you will have three new Asterisk Dialplan applications. These applications include:

For each application listed above, I’ve linked to its entry in the official UniMRCP documentation.

Examples

In Asterisk Dialplan, you might have something that looks like this:

  • We want to play the audio file ‘/srv/app/corp_ivr.wav’
  • We want to allow the callers to speak various responses, like “Sales”, “Support”, or “Operator”
  • We also want to allow callers to press buttons, like 1 for Sales, 2 for Support, or 0 for Operator
  • You also want to allow the caller to “barge,” or interrupt the prompt, rather than forcing them to wait until it finishes playing
  • You want to reject anything with a speech recognition confidence lower than 40%
  • We’ll also assume this is in US English only

To do this, we need to pass three documents to SynthAndRecog:

  • The first argument is the audio prompt to play: file:///srv/app/corp_ivr.wav
  • The second argument is the list of grammar URLs, one each for speech and DTMF, separated by commas: "http://127.0.0.1/documents/corporate_ivr.main_menu_voice,http://127.0.0.1/documents/corporate_ivr.main_menu_dtmf"
  • The third argument is the list of flags, separated by ampersands (see above for the link to documentation on the set of available flags)

Here’s our completed example:

exten => s,1,SynthAndRecog("file:///srv/app/corp_ivr.wav","http://127.0.0.1/documents/corporate_ivr.main_menu_voice,http://127.0.0.1/documents/corporate_ivr.main_menu_dtmf",b=1&spl=en-US&ct=0.4)

Sounds Complicated…

If you look at the docs, you might be overwhelmed by the number of options available. The good news is that most of those options come with sane defaults, and in most cases, you won’t ever need to change them. A rule of thumb when working with speech engines: When in doubt, trust the defaults provided by the vendor. They’ve spent a lot of time tuning their software!

Alternatively, we would recommend checking out the Adhearsion framework. Adhearsion makes developing Asterisk applications a lot easier by providing standardized and well-documented tools in a real programming language. Adhearsion has native support for using Asterisk’s MRCP connection.

In Adhearsion, the same thing would look something like this:

prompt = 'file:///srv/app/corp_ivr.wav'
grammar_urls = [
  'http://127.0.0.1/documents/corporate_ivr.main_menu_voice',
  'http://127.0.0.1/documents/corporate_ivr.main_menu_dtmf'
]

ask prompt, grammar_url: grammar_urls, interruptible: true

One last warning

Asterisk Dialplan and Asterisk AGI have hard-coded limits that prevent using more than 1024 characters in any Dialplan application. This limit can really come to bite you if you end up using long speech recognition grammars or text-to-speech documents. Fortunately, MRCP allows you to reference grammars and documents by URL. We strongly recommend that developers deliver speech recognition grammars (SRGS) and text-to-speech documents (SSML) via an external HTTP server whenever possible, as we showed in the examples.

Want to know more?

Mojo Lingo provides consulting services for speech-driven telephony applications. Contact us today to learn more about how we can help.

번호 제목 글쓴이 날짜 조회 수
98 php memory and filesize increase upload wav admin 2019.06.25 1627
97 changing SIP drivers to CHAN_PJSIP Please err 에러 admin 2019.06.21 2128
96 /dev/mapper/ubuntu--vg-root filling up admin 2019.04.08 8202
95 VICIdial Scratch Installation CentOS 7 & MariaDB & Asterisk 11 & Latest VICIdial SVN admin 2017.09.02 17884
94 Asterisk Answering Machine Detection (AMD) Configuration admin 2017.09.01 17850
93 List of 5 Open Source Call Center Software Programs admin 2017.08.31 18224
92 Smart Predictive Auto calling Software System: Automatic Phone Calling admin 2017.08.31 17692
91 WombatDialer is highly scalable, multi-server, works with your existing Asterisk PBX. admin 2017.08.31 17577
90 Asterisk based auto dialer test and verified by 300+ concurrent. admin 2017.08.31 17394
89 Automatic Call Distribution (ACD) Asterisk as Call Center admin 2017.08.31 18145
88 Introducing Asterisk Call Distribution ACD asterisk admin 2017.08.31 17727
87 How to build an outbound Call Center with Newfies-Dialer and Asterisk/FreePBX admin 2017.08.31 17781
86 IVR actions asterisk admin 2017.08.31 17463
85 iptables for asterisk simple example configuration admin 2017.08.31 17605
84 초보) Asterisk , AsteriskNow 무엇인가? 무슨차이인가? 시작 배우기 쉽게 이해 공부 사용 admin 2017.08.29 17912
83 Installing FreePBX 14 on Debian 8.8 These instructions work fine admin 2017.08.29 17933
82 FreePBX 12 – Getting Started Guide admin 2017.08.29 17503
81 Playing text to speech inside read function in asterisk admin 2017.08.28 17648
» Speech Recognition on Asterisk: Getting Started admin 2017.08.28 19125
79 github A2Billing is commercially supported by Star2Billing admin 2017.08.26 17516
78 Insert into dialplan Asterisk admin 2017.08.26 17510
77 Google letter agi admin 2017.08.26 17450
76 Top 10 greater worker admin 2017.08.26 17556
75 Dialplan handler routines allow customization admin 2017.08.26 17692
74 AGI asterisk gateway interface synopsis admin 2017.08.26 18479
73 Make Your Own IVR with Asterisk admin 2017.08.26 18175
72 Asterisk dialolan detail explan good easy clean admin 2017.08.26 17436
71 download Installing+AsteriskNOW admin 2017.08.25 17464
70 TwistedWave Online A browser-based audio editor admin 2017.08.25 17651
69 Asterisk/IVR/PBX/VoIP/Contact center/Voicebroadcast engineer admin 2017.08.25 17486
68 asterisk Chapter 6. Dialplan Basics admin 2017.08.25 17440
67 RPi Text to Speech (Speech Synthesis) admin 2017.08.24 17394
66 asterisk freepbx TTS Engine Custom - Amazon Polly - 24 languages admin 2017.08.24 17587
65 asterisk CRM SUGARCRM SuiteCRM admin 2017.08.24 17589
64 Hosting Cheap VPS Hosting that doesn’t feel cheap admin 2017.08.24 17483
63 HOW TO INSTALL FREEPBX ON CENTOS 7 admin 2017.08.24 17604
62 Setup Asterisk 13 with FreePBX 13 in CentOS 7 admin 2017.08.24 17872
61 asterisk XactView V3-CRM Widget admin 2017.08.24 17487
60 Text to Speech User Guide admin 2017.08.24 17561
59 Text to speech for asterisk using Google Translate admin 2017.08.24 18020
58 User Control Panel (UCP) 14+ admin 2017.08.23 17604
57 라즈베리파이, 아스타리스크(asterisk) PBX(사설교환기) admin 2017.08.23 20915
56 How to Install Asterisk on CentOS 7 easy clean explain 깔금한 쉬운 설명 admin 2017.08.23 20520
55 Fusionpbx v4 Freeswitch v1.6 CentOS v7 Install Guide admin 2017.08.23 17909
54 Asterisk Freepbx Install Guide (CentOS v7, Asterisk v13, Freepbx v13) admin 2017.08.23 17752
53 A2Billing v2.2 Install Guide CentOS v7 Asterisk v11 v13 seems to work FreePBX v13 admin 2017.08.23 17837
52 How to install and setup Asterisk 14 (PBX) on CentOS 7 admin 2017.08.23 17955
51 How to Install Asterisk 13 on Ubuntu 16.04 from Source admin 2017.08.23 17749
50 thirdlane PBX price admin 2017.08.23 17447
49 SUGAR CRM admin 2017.08.23 17415
48 NAT 와 VoIP 시그널과 RTP 전송 영향 NAT와 방화벽/STUN/TURN/ICE/SBC admin 2017.08.19 17438
47 음성통화 서버 Asterisk + FreePBX / 통화 시연해보기 admin 2017.08.18 17513
46 우분투 Mumble VoIP 음성채팅서버 구축 admin 2017.08.18 17502
45 User Control Panel (UCP) asterisk freepbx admin 2017.08.17 17723
44 Configuring Your PBX admin 2017.08.17 17360
43 Installing SNG7 Official Distro admin 2017.08.17 17626
42 OPUS and VP9 Bitrates admin 2017.08.17 17671
41 Capturing SIP and RTP traffic using tcpdump admin 2017.08.17 17541
40 Asterisk Answering Machine Detection (AMD) Configuration admin 2017.08.17 17526
39 Price ,,Install Commercial Modules on CentOS and RHEL based admin 2017.08.16 17724
38 asterisk IVR 쉽게 설정하기 admin 2017.08.16 17525
37 Asterisk 가장쉬운 설치 및 설정 사용 방법 이해 할수있게 배우는 순서 안내 설명 admin 2017.08.16 18653
36 /sbin/service httpd start stop web start stop admin 2017.08.16 17481
35 asterisk FreePBX 14, Distro 14 & More! admin 2017.08.16 17680
34 asterisk dialplan 설명 admin 2017.08.16 17694
33 how-to-freepbx-13-firewall-setup admin 2017.08.14 17329
32 AsterSwitchboard CTI Operator Panel for Asterisk admin 2017.08.08 17520
31 Brand New Sealed Sangoma FreePBX 60 - 75 Users or 30 Calls admin 2017.08.05 17675
30 Asterisk 설치 준비 admin 2015.11.15 18074
29 Asterisk 13 Debian 8 admin 2015.11.13 17641
28 FOIP: T.38 Fax Relay vs. G.711 Fax Pass-Through (Fax Over IP) admin 2015.09.24 17748
27 Considerations for Using T.38 versus G.711 for Fax over IP file admin 2015.09.24 18071
26 MP3 to WAV, WMA to WAV, OGG Convert audio to WAV online admin 2015.05.09 18311
25 FAX over IP sofware admin 2015.05.05 18291
24 Fax Configuration FREE PBX and asterisk FAX admin 2015.05.05 17998
23 Asterisk AGI/AMI to ARI Asterisk&FreePbx - IVR setting admin 2015.05.05 18216
22 A simple IVR and Queue example where customer listens to marketing materials .. admin 2015.05.05 18199
21 Asterisk A simple IVR admin 2015.05.05 18290
20 Asterisk tips ivr menu Interactive voice response menus admin 2015.05.05 18818
19 Setup install Asterisk PBX telephony system | VOIP Tutorial admin 2015.05.05 17994
18 Asterisk Downloads AsteriskNOW Software PBX admin 2015.05.05 17955
17 Fax For Asterisk download add on 1 port free IVR prompt G.729 admin 2015.05.05 18215
16 T.38 Fax Gateway Asterisk admin 2015.05.05 18195
15 Setup FAX on Asterisk with DIDForSale SIP DIDs admin 2015.05.05 18366
14 FaxServer using Asterisk admin 2015.05.05 18177
13 fax licenses Asterisk admin 2015.05.05 18093
12 Configuring an Asterisk server admin 2015.05.05 18029
11 FreePBX – Custom FAX to email admin 2015.05.05 18042
10 Incoming Fax Handling admin 2015.05.05 18286
9 Using Asterisk to Detect and Redirect Fax Calls for Communications Server admin 2015.05.05 18327
8 Asterisk fax Asterisk and fax calls Fax over IP admin 2015.05.05 18636
7 Securing Your Asterisk VoIP Server with IPTables admin 2015.05.05 19189
6 A2Billing v2 Install Guide admin 2015.05.05 18822
5 Freepbx on Debian (Debian v7, Asterisk v11, Freepbx v2.11) admin 2015.05.05 18596
4 Asterisk Freepbx Install Guide (CentOS v6, Asterisk v13, Freepbx v12) admin 2015.05.05 19657
3 Asterisk Quick Start Guide admin 2015.05.05 18733
2 Installing AsteriskNOW Official Distro admin 2015.05.05 18175
1 Generic Asterisk SIP Configuration Guide admin 2015.05.05 18150