problem with selecting remote procedure calls
eric johansson
esj at harvee.org
Wed Jul 22 23:10:17 EDT 2015
https://docs.google.com/drawings/d/1M-TzfRaSaAhFXQk1OmcmHNOaW31_7W_7q0bf8CAJqSw/edit?usp=sharing
while this is related to my speech recognition through the next project, is actually a good question for RPCs in general. Specifically, are there any good-RPCs out there that are fast, supported, and easy to use?
The Google Doc image given above shows the kind of things I'm doing to make speech recognition, running on windows, drive linux. The relay and emitter pair are almost trivially easy. The RPC is used to communicate the Windows scan code or codes for a given key and then the inner side translates that scan code into an actual code understood by Linux and it is shoved into the input queue.
it's much harder to create a natlink module with a matching object in the RPC server. In this case, the class "data jammer" queries the application I built and extracts data necessary to inform the grammar back in the natlink module. Once the grammar executes, "data jammer" is called again to transform the results of the recognized grammar into usable data that will drive another application. In this case, I stuffed the data into the Windows input queue which in turn gets injected into win_relay.
At this point, this is where I'm having some trouble with the RPC choices. I initially settled on rpyc because it was easy, it looked like it would do what I needed and it might even be fast enough. The problem being that the user community is mostly inhabited by crickets. Second problem is that it's not clear if I can export multiple objects from a single server. Ideally, I want there to be a pair of Python programs executing for any given grammar. The first would be the module imported into natlink and the other would be it's matching partner in crime on the linux side.
I'm looking for ways to implement a plug-in architecture with independent objects. I would welcome advice on pieces I can recycle to meet my needs. for example, which Python RPC environment would best suit my needs. Remember, it needs to be relatively light because execution time does have an influence on recognition accuracy and speed.
thanks in advance
--- eric
More information about the Python-list
mailing list