unispeech / unimrcp

Open source cross-platform implementation of MRCP protocol
http://www.unimrcp.org
Apache License 2.0
380 stars 167 forks source link

Asterisk client SynthAndRecog timers #278

Closed romariosar closed 3 years ago

romariosar commented 4 years ago

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.

romariosar commented 4 years ago

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

achaloyan commented 4 years ago

For future reference: the same problem is posted here.

achaloyan commented 3 years ago

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