US20080147403A1 - Multiple sound fragments processing and load balancing - Google Patents
Multiple sound fragments processing and load balancing Download PDFInfo
- Publication number
- US20080147403A1 US20080147403A1 US12/041,427 US4142708A US2008147403A1 US 20080147403 A1 US20080147403 A1 US 20080147403A1 US 4142708 A US4142708 A US 4142708A US 2008147403 A1 US2008147403 A1 US 2008147403A1
- Authority
- US
- United States
- Prior art keywords
- sound fragments
- processing system
- voice command
- fragments
- sound
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000012634 fragment Substances 0.000 title claims abstract description 232
- 238000012545 processing Methods 0.000 title claims description 194
- 230000009471 action Effects 0.000 claims description 40
- 230000015654 memory Effects 0.000 claims description 22
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000000034 method Methods 0.000 abstract description 39
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 30
- 238000004590 computer program Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/32—Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/226—Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
- G10L2015/228—Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context
Definitions
- the present invention relates to a method and apparatus for recognizing words, and more particularly, voice commands configured to execute certain actions.
- Telephone systems have evolved quite considerably in recent times.
- Today, complex telephone stations connect to sophisticated switching systems to perform a wide range of different telecommunication functions.
- the typical modern-day telephone systems feature a panoply of different function buttons, including a button to place a conference call, a button to place a party on hold, a button to flash the receiver, a button to select different outside lines or extensions and buttons that can be programmed to automatically dial different frequently called numbers.
- buttons including a button to place a conference call, a button to place a party on hold, a button to flash the receiver, a button to select different outside lines or extensions and buttons that can be programmed to automatically dial different frequently called numbers.
- buttons that may be included on the telephone device, and that limit is rapidly being approached.
- voice command recognitions systems may provide one solution for facilitating the use of telephone systems.
- Voice command recognition systems allow a user to input voice commands during a conversation to a telephone system. Upon recognition of the voice commands, certain actions for which the voice commands are configured are invoked. Such actions for which the voice commands are configured include telephone conferencing another person into the conversation, retrieving a telephone number during the conversation, or recording the telephone conversation, etc.
- Voice command recognition systems generally process each word from beginning to end, including every syllable or sound fragment in each word. Consequently, voice command recognition systems generally consume a high degree of processing system resources when monitoring a variety of voice commands during a conversation. Due to the high degree of processing system resource consumption, monitoring a variety of voice commands during multiple conversations can prove to be a difficult task for most voice command recognition systems today.
- the present invention is directed to a method of recognizing a voice command.
- the method comprises: receiving a voice input; determining a number of sound fragments to be processed in a first set of sound fragments of the voice input; using the number of sound fragments, determining whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then determining whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- the present invention is directed to a method of recognizing a voice command.
- the method comprises: receiving a voice input; determining, by a load manager, a number of sound fragments to be processed in a first set of sound fragments of the voice input; using the number of sound fragments, determining, by a first processing system, whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then determining, by a second processing system, whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- the present invention is directed to a computer readable medium containing a program which, when executed, performs an operation.
- the operation comprises: receiving a voice input; determining a number of sound fragments to be processed in a first set of sound fragments of the voice input; using the number of sound fragments, determining whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then determining whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- the present invention is directed to a computer readable medium containing a program which, when executed, performs an operation.
- the operation comprises: receiving a voice input; determining, by a load manager, a number of sound fragments to be processed in a first set of sound fragments of the voice input; using the number of sound fragments, determining, by a first processing system, whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then determining, by a second processing system, whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- the present invention is directed to a voice command recognition system.
- the system comprises: a load manager configured for determining a number of sound fragments to be processed in a first set of sound fragments of a voice input.
- the system further comprises a first processing system comprising: a memory containing a first voice command recognition program; and a processor which, when executing the first voice command recognition program, performs an operation.
- the operation comprises: receiving the voice input; using the number of sound fragments, determining whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then forwarding the voice input to a second processing system.
- the system further comprises the second processing system, which comprises a memory containing a second voice command recognition program; and a processor which, when executing the second voice command recognition program, performs an operation.
- the operation comprises: receiving the voice input from the first processing system; and determining whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- FIG. 1A is a block diagram of a voice command recognition system in accordance with an embodiment of the present invention.
- FIG. 1B is a high-level diagram of one embodiment of a computer system in accordance with an embodiment of the present invention.
- FIG. 2 illustrates a list of voice command fragments or sound fragments in accordance with an embodiment of the present invention
- FIG. 3 is a process for processing each word by the primary processing system in accordance with an embodiment of the present invention.
- FIG. 4 illustrates process for processing the remaining sound fragments by the second processing system in accordance with an embodiment of the present invention
- FIG. 5 is a block diagram of a voice command recognition system In accordance with an embodiment of the present invention.
- FIG. 6 is a process for processing each word by the primary processing system in accordance with an embodiment of the present invention.
- FIG. 7 illustrates a process for processing the remaining sound fragments by the secondary processing system in accordance with an embodiment of the present invention.
- FIG. 8 illustrates a process for managing the number of sound fragments to be processed by the primary processing system in the first set of sound fragments in accordance with an embodiment of the present invention.
- Embodiments of the present invention are generally directed to a voice command recognition system.
- the voice command recognition system comprises a primary processing system, a secondary processing system and a load manager.
- the primary processing system is configured to process a first set of sound fragments of the voice input. The number of sound fragments in the first set of sound fragments is determined by the load manager.
- the load manager is configured to monitor the load of the primary processing system and the secondary processing system. If the load of the secondary processing system exceeds a threshold, then the number of sound fragments to be processed by the primary processing system will increase. In this manner, the load of the secondary processing system is alleviated. If the load of the primary processing system exceeds a threshold, then the number of sound fragments to be processed by the primary processing system will be reduced.
- the primary processing system determines whether the first set of sound fragments matches with a first set of sound fragments of a voice command. If the first set of sound fragments matches with a first set of sound fragments of a voice command, then the primary processing system will transfer the voice input to the secondary processing system for further processing. If the first set of sound fragments does not match with a first set of sound fragments of a voice command, then the primary processing system will discard the voice input and processes the next voice input.
- the secondary processing system Upon receipt of the voice input from the primary processing system, the secondary processing system determines whether the remaining sound fragments matches with the remaining sound fragments of the voice command. In one embodiment, the secondary processing system retrieves a total number of sound fragments from a database and determines the remaining sound fragments of the voice command. If the remaining sound fragments match with the remaining sound fragments of the voice command, then the secondary processing system sends a signal to an action generator to invoke an action for which the voice command is configured. If the remaining sound fragments does not match with the remaining sound fragments of the voice command, then the secondary processing system will discard the voice input and waits for the next voice input to be processed from the primary processing system.
- the voice command recognition system of the present invention can quickly abandon processing the voice input prior to the whole voice input being uttered, which consequently conserves processing system resources.
- the use of the load manager in accordance with an embodiment of the invention further optimizes the efficiency of system resource utilization. In this manner, embodiments of the present invention increase the scalability of voice command recognition systems.
- One embodiment of the invention is implemented as a program product for use with a computer system such as, for example, the voice command recognition system 100 shown in FIG. 1A and described below.
- the program(s) of the program product defines functions of the embodiments (including the methods described herein) and can be contained on a variety of signal-bearing media.
- Illustrative signal-bearing media include, but are not limited to: (i) information permanently stored on non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive); (ii) alterable information stored on writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive); and (iii) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications. The latter embodiment specifically includes information downloaded from the Internet and other networks.
- Such signal-bearing media when carrying computer-readable instructions that direct the functions of the present invention, represent embodiments of the present invention.
- routines executed to implement the embodiments of the invention may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions.
- the computer program of the present invention typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions.
- programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices.
- various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
- the voice command recognition system 100 includes a primary processing system 10 , a secondary processing system 20 and an action generator 60 .
- a voice input 5 is received by the primary processing system 10 .
- Voice input 5 is generally considered the audio data that is input to the voice command recognition system 100 and is intended to represent any type of audio data.
- the voice input 5 comprises one or more voice channels. Each voice channel is generally considered a digital signal representation of one conversation, which contains many words, spoken by one or more human beings or machines.
- the voice input 5 undergoes an analog to digital conversion prior to being received by the primary processing system 10 . If, however, the voice input 5 is digital, then no analog-to-digital conversion is needed.
- the primary processing system 10 is configured to receive the voice input 5 , monitor only the first sound fragment or fragment of each word and transfer to the secondary processing system 20 for further processing only the words whose first sound fragment matches with a first sound fragment of a voice command.
- a sound fragment may generally be considered a time-based fragment of a word.
- the secondary processing system 20 is configured to process the remaining sound fragments or fragments of the word received from the primary processing system 10 to determine if the word is a voice command. If the word is a voice command, then the action generator 60 is configured to determine which action is to be invoked in response to the voice command and invokes a desired action 70 . Details of this process will be discussed in the following paragraphs.
- the voice command recognition system 100 further includes a memory 30 comprising a list 40 of voice command fragments and a mapping 50 of each voice command to a particular desired action.
- the voice command fragments list 40 is configured to be used by the primary processing system 10 and the secondary processing system 20 in analyzing and processing each word. Details of the voice command fragments list 40 will be discussed in the following paragraphs.
- the voice command to action mapping 50 generally comprises a list of voice commands and a particular action that each voice command is configured to invoke.
- the voice command to action mapping 50 is used by the action generator 60 to determine which action is correlated with the voice command. Action generators, such as the action generator 60 , are well known to those skilled in the art, and thus will not be discussed further except as it pertains to the present invention.
- the primary processing system 10 and the secondary processing system 20 may be any computer system, such as computer system 110 shown in FIG. 1B .
- the computer system 110 may represent any type of computer, computer system or other programmable electronic device, including a client computer, a server computer, a portable computer, an embedded controller, etc.
- the computer system 110 may be a standalone device or networked into a larger system.
- the computer system 110 is an AS/400 available from International Business Machines of Armonk, N.Y.
- the computer system 110 generally includes at least one processor 112 , which obtains instructions and data via a bus 114 from a main memory 116 .
- the computer system 110 is adapted to support the methods, apparatus and article of manufacture of the invention.
- the computer system 110 can be connected to a number of operators and peripheral systems.
- the computer system 110 includes a storage device 138 , input devices 142 , output devices 148 , and a plurality of networked devices 146 .
- Each of the peripheral systems is operably connected to the computer system 110 via interfaces 136 , 140 and 144 .
- the storage device 138 is DASD (Direct Access Storage Device), although it could be any other storage such as floppy disc drives or optical storage. Even though the storage device 138 is shown as a single unit, it could be any combination of fixed and/or removable storage devices, such as fixed disc drives, floppy disc drives, tape drives, removable memory cards, or optical storage.
- the input devices 142 can be any device to give input to the computer system 110 .
- a keyboard, keypad, light pen, touch screen, button, mouse, track ball, or speech recognition unit could be used.
- the output devices 148 include any conventional display screen and, although shown separately from the input devices 142 , the output devices 148 and the input devices 142 could be combined.
- a display screen with an integrated touch screen, and a display with an integrated keyboard, or a speech recognition unit combined with a text speech converter could be used.
- the main memory 116 can be one or a combination of memory devices, including Random Access Memory, nonvolatile or backup memory, (e.g., programmable or Flash memories, read-only memories, etc.).
- the main memory 116 may be considered to include memory physically located elsewhere in a computer system 110 , for example, any storage capacity used as virtual memory or stored on a mass storage device or on another computer coupled to the computer system 110 via the bus 114 . While the main memory 116 is shown as a single entity, it should be understood that main memory 116 may in fact comprise a plurality of modules, and that the main memory 116 may exist at multiple levels, from high speed registers and caches to lower speed but larger DRAM chips.
- the main memory 116 includes an operating system 118 and a computer program 120 to operate one or more embodiments of the present invention.
- the operating system 118 is the software used for managing the operation of the computer system 110 . Examples of the operating system 118 include IBM OS/400, UNIX, Microsoft Windows, and the like. Details of the computer program 120 with respect to the primary processing system 10 and the secondary processing system 20 will be discussed with reference to FIGS. 3 and 4 .
- the voice command fragments list 40 comprises a list of voice commands 210 , the total number of fragments 220 each voice command contains and each individual fragment (e.g., Fragment 1 , Fragment 2 , etc.).
- the total number of fragments 220 is generally determined by the amount of time it takes to pronounce the voice command. Each fragment can therefore be generally considered a sound fragment.
- a sound fragment is generally considered a time-based fragment of a word. For instance, the voice command “hold” has two sound fragments, the voice command “transfer” has four sound fragments, and the voice command “conference” has six sound fragments.
- the data under each fragment represents the sound fragment for that particular fragment.
- Each of these sound fragments is used in determining whether each word received by the voice command recognition system 100 is a voice command.
- the primary processing system 10 uses only the first sound fragment (e.g., data under Fragment 1 for “transfer”) of each voice command to determine whether the first sound fragment of each word matches with the first sound fragment of each voice command.
- the secondary processing system 20 uses the remaining sound fragments (e.g., data under Fragment 2 and Fragment 3 for “transfer”) to determine whether the remaining sound fragments of the word received from the primary processing system 10 matches with the remaining sound fragments of the voice command. Details of various uses of the voice command fragments list 40 will be discussed in the following paragraphs.
- a process 300 for processing each word by the primary processing system 10 in accordance with an embodiment of the present invention is illustrated.
- the primary processing system 10 processes only the first sound fragment of the voice input 5 .
- the primary processing system 10 processes the voice input 5 one word at a time.
- the primary processing system 10 compares the first sound fragment with the first sound fragment of each voice command stored in the voice command fragments list 40 . If the first sound fragment matches with the first sound fragment of a voice command, then the voice input is forwarded to the secondary processing system 20 for further processing (step 340 ).
- the primary processing system 10 discards the voice input 5 and processes the next voice input 5 .
- the primary processing system 10 is configured to continuously process words from the voice input 5 .
- the process 300 may be embodied as a computer program, such as the computer program 120 .
- the word to be processed is received (from the primary processing system 10 ) by the secondary processing system 20 .
- the secondary processing system 20 determines the remaining number of sound fragments to be processed. In one embodiment, the secondary processing system 20 retrieves the total number of fragments (or sound fragments) 220 for the voice command to determine the remaining number of sound fragments to be processed. The secondary processing system 20 may retrieve the total number of fragments (or sound fragments) 220 from the voice command fragments list 40 .
- the secondary processing system 20 compares the remaining sound fragments of the word with the remaining sound fragments of the voice command. If the remaining sound fragments match the remaining sound fragments of the voice command, then the voice command recognition system 100 invokes the desired action 70 for which the voice command is configured (step 460 ). In one embodiment, the desired action 70 is invoked by the action generator 60 . On the other hand, if the remaining sound fragments of the word do not match with the remaining sound fragments of the voice command, then the word is discarded and the secondary processing system 20 waits for the next word to be processed.
- the process 400 may be embodied as a computer program, such as the computer program 120 .
- the voice command recognition system 500 includes a primary processing system 510 , a secondary processing system 520 , an action generator 560 and a load manager 570 .
- a voice input 505 is received by the primary processing system 510 .
- Voice input 505 is generally considered the audio data that is input to the voice command recognition system 500 and is intended to represent any type of audio data.
- the voice input 505 may be comprised of one or more voice channels. Each voice channel is generally considered a digital signal representation of one conversation, which contains many words, spoken by one or more individuals.
- the voice input 505 undergoes an analog to digital conversion prior to being received by the primary processing system 510 . If, however, the voice input 505 is digital, then no analog-to-digital conversion is needed.
- the primary processing system 510 is configured to receive the voice input 505 , monitor a first set of sound bites or fragments of each word and transfer to the secondary processing system 520 for further processing only those words whose first set of sound bites matches with a first set of sound bites of a voice command.
- the secondary processing system 520 is configured to process the remaining sound bites or fragments of the word received from the primary processing system 510 to determine if the word is a voice command. If the word is a voice command, then the action generator 560 is configured to determine which action to be invoked in response to the voice command and invokes a desired action 570 . Details of this process will be discussed in the following paragraphs.
- the number of sound bites 575 in the first set of sound bites is determined by the load manager 570 .
- the load manager 570 is configured to monitor the processing loads (or CPU utilization) of the primary processing system 510 and the secondary processing system 520 . If the load manager 570 determines that the load of the secondary processing system 520 exceeds a threshold, then the number of sound bites 575 in the first set of sound bites to be processed by the primary processing system 510 is increased. For example, instead of monitoring only the first sound bite of each word, the primary processing system 510 monitors the first three sound bites of each word. As a result, the remaining sound bites to be processed by the secondary processing system 520 are reduced. In this manner, the load of the secondary processing system 520 is alleviated.
- the first set of sound bites to be processed by the primary processing system 510 is reduced accordingly.
- the first set of sound bites to be processed by the primary processing system 510 may be reduced from the first three sound bites to only the first sound bite.
- the primary processing system 510 processes the first sound bite.
- the first set of sound bites to be processed by the primary processing system 510 is determined by the number of voice commands to be matched by the primary processing system 510 . That is, the higher the number of voice commands to be matched by the primary processing system 510 , the fewer sound bites the first set of sound bites contains. Conversely, the lower the number of voice commands to be matched, the more sound bites the first set of sound bites contains.
- the voice command recognition system 500 further comprises a memory 530 comprising a list 40 of voice command fragments and a mapping 550 of each voice command to a particular desired action.
- the voice command fragments list 40 is configured to be used by the primary processing system 510 and the secondary processing system 520 in analyzing and processing each word.
- the voice command to action mapping 550 generally comprises a list of voice commands and a particular action that each voice command is configured to invoke.
- the voice command to action mapping 550 is used by the action generator 560 to determine which action is correlated with the voice command.
- Action generators, such as the action generator 560 are well known to those skilled in the art, and thus will not be discussed further except as it pertains to the present invention.
- the primary processing system 510 , the secondary processing system 520 and the load manager 570 may be any computer system, such as computer system 110 shown in FIG. 1B and discussed with reference thereto.
- the primary processing system 510 receives the voice input 505 .
- the primary processing system 510 processes only the first set of fragments or sound bites of the word.
- the primary processing system 510 may process the first two sound bites of the word or the first three sound bites of the word.
- the number of sound bites 575 to be processed is determined by the load manager 570 .
- the load manager 570 determines the number of sound bites 575 to be processed by the primary processing system 510 based on the loads of the primary processing system 510 and the secondary processing system 520 at the time. Consequently, before the primary processing system 510 processes the first set of sound bites of the word, the primary processing system 510 retrieves the number of sound bites 575 , which indicates the number of sound bites to be processed in the first set of sound bites (step 620 ). At steps 630 - 650 , using the number of sound bites 575 , the primary processing system 510 compares the first set of sound bites of the word with the first set of sound bites of each voice command stored in the voice command fragments list 40 .
- the primary processing system 510 processes the next word from the voice input 505 .
- the primary processing system 510 is configured to continuously receive words from the voice input 505 .
- the process 600 may be embodied as a computer program, such as the computer program 120 .
- the word to be processed is received (from the primary processing system 510 ) by the secondary processing system 520 .
- the secondary processing system 520 determines the remaining number of sound bites to be processed. In one embodiment, the secondary processing system 520 retrieves the total number of fragments (or sound bites) 220 for the voice command to determine the remaining number of sound bites to be processed. The secondary processing system 520 may retrieve the total number of fragments (or sound bites) 220 from the voice command fragments list 40 .
- the secondary processing system 520 compares the remaining sound bites of the word with the remaining sound bites of the voice command. If the remaining sound bites of the word match the remaining sound bites of the voice command, then the voice command recognition system 100 invokes the desired action 570 for which the voice command is configured (step 760 ). In one embodiment, the desired action 570 is invoked by the action generator 560 .
- the number of sound bites 575 indicates the number of sound bites the primary processing system 510 processes in the first set of sound bites.
- the load manager 570 monitors the load of the primary processing system 510 .
- a determination is made as to whether the load of the primary processing system 510 exceeds a threshold. In one embodiment, the threshold is predefined. If the load of the primary processing system 510 does not exceed the threshold, then processing returns to step 810 .
- the number of sound bites 575 is reduced (step 830 ).
- the minimum number of number of sound bites 575 is one, which correlates to the first sound bite.
- a copy of the number of sound bites 575 is stored in the primary processing system 510 , such as the memory 116 . Processing then returns to step 810 .
- the load manager 570 In addition to monitoring the load of the primary processing system 510 , the load manager 570 also monitors the load of the secondary processing system 520 (step 850 ). At step 860 , a determination is made as to whether the load of the secondary processing system 520 exceeds a threshold. In one embodiment, the threshold is predefined. If the load of the secondary processing system 520 does not exceed the threshold, then processing returns to step 850 . On the other hand, if the load of the secondary processing system 520 exceeds the threshold, then the number of sound bites 575 is increased (step 870 ). By increasing the number of sound bites processed by the primary processing system 510 , the remaining number of sound bites processed by the secondary processing system 520 is reduced.
- step 880 a copy of the number of sound bites 575 is stored in the primary processing system 510 , such as the memory 116 . Processing then returns to step 850 .
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
- This application is a continuation of co-pending U.S. patent application Ser. No. 10/164,972, filed Jun. 6, 2002, which is herein incorporated by reference in its entirety.
- The present invention relates to a method and apparatus for recognizing words, and more particularly, voice commands configured to execute certain actions.
- Telephone systems have evolved quite considerably in recent times. Today, complex telephone stations connect to sophisticated switching systems to perform a wide range of different telecommunication functions. The typical modern-day telephone systems feature a panoply of different function buttons, including a button to place a conference call, a button to place a party on hold, a button to flash the receiver, a button to select different outside lines or extensions and buttons that can be programmed to automatically dial different frequently called numbers. Clearly, there is a practical limit to the number of buttons that may be included on the telephone device, and that limit is rapidly being approached.
- It has been suggested that voice command recognitions systems may provide one solution for facilitating the use of telephone systems. Voice command recognition systems allow a user to input voice commands during a conversation to a telephone system. Upon recognition of the voice commands, certain actions for which the voice commands are configured are invoked. Such actions for which the voice commands are configured include telephone conferencing another person into the conversation, retrieving a telephone number during the conversation, or recording the telephone conversation, etc.
- Voice command recognition systems generally process each word from beginning to end, including every syllable or sound fragment in each word. Consequently, voice command recognition systems generally consume a high degree of processing system resources when monitoring a variety of voice commands during a conversation. Due to the high degree of processing system resource consumption, monitoring a variety of voice commands during multiple conversations can prove to be a difficult task for most voice command recognition systems today.
- A need therefore exists to provide an improved method and system for recognizing voice commands.
- In one embodiment, the present invention is directed to a method of recognizing a voice command. The method comprises: receiving a voice input; determining a number of sound fragments to be processed in a first set of sound fragments of the voice input; using the number of sound fragments, determining whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then determining whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- In another embodiment, the present invention is directed to a method of recognizing a voice command. The method comprises: receiving a voice input; determining, by a load manager, a number of sound fragments to be processed in a first set of sound fragments of the voice input; using the number of sound fragments, determining, by a first processing system, whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then determining, by a second processing system, whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- In yet another embodiment, the present invention is directed to a computer readable medium containing a program which, when executed, performs an operation. The operation comprises: receiving a voice input; determining a number of sound fragments to be processed in a first set of sound fragments of the voice input; using the number of sound fragments, determining whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then determining whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- In still another embodiment, the present invention is directed to a computer readable medium containing a program which, when executed, performs an operation. The operation comprises: receiving a voice input; determining, by a load manager, a number of sound fragments to be processed in a first set of sound fragments of the voice input; using the number of sound fragments, determining, by a first processing system, whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then determining, by a second processing system, whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- In yet still another embodiment, the present invention is directed to a voice command recognition system. The system comprises: a load manager configured for determining a number of sound fragments to be processed in a first set of sound fragments of a voice input. The system further comprises a first processing system comprising: a memory containing a first voice command recognition program; and a processor which, when executing the first voice command recognition program, performs an operation. The operation comprises: receiving the voice input; using the number of sound fragments, determining whether the first set of sound fragments of the voice input matches with a first set of sound fragments of a voice command; and if the first set of sound fragments matches with the first set of sound fragments of the voice command, then forwarding the voice input to a second processing system. The system further comprises the second processing system, which comprises a memory containing a second voice command recognition program; and a processor which, when executing the second voice command recognition program, performs an operation. The operation comprises: receiving the voice input from the first processing system; and determining whether one or more remaining sound fragments matches with one or more remaining sound fragments of the voice command.
- So that the manner in which the above recited features, advantages and objects of the present invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
- It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
-
FIG. 1A is a block diagram of a voice command recognition system in accordance with an embodiment of the present invention; -
FIG. 1B is a high-level diagram of one embodiment of a computer system in accordance with an embodiment of the present invention; -
FIG. 2 illustrates a list of voice command fragments or sound fragments in accordance with an embodiment of the present invention; -
FIG. 3 is a process for processing each word by the primary processing system in accordance with an embodiment of the present invention; -
FIG. 4 illustrates process for processing the remaining sound fragments by the second processing system in accordance with an embodiment of the present invention; -
FIG. 5 is a block diagram of a voice command recognition system In accordance with an embodiment of the present invention; -
FIG. 6 is a process for processing each word by the primary processing system in accordance with an embodiment of the present invention; -
FIG. 7 illustrates a process for processing the remaining sound fragments by the secondary processing system in accordance with an embodiment of the present invention; and -
FIG. 8 illustrates a process for managing the number of sound fragments to be processed by the primary processing system in the first set of sound fragments in accordance with an embodiment of the present invention. - Embodiments of the present invention are generally directed to a voice command recognition system. In one embodiment, the voice command recognition system comprises a primary processing system, a secondary processing system and a load manager. The primary processing system is configured to process a first set of sound fragments of the voice input. The number of sound fragments in the first set of sound fragments is determined by the load manager. The load manager is configured to monitor the load of the primary processing system and the secondary processing system. If the load of the secondary processing system exceeds a threshold, then the number of sound fragments to be processed by the primary processing system will increase. In this manner, the load of the secondary processing system is alleviated. If the load of the primary processing system exceeds a threshold, then the number of sound fragments to be processed by the primary processing system will be reduced.
- In processing the first set of sound fragments, the primary processing system determines whether the first set of sound fragments matches with a first set of sound fragments of a voice command. If the first set of sound fragments matches with a first set of sound fragments of a voice command, then the primary processing system will transfer the voice input to the secondary processing system for further processing. If the first set of sound fragments does not match with a first set of sound fragments of a voice command, then the primary processing system will discard the voice input and processes the next voice input.
- Upon receipt of the voice input from the primary processing system, the secondary processing system determines whether the remaining sound fragments matches with the remaining sound fragments of the voice command. In one embodiment, the secondary processing system retrieves a total number of sound fragments from a database and determines the remaining sound fragments of the voice command. If the remaining sound fragments match with the remaining sound fragments of the voice command, then the secondary processing system sends a signal to an action generator to invoke an action for which the voice command is configured. If the remaining sound fragments does not match with the remaining sound fragments of the voice command, then the secondary processing system will discard the voice input and waits for the next voice input to be processed from the primary processing system.
- By processing a set of sound fragments at a time, as opposed to the whole voice input, the voice command recognition system of the present invention can quickly abandon processing the voice input prior to the whole voice input being uttered, which consequently conserves processing system resources. The use of the load manager in accordance with an embodiment of the invention further optimizes the efficiency of system resource utilization. In this manner, embodiments of the present invention increase the scalability of voice command recognition systems.
- One embodiment of the invention is implemented as a program product for use with a computer system such as, for example, the voice
command recognition system 100 shown inFIG. 1A and described below. The program(s) of the program product defines functions of the embodiments (including the methods described herein) and can be contained on a variety of signal-bearing media. Illustrative signal-bearing media include, but are not limited to: (i) information permanently stored on non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive); (ii) alterable information stored on writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive); and (iii) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications. The latter embodiment specifically includes information downloaded from the Internet and other networks. Such signal-bearing media, when carrying computer-readable instructions that direct the functions of the present invention, represent embodiments of the present invention. - In general, the routines executed to implement the embodiments of the invention, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions. The computer program of the present invention typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
- Referring now to
FIG. 1A , a block diagram of a voicecommand recognition system 100 in accordance with an embodiment of the present invention is illustrated. The voicecommand recognition system 100 includes aprimary processing system 10, asecondary processing system 20 and anaction generator 60. As illustrated inFIG. 1A , avoice input 5 is received by theprimary processing system 10.Voice input 5 is generally considered the audio data that is input to the voicecommand recognition system 100 and is intended to represent any type of audio data. In one embodiment, thevoice input 5 comprises one or more voice channels. Each voice channel is generally considered a digital signal representation of one conversation, which contains many words, spoken by one or more human beings or machines. In another embodiment, thevoice input 5 undergoes an analog to digital conversion prior to being received by theprimary processing system 10. If, however, thevoice input 5 is digital, then no analog-to-digital conversion is needed. - In accordance with an embodiment of the present invention, the
primary processing system 10 is configured to receive thevoice input 5, monitor only the first sound fragment or fragment of each word and transfer to thesecondary processing system 20 for further processing only the words whose first sound fragment matches with a first sound fragment of a voice command. A sound fragment may generally be considered a time-based fragment of a word. Thesecondary processing system 20, on the other hand, is configured to process the remaining sound fragments or fragments of the word received from theprimary processing system 10 to determine if the word is a voice command. If the word is a voice command, then theaction generator 60 is configured to determine which action is to be invoked in response to the voice command and invokes a desiredaction 70. Details of this process will be discussed in the following paragraphs. - The voice
command recognition system 100 further includes amemory 30 comprising alist 40 of voice command fragments and amapping 50 of each voice command to a particular desired action. The voice command fragmentslist 40 is configured to be used by theprimary processing system 10 and thesecondary processing system 20 in analyzing and processing each word. Details of the voice command fragmentslist 40 will be discussed in the following paragraphs. The voice command toaction mapping 50 generally comprises a list of voice commands and a particular action that each voice command is configured to invoke. The voice command toaction mapping 50 is used by theaction generator 60 to determine which action is correlated with the voice command. Action generators, such as theaction generator 60, are well known to those skilled in the art, and thus will not be discussed further except as it pertains to the present invention. - In accordance with an embodiment of the present invention, the
primary processing system 10 and thesecondary processing system 20 may be any computer system, such ascomputer system 110 shown inFIG. 1B . For purposes of theinvention 1 thecomputer system 110 may represent any type of computer, computer system or other programmable electronic device, including a client computer, a server computer, a portable computer, an embedded controller, etc. Thecomputer system 110 may be a standalone device or networked into a larger system. In one embodiment, thecomputer system 110 is an AS/400 available from International Business Machines of Armonk, N.Y. - The
computer system 110 generally includes at least oneprocessor 112, which obtains instructions and data via abus 114 from amain memory 116. Thecomputer system 110 is adapted to support the methods, apparatus and article of manufacture of the invention. - The
computer system 110 can be connected to a number of operators and peripheral systems. Illustratively, thecomputer system 110 includes astorage device 138,input devices 142,output devices 148, and a plurality ofnetworked devices 146. Each of the peripheral systems is operably connected to thecomputer system 110 viainterfaces storage device 138 is DASD (Direct Access Storage Device), although it could be any other storage such as floppy disc drives or optical storage. Even though thestorage device 138 is shown as a single unit, it could be any combination of fixed and/or removable storage devices, such as fixed disc drives, floppy disc drives, tape drives, removable memory cards, or optical storage. Theinput devices 142 can be any device to give input to thecomputer system 110. For example, a keyboard, keypad, light pen, touch screen, button, mouse, track ball, or speech recognition unit could be used. Theoutput devices 148 include any conventional display screen and, although shown separately from theinput devices 142, theoutput devices 148 and theinput devices 142 could be combined. For example, a display screen with an integrated touch screen, and a display with an integrated keyboard, or a speech recognition unit combined with a text speech converter could be used. - The
main memory 116 can be one or a combination of memory devices, including Random Access Memory, nonvolatile or backup memory, (e.g., programmable or Flash memories, read-only memories, etc.). In addition, themain memory 116 may be considered to include memory physically located elsewhere in acomputer system 110, for example, any storage capacity used as virtual memory or stored on a mass storage device or on another computer coupled to thecomputer system 110 via thebus 114. While themain memory 116 is shown as a single entity, it should be understood thatmain memory 116 may in fact comprise a plurality of modules, and that themain memory 116 may exist at multiple levels, from high speed registers and caches to lower speed but larger DRAM chips. - In one embodiment, the
main memory 116 includes anoperating system 118 and acomputer program 120 to operate one or more embodiments of the present invention. Theoperating system 118 is the software used for managing the operation of thecomputer system 110. Examples of theoperating system 118 include IBM OS/400, UNIX, Microsoft Windows, and the like. Details of thecomputer program 120 with respect to theprimary processing system 10 and thesecondary processing system 20 will be discussed with reference toFIGS. 3 and 4 . - Referring now to
FIG. 2 , an embodiment of the voice command fragmentslist 40 is illustrated. The voice command fragmentslist 40 comprises a list of voice commands 210, the total number offragments 220 each voice command contains and each individual fragment (e.g.,Fragment 1,Fragment 2, etc.). In one embodiment, the total number offragments 220 is generally determined by the amount of time it takes to pronounce the voice command. Each fragment can therefore be generally considered a sound fragment. And, a sound fragment is generally considered a time-based fragment of a word. For instance, the voice command “hold” has two sound fragments, the voice command “transfer” has four sound fragments, and the voice command “conference” has six sound fragments. Accordingly, the longer the voice command, the more sound fragments it has. The data under each fragment (e.g., Fragment 1) represents the sound fragment for that particular fragment. Each of these sound fragments is used in determining whether each word received by the voicecommand recognition system 100 is a voice command. In one embodiment, theprimary processing system 10 uses only the first sound fragment (e.g., data underFragment 1 for “transfer”) of each voice command to determine whether the first sound fragment of each word matches with the first sound fragment of each voice command. In another embodiment, thesecondary processing system 20 uses the remaining sound fragments (e.g., data underFragment 2 andFragment 3 for “transfer”) to determine whether the remaining sound fragments of the word received from theprimary processing system 10 matches with the remaining sound fragments of the voice command. Details of various uses of the voice command fragmentslist 40 will be discussed in the following paragraphs. - Referring now to
FIG. 3 , aprocess 300 for processing each word by theprimary processing system 10 in accordance with an embodiment of the present invention is illustrated. Atstep 310, as theprimary processing system 10 receives avoice input 5, theprimary processing system 10 processes only the first sound fragment of thevoice input 5. In one embodiment, theprimary processing system 10 processes thevoice input 5 one word at a time. At step 320-330, theprimary processing system 10 compares the first sound fragment with the first sound fragment of each voice command stored in the voice command fragmentslist 40. If the first sound fragment matches with the first sound fragment of a voice command, then the voice input is forwarded to thesecondary processing system 20 for further processing (step 340). If the first sound fragment does not match with the first sound fragment of any voice command, then theprimary processing system 10 discards thevoice input 5 and processes thenext voice input 5. Theprimary processing system 10 is configured to continuously process words from thevoice input 5. Theprocess 300 may be embodied as a computer program, such as thecomputer program 120. - Referring now to
FIG. 4 , one embodiment of aprocess 400 for processing the remaining sound fragments of the word by thesecondary processing system 20 in accordance withstep 340 is illustrated. Atstep 410, the word to be processed is received (from the primary processing system 10) by thesecondary processing system 20. Atstep 420, thesecondary processing system 20 determines the remaining number of sound fragments to be processed. In one embodiment, thesecondary processing system 20 retrieves the total number of fragments (or sound fragments) 220 for the voice command to determine the remaining number of sound fragments to be processed. Thesecondary processing system 20 may retrieve the total number of fragments (or sound fragments) 220 from the voice command fragmentslist 40. At steps 430-450, thesecondary processing system 20 compares the remaining sound fragments of the word with the remaining sound fragments of the voice command. If the remaining sound fragments match the remaining sound fragments of the voice command, then the voicecommand recognition system 100 invokes the desiredaction 70 for which the voice command is configured (step 460). In one embodiment, the desiredaction 70 is invoked by theaction generator 60. On the other hand, if the remaining sound fragments of the word do not match with the remaining sound fragments of the voice command, then the word is discarded and thesecondary processing system 20 waits for the next word to be processed. Theprocess 400 may be embodied as a computer program, such as thecomputer program 120. - Referring now to
FIG. 5 , a block diagram of a voicecommand recognition system 500 in accordance with another embodiment of the present invention is illustrated. The voicecommand recognition system 500 includes aprimary processing system 510, asecondary processing system 520, anaction generator 560 and aload manager 570. As illustrated inFIG. 5 , avoice input 505 is received by theprimary processing system 510.Voice input 505 is generally considered the audio data that is input to the voicecommand recognition system 500 and is intended to represent any type of audio data. Thevoice input 505 may be comprised of one or more voice channels. Each voice channel is generally considered a digital signal representation of one conversation, which contains many words, spoken by one or more individuals. In another embodiment, thevoice input 505 undergoes an analog to digital conversion prior to being received by theprimary processing system 510. If, however, thevoice input 505 is digital, then no analog-to-digital conversion is needed. - In accordance with an embodiment of the present invention, the
primary processing system 510 is configured to receive thevoice input 505, monitor a first set of sound bites or fragments of each word and transfer to thesecondary processing system 520 for further processing only those words whose first set of sound bites matches with a first set of sound bites of a voice command. Thesecondary processing system 520, on the other hand, is configured to process the remaining sound bites or fragments of the word received from theprimary processing system 510 to determine if the word is a voice command. If the word is a voice command, then theaction generator 560 is configured to determine which action to be invoked in response to the voice command and invokes a desiredaction 570. Details of this process will be discussed in the following paragraphs. - In this embodiment, the number of
sound bites 575 in the first set of sound bites is determined by theload manager 570. Theload manager 570 is configured to monitor the processing loads (or CPU utilization) of theprimary processing system 510 and thesecondary processing system 520. If theload manager 570 determines that the load of thesecondary processing system 520 exceeds a threshold, then the number ofsound bites 575 in the first set of sound bites to be processed by theprimary processing system 510 is increased. For example, instead of monitoring only the first sound bite of each word, theprimary processing system 510 monitors the first three sound bites of each word. As a result, the remaining sound bites to be processed by thesecondary processing system 520 are reduced. In this manner, the load of thesecondary processing system 520 is alleviated. On the other hand, if theload manager 570 determines that the load of theprimary processing system 510 exceeds a threshold, then the first set of sound bites to be processed by theprimary processing system 510 is reduced accordingly. For example, the first set of sound bites to be processed by theprimary processing system 510 may be reduced from the first three sound bites to only the first sound bite. At minimum, theprimary processing system 510 processes the first sound bite. In one embodiment, the first set of sound bites to be processed by theprimary processing system 510 is determined by the number of voice commands to be matched by theprimary processing system 510. That is, the higher the number of voice commands to be matched by theprimary processing system 510, the fewer sound bites the first set of sound bites contains. Conversely, the lower the number of voice commands to be matched, the more sound bites the first set of sound bites contains. - The voice
command recognition system 500 further comprises amemory 530 comprising alist 40 of voice command fragments and amapping 550 of each voice command to a particular desired action. The voice command fragmentslist 40 is configured to be used by theprimary processing system 510 and thesecondary processing system 520 in analyzing and processing each word. The voice command toaction mapping 550 generally comprises a list of voice commands and a particular action that each voice command is configured to invoke. The voice command toaction mapping 550 is used by theaction generator 560 to determine which action is correlated with the voice command. Action generators, such as theaction generator 560, are well known to those skilled in the art, and thus will not be discussed further except as it pertains to the present invention. - In accordance with an embodiment of the present invention, the
primary processing system 510, thesecondary processing system 520 and theload manager 570 may be any computer system, such ascomputer system 110 shown inFIG. 1B and discussed with reference thereto. - Referring now to
FIG. 6 , aprocess 600 for processing each word by theprimary processing system 510 in accordance with an embodiment of the present invention is illustrated. Atstep 610, theprimary processing system 510 receives thevoice input 505. As theprimary processing system 510 receives a word from thevoice input 505, theprimary processing system 510 processes only the first set of fragments or sound bites of the word. For example, theprimary processing system 510 may process the first two sound bites of the word or the first three sound bites of the word. In one embodiment, the number ofsound bites 575 to be processed is determined by theload manager 570. As previously mentioned, theload manager 570 determines the number ofsound bites 575 to be processed by theprimary processing system 510 based on the loads of theprimary processing system 510 and thesecondary processing system 520 at the time. Consequently, before theprimary processing system 510 processes the first set of sound bites of the word, theprimary processing system 510 retrieves the number ofsound bites 575, which indicates the number of sound bites to be processed in the first set of sound bites (step 620). At steps 630-650, using the number ofsound bites 575, theprimary processing system 510 compares the first set of sound bites of the word with the first set of sound bites of each voice command stored in the voice command fragmentslist 40. If the first set of sound bites of the word matches with the first set of sound bites of a voice command, then the word is forwarded to thesecondary processing system 520 for further processing. If the first set of sound bites of the word does not match with the first set of sound bites of any voice command, then the word is discarded and theprimary processing system 510 processes the next word from thevoice input 505. Theprimary processing system 510 is configured to continuously receive words from thevoice input 505. Theprocess 600 may be embodied as a computer program, such as thecomputer program 120. - Referring now to
FIG. 7 , aprocess 700 for processing the remaining sound bites of the word by thesecondary processing system 520 in accordance with an embodiment of the present invention is illustrated. Atstep 710, the word to be processed is received (from the primary processing system 510) by thesecondary processing system 520. Atstep 720, thesecondary processing system 520 determines the remaining number of sound bites to be processed. In one embodiment, thesecondary processing system 520 retrieves the total number of fragments (or sound bites) 220 for the voice command to determine the remaining number of sound bites to be processed. Thesecondary processing system 520 may retrieve the total number of fragments (or sound bites) 220 from the voice command fragmentslist 40. At steps 730-750, thesecondary processing system 520 compares the remaining sound bites of the word with the remaining sound bites of the voice command. If the remaining sound bites of the word match the remaining sound bites of the voice command, then the voicecommand recognition system 100 invokes the desiredaction 570 for which the voice command is configured (step 760). In one embodiment, the desiredaction 570 is invoked by theaction generator 560. - Referring now to
FIG. 8 , aprocess 800 for managing the number ofsound bites 575 for theprimary processing system 510 in accordance with an embodiment of the present invention is illustrated. As previously mentioned, the number ofsound bites 575 indicates the number of sound bites theprimary processing system 510 processes in the first set of sound bites. Atstep 810, theload manager 570 monitors the load of theprimary processing system 510. Atstep 820, a determination is made as to whether the load of theprimary processing system 510 exceeds a threshold. In one embodiment, the threshold is predefined. If the load of theprimary processing system 510 does not exceed the threshold, then processing returns to step 810. On the other hand, if the load of theprimary processing system 510 exceeds the threshold, then the number ofsound bites 575 is reduced (step 830). In one embodiment, the minimum number of number ofsound bites 575 is one, which correlates to the first sound bite. Atstep 840, a copy of the number ofsound bites 575 is stored in theprimary processing system 510, such as thememory 116. Processing then returns to step 810. - In addition to monitoring the load of the
primary processing system 510, theload manager 570 also monitors the load of the secondary processing system 520 (step 850). Atstep 860, a determination is made as to whether the load of thesecondary processing system 520 exceeds a threshold. In one embodiment, the threshold is predefined. If the load of thesecondary processing system 520 does not exceed the threshold, then processing returns to step 850. On the other hand, if the load of thesecondary processing system 520 exceeds the threshold, then the number ofsound bites 575 is increased (step 870). By increasing the number of sound bites processed by theprimary processing system 510, the remaining number of sound bites processed by thesecondary processing system 520 is reduced. Further, as a result of theprimary processing system 510 processing more sound bites, more words will be discarded by theprimary processing system 510, thereby reducing the number of words to be forwarded to thesecondary processing system 520 for further processing. In this manner, the load of thesecondary processing system 520 is alleviated. Atstep 880, a copy of the number ofsound bites 575 is stored in theprimary processing system 510, such as thememory 116. Processing then returns to step 850. - While the invention has been shown and described with reference to particular embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and detail may be made therein without departing from the spirit and scope of the invention.
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/041,427 US7747444B2 (en) | 2002-06-06 | 2008-03-03 | Multiple sound fragments processing and load balancing |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/164,972 US7340392B2 (en) | 2002-06-06 | 2002-06-06 | Multiple sound fragments processing and load balancing |
US12/041,427 US7747444B2 (en) | 2002-06-06 | 2008-03-03 | Multiple sound fragments processing and load balancing |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/164,972 Continuation US7340392B2 (en) | 2002-06-06 | 2002-06-06 | Multiple sound fragments processing and load balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
US20080147403A1 true US20080147403A1 (en) | 2008-06-19 |
US7747444B2 US7747444B2 (en) | 2010-06-29 |
Family
ID=29710322
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/164,972 Active 2025-01-29 US7340392B2 (en) | 2002-06-06 | 2002-06-06 | Multiple sound fragments processing and load balancing |
US12/041,427 Expired - Lifetime US7747444B2 (en) | 2002-06-06 | 2008-03-03 | Multiple sound fragments processing and load balancing |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/164,972 Active 2025-01-29 US7340392B2 (en) | 2002-06-06 | 2002-06-06 | Multiple sound fragments processing and load balancing |
Country Status (1)
Country | Link |
---|---|
US (2) | US7340392B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070088551A1 (en) * | 2002-06-06 | 2007-04-19 | Mcintyre Joseph H | Multiple sound fragments processing and load balancing |
US20130090925A1 (en) * | 2009-12-04 | 2013-04-11 | At&T Intellectual Property I, L.P. | System and method for supplemental speech recognition by identified idle resources |
DE112014003653B4 (en) | 2013-08-06 | 2024-04-18 | Apple Inc. | Automatically activate intelligent responses based on activities from remote devices |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7340392B2 (en) * | 2002-06-06 | 2008-03-04 | International Business Machines Corporation | Multiple sound fragments processing and load balancing |
TWI251754B (en) * | 2004-12-16 | 2006-03-21 | Delta Electronics Inc | Method for optimizing loads of speech/user recognition system |
KR20120138604A (en) | 2011-06-14 | 2012-12-26 | 삼성전자주식회사 | Method and apparatus for transmitting/receiving hybrid media content in a multimedia system |
US10911725B2 (en) * | 2017-03-09 | 2021-02-02 | Digital Ally, Inc. | System for automatically triggering a recording |
US11288038B2 (en) * | 2018-07-30 | 2022-03-29 | John Holst, III | System and method for voice recognition using a peripheral device |
US11950017B2 (en) | 2022-05-17 | 2024-04-02 | Digital Ally, Inc. | Redundant mobile video recording |
Citations (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4214125A (en) * | 1977-01-21 | 1980-07-22 | Forrest S. Mozer | Method and apparatus for speech synthesizing |
US4227046A (en) * | 1977-02-25 | 1980-10-07 | Hitachi, Ltd. | Pre-processing system for speech recognition |
US4392018A (en) * | 1981-05-26 | 1983-07-05 | Motorola Inc. | Speech synthesizer with smooth linear interpolation |
US4481593A (en) * | 1981-10-05 | 1984-11-06 | Exxon Corporation | Continuous speech recognition |
US4618936A (en) * | 1981-12-28 | 1986-10-21 | Sharp Kabushiki Kaisha | Synthetic speech speed control in an electronic cash register |
US4700391A (en) * | 1983-06-03 | 1987-10-13 | The Variable Speech Control Company ("Vsc") | Method and apparatus for pitch controlled voice signal processing |
US4771385A (en) * | 1984-11-21 | 1988-09-13 | Nec Corporation | Word recognition processing time reduction system using word length and hash technique involving head letters |
US4829429A (en) * | 1987-03-03 | 1989-05-09 | Sharp Kabushiki Kaisha | Electronic cash register |
US5027408A (en) * | 1987-04-09 | 1991-06-25 | Kroeker John P | Speech-recognition circuitry employing phoneme estimation |
US5191635A (en) * | 1989-10-05 | 1993-03-02 | Ricoh Company, Ltd. | Pattern matching system for speech recognition system, especially useful for discriminating words having similar vowel sounds |
US5208897A (en) * | 1990-08-21 | 1993-05-04 | Emerson & Stern Associates, Inc. | Method and apparatus for speech recognition based on subsyllable spellings |
US5315689A (en) * | 1988-05-27 | 1994-05-24 | Kabushiki Kaisha Toshiba | Speech recognition system having word-based and phoneme-based recognition means |
US5548647A (en) * | 1987-04-03 | 1996-08-20 | Texas Instruments Incorporated | Fixed text speaker verification method and apparatus |
US5704007A (en) * | 1994-03-11 | 1997-12-30 | Apple Computer, Inc. | Utilization of multiple voice sources in a speech synthesizer |
US5839105A (en) * | 1995-11-30 | 1998-11-17 | Atr Interpreting Telecommunications Research Laboratories | Speaker-independent model generation apparatus and speech recognition apparatus each equipped with means for splitting state having maximum increase in likelihood |
US5848390A (en) * | 1994-02-04 | 1998-12-08 | Fujitsu Limited | Speech synthesis system and its method |
US5852729A (en) * | 1993-06-29 | 1998-12-22 | Korg, Inc. | Code segment replacement apparatus and real time signal processor using same |
US5907825A (en) * | 1996-02-09 | 1999-05-25 | Canon Kabushiki Kaisha | Location of pattern in signal |
US5909666A (en) * | 1992-11-13 | 1999-06-01 | Dragon Systems, Inc. | Speech recognition system which creates acoustic models by concatenating acoustic models of individual words |
US5960395A (en) * | 1996-02-09 | 1999-09-28 | Canon Kabushiki Kaisha | Pattern matching method, apparatus and computer readable memory medium for speech recognition using dynamic programming |
US6044343A (en) * | 1997-06-27 | 2000-03-28 | Advanced Micro Devices, Inc. | Adaptive speech recognition with selective input data to a speech classifier |
US6061653A (en) * | 1998-07-14 | 2000-05-09 | Alcatel Usa Sourcing, L.P. | Speech recognition system using shared speech models for multiple recognition processes |
US6098169A (en) * | 1997-12-23 | 2000-08-01 | Intel Corporation | Thread performance analysis by monitoring processor performance event registers at thread switch |
US6182046B1 (en) * | 1998-03-26 | 2001-01-30 | International Business Machines Corp. | Managing voice commands in speech applications |
US6629075B1 (en) * | 2000-06-09 | 2003-09-30 | Speechworks International, Inc. | Load-adjusted speech recogintion |
US20030229491A1 (en) * | 2002-06-06 | 2003-12-11 | International Business Machines Corporation | Single sound fragment processing |
US6757652B1 (en) * | 1998-03-03 | 2004-06-29 | Koninklijke Philips Electronics N.V. | Multiple stage speech recognizer |
US20070088551A1 (en) * | 2002-06-06 | 2007-04-19 | Mcintyre Joseph H | Multiple sound fragments processing and load balancing |
US7340392B2 (en) * | 2002-06-06 | 2008-03-04 | International Business Machines Corporation | Multiple sound fragments processing and load balancing |
US7423983B1 (en) * | 1999-09-20 | 2008-09-09 | Broadcom Corporation | Voice and data exchange over a packet based network |
US7426468B2 (en) * | 2003-03-01 | 2008-09-16 | Coifman Robert E | Method and apparatus for improving the transcription accuracy of speech recognition software |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61151706A (en) | 1984-12-26 | 1986-07-10 | Yamatake Honeywell Co Ltd | Voice recognition control system |
EP0255523B1 (en) | 1986-01-03 | 1994-08-03 | Motorola, Inc. | Method and apparatus for synthesizing speech from speech recognition templates |
JPH1152997A (en) | 1997-08-07 | 1999-02-26 | Hitachi Eng & Services Co Ltd | Speech recorder, speech recording system, and speech recording method |
-
2002
- 2002-06-06 US US10/164,972 patent/US7340392B2/en active Active
-
2008
- 2008-03-03 US US12/041,427 patent/US7747444B2/en not_active Expired - Lifetime
Patent Citations (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4214125A (en) * | 1977-01-21 | 1980-07-22 | Forrest S. Mozer | Method and apparatus for speech synthesizing |
US4227046A (en) * | 1977-02-25 | 1980-10-07 | Hitachi, Ltd. | Pre-processing system for speech recognition |
US4392018A (en) * | 1981-05-26 | 1983-07-05 | Motorola Inc. | Speech synthesizer with smooth linear interpolation |
US4481593A (en) * | 1981-10-05 | 1984-11-06 | Exxon Corporation | Continuous speech recognition |
US4618936A (en) * | 1981-12-28 | 1986-10-21 | Sharp Kabushiki Kaisha | Synthetic speech speed control in an electronic cash register |
US4700391A (en) * | 1983-06-03 | 1987-10-13 | The Variable Speech Control Company ("Vsc") | Method and apparatus for pitch controlled voice signal processing |
US4771385A (en) * | 1984-11-21 | 1988-09-13 | Nec Corporation | Word recognition processing time reduction system using word length and hash technique involving head letters |
US4829429A (en) * | 1987-03-03 | 1989-05-09 | Sharp Kabushiki Kaisha | Electronic cash register |
US5548647A (en) * | 1987-04-03 | 1996-08-20 | Texas Instruments Incorporated | Fixed text speaker verification method and apparatus |
US5027408A (en) * | 1987-04-09 | 1991-06-25 | Kroeker John P | Speech-recognition circuitry employing phoneme estimation |
US5315689A (en) * | 1988-05-27 | 1994-05-24 | Kabushiki Kaisha Toshiba | Speech recognition system having word-based and phoneme-based recognition means |
US5191635A (en) * | 1989-10-05 | 1993-03-02 | Ricoh Company, Ltd. | Pattern matching system for speech recognition system, especially useful for discriminating words having similar vowel sounds |
US5208897A (en) * | 1990-08-21 | 1993-05-04 | Emerson & Stern Associates, Inc. | Method and apparatus for speech recognition based on subsyllable spellings |
US5915236A (en) * | 1992-11-13 | 1999-06-22 | Dragon Systems, Inc. | Word recognition system which alters code executed as a function of available computational resources |
US5909666A (en) * | 1992-11-13 | 1999-06-01 | Dragon Systems, Inc. | Speech recognition system which creates acoustic models by concatenating acoustic models of individual words |
US5852729A (en) * | 1993-06-29 | 1998-12-22 | Korg, Inc. | Code segment replacement apparatus and real time signal processor using same |
US5848390A (en) * | 1994-02-04 | 1998-12-08 | Fujitsu Limited | Speech synthesis system and its method |
US5704007A (en) * | 1994-03-11 | 1997-12-30 | Apple Computer, Inc. | Utilization of multiple voice sources in a speech synthesizer |
US5839105A (en) * | 1995-11-30 | 1998-11-17 | Atr Interpreting Telecommunications Research Laboratories | Speaker-independent model generation apparatus and speech recognition apparatus each equipped with means for splitting state having maximum increase in likelihood |
US5907825A (en) * | 1996-02-09 | 1999-05-25 | Canon Kabushiki Kaisha | Location of pattern in signal |
US5960395A (en) * | 1996-02-09 | 1999-09-28 | Canon Kabushiki Kaisha | Pattern matching method, apparatus and computer readable memory medium for speech recognition using dynamic programming |
US6044343A (en) * | 1997-06-27 | 2000-03-28 | Advanced Micro Devices, Inc. | Adaptive speech recognition with selective input data to a speech classifier |
US6098169A (en) * | 1997-12-23 | 2000-08-01 | Intel Corporation | Thread performance analysis by monitoring processor performance event registers at thread switch |
US6757652B1 (en) * | 1998-03-03 | 2004-06-29 | Koninklijke Philips Electronics N.V. | Multiple stage speech recognizer |
US6182046B1 (en) * | 1998-03-26 | 2001-01-30 | International Business Machines Corp. | Managing voice commands in speech applications |
US6061653A (en) * | 1998-07-14 | 2000-05-09 | Alcatel Usa Sourcing, L.P. | Speech recognition system using shared speech models for multiple recognition processes |
US7423983B1 (en) * | 1999-09-20 | 2008-09-09 | Broadcom Corporation | Voice and data exchange over a packet based network |
US6629075B1 (en) * | 2000-06-09 | 2003-09-30 | Speechworks International, Inc. | Load-adjusted speech recogintion |
US6862570B2 (en) * | 2000-06-09 | 2005-03-01 | Scansoft, Inc. | Load-adjusted speech recognition |
US20030229491A1 (en) * | 2002-06-06 | 2003-12-11 | International Business Machines Corporation | Single sound fragment processing |
US20070088551A1 (en) * | 2002-06-06 | 2007-04-19 | Mcintyre Joseph H | Multiple sound fragments processing and load balancing |
US7340392B2 (en) * | 2002-06-06 | 2008-03-04 | International Business Machines Corporation | Multiple sound fragments processing and load balancing |
US7426468B2 (en) * | 2003-03-01 | 2008-09-16 | Coifman Robert E | Method and apparatus for improving the transcription accuracy of speech recognition software |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070088551A1 (en) * | 2002-06-06 | 2007-04-19 | Mcintyre Joseph H | Multiple sound fragments processing and load balancing |
US7788097B2 (en) | 2002-06-06 | 2010-08-31 | Nuance Communications, Inc. | Multiple sound fragments processing and load balancing |
US20130090925A1 (en) * | 2009-12-04 | 2013-04-11 | At&T Intellectual Property I, L.P. | System and method for supplemental speech recognition by identified idle resources |
US9431005B2 (en) * | 2009-12-04 | 2016-08-30 | At&T Intellectual Property I, L.P. | System and method for supplemental speech recognition by identified idle resources |
DE112014003653B4 (en) | 2013-08-06 | 2024-04-18 | Apple Inc. | Automatically activate intelligent responses based on activities from remote devices |
US12010262B2 (en) | 2013-08-06 | 2024-06-11 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
Also Published As
Publication number | Publication date |
---|---|
US20030229493A1 (en) | 2003-12-11 |
US7340392B2 (en) | 2008-03-04 |
US7747444B2 (en) | 2010-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7747444B2 (en) | Multiple sound fragments processing and load balancing | |
US11798541B2 (en) | Automatically determining language for speech recognition of spoken utterance received via an automated assistant interface | |
US7624018B2 (en) | Speech recognition using categories and speech prefixing | |
US7930183B2 (en) | Automatic identification of dialog timing problems for an interactive speech dialog application using speech log data indicative of cases of barge-in and timing problems | |
US6782364B2 (en) | Controlling a listening horizon of a speech recognition system for use in handsfree conversational dialog | |
US5546538A (en) | System for processing handwriting written by user of portable computer by server or processing by the computer when the computer no longer communicate with server | |
US6366882B1 (en) | Apparatus for converting speech to text | |
US20200111479A1 (en) | System and method for speech personalization by need | |
EP1076288A2 (en) | Method and system for multi-client access to a dialog system | |
EP1650744A1 (en) | Invalid command detection in speech recognition | |
JP2015501106A (en) | Low power integrated circuit for analyzing digitized audio streams | |
US20070288231A1 (en) | Uncertainty interval content sensing | |
CN108874904A (en) | Speech message searching method, device, computer equipment and storage medium | |
US11532301B1 (en) | Natural language processing | |
EP1374228B1 (en) | Method and processor system for processing of an audio signal | |
US8374872B2 (en) | Dynamic update of grammar for interactive voice response | |
US11699437B2 (en) | System and method for quantifying meeting effectiveness using natural language processing | |
US20120053937A1 (en) | Generalizing text content summary from speech content | |
US20190295541A1 (en) | Modifying spoken commands | |
US20070061429A1 (en) | Optimizing utilization of application resources | |
US7788097B2 (en) | Multiple sound fragments processing and load balancing | |
US20050143975A1 (en) | System and method for voice activating web pages | |
US20030229491A1 (en) | Single sound fragment processing | |
US6799169B1 (en) | Method and system for modeless operation of a multi-modal user interface through implementation of independent decision networks | |
KR20220010034A (en) | Enter voice-controlled content into a graphical user interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NUANCE COMMUNICATIONS, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:022330/0088 Effective date: 20081231 Owner name: NUANCE COMMUNICATIONS, INC.,MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:022330/0088 Effective date: 20081231 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |