uniMRCP server with Freeswitch integration for Speech-To-Text application using GSR plugin

498 views
Skip to first unread message

magadumashok

unread,
Dec 31, 2019, 1:04:55 PM12/31/19
to UniMRCP
I just installed latest version uniMRCP server and trial version of GSR plugin. I am trying a very simple Speech-To-Text phrase "Welcome" with builtin speech context - transcribe. Here is the Freeswitch dial plan extension that I am using. Can you guide me as to why I am seeing no-match (001) completion cause on uniMRCP server though everything looks good on Google Speech-To-Text API side.

Freeswitch dial plan extension:

<extension name="play_and_detect_speech example">

      <condition field="destination_number" expression="^(1888)$">

        <action application="set" data="tts_engine=unimrcp"/>

        <action application="set" data="tts_voice=donna"/>

        <action application="play_and_detect_speech" data="ivr/ivr-welcome.wavdetect:unimrcp {start-input-timers=false,no-input-timeout=5000,recognition-timeout=20000}builtin:speech/transcribe?language=en-US"/>

        <action application="log" data="CRIT ${detect_speech_result}"/>

      </condition>

    </extension>



The no-match (001) issue seen on uniMRCP server:

2019-12-31 12:26:13:958444 [DEBUG]  Signal Message to [MRCPv2-Agent-1] [0x7f1ec8006b30;1;0]

2019-12-31 12:26:13:958678 [DEBUG]  Wait for Messages [MRCP Server]

2019-12-31 12:26:13:958685 [DEBUG]  Process Message [MRCP Server] [0x7f1ec0026100;3;4]

2019-12-31 12:26:13:958691 [INFO]   Process RECOGNITION-COMPLETE Event <cd2ad36a7ee44ef3@speechrecog> [1]

2019-12-31 12:26:13:958705 [INFO]   State Transition RECOGNIZING -> RECOGNIZED <cd2ad36a7ee44ef3@speechrecog>

2019-12-31 12:26:13:958713 [DEBUG]  Signal Message to [MRCPv2-Agent-1] [0x7f1ec80069b0;1;0]

2019-12-31 12:26:13:958720 [DEBUG]  Wait for Messages [MRCP Server]

2019-12-31 12:26:13:958757 [DEBUG]  Process Poller Wakeup [MRCPv2-Agent-1]

2019-12-31 12:26:13:958776 [DEBUG]  Process Message [MRCPv2-Agent-1] [0x7f1ec8006b30;1;0]

2019-12-31 12:26:13:958791 [INFO]   Send MRCPv2 Data 143.56.112.218:1544 <-> 143.56.112.218:58788 [115 bytes]

MRCP/2.0 115 START-OF-INPUT 1 IN-PROGRESS

Channel-Identifier: cd2ad36a7ee44ef3@speechrecog

Input-Type: speech



2019-12-31 12:26:13:959057 [DEBUG]  Process Message [MRCPv2-Agent-1] [0x7f1ec80069b0;1;0]

2019-12-31 12:26:13:959076 [INFO]   Send MRCPv2 Data 143.56.112.218:1544 <-> 143.56.112.218:58788 [130 bytes]

MRCP/2.0 130 RECOGNITION-COMPLETE 1 COMPLETE

Channel-Identifier: cd2ad36a7ee44ef3@speechrecog

Completion-Cause: 001 no-match



Right before this log message, it looks to me that the server is receiving transcribed data over gRPC with "200 OK". Here is the server log showing this behavior.


I1231 12:26:13.956208849   19842 tcp_posix.cc:424]           READ 0x7f1e980ed680 (peer=ipv4:172.217.164.170:443) error="No Error"

D1231 12:26:13.956239800   19842 tcp_posix.cc:430]           DATA: 17 03 03 01 00 00 00 00 00 00 00 00 03 54 cc 12 a0 e1 72 6c 74 f3 2c 80 9b 62 a5 3c ae 4d 2f 50 aa d0 59 11 66 10 18 2f d6 af 6e 76 5c c7 60 bc af 0e 33 e5 a1 6e 4e c5 79 b9 e5 e4 1a 15 c6 68 5a 58 0c 1d 6d 5c 75 cf dd 96 99 8d 4c 63 52 09 3b 31 fc 30 03 60 21 93 bc 63 0e b0 24 16 43 21 95 6d 15 21 5f 3c 28 04 23 92 dc 39 a9 fa e6 19 b8 33 8f 90 db 55 f0 22 6b b2 e0 b4 d7 40 77 bd 9e 93 88 c2 ef aa 8e ac 36 f0 19 15 1b 28 89 e3 dc 96 fe 7a 3e 65 de 0b 91 af 8d e4 f6 24 dd 4b 6a 56 28 51 54 e4 03 ce 37 07 f4 fe 81 ae fe 23 0c 77 9e af 31 75 c0 24 a3 fa 8b 1a 75 92 a7 a8 7b 10 4d 8a 89 65 8e 0a 81 cc 41 25 8c 2c 9b 9f bb ce 46 c0 85 b5 c4 e8 fb a4 4d 50 e3 47 1f e0 e3 a1 5b 3c 82 a9 84 71 b6 db 15 21 c5 25 25 bd e3 23 d9 a1 64 29 b1 14 a2 f2 fa ae a8 2b 3b 39 b2 0f ff 96 ea '.............T....rlt.,..b.<.M/P..Y.f../..nv\.`...3..nN.y......hZX..m\u.....LcR.;1.0.`!..c..$.C!.m.!_<(.#..9.....3...U."k....@w.........6....(.....z>e.......$.KjV(QT...7......#.w..1u.$....u...{.M..e....A%.,....F.......MP.G....[<...q...!.%%..#..d).......+;9.....'

I1231 12:26:13.956301239   19842 secure_endpoint.cc:163]     READ 0x7f1e980fc9a0: 00 00 b9 01 04 00 00 00 01 88 5f 8b 1d 75 d0 62 0d 26 3d 4c 4d 65 64 00 83 90 69 2f 96 df 69 7e 94 64 2a 5f 29 14 10 02 fa 81 76 e0 9c b8 16 54 c5 a3 7f 40 85 1d 09 59 1d c9 ff 07 ed 69 89 07 f3 71 a6 99 fe 7e d4 a4 70 09 b7 c4 00 03 ed 4e f0 7f 2d 39 f4 d3 3f cf d4 ec ad b0 0d 82 0f e6 e3 4d 33 fc fd a9 48 e0 13 6f 88 00 07 d4 ec ad b0 0d 3f 07 f3 71 a6 99 fe 7e d4 a4 70 09 b7 c4 00 03 ea 76 56 d8 06 9e 83 f9 b8 d3 4c ff 3f 6a 52 38 04 db e2 00 01 f5 3b 2b 6c 03 4e 41 fc dc 69 a6 7f 9f b5 29 1c 02 6d f1 00 00 fa 9d 95 b6 01 a6 60 fe 6e 34 d3 3f cf da 94 8e 01 36 f8 80 00 7f 00 00 0c 01 05 00 00 00 01 40 88 9a ca c8 b2 12 34 da 8f 01 30 00 00 08 06 00 00 00 00 00 00 00 00 00 00 00 00 00 '.........._..u.b.&=LMed...i/..i~.d*_).....v....T...@...Y.....i...q...~..p......N..-9..?..........M3...H..o........?..q...~..p......vV.......L.?jR8......;+l.NA..i....)..m.........`.n4.?.....6.............@......4...0.................'

I1231 12:26:13.956322930   19842 parsing.cc:656]             parsing initial_metadata

I1231 12:26:13.956369757   19842 hpack_parser.cc:636]        Decode: ':status: 200', elem_interned=1 [3], k_interned=1, v_interned=1

I1231 12:26:13.956387548   19842 parsing.cc:407]             HTTP:1:HDR:CLI: :status: 32 30 30 '200'

I1231 12:26:13.956416019   19842 hpack_parser.cc:636]        Decode: 'content-type: application/grpc', elem_interned=1 [3], k_interned=1, v_interned=1

I1231 12:26:13.956428214   19842 parsing.cc:407]             HTTP:1:HDR:CLI: content-type: 61 70 70 6c 69 63 61 74 69 6f 6e 2f 67 72 70 63 'application/grpc'

I1231 12:26:13.956442618   19842 hpack_parser.cc:636]        Decode: 'date: Tue, 31 Dec 2019 17:26:13 GMT', elem_interned=0 [2], k_interned=1, v_interned=0

I1231 12:26:13.956453360   19842 parsing.cc:407]             HTTP:1:HDR:CLI: date: 54 75 65 2c 20 33 31 20 44 65 63 20 32 30 31 39 20 31 37 3a 32 36 3a 31 33 20 47 4d 54 'Tue, 31 Dec 2019 17:26:13 GMT'

I1231 12:26:13.956482541   19842 hpack_parser.cc:636]        Decode: 'alt-svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000', elem_interned=1 [1], k_interned=1, v_interned=1

I1231 12:26:13.956501975   19842 parsing.cc:407]             HTTP:1:HDR:CLI: alt-svc: 71 75 69 63 3d 22 3a 34 34 33 22 3b 20 6d 61 3d 32 35 39 32 30 30 30 3b 20 76 3d 22 34 36 2c 34 33 22 2c 68 33 2d 51 30 35 30 3d 22 3a 34 34 33 22 3b 20 6d 61 3d 32 35 39 32 30 30 30 2c 68 33 2d 51 30 34 39 3d 22 3a 34 34 33 22 3b 20 6d 61 3d 32 35 39 32 30 30 30 2c 68 33 2d 51 30 34 38 3d 22 3a 34 34 33 22 3b 20 6d 61 3d 32 35 39 32 30 30 30 2c 68 33 2d 51 30 34 36 3d 22 3a 34 34 33 22 3b 20 6d 61 3d 32 35 39 32 30 30 30 2c 68 33 2d 51 30 34 33 3d 22 3a 34 34 33 22 3b 20 6d 61 3d 32 35 39 32 30 30 30 'quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000'

I1231 12:26:13.956518574   19842 call_combiner.cc:116]       ==> grpc_call_combiner_start() [0x7f1ec0023920] closure=0x7f1e9810d7a0 [recv_initial_metadata_ready] error="No Error"

I1231 12:26:13.956525810   19842 call_combiner.cc:125]         size: 0 -> 1

I1231 12:26:13.956531139   19842 call_combiner.cc:134]         EXECUTING IMMEDIATELY

I1231 12:26:13.956538260   19842 parsing.cc:661]             parsing trailing_metadata

I1231 12:26:13.956547465   19842 hpack_parser.cc:636]        Decode: 'grpc-status: 0', elem_interned=1 [3], k_interned=1, v_interned=1

I1231 12:26:13.956554843   19842 parsing.cc:503]             HTTP:1:TRL:CLI: grpc-status: 30 '0'


In my environment, both Freeswitch and uniMRCP server are running on the same VM. Please let me know, if you need any other details on server configuration or environment.



Sean DiSanti

unread,
Jan 2, 2020, 12:54:53 PM1/2/20
to uni...@googlegroups.com
You should turn on utterance manager in your unimrcp instance, and confirm the audio is what you expect. The fact that it's no-match instead of no-input is a good sign that something is getting captured, but it's possible that you may need to adjust timers or something.

--
You received this message because you are subscribed to the Google Groups "UniMRCP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unimrcp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unimrcp/5cb5c4c7-8353-4d13-8fb0-6616b800968b%40googlegroups.com.

magadumashok

unread,
Jan 4, 2020, 12:23:44 AM1/4/20
to UniMRCP
Hi Sean,
Thank so much for the reply. I am just wondering as to what needs to be modified in utterance manager configuration section and the specific log messages to look for in order to confirm the expected audio received on uniMRCP server side.

Here is the utterance manager configuration that I have in our umsgsr.xml file

<utterance-manager

      save-waveforms="false"

      purge-existing="false"

      max-file-age="60"

      max-file-count="100"

      waveform-base-uri="http://localhost/utterances/"

      waveform-folder=""

   />

To unsubscribe from this group and stop receiving emails from it, send an email to uni...@googlegroups.com.

Sean DiSanti

unread,
Jan 6, 2020, 1:09:14 PM1/6/20
to uni...@googlegroups.com
I'm sorry for the delay, I don't typically check this address on the weekends.
You would want to set save-waveforms to true, and I personally set the max-file-age and count to 0 to disable the cleanup. We ran into an issue where the sheer volume of utterances and rdrs (millions per day) killed unimrcp server for several minutes to hours when it was starting up. We also specify folders for the waveform-folder property, otherwise they just go to default /opt/unimrcp/var/ directory on Ubuntu.



To unsubscribe from this group and stop receiving emails from it, send an email to unimrcp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unimrcp/108a7e4e-c627-4bad-b449-f05ada543d95%40googlegroups.com.

magadumashok

unread,
Jan 7, 2020, 5:12:11 PM1/7/20
to UniMRCP
No problem Sean. Thank you so much for clarifying my questions on utterance manager configuration. Let me try these settings and see what is happening. I will keep you posted. I might have follow up questions/clarification. I really appreciate you for getting back to me and your guidance on this issue.

Sean DiSanti

unread,
Jan 7, 2020, 8:14:18 PM1/7/20
to uni...@googlegroups.com
No problem, I'm happy to help.

To unsubscribe from this group and stop receiving emails from it, send an email to unimrcp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unimrcp/a977cee5-1d03-43ee-bc88-69f6581af632%40googlegroups.com.

Sushmita Kulkarni

unread,
Feb 20, 2020, 10:03:02 AM2/20/20
to UniMRCP
Sean, 
As I am working for the same as mentioned by Ashok Sir.The problem that we are facing is as follows.
The Audio is stored in default var directory, but there is some noise added. This resulted in disturbance in the audio while playing. What is the cause for such disturbance and please tell us how to overcome this issue.
Please find the attached wav file for reference.
umsgsr-6b9788a3bfa649f6-1.wav

Sushmita Kulkarni

unread,
Feb 20, 2020, 10:03:02 AM2/20/20
to UniMRCP
Sean, 
As I am working for the same as mentioned by Ashok Sir.The problem that we are facing is as follows.
The Audio is stored in default var directory, but there is some noise added. This resulted in disturbance in the audio while playing. What is the cause for such disturbance and please tell us how to overcome this issue.
Please find the attached wav file for reference.
Thanks,
Sushmita K


On Tuesday, 31 December 2019 23:34:55 UTC+5:30, magadumashok wrote:
umsgsr-6b9788a3bfa649f6-1.wav

Arsen Chaloyan

unread,
Feb 21, 2020, 9:02:09 PM2/21/20
to UniMRCP
Sushmita,

Have you listened to the recorded utterance. The waveform is deteriorated. And I believe this is what MRCP server was received from IVR. Make a network capture in the inbound leg of your IVR and the MRCP leg and narrow down the problem, which has likely nothing to do with what was discussed in the scope of this thread.

--
You received this message because you are subscribed to the Google Groups "UniMRCP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unimrcp+u...@googlegroups.com.


--
Arsen Chaloyan
Author of UniMRCP
http://www.unimrcp.org
Reply all
Reply to author
Forward
0 new messages