1. A computer-implemented method of processing voice applications in a client-server computing system comprising a server device and a client device, said method comprising performing on said server device: receiving, at said server device, data from said client device indicative of a computing capability of said client device, said data comprising: a measure of memory available on said client device, a battery power of said client device, a processing capability of said client device, and information identifying one or more resources available on said client device; determining, at said server device, a profile of said client device based on said data received from said client device indicating said computing capability of said client device; selecting, based on said profile of said client device, a set of instructions allocating a division of voice-based dialog processing or speech processing tasks to be performed between said client device and said server device; providing said set of instructions to said client device for execution of said voice-based dialog processing or said speech processing tasks based on said division of said voice-based dialog processing or said speech processing tasks; enabling said client device to parse said set of instructions and execute, at least partially, said voice-based dialog processing or said speech processing tasks; and synchronizing execution of said voice-based dialog processing or said speech processing tasks between said client device and said server device.
2. The method according to claim 1 , further comprising: executing, on said server device, one or more of said voice-based dialog processing or said speech processing tasks if said one or more of said voice-based dialog processing or said speech processing tasks are not successfully executed on said client device.