Abstract:
A method is disclosed of modification of parameters of audio signals by dividing a digital signal converted from an original analog signal into sound frames, modifying a pitch and a playing rate of the digital signal within a frame and subsequent successive splicing a last modified frame with a first non-modified frame and calculating the mean absolute error to define the best splicing point in terms of producing minimal or no audible noise such that various sections of sound signals can be spliced together to achieve pitch and playing rate modification. 
     An apparatus is also disclosed for implementing the method, the apparatus comprising input and output amplifiers, a low pass filter at the input and a low pass filter at the output, analog-to-digital and digital-to-analog converters, and a pitch shifting processor.

Description:
FIELD OF THE INVENTION 
     The present invention is generally related to algorithms for pitch and playing rate modifications of audio signals and more particularly, relates to high efficiency algorithms for the pitch and rate modification of audio signals by calculating the mean absolute error to find the best splicing point such that various sections of sound signals can be spliced together to achieve pitch and rate modifications. 
     BACKGROUND OF THE INVENTION 
     In audio signal recordings, efforts have been made to modify the pitch and playing rate of sound signals in specific audio applications. For instance, modifications have been attempted in various applications such as in the use of a sampling synthesizer, a harmonizer, a vocoder, a language learning machine, a telephone answering machine, and software for computer synthesized music. When modification of human vocal signals is desired, a compression technique has been used to modify the sound signals according to the pitch of the singer to adjust the amplitude of the signals. In general, the modification range of the amplitude of an adjustable input sound signal is within an octave. The sound signals can be adjusted in a total of 24 halftones including 12 descending halftones and 12 ascending halftones. The modification must match the demand for the real time handling of data by relatively simple hardware design. It must also avoid any detectable distortions of the sound. 
     Traditionally, a segmentation and splicing method utilizing resampling and formatting for the modification of sound signals has been adopted. However, this modification method produces an unacceptable level of sound distortion. The technique of resampling centers on changing the sampling frequency such that it not only changes the amplitude of the sound signal but also changes the signal length and the shape of the formant envelope. In order to maintain the original signal length, other workers have performed the compression and expansion technique after resampling of the sound signals. However, these compression/expansion steps frequently produce short durations of pop noise. Furthermore, the changing of the shape of the formant envelope produces high pitch noise. The segmentation/splicing method utilizes a linear prediction filter and Fourier transformation to maintain the shape of the formant, however, the calculation steps required are very extensive. Still other workers have utilized oscillators and filter banks for the modification of sound pitch. These methods produce low frequency and high frequency noises and furthermore, require multiple steps of calculation. 
     It is therefore an object of the present invention to produce a method for modification of the pitch and playing rate of sound signals that does not have the shortcomings of the prior art methods. 
     It is another object of the present invention to provide a method for modification of the pitch and playing rate of sound signals by calculating the mean absolute error of the sound signals for the determination of an optimum splicing point. 
     It is a further object of the present invention to provide a method for modification of the pitch and playing rate of sound signals by calculating the mean absolute error of the signals by incorporating a block binary search method. 
     SUMMARY OF THE INVENTION 
     In accordance with the objects declared in the above, in the first aspect of the invention, there is provided a method of modifying parameters of audio signals, comprising the steps of converting an analog audio signal into a digital signal; dividing the digital signal into sound frames; modifying a pitch and playing rate of the digital signal within a frame; splicing so modified sound frame with a non-modified sound frame in such a way that this non-modified sound frame overlaps an end region of the modified sound frame for cross fading. The modifying and splicing steps are repeated for the mentioned non-modified sound frame and also for remaining non-modified sound frames of the digital signal to obtain a modified digital signal. Then, the modified digital signal is converted back into an analog form. 
     Where the step of modifying results in longer sound frames, excessive non-modified sound frames are discarded to preserve the playing time unchanged. On the other hand, where the step of modifying results in shorter sound frames, deficient sound frames are taken from the original digital signal to preserve the playing time unchanged. 
     In performing the overlapping, the non-modified sound frame superposes the end region of the modified sound frame with a portion thereof which is most similar in sound structure to this end region. This similarity in sound structure is established by defining the mean absolute error of splicing requiring the least number of steps of calculation according to function ##EQU1## where MAE is the mean absolute error of splicing, also known as the Average Magnitude Difference Function (AMDF); 0≦τ&lt;sr, where sr is a search region; cs is a cross fading size; x 1  refers to a modified frame and x 2  refers to a non-modified frame. 
     The MAE is defined in points nτ apart from each other, n is integer and depends on an allowable range of accuracy in calculations. The search region is divided into a number of sections, to further define the MAE for each of the sections, compare the defined MAEs to each other, and to choose a section with a smallest MAE as an optimum splicing location. 
     The number of calculations required for locating the section with a smallest MAE is 
     
         n 3+2(log.sub.2 MS/n-2)! 
    
     where n is the number of sections, MS is the length of the search region. 
     According to the second aspect of the invention, a method of modifying parameters of audio signals is provided, comprising the steps of converting an analog audio signal into a digital signal; dividing this digital signal into sound frames; modifying playing time of a frame; splicing the modified sound frame with a non-modified sound frame so that the non-modified sound frame overlaps an end region of the modified sound frame for cross fading; and repeating the modifying and splicing steps for this non-modified sound frame and remaining non-modified sound frames of the digital signal to obtain a modified digital signal. Then, the modified digital signal is converted back into an analog form. 
     If any step during audio signal processing results in increasing or decreasing an amplitude of the audio signal, measures are taken to maintain the amplitude of the audio signal unchanged. For this purpose, the modifying step of changing playing time includes increasing or decreasing the playing time, respectively. 
     In performing the overlapping of the modified and non-modified sound frames, the non-modified sound frame superposes the end region of the modified sound frame with a portion thereof which is most similar in sound structure to the end region. This similarity in sound structure is established by defining the mean absolute error of splicing requiring the least number of steps of calculation according to function ##EQU2## where MAE is the mean absolute error of splicing; 0≦τ&lt;sr, where sr is a search region; cs is a cross fading size; x 1  refers to a modified frame and x 2  refers to a non-modified frame. The MAE is defined in points nτ apart from each other, n is integer and depends on an allowable range of accuracy in calculations. The search region is divided into a number of sections, to further define the MAE for each of the sections, compare so defined MAEs to each other, and to choose a section with a smallest MAE as an optimum splicing location. 
     The number of calculations required for locating the section with a smallest MAE is 
     
         n 3+2(log.sub.2 MS/n-2)! 
    
     where n is the number of sections, MS is the length of the search region. 
     An apparatus for modifying parameters of audio signals is provided. According to the present invention, it comprises an input amplifier and an output amplifier, a first and a second low pass filters, an analog-to-digital converter, a digital-to-analog converter, and a pitch shifting processor. The input amplifier, first low pass filter, and analog-to-digital converter are connected in series and are input to the pitch shifting processor, whereas the digital-to-analog converter, the second low pass filter, and the output amplifier are connected in series at the output of the pitch shifting processor. 
     The pitch shifting processor comprises an input unit connected with an input buffer, an output unit connected with an output buffer, a cross fading data memory for storing portions of audio signals that require cross fading, an address unit connected with the input and output buffers and the cross fading data memory, a register file unit, a digital processing unit for calculating mean absolute error and cross fading value, and a control unit. The input buffer, cross fading data memory, register file unit, digital processing unit, control unit, and output buffer are operatively interconnected through a bus system. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Other objects, features and advantages of the present invention will become apparent upon consideration of the specification and the appended drawings, in which: 
     FIG. 1 is a graph illustrating sound signals played at the same playing rate with increased and decreased sampling points. 
     FIG. 2 is a diagram illustrating the present invention sound frame splicing method for increasing the sound scale. 
     FIG. 3 is a diagram illustrating the present invention sound frame splicing method for decreasing the sound scale. 
     FIG. 4 is a diagram illustrating the ranges and the search method for finding the best splicing location for the sound frames. 
     FIG. 5 is a diagram illustrating the present invention binary search method for finding the best splicing location. 
     FIG. 6 is a block diagram showing an apparatus according to the present invention. 
     FIG. 7 is a block diagram of a pitch shifting processor of the apparatus of FIG. 6. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     In accordance with the present invention, a method of modifying the pitch and the playing rate of sound signals without the shortcomings of the prior art methods is provided. 
     The simplest method for modifying the pitch of a sound signal is to produce the same effect as if playing a tape recorder at a higher speed or at a lower speed. This effect can be produced by two different methods. First, if the playing rate is kept constant, the sampling points can be proportionally decreased or increased. This is shown in FIG. 1. The original sound signal is illustrated as 10. The sound signal 12 illustrates that the sampling points has been proportionally reduced in order to achieve the effect of a faster played sound. The sound signal 14 illustrates the condition where the sampling points has been proportionally increased in order to produce the effect of playing the sound at a slower speed. The second method is to keep the sampling points constant while increasing or decreasing the playing rate. This method is similar to the principle of playing a tape recorder at a higher speed or at a lower speed. However, one drawback produced by either one of the methods is that the resulting playing time is changed. In order to correct this problem, a duplicate/discard method of modifying sound signals can be utilized to first divide a continuing sound signal into several sections called sound frames. In a situation where the amplitude is decreased, and it results in a longer sound frame, the excessive silent sound signal samples signal will be discarded. On the other hand, if the amplitude is increased, and it results in a shorter sound frame, the deficient portion of the sound signal may be filled in by other non-silent sections of sound frames. By using this technique, the length of each sound frame can be maintained at a constant value. 
     For further illustration, the method of filling-in sound signals having deficient length by other sound frames can be executed as follows. For a sound frame having a playing time length of M ms (milliseconds), if the pitch has been increased by increasing the frequency to x times, the playing time of the sound is shortened resulting in an output sound frame of M/x ms. The deficient sound frame at the end of the time scale, can be filled in by taking a section of the sound frame of the original sound signal and splicing it to the end of the deficient sound frame, i.e. by taking a sound frame from M/x to M/x+M ms of the original sound signal. Each sound frame must be added by a small region 20 of sound signal for cross fading, i.e. for linear addition. This is shown in FIG. 2. A section of a sound frame of an input sound signal shown as 16 is shortened to a length of 18 after the sampling points is proportionally reduced or the sampling frequency is increased. From the end of the sound frame 18 (not including the cross fading portion of 20), it is then matched to the original sound signal. This is shown in FIG. 2 as 22. The step is repeated for the remaining sections of the sound signal. 
     On the other hand, if the pitch of the sound signal is reduced resulting in a frequency drop of x times, the total playing time becomes xM ms. This is shown in FIG. 3. Similar to above, at the end of sound playing by taking the corresponding position of the original sound signal, i.e., at the position of the original sound signal from xM to xM+M ms, a section of the sound frame is connected at the end of the sound output. A cross fading section is similarly performed at the interface of each sound frame. For instance, sound frame 32 is a section of the input sound signal which after increasing the sampling points or decreasing the sampling frequency increases in length to that shown as 34. At the tail end of sound frame 34, a small section 36 is used for cross fading. The tail end of sound frame 34 (not including the cross fading section 36) is then matched to the original sound signal indicated by sound frame 38 in FIG. 3. The step is repeated to complete the process. 
     In sound signals modified by the present invention method, the degree of change in the sound scale is related to the magnitude of the sound frame and the cross fading. Generally, the higher the pitch is modified to, the smaller is the length of the sound frame and the cross fading such that noticeable echo can be avoided. It has also been discovered that the longer the cross fading, the smaller is the noise produced. However, when the cross fading is too long, then the tone quality of the sound can suffer. Even though the cross fading method can be used to splice sound frames together for a smoother transition, noise can still be produced due to the relative position of the sound frames. It is therefore desirable to further improve the present invention by locating an area of the sound frame that is most similar to the other sound frame such that they can be spliced together without producing significant noise. A method for locating such positions is shown in FIG. 4. For instance, the small sound frame section 42 at the tail end of sound frame 40 is compared to the front section 44 of the second sound frame 46. The small section 42 shows the magnitude of the cross fading area which is smaller than the front section 44 of the sound frame 46. It is therefore necessary to find a similar section 48 within sound frame 46 in order to splice sound frame 46 with sound frame 40. 
     A mathematical method is proposed to find the most similar splicing area for sound frames. The method calculates the mean absolute error (MAE) of splicing which requires the least number of steps of calculation and thus producing the highest efficiency in splicing. According to the method, ##EQU3## wherein the location of the MAE is the best splicing point for the sound frames. Since 1/cs can be neglected as a positive constant, the calculation for MAE only requires addition/subtraction which is a simple process since no multiplication is required. 
     In applying the MAE method for locating the best splicing position, all the samples within the sound frame are calculated. It was discovered that since sound signals have certain regularity, the difference between any two adjacent points is very small. It is therefore possible to take one of each two points for the calculation in a subsampling method. By utilizing the subsampling method, the total number of calculations is reduced by half while the accuracy of the calculation is not noticeably affected. Table 1 shows the signal to noise ratio (SNR) calculated for a male voice, a violin sound and an electronic music by both the MAE method and the MAE/subsampling method. 
     
                       TABLE 1______________________________________SNR           MAE      MAE &amp; Subsample______________________________________Male Voice    26.25415 26.20773Violin Sound  31.56789 31.14602Electronic Music         19.85814 19.737______________________________________ 
    
     As shown in Table 1, the SNR values obtained for the different sound signals by using the method with or without subsampling is not significantly affected. In an actual listening test, the differences could not be detected by a normal human ear. It is also possible to take one sampling point out of each three points or one sampling point out of each four points to further reduce the number of calculations, as long as the deviation from accuracy is within an allowable range. 
     In a further development, the present invention utilizes a method of motion estimation which is normally used in the treatment of moving images. By the further incorporation of the motion estimation method, the total number of calculations required to locate the MAE can be greatly reduced. In other words, in a search for the best splicing location, a two dimensional method can be reduced to a unidimensional binary search method. To improve the accuracy of such search, the search region can be divided into many sections wherein the MAE values of each region is determined. The various MAE values are then compared and the smallest value is chosen as the optimum splicing location. This modified method is called block binary search and is shown in FIG. 5. One of the sound region is shown as 52. By dividing sound region 52 into four equal parts, wherein small sections 54, 56, and 58 each representing the 1/4 region, the 2/4 region and the 3/4 region. These regions are each determined for its MAE value and then concluded that region 58 is the best matching location. A corresponding small section 60 is then used as the center location, and small region 62 at 1/8 ahead and small region 64 at 1/8 behind are determined for their most matching location. As shown in FIG. 5, the small region 62 at the 5/8 location was found to be the most matching. By following this method, until the three neighboring small regions are only one point away from each other such that the most matching location 66 is determined as the splicing location for the two sound frames. 
     Assuming that the search region is divided into n sections, the numbers of calculations required for locating each best matching point is 
     
         n· 3+2·(log.sub.2 MS/n-2)! 
    
     wherein MS is the length of the search region. For instance, if 
     
         n=4, MS=10 ms×22.05 kHz=220.5 
    
     By applying the block binary search method, the total number of calculations required is reduced to 42, which is only 20% of the original number of calculations. If the subsampling method is also adopted, then the total number of calculations can be again reduced to 1/2, i.e., to 10% of the original number of calculations. 
     The efficiency of calculation by a block binary search method is shown in Table 2. The signal to noise ratio determined for three different sound signals with or without the BBS method are shown which presented very small differences. These differences are not detectable by normal human hearing. 
     
                       TABLE 2______________________________________                            MAE &amp; BBS &amp;SNR        MAE      MAE &amp; BBS    Subsample______________________________________Male Voice 26.25415 25.66386     25.32933Violin Sound      31.56789 31.11732     31.06021Electronic Music      19.85814  19.602.05   19.76816______________________________________ 
    
     The present invention therefore enables change of the number of sampling points by changing the playing rate of the sound. By the calculations demonstrated above, the modified sound can be played by the same playing rate without changing the pitch, while reducing or increasing the playing time. For instance, if the calculation of a certain sound signal involves increasing the amplitude, the data amount contained in the sound signal will increase. At the same playing rate, the total playing time would increase while maintaining the same amplitude. Conversely, if the calculation involves reducing the amplitude, the data amount in the sound signal will decrease which enables a shorter playing time while maintaining the same amplitude. Therefore, by utilizing the present invention method, a sound signal can be played faster or slower while maintaining the same pitch of the sound. 
     Sound signals are normally presented as analog signals. However, when these signals are processed, a digital processing method must be used. After the processing of the digital signals, they are transformed into analog signals again for output. FIG. 6 illustrates a block diagram for sound signal processing incorporating pitch modification. First, a microphone transforms sound into an analog electronic signal x(τ) for processing. The analog signal x(τ) is amplified by an input amplifier 70 to strengthen the signal. The amplified signal is then past through a low pass filter 72 for the elimination of noise signals. The filtered signal is sent through an analog/digital converter 74 to change the analog signals into digital signals. At this point, the digital signals are PCM which are sent through a pitch shifting processor 76 for processing. The processed signals are then sent through a digital/analog converter 78 to change the signals to analog signals. The analog signals are then sent through another low pass filter 80 and an output amplifier 82 for outputting through a speaker to audible sound having modified pitch. 
     FIG. 7 illustrates the architecture of a pitch shifting processor. The sound data is sent through PI 90 into a input buffer 92. The cross fading data 94 stores the rear portion of the previous sound frame that requires cross fading. The DPU 96 is used for calculating MAE and the cross fading value. The sound signals after processing are then sent to an output buffer 98 and P0 100 for external delivery. 
     While the present invention has been described in an illustrative manner, it should be understood that the terminology used is intended to be in a nature of words of description rather than of imitation. 
     Furthermore, while the present invention has been described in terms of preferred embodiment thereof, it is to be appreciated that those skilled in the art will readily apply these teachings to other possible variations of the invention. 
     The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows: