Abstract:
In an aspect, in general, an automobile communication system includes a first signal input for receiving an input signal from a sensor, a second signal input for receiving a first signal representing a rotational frequency associated with a portion of an engine of the automobile, an engine noise estimation module, and a transmitter. The engine noise estimation module is configured to determine an estimate of an engine-related component of the input signal based on the input signal and the first signal and to form a modified input signal. The engine noise estimation module includes a signal combination module configured to form the modified input signal, including combining the estimate of the engine-related component with the input signal. The transmitter is configured to transmit the modified input signal as part of an outgoing communication.

Description:
BACKGROUND 
       [0001]    This invention relates to automobile communication systems. 
         [0002]    Automobile communication systems such as hands-free cellular telephone systems are often used to facilitate voice communication between an operator of an automobile and a remote telephone user over a voice communication channel. 
         [0003]    During a hands-free telephone call, the environment of an automobile cabin typically includes both speech and ambient noise (e.g., road noise, engine noise, etc.). Ambient noise can have a negative effect on the quality and user experience of voice communications. Thus, it is desirable to transmit the speech over the voice communication channel while transmitting as little as possible of the ambient noise. For this reason, many conventional automobile communication systems include systems which reduce the amount of ambient noise that is transmitted over the voice communication channel while preserving speech. 
       SUMMARY 
       [0004]    In an aspect, in general, an automobile communication system includes a first signal input for receiving an input signal from a sensor, a second signal input for receiving a first signal representing a rotational frequency associated with a portion of an engine of the automobile, an engine noise estimation module, and a transmitter. The engine noise estimation module is configured to determine an estimate of an engine-related component of the input signal based on the input signal and the first signal and to form a modified input signal. The engine noise estimation module includes a signal combination module configured to form the modified input signal, including combining the estimate of the engine-related component with the input signal. The transmitter is configured to transmit the modified input signal as part of an outgoing communication. 
         [0005]    Aspects may include one or more of the following features. 
         [0006]    The signal combination module may be configured to remove the estimate of the engine-related component from the input signal. The signal combination module may be configured to form a modified version of the estimate of the engine-related component and add the modified version of the estimate of the engine-related component to the input signal. The signal combination module may include a spectral shaping module configured to form the modified version of the estimate of the engine-related component including altering the spectral shape of the estimate of the engine-related component. 
         [0007]    The system may also include an audio input for accepting an audio signal from an audio system of the automobile. The signal combination module may be further configured to form the modified input signal further including adding the audio signal to the input signal. The first signal may be associated with a number of revolutions per minute (RPM) of the engine of the automobile. The engine noise estimation module may also include a plurality of harmonic generators for generating a plurality of harmonics based on the first signal and a multi-input adaptive linear combiner for combining the plurality of harmonics. 
         [0008]    In another aspect, in general, a method of enhancing communications in an automobile communication system includes receiving an input signal from a sensor, receiving a first signal representing a rotational frequency associated with a portion of an engine of the automobile, determining an estimate of an engine-related component of the input signal based on the input signal and the first signal, forming a modified input signal, including combining the estimate of the engine-related component with the input signal, and transmitting the modified input signal as part of an outgoing communication. 
         [0009]    Aspects may include one or more of the following features. 
         [0010]    Combining the estimate of the engine-related component with the input signal may include removing the estimate of the engine-related component from the input signal. Combining the estimate of the engine-related component with the input signal may include forming a modified version of the estimate of the engine-related component and adding the modified version of the estimate of the engine-related component to the input signal. Forming the modified version of the estimate of the engine-related component may include altering the spectral shape of the estimate of the engine-related component. 
         [0011]    The method may also include accepting an audio signal from an audio system of the automobile where forming the modified input signal further includes adding the audio signal to the input signal. The first signal may be associated with a number of revolutions per minute (RPM) of the engine of the automobile. Determining the estimate of the engine-related component of the input signal may include generating a plurality of harmonics based on the first signal and combining the plurality of harmonics using a multi-input adaptive linear combiner. 
         [0012]    Embodiments of the invention may have one or more of the following advantages. 
         [0013]    Using the rotational frequency of the engine to estimate engine noise allows for faster tracking of changes in the engine noise than is possible with conventional spectral subtraction noise reduction techniques. 
         [0014]    Removing the engine noise prior to application of a conventional noise reduction module enhances the performance of the conventional noise reduction module due to the reduced noise present at the input of the conventional noise reduction module. 
         [0015]    Adding engine noise and/or music to a telephone conversation enhances the far end user experience of a hands-free communication device relative to the user experience of a conventional hands-free communication device. 
         [0016]    The system and method described above allows the engine noise to be distinguished from other noise components (e.g., road noise) included in the ambient noise. 
         [0017]    Other features and advantages of the invention are apparent from the following description, and from the claims. 
     
    
     
       DESCRIPTION OF DRAWINGS 
         [0018]      FIG. 1  is a block diagram of a first hands-free communication device. 
           [0019]      FIG. 2  is a block diagram of an engine noise estimator. 
           [0020]      FIG. 3  is a block diagram of a second hands-free communication device. 
           [0021]      FIG. 4  is a block diagram of a third hands-free communication device. 
       
    
    
     DESCRIPTION 
     1 System Overview 
       [0022]    Referring to  FIG. 1 , an automobile operator  105  communicates with a remote telephone user  107  through a hands-free communication device  100 . The hands-free communication device  100  includes a speaker  122  which transduces an incoming signal  124  from the remote telephone user  107  into audible sound for the operator  105 . The hands-free communication device  100  also includes a microphone  108  which senses a combination of non-engine related ambient noise  102 , audible sound  121  produced by the speaker  122 , engine noise  104 , and the operator&#39;s speech  106  and transduces the sensed combination into a microphone signal  114 . The hands-free communication device  100  also receives a revolutions per minute (RPM) signal  110 , indicative of the rotational frequency of the engine, from an engine computer  112 . The hands-free communication device  100  processes the microphone signal  114  on the basis of the RPM signal  110  and transmits the processed signal to a cellular network  120  and ultimately to the remote telephone user  107 . 
         [0023]    The hands-free communication device  100  also includes a conventional echo canceller  113 , an engine noise estimator  126 , a conventional active noise reduction (ANR) module  128 , and a telecommunications interface  118 . The first step in processing the microphone signal  114  includes providing the microphone signal  114  and the incoming signal  124  to the echo canceller  113  which removes the component related to the audible sound  121  produced by the speaker  122  from the microphone signal  114 , resulting in an echo-free microphone signal  115 . The echo-free microphone signal  115  and the RPM signal  110  are then provided to the engine noise estimator  126 . The engine noise estimator  126  is an adaptive filter which leverages a-priori knowledge of a relationship between the RPM signal  110  and the harmonic structure of the engine noise  104  to determine an estimate of a component of the microphone signal  114  which is related to the engine noise  104 . In the embodiment shown in  FIG. 1 , the engine noise estimator  126  removes the estimate of the component which is related to the engine noise  104  from the echo-free microphone signal  115 , creating an engine noise-free signal  130 . The engine noise-free signal  130  is substantially free of components of the microphone signal  114  which are related to the engine noise  104 . Thus, the components of the microphone signal  114  which are present in the engine noise-free signal  130  are related to the ambient noise  102  and the speech  106 . The engine noise estimator  126  is described in greater detail below in the discussion relating to  FIG. 2 . 
         [0024]    The engine noise-free signal  130  is passed from the engine noise estimator  126  to the ANR module  128  (e.g., a spectral subtraction noise reduction module) which estimates the component of the microphone signal  114  which is related to the ambient noise  102 . The ANR module  128  then generates a signal  116  for transmission by removing the estimate of the component of the microphone signal  114  from the engine noise-free signal  130 . Thus, the signal  116  for transmission includes only the component of the microphone signal  114  which is related to the speech  106  and is substantially free of the components of the microphone signal  114  which are related to the audible sound  121 , the ambient noise  102  and the engine noise  104 . 
         [0025]    The signal  116  for transmission is provided to a telecommunications interface  118  (e.g., a cellular radio) for transmission to a cellular network  120  and ultimately to a remote telephone user  107 . 
       2 Engine Noise Estimation 
       [0026]    Referring to  FIG. 2 , one embodiment of an engine noise estimator  126  accepts the RPM signal  110  and the echo-free microphone signal  115  as inputs and processes the inputs  110 , 115  to generate the engine noise-free signal  130 . 
         [0027]    To estimate the engine noise  104  component of the microphone signal  114 , the engine noise estimator  126  includes a multi-input adaptive linear combiner  227 . The multi-input adaptive linear combiner  227  includes N harmonic frequency generators  232 , N sets of harmonic frequency weighting coefficients  234 , a summer  236 , and an adaptation control module  240 . 
         [0028]    Each harmonic (referred to as h i  (t) in the following section) included in the engine noise  104  can be described using the form: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       h 
                       i 
                     
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                   = 
                     
                    
                   
                     
                       
                         c 
                         i 
                       
                        
                       
                         ( 
                         t 
                         ) 
                       
                     
                     · 
                     
                       sin 
                        
                       
                         ( 
                         
                           
                             
                               
                                 ω 
                                 i 
                               
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             · 
                             t 
                           
                           + 
                           
                             
                               ϕ 
                               i 
                             
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                         
                         ) 
                       
                     
                   
                 
               
             
             
               
                 
                   
                     = 
                       
                      
                     
                       
                         
                           
                             c 
                             i 
                           
                            
                           
                             ( 
                             t 
                             ) 
                           
                         
                         · 
                         
                           sin 
                            
                           
                             ( 
                             
                               
                                 
                                   ω 
                                   i 
                                 
                                  
                                 
                                   ( 
                                   t 
                                   ) 
                                 
                               
                               · 
                               t 
                             
                             ) 
                           
                         
                         · 
                         
                           cos 
                            
                           
                             ( 
                             
                               
                                 ϕ 
                                 i 
                               
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             ) 
                           
                         
                       
                       + 
                       
                         
                           
                             c 
                             i 
                           
                            
                           
                             ( 
                             t 
                             ) 
                           
                         
                         · 
                         
                           cos 
                            
                           
                             ( 
                             
                               
                                 
                                   
                                     ω 
                                     i 
                                   
                                    
                                   
                                     ( 
                                     t 
                                     ) 
                                   
                                 
                                 · 
                               
                                
                               t 
                             
                             ) 
                           
                         
                       
                     
                   
                    
                   
                     · 
                     
                       sin 
                        
                       
                         ( 
                         
                           
                             ϕ 
                             i 
                           
                            
                           
                             ( 
                             t 
                             ) 
                           
                         
                         ) 
                       
                     
                   
                 
               
             
             
               
                 
                   = 
                     
                    
                   
                     
                       
                         
                           a 
                           i 
                         
                          
                         
                           ( 
                           t 
                           ) 
                         
                       
                       · 
                       
                         sin 
                          
                         
                           ( 
                           
                             
                               
                                 ω 
                                 i 
                               
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             · 
                             t 
                           
                           ) 
                         
                       
                     
                     + 
                     
                       
                         
                           b 
                           i 
                         
                          
                         
                           ( 
                           t 
                           ) 
                         
                       
                       · 
                       
                         cos 
                          
                         
                           ( 
                           
                             
                               
                                 ω 
                                 i 
                               
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             · 
                             t 
                           
                           ) 
                         
                       
                     
                   
                 
               
             
           
         
       
       
         
           
             where 
              
             
               : 
             
           
         
       
       
         
           
             
               
                 a 
                 i 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               
                 
                   c 
                   i 
                 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               · 
               
                 cos 
                  
                 
                   ( 
                   
                     
                       ϕ 
                       i 
                     
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                   ) 
                 
               
             
           
         
       
       
         
           and 
         
       
       
         
           
             
               
                 b 
                 i 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               
                 
                   c 
                   i 
                 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               · 
               
                 sin 
                  
                 
                   ( 
                   
                     
                       ϕ 
                       i 
                     
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                   ) 
                 
               
             
           
         
       
     
         [0029]    Thus, to generate the unweighted sine and cosine components of the harmonics, each of the N harmonic frequency generators  232  includes both a sine component generator  232   a  and a cosine component generator  232   b . When the harmonic frequency generators  232  receive the RPM signal  110 , the RPM signal  110  is converted to a frequency and used by the sine and cosine component generators  232   a ,  232   b  to generate sine and cosine components for the frequency. For example, based on the RPM signal, the frequencies of both the sine component  232   a  and the cosine component  232   b  of the first harmonic generator are set to the fundamental frequency (i.e., 1·ω) of the engine noise  104 , the frequencies of the sine and cosine components of the second harmonic frequency generator are set to twice the fundamental frequency (i.e., 2·ω) of the engine noise  104 , the frequencies of the sine and cosine components of the third harmonic frequency generator are set to three times the fundamental frequency (i.e., 3·ω) of the engine noise  104 , and so on. In some examples, the sine and cosine component generators  232   a ,  232   b  include lookup tables for generating the sine and cosine components. 
         [0030]    The N sine components  232   a  and the N cosine components  232   b  generated by each of the harmonic frequency generators  232  are then passed to the N sets of harmonic frequency weighting coefficients  234 . Each set of harmonic frequency weighting coefficients  234  includes a first weighting coefficient a i (t)  234   a  for weighting the sine component  232   a  of the generated harmonic frequency and a second weighting coefficient b i (t)  234   b  for weighting the cosine component  232   b  of the generated harmonic frequency. 
         [0031]    After the generated harmonic frequency components  232   a ,  232   b  for each of the harmonic frequency generators  232  are weighted by their corresponding harmonic frequency weighting coefficients  234   a ,  234   b , all of the weighted harmonic frequency components are summed by the summer  236  to produce an estimate of the engine noise  240 . The estimate of the engine noise  238  is combined with the echo-free microphone signal  115 , resulting in the engine noise-free signal  130 . 
         [0032]    In operation, the engine noise estimator  126  adaptively determines the estimated engine noise  238 . That is, the engine noise estimator  126  adapts the N sets of harmonic frequency weighting coefficients  234  to converge to the engine noise-free signal  130 . Thus, the engine noise-free signal  130  can also be viewed as an error signal for an adaptive filter. This error signal  130  is passed to an adaptation control module  240  which uses the error signal  130  to determine a coefficient update for the N sets of harmonic frequency weighting coefficients  234 . In some examples, the adaptation control module  240  determines the coefficient update using a least mean squared (LMS) approach. In other examples, the adaptation control module  240  determines the coefficient update using a recursive least squares (RLS) approach. In some examples, the adaptation control block  240  adjusts its rate of adaptation based on short time characteristics of the speech signal. For example, the rate of adaptation may be reduced when a speech signal is present, thereby minimizing the impact of the speech on the estimated engine noise signal  238 . 
         [0033]    The coefficient update determined by the adaptation control module  240  is passed to the N sets of harmonic frequency weighting coefficients  234 , at which time the harmonic frequency weighting coefficients  234  are updated. 
         [0034]    The N sets of harmonic frequency weighting coefficients  234  eventually converge to a state where combination of the estimate of the engine noise  238  and the echo-free microphone signal  115  is minimized. In this state, the result of subtracting the estimated engine noise  238  from the echo-free microphone signal  115  is substantially an engine noise-free signal  130 . The engine noise-free signal  130  is passed out of the engine noise estimation module  126  for use by the hands-free communication device  100 . In some examples, the estimated engine noise  238  is also passed out of the engine noise estimation module  126  for use by the hands-free communication device  100 . 
       3 Alternative Embodiments 
       [0035]    In some examples it may be desirable to transmit a harmonically enhanced version of the engine noise to another party during a telephone conversation. For example, one may want to transmit the engine noise when they are accelerating in their sports car. 
         [0036]    Referring to  FIG. 3 , a hands-free communication device  300  operates in a similar manner to the hands-free communication device  100  of  FIG. 1 . The main difference between the two hands-free communication devices  100 , 300  is that the hands-free communication device  300  of  FIG. 3  includes a harmonic enhancer  342  which receives the estimated engine noise  238  from the engine noise estimator  126  and the RPM signal  110  as inputs and uses the inputs to form a harmonically enhanced version of the estimated engine noise  346 . 
         [0037]    In general, the harmonic enhancer  342  applies a desired spectral shape (e.g., a spectral shape which is predefined by the automobile manufacturer) to the estimated engine noise  238  to achieve a desired engine sound. In operation, the harmonic enhancer  342  determines desired spectral shape based on the RPM signal  110  and applies the shape the estimated engine noise  238 , resulting in the harmonically enhanced version of the estimated engine noise  346 . In some examples, the desired spectral shape is determined based on other engine characteristics such as torque, engine load, etc. In some examples, the harmonic enhancer  342  operates on the individual harmonics of the estimated engine noise  346  to apply the desired spectral shape. In other examples, the desired spectral shape is applied as a frequency domain filter. In other examples, the desired spectral shape is applied as a time domain filter. 
         [0038]    The hands-free communication device  300  then forms a signal  316  for transmission by combining the harmonically enhanced version of the estimated engine noise  346  with the output  344  of the ANR module  128 . In this way, the operator ( FIG. 1 , element  105 ) can allow the remote telephone user ( FIG. 1 , element  107 ) to listen to the harmonically enhanced version of the estimated engine noise  346 . 
         [0039]    Further description of forming a harmonically enhanced version of the engine noise can be found in 300783″ which is incorporated herein by reference. 
         [0040]    In some examples it may be desirable to transmit music which is playing in a vehicle to another party during a telephone conversation. Doing so electronically rather than by turning up the volume in the vehicle enhances such an experience. 
         [0041]    Referring to  FIG. 4 , a hands-free communication device  400  operates in a similar manner to the hands-free communication device  100  of  FIG. 1 . The main difference between the two hands-free communication devices  100 , 400  is that the hands-free communication device  400  of  FIG. 4  receives an audio signal  450  (e.g., a signal including music) from an audio device  452  (e.g., an MP3 player, radio, or CD player). The hands-free communication device  400  combines the audio signal  450  with the output  444  of the ANR module  128  to form a signal  416  for transmission. In this way, the operator ( FIG. 1 , element  105 ) can allow the remote telephone user ( FIG. 1 , element  107 ) to listen to the audio signal  450  which they are playing through their automobile&#39;s speaker system. 
       4 Implementations 
       [0042]    Systems that implement the techniques described above can be implemented in software, in firmware, in digital electronic circuitry, or in computer hardware, or in combinations of them. The system can include a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor, and method steps can be performed by a programmable processor executing a program of instructions to perform functions by operating on input data and generating output. The system can be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits). 
         [0043]    It is to be understood that the foregoing description is intended to illustrate and not to limit the scope of the invention, which is defined by the scope of the appended claims. Other embodiments are within the scope of the following claims.