[Twisted-Python] Media Resource Control Protocol (MRCP)

Ivan Uemlianin ivan at llaisdy.com
Fri May 18 14:57:12 EDT 2007


Dear All

I am interested in writing an MRCP (Media Resource Control Protocol [1])
server.  In particular I want to write an MRCP speech recognition
resource server as part of my trefnydd [2] project.  I am posting here
to ask for advice about the network programming part.

I shall also be writing an MRCP client (if only to test the server).
All the code will be GPL'd.

As far as I understand it, an overview of the networking would go like
this:

An MRCP session between client and server is initiated using the Session
Initiation Protocol (SIP).  Client and server negotiate using SIP
messages containing SDP message bodies to define the participants and
the resources required in the session.  After session initiation, two
channels are launched: a media channel using RTP to carry binary audio
(i.e., speech) data, and a control channel using TCP (control channel
messages are text-based and in MRCP format).

It seems to me that both client and server software would have to cope
with SIP, SDP, RTP, MRCP (message format) and plain old TCP (for the
SIP/SDP and MRCP control channel messages).

Here are my questions:

- Does anyone know of a FOSS project to write an MRCP server? preferably
in python. I know of mrcp4j [3].
- My first plan would be to make the MRCP client/server a subclass of an
SIP client/server, as SIP is used to set up (and tear down) the session.
  Does that sound sensible?
- Can twisted.protocols.sip be used to write a SIP server?  Would it
give me everything I need, or would I also need something like pjsip [4]
or jain-sip [5] for the low-level stuff?
- Have I missed anything?

Any advice would be gratefully received.  I'll report back with progress.

Best wishes

Ivan

[1] MRCP:  http://www.llaisdy.com/static/tech/mrcp/
[2] trefnydd:  http://www.llaisdy.com/static/trefnydd/
[3] mrcp4j: "MRCP4J provides a Java API that encapsulates the MRCPv2
protocol and can be used to implement MRCPv2 clients and/or servers."
http://mrcp4j.sourceforge.net/
[4] pjsip:  http://www.pjsip.org/
[5] jain-sip:  https://jain-sip.dev.java.net/







More information about the Twisted-Python mailing list