Author Message
Heena
Joined: Jun 3, 2015
Messages: 12
Offline
I have managed to get event subscriptions from the RealTime Speech snap-in. Unfortunately, there is some strange behavior with the event notifications that I am receiving.
During the initial phase of my service, I get multiple events of SPEECH_SEARCH_STARTED, immediately after which I receive SPEECH_SEARCH_STOPPED events.
I really do not know why. Due to this unreasonable behavior, I don't think my service actually scans the input audio stream.
Here are the notifications that I am receiving. Kindly have a look at these:

REQUEST STRING : --event-boundaryContent-Disposition: form-data; name="metadata"Content-Type: application/json; charset=UTF-8Content-Transfer-Encoding: 8bit{"eventId":"1ae-RealTimeSpeech-3.0.2.0.3-3ac92495-d73a-4b55-934b-0e0c49544aee.RealTimeSpeech-3.0.2.0.3-ac1ea237f8c1e2ab654b31a354d832efab59fbcae2a75ff89822a1fe43e0db39","subscriptionId":"RealTimeSpeech-3.0.2.0.3-ac1ea237f8c1e2ab654b31a354d832efab59fbcae2a75ff89822a1fe43e0db39","eventFamily":"SpeechSearch","eventType":"SPEECH_SEARCH_STARTED","version":"1.0.0"}--event-boundaryContent-Disposition: form-data; name="eventbody"Content-Type: application/json; charset=UTF-8Content-Transfer-Encoding: 8bit{"eventType":"SPEECH_SEARCH_STARTED","ucid":"00001001891435061371","appid":"local.1434350767464_311099","searchid":"762ROlDcTAS-NtIcCQfpIw","tags":[],"conceptMatches":[],"callingParty":{"handle":"2302","domain":"collaboratory.avaya.com","display":"SIPwCMUser 2302"},"calledParty":{"handle":"2300","domain":"collaboratory.avaya.com","display":"SIPwCMUser 2300"},"timeOfEvent":"2015-06-23 06:09:42.14"}--event-boundary--



REQUEST STRING : --event-boundaryContent-Disposition: form-data; name="metadata"Content-Type: application/json; charset=UTF-8Content-Transfer-Encoding: 8bit{"eventId":"1ae-RealTimeSpeech-3.0.2.0.3-faa88ed2-e2ab-4f64-bc5c-c656d59fac3d.RealTimeSpeech-3.0.2.0.3-94812f7c910983d4bc0e5dddb4c82a5f9af1b68d8a01f8b9355ac81db818e41a","subscriptionId":"RealTimeSpeech-3.0.2.0.3-94812f7c910983d4bc0e5dddb4c82a5f9af1b68d8a01f8b9355ac81db818e41a","eventFamily":"SpeechSearch","eventType":"SPEECH_SEARCH_STOPPED","version":"1.0.0"}--event-boundaryContent-Disposition: form-data; name="eventbody"Content-Type: application/json; charset=UTF-8Content-Transfer-Encoding: 8bit{"eventType":"SPEECH_SEARCH_STOPPED","ucid":"00001001891435061371","searchid":"762ROlDcTAS-NtIcCQfpIw","reason":"Speech Search terminated:No resource to fulfill request","tags":[],"conceptMatches":[],"timeOfEvent":"2015-06-23 06:09:42.464"}--event-boundary--

What resources is it falling short of in fulfilling the request?
Any help would be appreciated.
Thanks,
Heena
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Hi Heena,

The reason you are seeing this behavior is because the RealTimeSpeech submits Speech Searches to the Avaya Aura Media Server and when an error occurs a STOP event is sometimes generated just like in your case.
The cause of the STOP is provided in the reason field. i.e. Speech Search terminated: No resource to fulfill request.

Here is an extract from our FAQ that is part of our SDK that explains what is going on:
I'm getting a Speech Search Error message with the following reason: Speech Search terminated: No resource to fulfill. What is going on?

The current release of the Avaya Media Server only supports one speech search session per call. Using the Real Time Speech snap-in, you can start a speech search on called party, and later add another speech search for the calling party - this uses one session or just start on both which also uses a session. However, if you start further searches on the same call you get this error.

So the reason for your error is there are multiple speech searches for the same call. Why might this be happening? Well, one reason could be that you are trying to start several searches on a call, another could you are using the REST API to trigger a speech search and have not disabled our automatic starting configuration. (FYI When the RealTimeSpeech snap-in is installed we enable auto starting of speech search using a built in example query). If you logon to System Manager, you check your configured attributes to check if you are auto starting a search. I suspect this may be the cause of your issue.
Heena
Joined: Jun 3, 2015
Messages: 12
Offline
Hi JoelEzell,

I disabled automatic speech search from the service attributes. Now I do not get a SPEECH_SEARCH_STOPPED event, but I do get multiple SPEECH_SEARCH_START events. How do I view all my event subscriptions? RealTimeSpeech/event/subscriptions does not support a GET request, only POSTS. I have subscribed only once and only for called party and yet I see so many SPEECH_SEARCH_START events. Anyway, the substantial part of getting SPEECH_SEARCH_MATCH events also does not work. I have subscribed to SPEECH_SEARCH_MATCH events for certain tags that I have stored using queries API. I do not get those events even when those particular words are spoken.

Thanks,
Heena
AdrianRyan
Joined: Jun 23, 2015
Messages: 4
Offline
Hi Heena,

If you are starting speech search on both calling and called parties, you will receive two SPEECH_SEARCH_START events, one for each party. If you are receiving more, then it maybe that you have multiple subscriptions. You can check this by the eventId in the events you receive. This should be unique.


In terms of the next steps for achieving a match, there are a few things you can try:


  • The actual matching works better on longer phrases, for example, "Hello, welcome to my speech search test" works better than "hello". This is because the engine can make more confident matches with longer phrases.

  • Try setting the threshold in the query to a low value- for example 10. The threshold controls how match reporting occurs. For example, if a phrase is uttered that is part of the speech search, but the engine cannot determine with a confidence exceeding the threshold, then the match will not be reported, and you will not receive an event. (When matching is working you can tune the query appropriately)


  • Regarding subscriptions, you are correct there is no GET request supported, however, if you have admin access (e.g. root) to the CE instance it possible to enable this and display all active subscriptions maintained by the instance (not just RealTimeSpeech subscriptions). It is not enabled by default. To to this:

  • Login as root to the CE instance

  • Execute the following "touch /opt/Avaya/Common/conf/enableEfAdmin"

  • Using the EventingConnector snap-in (pre-resquite for RealTimeSpeech) access the subscriptions through the following URL:
    https://<security_module_ip>/services/EventingConnector/admin?method=showSubscriptions


  • Regards
    Heena
    Joined: Jun 3, 2015
    Messages: 12
    Offline
    Hi AdrianRyan,

    Unfortunately, I do not have root access to my CE.
    But, yes decreasing the threshold to as low as 5 did work for single words. Longer phrases are detected with a high threshold value.
    Thanks a lot!


    Heena
    Go to:   
    Mobile view