<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.hoenzb
{mso-style-name:hoenzb;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>UniMRCP with one of the various speech recognition providers they support definitely works for this.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Specify multiple grammars in the MRCP call. One for text to listen for. Another for the DTMFs to listen for.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>The results will indicate which grammar and what was detected.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>The combination of voice and/or DTMFs is exactly what speech recognition has been designed for. I am very pleased with UniMRCP and the support they have given us.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> asterisk-users-bounces@lists.digium.com [mailto:asterisk-users-bounces@lists.digium.com] <b>On Behalf Of </b>Jurijs Ivolga<br><b>Sent:</b> Wednesday, December 06, 2017 8:44 AM<br><b>To:</b> Asterisk Users Mailing List - Non-Commercial Discussion<br><b>Subject:</b> Re: [asterisk-users] Simple speech recognition for driving IVR - "press or say one".<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal style='margin-bottom:12.0pt'>Hi,<o:p></o:p></p></div><p class=MsoNormal style='margin-bottom:12.0pt'>I was able to achieve this using:<o:p></o:p></p></div><div><p class=MsoNormal><br clear=all><o:p></o:p></p><div><div><div><p class=MsoNormal>Jurijs<o:p></o:p></p></div></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Wed, Dec 6, 2017 at 4:33 PM, Jonathan H <<a href="mailto:lardconcepts@gmail.com" target="_blank">lardconcepts@gmail.com</a>> wrote:<o:p></o:p></p><p class=MsoNormal>Briefly: I want to be able to have "press or say (number)", with<br>Asterisk listening for a spoken number, but accepting a DTMF digit,<br>too.<br><br>I'm posting everything I found so far, here, partly to show working,<br>but also in case anyone else finds it useful. So, moving on....<br><br>This looked hopeful for a moment until I realised that it doesn't do DTMF:<br><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+15+Application_SpeechBackground" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Asterisk+15+Application_SpeechBackground</a><br><br>So then there's<br><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+15+Application_Record" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Asterisk+15+Application_Record</a>,<br>which can terminate on any DTMF key with "y", but according to the<br>docs, "RECORD_STATUS" only sets a flag of "DTMF" (A terminating DTMF<br>was received ('#' or '*', depending upon option 't')).<br>So, I don't get to know which key was pressed via that method, either.<br><br>There's very little information I can find about the built-in<br>functions for speech recognition.<br><a href="https://wiki.asterisk.org/wiki/display/AST/Speech+Recognition+API" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Speech+Recognition+API</a><br>doesn't actually explain how to integrate the actual speech engines.<br><br>In this previous forum post,<br><a href="https://community.asterisk.org/t/asterisk-15-jack-streams-speech-recognition-so-many-questions/72108/2" target="_blank">https://community.asterisk.org/t/asterisk-15-jack-streams-speech-recognition-so-many-questions/72108/2</a><br>, jcolp explained that most people don't use the speech interface<br>anyway, because<br>"Asterisk modules are written in C, and it’s more difficult to do<br>things in that fashion. Using the Record and ship it off using Python,<br>etc, is just easier and gets the job done for a lot of people to where<br>they find it acceptable.<br>So, AGI it is! But I'm still stuck on how I record for speech AND get<br>a DTMF if it was dialled.<br><br>Regarding speech in general, even "Asterisk - The Definitive Guide" just says:<br><br>"Asterisk does not have speech recognition built in, but there are<br>many third-party speech<br>recognition packages that integrate with Asterisk. Much of that is<br>outside of the scope<br>of this book, as those applications are external to Asterisk" - helpful!<br><br>The speech-rec mailing list at<br><a href="http://lists.digium.com/pipermail/asterisk-speech-rec/" target="_blank">http://lists.digium.com/pipermail/asterisk-speech-rec/</a> hasn't been<br>posted to since 2013<br><br>Someone else asked about speech recognition and unimrcp in this post:<br><a href="http://lists.digium.com/pipermail/asterisk-users/2017-February/290875.html" target="_blank">http://lists.digium.com/pipermail/asterisk-users/2017-February/290875.html</a><br><br>uniMCRP <a href="https://mojolingo.com/blog/2015/speech-rec-asterisk-get-started/" target="_blank">https://mojolingo.com/blog/2015/speech-rec-asterisk-get-started/</a><br><a href="http://www.unimrcp.org/manuals/html/AsteriskManual.html#_Toc424230605" target="_blank">http://www.unimrcp.org/manuals/html/AsteriskManual.html#_Toc424230605</a><br>This has a Google Speech Recogniser plugin, but it's $50 per channel<br><a href="http://www.unimrcp.org/gsr" target="_blank">http://www.unimrcp.org/gsr</a><br><br>*Reasons to use Lex over Google TTS*<br>• Has just been released in eu-west-1:<br><a href="https://forums.aws.amazon.com/ann.jspa?annID=5186" target="_blank">https://forums.aws.amazon.com/ann.jspa?annID=5186</a><br>• Supports 8KHz telepony <a href="https://forums.aws.amazon.com/ann.jspa?annID=4775" target="_blank">https://forums.aws.amazon.com/ann.jspa?annID=4775</a><br>• Is in the core AWS SDK<br><a href="http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/LexRuntime.html" target="_blank">http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/LexRuntime.html</a><br>• Has a number slot type:<br><a href="http://docs.aws.amazon.com/lex/latest/dg/built-in-slot-number.html" target="_blank">http://docs.aws.amazon.com/lex/latest/dg/built-in-slot-number.html</a><br> - this means no accidental recognition of "won", "one" or "juan" instead of 1!<br><br>The pricing is definitely right: "The cost for 1,000 speech requests<br>would be $4.00, and 1,000 text requests would cost $0.75. From the<br>date you get started with Amazon Lex, you can process up to 10,000<br>text requests and 5,000 speech requests per month for free for the<br>first year".<br><br>Amazon Transcribe looks promising too, but is only available for<br>developer invitation at this time:<br><a href="https://aws.amazon.com/transcribe/" target="_blank">https://aws.amazon.com/transcribe/</a> <a href="https://aws.amazon.com/transcribe/pricing/" target="_blank">https://aws.amazon.com/transcribe/pricing/</a><br><br>But all I need now is the quickest, simplest way to send Lex a short<br>8KHz file and get a single digit back, as quickly and reliably as<br>possible.<br><br>Before I travel too far down this road, can someone point me in the<br>right direction and possibly steer me away from the wrong path?!<br><span style='color:#888888'><br><span class=hoenzb>--</span><br><span class=hoenzb>_____________________________________________________________________</span><br><span class=hoenzb>-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --</span><br><br><span class=hoenzb>Check out the new Asterisk community forum at: <a href="https://community.asterisk.org/" target="_blank">https://community.asterisk.org/</a></span><br><br><span class=hoenzb>New to Asterisk? Start here:</span><br><span class=hoenzb> <a href="https://wiki.asterisk.org/wiki/display/AST/Getting+Started" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Getting+Started</a></span><br><br><span class=hoenzb>asterisk-users mailing list</span><br><span class=hoenzb>To UNSUBSCRIBE or update options visit:</span><br><span class=hoenzb> <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a></span></span><o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>