unispeech / unimrcp

Open source cross-platform implementation of MRCP protocol

Home Page:http://www.unimrcp.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Asterisk client SynthAndRecog timers

romariosar opened this issue · comments

Problem with the SynthAndRecog command in the Yandex plugin

The problem is that if the keyword for synthesis is relatively large, then recognition doesn't work after the synthesis ends.

This is where recognition works after the synthesis is complete:

SynthAndRecog("Привет, как дела. погодка сегодня отличная.",builtin:speech/transcribe,t=30000&sit=0&sint=30000&sct=200&b=1&nit=3000&ct=0.7&spl=ru-RU&sl=0.8&uer=0&vn=oksana&pr=1)

Recognition doesn't work here after the synthesis is complete:

SynthAndRecog("хорошо, следующий интент не открытый. как твои дела? Я вот сейчас проверяю прерывания и я очень надеюсь что они будут работать хорошо. А вообще сегодня очень хорошая погода. хочет ся пойти погулять.",builtin:speech/transcribe,t=30000&sit=0&sint=30000&sct=200&b=1&nit=3000&ct=0.7&spl=ru-RU&sl=0.8&uer=0&vn=oksana&pr=1)

Arsen we paid you money for the plugin, but in the end we can't use the SynthAndRecog command to activate interrupts. Tell me how to fix it.

There is a suspicion that such and such a timer does not start

I have used all the timers, and I only start these timers when the synthesis ends:
sit=0

But still when a person starts talking the system for some reason for some timeout shuts down and does not start recognition.

MRCP/2.0 393 RECOGNIZE 1
Channel-Identifier: 3fa640dbbd984594@speechrecog
Content-Type: text/uri-list
Cancel-If-Queue: false
Start-Input-Timers: false
Recognition-Timeout: 30000
Confidence-Threshold: 0.7
Speech-Incomplete-Timeout: 3000
Speech-Language: ru-RU
No-Input-Timeout: 3000
Sensitivity-Level: 0.9
Speech-Complete-Timeout: 400
Content-Length: 25

2020-08-27 08:02:48:059005 [NOTICE] Speech Complete 5fb36c53f66741f4@yandexss
2020-08-27 08:02:48:059256 [INFO] Process SPEAK-COMPLETE Event 5fb36c53f66741f4@speechsynth [1]
2020-08-27 08:02:48:059266 [NOTICE] State Transition SPEAKING -> IDLE 5fb36c53f66741f4@speechsynth
2020-08-27 08:02:48:059319 [INFO] Send MRCPv2 Data 10.11.11.10:1544 <-> 10.11.0.7:46966 [122 bytes]
MRCP/2.0 122 SPEAK-COMPLETE 1 COMPLETE
Channel-Identifier: 5fb36c53f66741f4@speechsynth
Completion-Cause: 000 normal

2020-08-27 08:02:50:718926 [INFO] Speech Detector State Transition NO-INPUT -> IN-PROGRESS [11940 ms] <3fa640dbbd984594>
2020-08-27 08:02:50:718997 [INFO] Start Input Timer [30000 ms] <3fa640dbbd984594>
2020-08-27 08:02:50:719286 [WARN] Failed to Send Input 3fa640dbbd984594@yandexsr
2020-08-27 08:02:50:719309 [INFO] Received Response: status [0] result-count [0] 3fa640dbbd984594@yandexsr
2020-08-27 08:02:50:729135 [INFO] Input Complete [stopped] size=9600 bytes, dur=610 ms 3fa640dbbd984594@yandexsr
2020-08-27 08:02:50:729412 [INFO] Process RECOGNITION-COMPLETE Event 3fa640dbbd984594@speechrecog [1]
2020-08-27 08:02:50:729428 [INFO] State Transition RECOGNIZING -> RECOGNIZED 3fa640dbbd984594@speechrecog
2020-08-27 08:02:50:729471 [INFO] Send MRCPv2 Data 10.11.11.10:1544 <-> 10.11.0.7:46962 [138 bytes]
MRCP/2.0 138 RECOGNITION-COMPLETE 1 COMPLETE
Channel-Identifier: 3fa640dbbd984594@speechrecog
Completion-Cause: 006 recognizer-error

For future reference: the same problem is posted here.

The issue has been resolved with the use of late-grpc-call as descried in the discussion thread referenced above.