ADJUSTABLE AUTOMATIC VOLUME CONTROL
TECHNICAL FIELD
This invention relates to a system and method for automating the volume control to a radio device, and more particularly relates to adjusting volume based on measured parameters and a learning means to customize the automation for the preferences of an individual user .
BACKGROUND OF THE INVENTION Recently, there have been great strides made in the advancements of cellular telephone technology. These advancements are due, at least in part, on the public demand for smaller and more advanced cellular telephones. However, it can be very unsafe to use a cellular telephone while engaging in activities such as driving. Such activities raise the premium on advancements that automate the usage of cellular telephones. The invention, as described in detail below, is an advancement that will assist to free the cellular telephone user from manually adjusting the volume control. Thus, the invention helps the driver to maintain their attention on tasks such as driving.
The objective of automating a cellular telephone, or other two-way communication device is an ongoing effort by the
communications industry. The automation must employ inventions that are both innovative and economical to use in the new communications products. The intent to automate the volume of a communications device is no exception. Prior art uses methods of phase comparison and shifting, as well as methods of equalization to vary the frequency response in an effort to counteract the ambient noise energy level . One such example is U.S. Patent No. 4,306,115 (Humphrey, et . al) , which uses a phase comparator to compare the audio signal (after processing by other circuitry) and the ambient noise. The comparison produces an output that is proportional to the level of detected ambient noise. The phase comparator output is used as a control signal to the output amplifier. A similar method of isolating the noise and using comparison circuitry to eliminate the isolated noise is utilized in U.S. Patent No. 5,937,070
(Todter, et al) . These methods leave a need in the art for a method to provide dynamic automatic volume control and a need for a system to learn the preferred settings of the user. Using phase comparison and shifting leaves an additional need in the art to perform the automation of the volume control without the cost associated with phase comparison, filtering, and other circuitry.
SUMMARY OF INVENTION
The present invention utilizes a relatively simple circuit and algorithm, thus solving the need to avoid extra and expensive circuitry to provide the automation of the volume control for a communications device. In addition, the invention provides dynamic automation features for the volume control and solves the need for learning capabilities, which learn the needs of the individual user .
Briefly described, the present invention is a method and system for providing automatic volume control based on parameters
that are already present when the cellular telephone is in use. The invention begins operation from the moment that a voice traffic channel is established, whether the voice traffic channel is established by the user calling a second party who acknowledges the call or the user acknowledges an incoming call . When the cellular telephone user, or the second party who the user calls, depresses the talk button, flips open the casing, or in any other manner acknowledges the call, a voice traffic channel is established. In one exemplary embodiment the invention takes a measurement of the ambient noise energy level (assuming the user is not communicating at the moment a traffic channel is established) . The ambient noise energy level is any noise at the user's end other than the user's speech or communication. The cellular telephone also monitors the incoming signal with a voice activity detector. When the voice activity detector detects incoming speech, the incoming signal level is measured.
In another exemplary embodiment, only the ambient noise energy level is utilized to adjust the volume. The cellular telephone includes a microphone for receiving the user communication. A voice activity detector and ambient noise estimator is coupled to the microphone to detect the presence of user communication and measure the ambient noise energy level. When no user communication is detected, the voice activity detector is in the inactive mode. An inactive mode for the voice activity detector (with the signal coming from the microphone) is defined as a state enabling the measured ambient noise energy level to be received by the algorithm function from the ambient noise estimator. Otherwise, the voice activity detector is in the active mode. The active mode for the voice activity detector (with the signal coming from the microphone) is defined as a state enabling the user communication to be sent to the speech
encoder. One skilled in the art will recognize that the ambient noise estimator can be a part of a voice recognition algorithm, an independent algorithm running on a digital signal processor or microprocessor, or a discrete device that operates in conjunction with a voice activity detector.
If the voice activity detector is in the inactive mode, an algorithm function receives the measured ambient noise energy level from the ambient noise estimator. The algorithm function utilizes the measured ambient noise energy level to index a lookup table. The lookup table contains output amplifier adjustment values for a range of ambient noise energy level measurements . The entries to the lookup table are preset with initial output amplifier adjustment values based on laboratory induced ambient noise levels at the time the cellular telephone is manufactured. An example of initial amplifier gain settings which correspond to different ambient noise energy levels and which may be set when the invention is manufactured, is as follows :
Table 1. Example of initial amplifier gain settings for different ambient noise energy levels.
Thus, simulated conditions are utilized to determine what initial amount of amplification or attenuation (output amplifier adjustment values) should correspond to which ranges of ambient noise conditions. The algorithm function retrieves these output
amplifier adjustment values to use them as an input for an output amplifier device.
The output amplifier device is used to amplify or attenuate the incoming signal, after it has been processed, to produce the output sound. An antenna is included to capture the incoming signal . A speech decoder receives the incoming signal from the antenna and is included to manipulate the analog information as part of the receiving function. The output of the speech decoder is further processed and sent to the output amplifier. The output amplifier device amplifies or attenuates the output signal, to adjust the volume heard by the cellular telephone user, in accordance with the output amplifier adjustment value received from the algorithm function. Those skilled in the art will appreciate that the amplification of the signal may be done in a single stage or multiple stages within the device. A speaker is functionally connected to the output amplifier to provide the user a means to hear the output signal .
In another exemplary embodiment, the invention uses the measured incoming signal level in addition to the ambient noise energy level to index the lookup table. The incoming signal level is processed by the speech decoder and afterwards is received by the voice activity detector, which distributes the signal to the remainder of the device for further processing. When the voice activity detector (receiving the incoming signal) detects speech on the incoming channel, the voice activity detector goes to the active mode and the incoming signal energy estimator measures the incoming signal level. Thus, the active mode for the voice activity detector (incoming channel) is defined as a state where the incoming signal energy estimator measures the incoming signal level. The measured incoming signal level is utilized by the algorithm function, along with the measured ambient noise energy level, to index a lookup table. The lookup table has output
amplifier adjustment values based on both ambient noise energy levels and the incoming signal levels. In this embodiment, the lookup table is preset with initial output amplifier adjustment values that are based on laboratory induced ambient noise energy levels as well as incoming signal levels. The initial output amplifier adjustment values may be set at the time the cellular telephone is manufactured. In addition to the ambient noise energy levels, the initial output amplifier adjustment values are based on signal levels from the strongest expected signal strength to the weakest acceptable signal strength. Using the combination of the ambient noise energy level and the incoming signal level to index the lookup table results in a single output amplifier adjustment value. As discussed with the previous exemplary embodiment, the output amplifier device receives the output amplifier adjustment values from the algorithm and applies the corresponding amplification or attenuation to the output signal, producing the volume heard by the cellular telephone user.
One skilled in the art would recognize that yet another embodiment, similar to the embodiment previously discussed, would utilize at least two separate lookup tables. At least one lookup table would be used to store output amplifier adjustment values based on ambient noise energy levels. An example of initial settings for amplifier adjustment values based on ambient npise energy levels is shown above in Table 1. The second lookup table would store output amplifier adjustment values based on incoming signal levels. An example of initial amplifier gain settings which correspond to different incoming signal levels is as follows:
Table 2. Example of initial Amplifier gain settings for different incoming signal levels .
In this embodiment, the algorithm would index both lookup tables and calculate a final output amplifier adjustment value to send to the output amplifier.
In yet another embodiment, the cellular telephone utilizes only the measured incoming signal level as the input of the algorithm function. Thus, the algorithm function utilizes the incoming signal level, processed by the speech decoder and measured by the incoming signal estimator. The lookup table is preset with initial output amplifier adjustment values that are based on incoming signal levels, an example of which is shown above in Table 2. The output amplifier device receives the output amplifier adjustment values from the algorithm and applies the corresponding amplification or attenuation to the output signal, which is the audible sound provided by the speaker.
An economical means of automating the volume of a cellular telephone would likely have to maintain its manual volume control to maximize satisfaction to most users. Therefore, for all embodiments discussed thus far, the invention continues to include a conventional manual volume control (manual volume adjust means) . The manual volume adjust means doesn't have to be a dedicated volume key, which adds the expense of additional parts, it could instead operate within one of the existing menu functions. The use of the manual volume adjust means is optional
according to the invention, but overrides the automatic setting if utilized. If the manual volume adjust means is adjusted, the learning algorithm senses the amount of change and adjusts the lookup table's output amplifier values based on the amount the user adjusts the manual volume adjust means. The updated output amplifier value is transferred to the output amplifier device by the algorithm function and the appropriate volume level is set . Because a plurality of output amplifier adjustment values in the lookup table have been updated according to the individual user's needs, the invention has learned the settings of the individual user and nullified the need to manually control the volume in the future .
Three other exemplary embodiments include an embodiment using only the ambient noise energy level to index the lookup table, an embodiment using both the ambient noise energy level and the incoming signal level to index the lookup table, and the embodiment using only the incoming signal level to index the lookup table; where each of these embodiments does not include a manual volume adjustment means. In addition, for both preset values and to index the lookup tables during operation, all the embodiments discussed thus far may be implemented using either averaged values or instantaneous values for the measurement of the ambient noise level and/or the incoming signal energy level . The above discussed embodiments may also be implemented with a delay time before measuring the measured parameters, indexing the lookup tables, and other processing is repeated. This delay time will prevent the output amplifier from constantly being updated (avoiding user irritation from constant change) .
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a system diagram that illustrates an exemplary environment suitable for implementing various embodiments of the present invention.
FIG. 2 is a block diagram showing an exemplary embodiment of the present invention which uses the ambient noise energy level to automatically adjust the volume.
FIG. 3 is a block diagram of an exemplary embodiment of the present invention which uses the ambient noise energy level and the incoming signal to automatically adjust the volume. FIG. 4 is a block diagram of an exemplary embodiment of. the present invention which uses the incoming signal level to automatically adjust the volume.
FIG. 5 is a flowchart of a method for dynamically adjusting the output volume of a communications device in accordance with an exemplary embodiment of the invention.
DETAILED DESCRIPTION
Now referring in detail to the drawings, in which like numerals refer to like parts throughout the several views, Fig. 1 is a system diagram that illustrates an exemplary environment suitable for implementing various embodiments of the present invention. Fig. 1 and the following discussion provide a general overview of a platform onto which the invention may be integrated or implemented. Although in the context of the exemplary environment the invention will be described as consisting of instructions within a software program being executed by a processing unit, those skilled in the art will understand that portions of the invention, or the entire invention itself may also be implemented by using hardware components, state machines, or a combination of any of these techniques. In addition, a software program implementing an embodiment of the invention may run as a stand-alone program or as a software module, routine, or
function call, operating in conjunction with an operating system, another program, system call, interrupt routine, library routine, or the like. The term program module will be used to refer to software programs, routines, functions, macros, data, data structures, or any set of machine readable instructions or object code, or software instructions that can be compiled into such, and executed by a processing unit.
Those skilled in the art will appreciate that the system illustrated in Fig. 1 may take on many forms and may be directed towards performing a variety of functions. Examples of such forms and functions include cellular telephones, radio telephones, portable telephones, two-way pagers, personal computers, hand-held devices such as personal data assistants and calculators, consumer electronics, note-book computers, lap-top computers, and a variety of other applications, each of which may serve as an exemplary environment for embodiments of the present invention.
The exemplary system illustrated in Fig. 1 includes an electronic device 110 that is made up of various components including, but not limited to a processing unit 112, non-volatile memory 114, volatile memory 116, and a system bus 118 that couples the non-volatile memory 114 and volatile memory 116 to the processing unit 112. The non-volatile memory 114 may include a variety of memory types including, but not limited to, read only memory (ROM) , electronically erasable read only memory (EEROM) , electronically erasable and programmable read only memory (EEPROM) , electronically programmable read only memory (EPROM) , electronically alterable read only memory (EAROM) , FLASH memory, bubble memory, and battery backed random access memory (RAM) . The non-volatile memory 114 provides storage for power on and reset routines (bootstrap routines) that are invoked upon applying power or resetting the electronic device 110. In some
configurations the non-volatile memory 114 provides the basic input/output system (BIOS) routines that are utilized to perform the transfer of information between elements within the various components of the electronic device 110. The volatile memory 116 may include, but is not limited to, a variety of memory types and devices including, but not limited to, random access memory (RAM) , dynamic random access memory (DRAM) , FLASH memory, EEPROM, bubble memory, registers, or the like. The volatile memory 116 provides temporary storage for routines, modules, functions, macros, data etc. that are being or may be executed by, or are being accessed or modified by the processing unit 112. In general, the distinction between nonvolatile memory 114 and volatile memory 116 is that when power is removed from the electronic device 110 and then reapplied, the contents of the non-volatile memory 114 remain in tact, whereas the contents of the volatile memory 116 are lost, corrupted, or erased.
The electronic device 110 may access one or more external display devices 130 such as a CRT monitor, LCD panel, LED panel, electro-luminescent panel, or other display device, for the purpose of providing information or computing results to a user. In some embodiments, the external display device 130 may actually be incorporated into the product itself. The processing unit 112 interfaces to each display device 130 through a video interface 120 coupled to the processing unit 112 over the system bus 118. The electronic device 110 may send output information, in addition to the display 130, to one or more output devices 132 such as a speaker, modem, printer, plotter, facsimile machine, RF or infrared transmitter, computer or any other of a variety of devices that can be controlled by the electronic device 110. The processing unit 112 interfaces to each output device 132 through an output interface 122 coupled to the processing unit 112 over
the system bus 118. The output interface may include one or more of a variety of interfaces, including but not limited to, an RS- 232 serial port interface or other serial port interface, a parallel port interface, a universal serial bus (USB) , an optical interface such as infrared or IRDA, an RF or wireless interface such as Bluetooth, or other interface.
The electronic device 110 may receive input or commands from one or more input devices 134 such as a keyboard, pointing device, mouse, modem, RF or infrared receiver, microphone, joystick, track ball, light pen, game pad, scanner, camera, computer or the like. The processing unit 112 interfaces to each input device 134 through an input interface 124 coupled to the processing unit 112 over the system bus 118. The input interface may include one or more of a variety of interfaces, including but not limited to, an RS-232 serial port interface or other serial port interface, a parallel port interface, a universal serial bus (USB) , an optical interface such as infrared or IrDA, an RF or wireless interface such as Bluetooth, or other interface.
It will be appreciated that program modules implementing various embodiments of the present invention may be stored in the non-volatile memory 114, the volatile memory 116, or in a remote memory storage device accessible through the output interface 122 and the input interface 124. The program modules may include an operating system, application programs, other program modules, and program data. The processing unit 112 may access various portions of the program modules in response to the various instructions contained therein, as well as under the direction of events occurring or being received over the input interface 12 . The electronic device 110 may transmit signals to, or receive signals from, one or more communications systems 136 such as a cellular network, RF network, computer network, cable network, optical network or the like. The processing unit 112
interfaces to each communications system 136 through a transmitter 126 and a receiver 128, both coupled to the processing unit 112 over the system bus 118. The transmitter 126 and the receiver 128 may include one or more of a variety of transmission techniques such as a radio frequency interface (AM, FM, PSK, QPSK, TDMA, CDMA, Bluetooth or other technique) or an optical interface such as infrared or IrDA.
FIG. 2 is a block diagram showing an exemplary embodiment of the present invention which uses the ambient noise energy level to automatically adjust the volume. A microphone 200 receives the user communication and the ambient noise. A voice activity detector 205A and ambient noise estimator 205B are electrically coupled to the microphone 200. If the user is speaking, the voice activity detector 205A is in the active mode and sends that signal to the speech encoder 235A over connection 300. The speech encoder 235A helps prepare the signal for transmission by antenna 230. If the user is not speaking, the ambient noise estimator 205B provides a measurement of the ambient noise energy level to the algorithm function 210 and the voice activity detector 205A is in the inactive mode. The algorithm function 210 is also functionally connected to a lookup table 225, which has stored output amplifier adjustment values. The algorithm function 210 indexes the lookup table 225 with the measured ambient noise energy level, to retrieve output amplifier adjustment values. The lookup table 225 contains output amplifier adjustment values that correspond to ranges of ambient noise energy levels. Thus, when the algorithm function 210 indexes the lookup table 225 with an ambient noise energy level, the algorithm function 210 retrieves a corresponding output amplifier adjustment value. The algorithm function 210 can be processed by the central processing unit (not shown) or a dedicated processing unit. The algorithm function 210 provides
the retrieved output amplifier adjustment value to the output amplifier 240. The output amplifier 240 is used to provide amplification or attenuation to the incoming radio signal according to the output amplifier adjustment value. The output of the output amplifier 240 is received by the speaker 245, which provides an audible output signal to the user.
An antenna 230 captures the incoming signal and is functionally connected to the speech decoder 235B. The speech decoder 235B manipulates the incoming signal, preparing the signal for further processing throughout the device. An output amplifier 240 is functionally connected to the output of the speech decoder 235B. The output amplifier 240 applies the output amplifier adjustment value to the received incoming signal. The algorithm function 210 supplies the output amplifier adjustment value to the output amplifier 240. The resulting amplified or attenuated incoming signal is the input signal of the speaker 245, which produces the output volume heard by the user.
A manual volume adjustment means 215 is also a part of this embodiment. Adjustments of the manual volume adjust means 215 are sensed by the learning algorithm 220. One of many ways to detect the adjustment to the manual volume adjustment means 215 is to take a voltage reading from a potentiometer (used as the manual volume adjustment means) in a voltage divider circuit, supplied by a constant voltage source (not shown) . The learning algorithm 220 uses the adjustments to the manual volume adjustment means 215 to modify a plurality of output amplifier adjustment values in the lookup table 225. The modification is in proportion to the magnitude and direction of the change to the manual volume adjustment means. The modified output amplifier adjustment value is received by the algorithm function 210 and sent to the output amplifier 240. As explained above, the output
of output amplifier 240 is received by the speaker 245, which provides the audible output signal to the user.
Fig. 3 is a block diagram of an exemplary embodiment of the present invention which uses the ambient noise energy level and the incoming signal to automatically adjust the volume. In Fig. 3, the algorithm function 210 indexes the lookup table 225 based on both the measured ambient noise energy level and the measured incoming signal level. This embodiment adds connection 350, voice activity detector 250B, and incoming signal energy estimator 250A. Fig. 3 shows a microphone 200 which receives the user's communications. The voice activity detector 205A and ambient noise estimator 205B is connected to microphone 200. The voice activity detector 205A is operative to detect when speech is present at the microphone 200. If no speech is present, the voice activity detector 205A is inactive and the ambient noise estimator 205B sends a measurement of the ambient noise energy level to the algorithm function 210; otherwise the user's communication is sent by the voice activity detector 205A to the speech encoder 235A over connection 300. In addition, the antenna 230 receives the incoming signal which is subsequently received by the speech decoder 235B. The voice activity detector 250B receives the signal from the speech decoder 235B and distributes the signal to the remainder of the device. If the voice activity detector 250B indicates the presence of speech, a measurement of the signal is taken by the incoming signal energy estimator 250A. The incoming signal energy estimator's 250A output is the measurement of incoming signal level, which is sent to the algorithm function 210 over the connection 350. If the voice activity detector 250B does not detect speech on the incoming signal, it is in the inactive mode and the incoming signal is distributed for further processing throughout the remainder of the device. The algorithm function 210 uses both
the incoming signal level and the ambient noise energy level to index the lookup table 225 and retrieve an output amplifier adjustment value. Note, incoming signal energy estimator 250A and the ambient noise estimator 205B may measure their respective signals while the signal is analog or digital. The output amplifier adjustment value from the lookup table 225 is received by the algorithm 210 and sent to the output amplifier 240. The output amplifier 240 provides the amplification or attenuation to the incoming signal functionally received from the speech decoder 235B. The resulting signal is received by the speaker 245, which provides the audible output signal to the user.
In Fig. 3, a manual volume adjustment means 215 is also shown. Adjustments of the manual volume adjust means 215 is sensed by learning algorithm 220. The learning algorithm 220 is used to modify a plurality of output amplifier adjustment values in the lookup table 225. In Fig. 3, the lookup table 225 values are based on both the ambient noise energy level and the incoming signal level . The amount of modification to the lookup table 225 values are proportional to the amount and direction of the adjustment to the manual volume adjustment means 215. The modified output amplifier adjustment value is received by the output amplifier 240. As explained above, the output of the output amplifier 240 is received by speaker 245, which provides the audible output signal to the user. FIG. 4 is a block diagram of an exemplary embodiment of the present invention which uses only the incoming signal level to automatically adjust the volume. In this alternative embodiment, the algorithm function 210 uses only the incoming signal level received from the incoming signal energy estimator 250A over connection 350 to index the lookup table 225. Fig. 4 shows a microphone 200 which is used to receive the user communication. Note, the ambient noise estimator 205B is not necessary in this
embodiment, nor is the voice activity detector 205A. The connection 300 is used to send the user's audible speech from the microphone 200 to the speech encoder 235A. The antenna 230 receives the incoming signal, and the incoming signal level is subsequently received by the speech decoder 235B. The speech decoder 235B sends the decoded speech signal to the remainder of the device for further processing. However, when the voice activity detector 250B detects speech on the incoming signal, the incoming signal energy estimator 250A also measures the incoming signal level. The incoming signal energy estimator 250A sends the measured incoming signal level to the algorithm 210 over the connection 350. The algorithm function 210 uses only the incoming signal level to index the lookup table 225 and retrieve an output amplifier adjustment value. The output amplifier adjustment value from the lookup table 225 is utilized by the algorithm 210 to set the amplification or attenuation level of the output amplifier 240. The output amplifier 240 provides the amplification or attenuation to the processed incoming signal . The incoming signal is functionally received by the output amplifier 240 from the speech decoder 235B. The amplified or attenuated signal at the output amplifier 240 is received by the speaker 245. The speaker 245 provides an audible output signal to the user.
In Fig. 4, a manual volume adjustment means 215 is also shown. Adjustments of the manual volume adjust means 215 is sensed by the learning algorithm 220. The learning algorithm 220 uses the adjustment of the manual volume adjust means 215 to modify the output amplifier adjustment values in lookup table 225. The amount of modification to the lookup table 225 values is in proportion to the amount and direction of the adjustment to the manual volume adjustment means 215. The modified output amplifier adjustment value is received by the algorithm function
210 and sent to the output amplifier 240. As explained above, the output of the output amplifier 240 is received by the speaker 245, which provides the audible output signal to the user. FIG. 5 is a flowchart of the method for dynamically adjusting the output volume of a communications device in accordance with an exemplary embodiment of the invention. At step 505, the radio signal is received by the antenna 230 corresponding to an incoming call or the user placing an outgoing call to a second party. At step 510, the user acknowledges the incoming call or the second party acknowledges the user's call and a voice traffic channel is established. This action is typically taken by the user or second party depressing a talk button or raising the cover of a cellular telephone. At step 515, a determination of whether the user is speaking is made. If the user is speaking at step 515, processing continues at step 515. The voice activity detector 205A is in the active mode allowing the user communication to be processed by the speech encoder 235A. Note, that a time delay may be placed in this loop. However, a more likely situation is that the user is not speaking when the voice traffic channel is initially established and the answer to the decision in step 515 is no. If the user is not speaking at decision 515, processing moves to step 520. At step 520, the voice activity detector 205A is in the inactive mode and the ambient noise estimator 205B measures the ambient noise energy level. Processing moves from step 520 to step 525. At step 525 the algorithm function 210 indexes the lookup table 225 based on the ambient noise energy level . Indexing the lookup table 225 results in the algorithm function 210 retrieving an output amplifier adjustment value based on at least the ambient noise energy level. In addition, the algorithm function 210 sends the output amplifier adjustment value to the output amplifier 240. The output amplifier 240 is functionally coupled
to the speaker 245. Thus, the gain or attenuation corresponding to the output amplifier adjustment value sent to the output amplifier 240, results in the volume heard at the speaker 245. From step 525, processing moves to decision 530. At decision 530, there is a determination of whether the second party is communicating (speech) on the incoming channel. If there is no communicating on the incoming channel, the volume remains set at the present level and the incoming channel's voice activity detector 250B is in the inactive mode. However, if there is incoming communicating at decision 530, processing moves on to step 535.
At step 535, the voice activity detector 250B is in the active mode and the incoming signal energy estimator 250A measures the incoming signal level . Processing then moves to step 540. At step 540 the algorithm function 210 indexes the lookup table 225 based on the incoming signal level. Indexing the lookup table 225 results in the algorithm function 210 retrieving an output amplifier adjustment value based on at least the incoming signal level. In addition, the algorithm function 210 sends the output amplifier adjustment value to the output amplifier 240. The processor may be used to calculate an appropriate value which combines the two output amplifier adjustment values returned after separately indexing the lookup table (s) 225, based on the incoming signal level and the ambient noise energy level. Alternatively, a single lookup table 225 may contain amplifier adjustment values that correspond to both the ambient noise energy level and the incoming signal level . The output amplifier 240 is functionally coupled to the speaker 245. Thus, the gain or attenuation corresponding to the output amplifier adjustment value sent to the output amplifier 240, results in the volume heard at the speaker 245. From step 540, processing continues at decision 545.
At step 545, a determination of whether the user has adjusted the manual volume adjust means 215 is made. If the manual volume adjust means 215 has been adjusted, processing moves to step 550. At step 550, the values of the lookup table 225 are changed in proportion to the magnitude of the change to the manual volume adjust means 215, and whether the change was for increased or decreased volume. A plurality of settings in the lookup table 225 are modified by the learning algorithm function 220. Processing then moves back to step 540. The updated output amplifier adjustment value in lookup table 225, corresponding to the measured value (s) last used to index the lookup table 225, is received by the output amplifier 240 at step 540. As explained above, the output amplifier 240 receives the incoming signal and applies the output amplifier adjustment value to provide the audible output to speaker 245 at the corresponding volume. Thus, the lookup table 225 has been updated according to the user preferences and the need for the manual volume adjustment means 215 has again been nullified. Processing returns to decision 545, the determination of whether the manual volume adjust means 215 has been adjusted.
If the manual volume adjust means 215 has not been adjusted, processing moves to the wait block shown as step 555. This time delay will prevent the output amplifier from constantly being updated. One skilled in the art will appreciate the time delay may be implemented in many places within the processing as discussed above, or not at all. If the time delay is implemented, processing returns to decision 515 after the time delay has expired. At decision 515, processing continues as detailed above. The present invention has been described in relation to particular embodiments which are intended in all respects to be illustrative rather than restrictive. Those skilled in the art
will understand that the principles of the present invention may be applied to, and embodied in, various program modules for execution on differing types of computers and/or equipment, operating in differing types of networks, regardless of the application. In addition, the invention may be implemented in various devices not necessarily related to the communications field.
Alternate embodiments will become apparent to those skilled in the art to which the present invention pertains without departing from its spirit and scope. Accordingly, the scope of the present invention is described by the appended claims and supported by the foregoing description.