I'd like to create such a system:  Skype on mobile phone ->  Skype on server ->  plugin to Skype (3rd party application) ->  speech recognition Sphinx4. Normally Skype outputs speech to the speaker, normal behaviour of Sphinx4 is to receive speech from microphone. I need to change it so that [u]Skype would redirect its output sound to TCP socket[/u] and Sphinx4 would receive it from this TCP socket.
I think this plugin would be server with two children - Skype and Sphinx. I would write this plugin in C#. [u]Can anybody give me, please, any suggestions how to do it?[/u] (Examplary codes for other languages than C# would also be useful).
 and  can easily communicate with each other by sending Skype4COM commands. When the new call is established on Skype (in other words when I call from  to  and  automatically answers this call), plugin  enters OurCallStatus function. And inside this function I need to change default output of Skype sound which is set to speakers and make it to be "port".
So there must be Skype -> TCP socket (on localhost) -> Sphinx4. I also thought about other approaches. Those are: IPC (Inter-Process Communication) and maybe some kind of usage of WinAPI.
Why do I have to use TCP socket (Skype -> TCP socket -> Spinx4)? Because I guess it may be impossible or difficult to forward it directly. I need to change this line in code of Sphinx4 application "Microphone microphone = (Microphone) cm.lookup("microphone");" to such a line which would be able to receive speech from "port". I cannot simply save the whole speech from Skype to mp3/wav file and then to open this mp3/wav file in Sphinx4 because it must be done [u]in real time[/u].