Code Monkey home page Code Monkey logo

Comments (14)

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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.

achaloyan avatar achaloyan commented on September 13, 2024
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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.