Comments (14)
Hi Mahmoud,
I've just applied your modifications in demo synth scenario, ran it and also made
network trace.
Now I'm trying to listen to stored waves. The first one is OK, the second one is not
corrupted either, but it only contains the final words of the synthesized stream.
Now I'm trying to check the same from network traces, everything is just fine, both
streams are OK.
And these is the result I expected.
The problem is in Sleep(2500) you added between execution of messages. Sleep does the
trick and adds delay between synth requests, but it also blocks the executing context.
Demo framework processes response/events from client stack in the same thread. Thus
on_channel_add() for the second channel will be delayed. As a result, the second
output file will be initialized too late.
Remove those Sleeps(2500) or just reorganize the framework the way you need.
Hope it's clear and let me know in case of any questions.
Reported by achaloyan
on 2009-06-08 12:42:14
- Status changed:
Invalid
from unimrcp.
hi arsen
yes i understood what you want to say but i put the sleep here only to compensate the
absence of my code iam doing between the channel creation and message sending to show
you the case. in my client the result is not delay and losing part of the result only
but it is a distortion in the wave and corruption.
Reported by firstmahmoud2002
on 2009-06-10 06:44:04
from unimrcp.
Hi Mahmoud,
If your code delays the execution content for about several seconds, it's not
acceptable. Probably you should use a bit different concept in your application,
which fits better your needs...
Anyway, if you insist that issue exists, please provide the corrupted output, client
log and Wireshark capture, only then I can identify, what is actually going on on
your side.
Reported by achaloyan
on 2009-06-10 07:14:31
from unimrcp.
hi arsen
iam sorry for this question it may be strange :) . what Wireshark capture is ? how
can i find it ? is it a network capture or what ?
Reported by firstmahmoud2002
on 2009-06-10 07:20:03
from unimrcp.
Yes, Wireshark is a network analyzer tool
http://www.wireshark.org/
If you have any other network analyzer installed, use that tool, but save the
captured data in pcap format.
Otherwise you may want to start using the Wireshark, which is the most popular
network analyzer as I believe.
Reported by achaloyan
on 2009-06-10 08:00:16
from unimrcp.
sorry for disturbing you but if you can give me a quick jump on how to create the
network captured file i would be so grateful.
thanks in advance
Reported by firstmahmoud2002
on 2009-06-10 09:38:38
from unimrcp.
Well,
1. Run Wireshark
2. Goto menu Capture -> Options
3. Select proper network interface if you have more than one (Interface:)
4. Specify capture filter (if any)
For instance if your client is on 192.168.1.1 and server is on 192.168.1.2, you
should specify "host 192.168.1.1 and host 192.168.1.2" as a filter
5. Push Start button to start capture
6. Reproduce the issue
7. Stop capture (Capture -> Stop)
8. Save capture (File -> Save)
Reported by achaloyan
on 2009-06-10 11:19:26
from unimrcp.
hi arsen
iam sorry for being late in reply but i spent the last days investigating in the
problem but it still exists.
attached files are :
1.unimrcpclient.log
2.outclient0.pcm
3.outclient1.pcm
4.wave_distortion_problem.pcap
and my scenario is :
1.create channel 0.
2.speak on channel 0.
3.wait till speak end.
4.create channel 1.
5.speak on channel 1.
6.wait till speak end.
7.close channel 0.
8.close channel 1.
Client IP is :
192.168.30.44
and server IP is :
192.168.30.135
now outclient0.pcm is good
outclient1.pcm is corrupted.
Note:
wave format is mulaw 8000
thanks in advance and sorry for being late in reply again.
Reported by firstmahmoud2002
on 2009-06-17 08:00:01
- _Attachment: [OutClint0.pcm](https://storage.googleapis.com/google-code-attachments/unimrcp/issue-30/comment-8/OutClint0.pcm)_ - _Attachment: [OutClint1.pcm](https://storage.googleapis.com/google-code-attachments/unimrcp/issue-30/comment-8/OutClint1.pcm)_ - _Attachment: [unimrcpclient.log](https://storage.googleapis.com/google-code-attachments/unimrcp/issue-30/comment-8/unimrcpclient.log)_ - _Attachment: [wave_distortion_problem.pcap](https://storage.googleapis.com/google-code-attachments/unimrcp/issue-30/comment-8/wave_distortion_problem.pcap)_
from unimrcp.
Hi Mahmoud,
I've just listened to the waveforms of the "wave_distortion_problem.pcap" you
attached. Both streams are not so valid to me. Both contain garbage after the actual
synthesized speech. This means the problem is in server, most probably in your
plugin. Try to run the same against UniMRCP server with demo plugin, everything
should work as expected.
Reported by achaloyan
on 2009-06-17 12:16:49
from unimrcp.
hi arsen
well i tried to test the case again using your plugin and the problem still exists
which means that the problem is in the MRCP source.
i used the first version of uni mrcp server plugin version 0.5.0 and the problem
still exists.
scenario:
1.open channel 0.
2.speak on channel 0.
3.open channel 1.
4.speak on channel 1.
and now listen to waves u will find that channel 0 wave is correct and wave for
channel 1 is corrupted.
attached files are :
outclient0.pcm => for channel 0
outclient1.pcm => for channel 1
unimrcpclient.log
problem.pcap => network capture.
wish this could help you.
Reported by firstmahmoud2002
on 2009-06-21 08:21:25
- _Attachment: [OutClint0.pcm](https://storage.googleapis.com/google-code-attachments/unimrcp/issue-30/comment-10/OutClint0.pcm)_ - _Attachment: [OutClint1.pcm](https://storage.googleapis.com/google-code-attachments/unimrcp/issue-30/comment-10/OutClint1.pcm)_ - _Attachment: [problem.pcap](https://storage.googleapis.com/google-code-attachments/unimrcp/issue-30/comment-10/problem.pcap)_ - _Attachment: [unimrcpclient.log](https://storage.googleapis.com/google-code-attachments/unimrcp/issue-30/comment-10/unimrcpclient.log)_
from unimrcp.
Hi Mahmoud,
1. Server side
As opposite to the previous network capture(wave_distortion_problem.pcap), this one
(problem.pcap) is just perfect. If you try to save RTP payload, you'll see and
perfect waveform. In fact, this means that you have problems in your plugin.
2. Client side
Clearly there is a problem on client side too. If you try to analyze OutClint1.pcm
waveform, you'll see it contains silence gaps every 10ms. Moreover, if you remove
those gaps, you'll get what is expected. I consider the problem is in client
application layer, as this never happens to me. Try using demo unimcrclient and
execute two "run synth" commands in a row. I assume everything will work as expected.
Reported by achaloyan
on 2009-06-22 06:34:53
from unimrcp.
hi arsen
i have a question:
do you have a suggestion for why the silence gap exists in case of this scenario and
does not exist if i run two channels at the same time ?
i mean that if i added two channels at the same time and send a speak request at the
same time this silence gap does not exist.
Reported by firstmahmoud2002
on 2009-06-22 12:49:47
from unimrcp.
I have no clue, it works correct to me in both cases. It looks something is wrong
with concurrency in your client application. Do not use Sleeps.
Reported by achaloyan
on 2009-06-22 17:23:38
from unimrcp.
Hi Mahmoud,
I assume, this issue has been clarified enough. Hopefully everything is working well
now on your side.
Reported by achaloyan
on 2009-10-05 16:22:21
- Status changed:
Verified
from unimrcp.
Related Issues (20)
- Possibility custom response in recog plugin HOT 1
- UniMRCP Yandex Plugin SR Case insensitive HOT 1
- unimrcp crash when timer reschedule HOT 1
- Completion-Cause: 002 no-input-timeout HOT 1
- Why there are so many temporary files in code repository
- No reply Local SDP after running for a while HOT 1
- how to get sip informations from unimrcp HOT 1
- the "sip-session-expires" trigger early HOT 2
- How to build with cmake HOT 1
- Write a concurrent client HOT 1
- how to develop myself tts plugin,someone knows to do that? HOT 1
- Re-INVITE may causes the session keep forever and will not be free HOT 1
- Why speech_complete_timeout is set as mpf_activity_detector_silence_timeout? HOT 1
- Is unimrcp support process the MRCP Signal via multi-thread?
- APR library has security vulnerabilities HOT 1
- Getting No NLSML data available on speech recognition input validation [AzureSR]
- Unimrcpclient does not respect the codecs
- `apr_pool_mutex_set' HOT 1
- Segmentation fault mrcp_start_line_init (message/src/mrcp_start_line.c:321)
- Redacted
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unimrcp.