1. A network-based voice command platform for interacting with remote users via speech signals exchanged between the user and the voice command platform via a telephone and a communications network, comprising:
a user communication interface for receiving speech from the user via the telephone and the network;
a processor;
an application-processing module executable by the processor to process voice command applications designed for interacting with users via speech, the voice command applications defining user-prompts, allowed grammars, and application logic;
a voice-processing module executable by the processor to recognize the allowed grammars in speech signals received from a user via the user communication interface, and to convert the user-prompts into speech signals for transmission to the user via the user communication interface, the voice-processing module having a plurality of selectable modes of operation; and
selection-logic executable by the processor in response to a specification received during a voice command session with the user, to cause the voice-processing module to operate according to a mode of operation that corresponds with the specification.
2. The voice command platform of claim 1, wherein the specification is received from the user during the voice command session.
3. The voice command platform of claim 1, wherein the specification is received from a voice command application being processed during the voice command session.
4. The voice command platform of claim 1, wherein the specification is received from a stored profile record for the user.
5. The voice command platform of claim 4, wherein the specification is received at initiation of the voice command session with the user.
6. The voice command platform of claim 1, wherein:
the user-prompts comprise text prompts;
the voice-processing module comprises a plurality of text-to-speech engines for converting the text prompts into speech signals;
the specification indicates a given text-to-speech engine to use for converting text prompts into speech signals; and
the mode of operation that corresponds with the specification comprises applying the given text-to-speech engine when converting text prompts into speech signals.
7. The voice command platform of claim 1, wherein:
the voice-processing module comprises a plurality of text-to-speech engines for converting user-prompts into speech signals, including a first text-to-speech engine and a second text-to-speech engine;
in a first mode of operation of the voice-processing module, the first text-to-speech engine is active, so that, when the processor executes the voice-processing module to convert user-prompts into speech signals, the processor applies the first text-to-speech engine;
in a second mode of operation of the voice-processing module, the second text-to-speech engine is active, so that, when the processor executes the voice translation module to convert user-prompts into speech signals, the processor applies the second text-to-speech engine; and
the selection-logic is executable by the processor in response to the specification received during the voice command session, to switch from the first mode of operation to the second mode of operation.
8. The voice command platform of claim 7, wherein the first mode of operation is a default mode of operation of the voice-processing module.
9. The voice command platform of claim 7, wherein the specification is received from the user during the voice command session.
10. The voice command platform of claim 7, wherein the specification is received from a voice command application being executed during the voice command session.
11. The voice command platform of claim 7, wherein the specification is received from a stored profile record for the user.
12. The voice command platform of claim 11, wherein the specification is received at initiation of the voice command session with the user.
13. The voice command platform of claim 1, wherein:
the user-prompts comprise designations of prerecorded speech signals representing voice prompts to retrieve and transmit to the user;
the voice-processing module is executable to convert a user prompt defined by a voice command application into a speech signal by retrieving from a voice prompt store a given voice prompt corresponding to the user prompt;
the voice-processing module comprises a plurality of voice prompt stores, each voice prompt store comprising a respective version of the given voice prompt;
the specification indicates a given voice prompt store to use for converting prompts into speech signals; and
the mode of operation that corresponds with the specification comprises retrieving the given voice prompt from the given voice prompt store.
14. The voice command platform of claim 13, wherein the specification is received from the user during the voice command session.
15. The voice command platform of claim 13, wherein the specification is received from a voice command application being executed during the voice command session.
16. The voice command platform of claim 13, wherein the specification is received from a stored profile record for the user.
17. The voice command platform of claim 16, wherein the specification is received at initiation of the voice command session with the user.
18. The voice command platform of claim 13, wherein:
the user-prompts further comprise text prompts;
the voice-processing module comprises a plurality of text-to-speech engines for converting the text prompts into speech signals;
the specification indicates a given text-to-speech engine to use for converting text prompts into speech signals; and
the mode of operation that corresponds with the specification further comprises applying the given text-to-speech engine when converting text prompts into speech signals.
19. The voice command platform of claim 1, wherein:
in a first mode of operation, the voice-processing is executable to convert the user-prompts into speech signals representing a first voice persona;
in a second mode of operation, the voice-processing is executable to convert the user-prompts speech signals representing a second voice persona;
the selection-logic is executable by the processor in response to a first specification received during a first voice command session with a first user, to cause the voice-processing module to operate according to the first mode of operation; and
the selection-logic is executable by the processor in response to a second specification received during a second voice command session with a second user, to cause the voice-processing module to operate according to the second mode of operation.
20. The voice command platform of claim 19, wherein the first specification is received from a stored profile record for the first user, and the second specification is received from a stored profile record for the second user.
21. The voice command platform of claim 1, wherein:
the voice-processing module includes a speech recognition engine executable by the processor to recognize the allowed grammars in the speech signals received from a user;
in a first mode of operation of the voice-processing module, the speech recognition engine actively monitors incoming speech signals and provides output indicative of allowed grammars recognized in the incoming speech signals;
in a second mode of operation of the voice-processing module, the speech recognition engine does not actively monitor speech signals and provide output indicative of allowed grammars recognized in the incoming speech signals;
the specification is received from the user during the voice command session with the user; and
the selection-logic is executable by the processor in response to the specification to switch the voice-processing module from the first mode of operation to the second mode of operation.
22. The voice command platform of claim 21, wherein the specification comprises a mute-command provided by the user.
23. The voice command platform of claim 22, wherein specification comprises a speech signal representing at least the word \u201cMute\u201d.
24. The voice command platform of claim 1, wherein:
the voice-processing module comprises (i) a core phoneme dictionary that the processor uses to recognize phonemes in incoming speech signals and (ii) at least one secondary phoneme dictionary that the processor uses to recognize phonemes in incoming speech signals;
the specification comprises an indication of which secondary phoneme dictionary to use when the processor is processing a given voice command application; and
the selection-logic is executable by the processor in response to the specification to cause the processor to use a given secondary phoneme dictionary to recognize phonemes in incoming speech signals when the processor is processing the given voice command application.
25. The voice command platform of claim 24, wherein, when the processor uses a given secondary phoneme dictionary to recognize phonemes in incoming speech signals, the processor uses only the given secondary phoneme dictionary and not the core phoneme dictionary.
26. The voice command platform of claim 24, wherein, when the processor uses a given secondary phoneme dictionary to recognize phonemes in incoming speech signals, the processor uses the given secondary phoneme dictionary in conjunction with the core phoneme dictionary.
27. The voice command platform of claim 26, wherein the given secondary phoneme dictionary defines additions to the core phoneme dictionary.
28. The voice command platform of claim 24, wherein the specification is received from a stored table that correlates voice command applications with secondary phoneme dictionaries.
29. The voice command platform of claim 28, wherein the voice command platform receives the given secondary phoneme dictionary from a source selected from the group consisting of (i) a provider of the given voice command application, in advance of the voice command session, and (ii) the voice command application, when the voice command application is loaded into the platform.
30. The voice command platform of claim 1, wherein speech signals are communicated between the user and the user communication interface via a telecommunications network comprising a wireless communications link.
31. A method of dynamically switching between modes of operation of a voice-processing module in a voice command platform, the voice-processing module being executable by a processor to recognize allowed grammars in speech signals received from a user via a user communication interface, and to convert user-prompts defined by voice command applications into speech signals for transmission to a user via the user communication interface, the method comprising:
receiving, during a voice command session with the user, a specification indicative of a mode of operation of the voice-processing module;
in response to the specification, switching from a first mode of operation of the voice-processing module to a second mode of operation of the voice-processing module.
32. The method of claim 31, wherein receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from the user during the voice command session.
33. The method of claim 31, wherein receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from a voice command application being executed during the voice command session.
34. The method of claim 31, wherein receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from a stored profile record for the user.
35. The method of claim 31, wherein:
the user-prompts comprise text prompts, the voice translator module comprises a plurality of text-to-speech engines for converting the text prompts into speech signals, and the specification indicates a given text-to-speech engine to use for converting text prompts into speech signals;
in the first mode of operation of the voice-processing module, the processor applies a first text-to-speech engine to convert text prompts into speech signals;
in the second mode of operation of the voice-processing module, the processor applies a second text-to-speech engine to convert text prompts into speech signals; and
switching from the first mode of operation of the voice-processing module to the second mode of operation of the voice-processing module comprises causing the processor (i) to stop applying the first text-to-speech engine to convert text prompts into speech signals and (ii) to start applying the second text-to-speech engine to convert text prompts into speech signals.
36. The method of claim 35, wherein receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from the user during the voice command session.
37. The method of claim 35, wherein receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from a voice command application being executed during the voice command session.
38. The method of claim 35, wherein receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from a stored profile record for the user.
39. The method of claim 31, wherein:
the user-prompts comprise designations of prerecorded speech signals representing voice prompts to retrieve and transmit to the user;
the voice-processing module is executable to convert a user prompt defined by a voice command application into a speech signal by retrieving from a voice prompt store a given voice prompt corresponding to the user prompt;
the voice-processing module comprises a plurality of voice prompt stores, each voice prompt store comprising a respective version of the given voice prompt;
the specification indicates a given voice prompt store to use for converting prompts into speech signals;
in the first mode of operation, the voice-processing module is executable to retrieve the given voice prompt from a first prompt store; and
in the second mode of operation, the voice-processing module is executable to retrieve the given voice prompt from a second prompt store.
40. The method of claim 39, wherein receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from the user during the voice command session.
41. The method of claim 39, wherein receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from a voice command application being executed during the voice command session.
42. The method of claim 39, wherein receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from a stored profile record for the user.
43. The method of claim 31, wherein
the voice-processing module includes a speech recognition engine executable by the processor to recognize the allowed grammars in the speech signals received from a user;
in the first mode of operation of the voice-processing module, the speech recognition engine actively monitors incoming speech signals and provides output indicative of allowed grammars recognized in the incoming speech signals;
in a second mode of operation of the voice-processing module, the speech recognition engine does not actively monitor speech signals and provide output indicative of allowed grammars recognized in the incoming speech signals; and
receiving the specification indicative of the mode of operation of the voice-processing module comprises receiving the specification from the user during a voice command session with the user.
44. The method of claim 31, wherein:
the voice-processing module comprises (i) a core phoneme dictionary that the processor uses to recognize phonemes in incoming speech signals and (ii) at least one secondary phoneme dictionary that the processor uses to recognize phonemes in incoming speech signals;
the specification comprises an indication of which secondary phoneme dictionary to use when the processor is processing a given voice command application;
in the first mode of operation, the processor uses a first secondary phoneme dictionary to recognize phonemes in incoming speech signals; and
in the second mode of operation, the processor uses a second secondary phoneme dictionary to recognize phonemes in incoming speech signals.
45. The method of claim 44, further comprising:
in the second mode of operation, the processor using the secondary phoneme dictionary in conjunction with the core phoneme dictionary.
46. The method of claim 44, wherein receiving the specification comprises referring to a stored table that correlates voice command applications with secondary phoneme dictionaries.
47. The method of claim 44, further comprising the platform receiving the second secondary phoneme dictionary from a source selected from the group consisting of (i) a provider of the given voice command application, in advance of the voice command session, and (ii) the voice command application, upon loading the voice command application into the platform.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A computer-implemented method of estimating power consumption of an electronic design implementable in an FPGA or ASIC, the method comprising:
generating a system level representation of the electronic design;
estimating power consumption of the system level representation, wherein estimating power consumption comprises updating a system level parser with a power consumption computation function used during system level simulation;
adjusting the system level representation when the power consumption estimate fails to meet a power consumption requirement.
2. The method of claim 1 wherein the system level representation is an algorithmic representation of the electronic design.
3. The method of claim 1 wherein the system level representation is a system level design of the electronic design.
4. The method of claim 1 wherein estimating power consumption of the system level representation comprises consulting library information.
5. The method of claim 4 wherein the library information comprises:
power consumption information for a plurality of electronic design components; and
power consumption information for combinations of electronic design components.
6. The method of claim 1 further comprising:
generating a gate level representation of the electronic design based on the system level representation;
estimating power consumption of the gate level representation to produce a gate level power consumption estimate; and
when the gate level power consumption estimate fails to meet a gate level power consumption requirement, adjusting at least one of the following:
the system level representation; or
the gate level representation.
7. The method of claim 6 wherein estimating power consumption of the system level representation comprises consulting library information and further wherein estimating power consumption of the gate level representation comprises consulting library information.
8. The method of claim 1 wherein estimating power consumption of the system level representation comprises:
wherein at the end of a system level simulation, an area and tog rate variable gets read by the power consumption computation function.
9. The method of claim 1 further comprising:
generating a hardware level representation of the electronic design;
measuring power consumption of the hardware level representation to produce a hardware level power consumption measurement;
when the hardware level power consumption measurement fails to meet a hardware level power consumption requirement, adjusting at least one of the following:
the system level representation; or
the hardware level representation.
10. A computer-implemented method of estimating power consumption of an electronic design implementable in an FPGA or ASIC, the method comprising:
generating a system level representation of the electronic design;
estimating power consumption of the system level representation to produce a system level power consumption estimate, wherein estimating power consumption comprises updating a system level parser with a power consumption computation function used during system level simulation;
when the system level power consumption estimate fails to meet a power consumption requirement, adjusting the system level representation;
generating a gate level representation of the electronic design based on the system level representation;
estimating power consumption of the gate level representation to produce a gate level power consumption estimate; and
when the gate level power consumption estimate fails to meet a gate level power consumption requirement, adjusting at least one of the following:
the system level representation; or
the gate level representation.
11. The method of claim 10 further comprising:
generating a hardware level representation of the electronic design;
measuring power consumption of the hardware level representation to produce a hardware level power consumption measurement;
when the hardware level power consumption measurement fails to meet a hardware level power consumption requirement, adjusting at least one of the following:
the system level representation;
the gate level representation; or
the hardware level representation.
12. The method of claim 10 wherein the system level power consumption requirement and the gate level power consumption requirement are the same and are a maximum power consumption value.
13. The method of claim 10 further comprising:
estimating area usage of the gate level representation to produce a gate level area usage estate; and
when the gate level area usage estimate fails to meet a gate level area usage requirement, adjusting at least one of the following:
the system level representation; or
the gate level representation.
14. The method of claim 13 further comprising:
generating a hardware level representation of the electronic design;
measuring power consumption of the hardware level representation to produce a hardware level power consumption measurement;
when the hardware level power consumption measurement fails to meet a hardware level power consumption requirement, adjusting at least one of the following:
the system level representation;
the gate level representation; or
the hardware level representation.
15. The method of claim 10 wherein the system level representation is based on an algorithmic representation of the electronic design and further wherein adjusting the system level representation comprises adjusting the algorithmic representation.
16. The method of claim 10 wherein performing the system level power consumption estimation comprises consulting library information, the library information comprising:
power consumption information for a plurality of electronic design components; and
power consumption information for combinations of electronic design components.
17. The method of claim 16 wherein the electronic design comprises pre-characterized blocks.
18. The method of claim 16 wherein the library information is based on at least one of the following:
clock structure;
dynamic IO ranges;
on-chip usage;
off-chip usage;
chip partitioning;
input data characteristics;
input stimuli;
node toggling rates; and
node port fan-out.
19. The method of claim 18 wherein the area usage estimation, system speed estimation and power consumption estimation are combined to produce a combined estimation for the electronic design.
20. The method of claim 16 wherein the library information is adaptive.
21. The method of claim 10 further comprising estimating area usage and estimating system speed for the electronic design.
22. A computer program product comprising a machine readable medium on which is provided program instructions for estimating power consumption of an electronic design implementable in an FPGA or ASIC, the program instructions comprising:
instructions for generating a system level representation of the electronic design;
instructions for estimating power consumption of the system level representation;
wherein estimating power consumption comprises updating a system level parser with a power consumption computation function used during system level simulation; and
instructions for adjusting the system level representation when the power consumption estimate fails to meet a power consumption requirement.
23. The computer program product of claim 22 wherein the system level representation is an algorithmic representation of the electronic design.
24. The method of claim 22 wherein the system level representation is a system level design of the electronic design.
25. The computer program product of claim 22 wherein estimating power consumption of the system level representation comprises consulting library information.
26. The computer program product of claim 25 wherein the library information comprises:
power consumption information for a plurality of electronic design components; and
power consumption information for combinations of electronic design components.
27. The computer program product of claim 25 wherein the library information is a database.
28. The computer program product of claim 22 further comprising:
instructions for generating a gate level representation of the electronic design based on the system level representation;
instructions for estimating power consumption of the gate level representation to produce a gate level power consumption estimate, wherein estimating power consumption comprises updating a system level parser with a power consumption computation function used during system level simulation; and
instructions for adjusting at least one of the following when the gate level power consumption estimate fails to meet a gate level power consumption requirement:
the system level representation; or
the gate level representation.