Patent Publication Number: US-2015066549-A1

Title: System, Method and Apparatus for Voice Analytics of Recorded Audio

Description:
RELATED APPLICATION DATA 
     This application claims priority to co-pending provisional application Ser. No. 61/655,594 filed on Jun. 5, 2012 and entitled “System, Method, and Apparatus for Voice Analytics of Recorded Audio.” The contents of this co-pending application are fully incorporated herein for all purposes. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to a method for analyzing recorded speech. More specifically, the present invention relates to a method for predicting business outcomes by analyzing recorded speech. 
     2. Description of the Background Art 
     Presently, there are methods to enable companies to use speech analytics for enhancing a company&#39;s business performance. Currently, however, such methods require costly and unnecessary methods. 
     Call centers usually deal with calls, complaints, and requests coming from a large number of clients. These conversations can support several business processes, such as customer retention, sales, fraud management, etc. For instance, in the case of an inbound sales business process, the agent asks the client whether he or she is interested in a new product or service. The question is whether any alternative product or service should be offered in the form of a direct telephone call to clients who did not purchase anything during the previous telephone conversation (i.e. in the “inbound” sales phase). 
     Prior solutions utilize computer technology to recognize content (e.g. keywords, full sentences, etc.) in digitally recorded conversations. Other solutions have utilized signal-based information from human voice such as loudness, speed, and changes in intonation, but have done so based upon keyword or full sentence content. Such approaches require sophisticated and expert work to configure and maintain their operability. 
     The present invention eliminates the need for expensive and burdensome speech analytics and allows companies to use speech analytics to enhance a company&#39;s business performance. 
     The present invention is created for companies in need of speech analytics to enhance a company&#39;s business performance. 
     SUMMARY OF THE INVENTION 
     Therefore, it is an object of this invention to provide an improvement which overcomes the aforementioned inadequacies of the prior art systems and provides an improvement which is a significant contribution to the advancement of the art of speech analytics. 
     Another object of this invention is to predict business outcomes based upon audio recordings. 
     A further object of this invention is to create a model for the given business target, based upon annotated sound conversations. 
     For the purposes of summarizing this invention, the invention relates to a unique approach for maximizing the number of positive business outcomes on the top of the ranked set by using predictions based on a model. The business outcome is set directly by the user of the system of the present invention by feeding annotated conversations into the system. The annotation consists of sound files labeled as successful/not successful business event. The prediction is based on a model which relies on the extracted features of digitally recorded conversations. 
     In one aspect of the present disclosure, a method, system, and/or apparatus may include the following steps: initial model, generate rank, validate model, and refine model. Initial model may include providing the method, system, and/or apparatus with a collection of annotated audio recordings, such as telephone conversations. These audio recordings are preferably annotated in accordance with the business result desired (i.e. successful/unsuccessful sales calls). 
     The generate rank step includes extracting pre-selected features from each recorded conversation and then running the prediction engine. The validate model may include comparing the desired business outcome with the ranked audio conversations. The refine model step learns from the validation phase and may upgrade the initial model or build a new one based upon the desired business results. This validation stage may also include feedback from the customer. 
     The foregoing has outlined some of the pertinent objects of the invention. These objects should be construed to be merely illustrative of some of the more prominent features and applications of the intended invention. Many other beneficial results can be attained by applying the disclosed invention in a different manner or modifying the invention within the scope of the disclosure. Accordingly, other objects and a fuller understanding of the invention may be had by referring to the summary of the invention and the detailed description of the preferred embodiment in addition to the scope of the invention defined by the claims taken in conjunction with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a fuller understanding of the nature and objects of the invention, reference should be had to the following detailed description taken in connection with the accompanying drawings. 
         FIG. 1  is a flow chart illustrating the steps associated with the method of the present invention. 
         FIG. 2   a  is a table of extracted audio features. 
         FIG. 2   b  is a table of extracted audio features tabulated relative to desired business outcomes. 
         FIG. 3  is a diagram illustrating the initial model, rank generation, model validation and model refinement. 
         FIG. 4  is a flow chart showing different steps of both the learning and the evaluation phases in parallel. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The present invention relates to a method for analyzing recorded telephone calls in order to predict business outcomes. The method involves recording a series of initial telephone calls and analyzing those calls for particular audio features. The audio features are tabulated and annotated to specify whether the telephone call resulted in a pre-determined business outcome. A model is then built whereby the pre-determined business outcome can be predicted based upon the presence of certain audio features. The model can subsequently be used to predict whether future calls are likely to result in the pre-determined business outcome. The various features of the present invention, and the manner in which they interrelate, are described in greater detail hereinafter. 
     In one preferred embodiment (the initial model) of the system or method in accordance with the present disclosure, a user may feed the system with annotated conversations (successful/not successful event) and the system builds a model based on this train information. During ranking, the system of the present invention constructs an equal number of features for each conversation and runs the prediction engine. During validation, the system of the present invention reveals the business outcome of the ranked conversations by the underlying business process. 
     The system of the present invention learns from the validation phase and is capable to either upgrade initial model or build a new model. The speech analytics and data mining software techniques of the present invention are comprised of layered software architecture consisting of a core engine, a scheduler and a graphical user interface. 
     The core engines of the system consist of all speech analytics and data mining modules necessary for feature extraction, automatic model building and predictions. Core engines are the most essential part of the present invention due to the proprietary, self-researched algorithms in the field of machine learning and parallel processing. Notably, the system does not apply conventional text mining approaches by converting speech to text. Instead, the system extracts features directly from recorded voice. As a result, the system is not language specific and can be used on multiple different languages. 
     As noted in  FIG. 1 , the system  10  of the present invention has three core engines. These include a feature extraction engine  20 , a model builder engine  30 , and a prediction engine  40 . Furthermore, an additional refining engine  50  can be included for refining the initial model. The function and operation of each of these engines is described next. 
     Feature Extraction Engine 
     The feature extraction engine  20  of the present invention is a module that processes the sound files and extracts equal number of features from it. This feature matrix is later used for model building and prediction engines. The extraction engine  20  records a series of telephone calls. These are ideally calls from individuals to a business. The calls are digitally processed as sound files. Thereafter, the sound files are analyzed and various audio features are extracted from each of the telephone calls. The extracted features may be, for example, volume, tone, pitch, speed, etc. Other features can be extracted that are indicative of certain emotions, such as anger, happiness, or frustration. Thereafter, the extraction engine  20  builds a feature matrix whereby a plurality of the extracted audio features are tabulated. An example of such a tabulation is included as  FIG. 2   a.    
     Model Builder Engine 
     The model builder engine  30  of the invention automatically builds a model based on whether the individual telephone calls resulted in a pre-determined business outcome. Pre-determined business outcome can be any of a wide variety of favorable business outcomes. The pre-determined outcome may be, for example, whether a sale is completed, whether the individual participated in a survey, or whether the individual chose to sign up for a mailing list. Any of a number of other pre-determined business outcomes can likewise be used in connection with the invention. The model builder engine  30  updates the feature matrix by indicating whether the pre-determined business outcome was achieved for a particular call. The annotated feature matrix is indicated in  FIG. 2   b.    
     Thereafter, the annotated feature matrix is used to establish a model whereby the pre-determined business outcome is associated with a subset of the extracted audio features. For example, the model may specify that a particular voice tone, inflection, and speed are more frequently associated with the pre-determined business outcome. Likewise, a tone, inflection, or speed above or below a pre-determined threshold value can be associated with a business outcome. The referenced measurements can be made in decibels, voice frequency, or words per minute. The model would, therefore, specify that callers matching those audio features are more likely to result in the favorable business outcome. The engine&#39;s output is a model that is used for future predictions. For example, with reference to  FIG. 2   a , the model may predict a positive outcome when audio features  1  and  2  are present. 
     Prediction Engine 
     The prediction engine  40  uses the model and the extracted features to predict the business outcome for new sound files. The prediction engine  40  records additional telephone calls from individuals calling the business. These calls are likewise processed as sound files. Various audio features are again extracted from each of the sound files. Thereafter, the engine  40  predicts whether the pre-determined business outcome will occur based upon the established model. Namely, the established model is compared to the newly extracted voice feature to predict the likelihood of a desired business result. The telephone calls can be placed in a ranked order based upon the prediction. This ranking, in turn, can be used to properly route and/or prioritize calls within the business. 
     Refining Engine 
     Following the disposition of the call, the refining engine  50  can be used to further develop the model. This is accomplished by determining whether each additional telephone call, in fact, resulted in the actual occurrence of the pre-determined business outcome. Next, a comparison is made between the actual occurrence with the prediction. In other words, the actual occurrence can be used to either validate or refute the prediction. The model can then be modified as needed based upon the comparison between the actual and predicted outcomes. 
     Scheduler 
     The scheduler of the present invention is a component to start, stop and supervise the system&#39;s core processes. Additionally, the scheduler features both a single and a multi-threaded mode to maximize performance. 
     The graphical user interface of the present invention enables end users to build, run and refine models, administer projects and browse the ranking results. The graphical user interface is an intuitive, lightweight and web-browser based software. In addition to the graphical user interface, the system of the present invention is able to run in command line (scripting)/service mode in order to enable system-level integration with different systems. 
     Optimize for Business Outcome 
     The present invention may be referred to below as Rank Miner or the present system. One of the unique qualities of the present system is that it is capable of building its model and optimizing it for successful business outcomes. This means the following: based on each conversation the company initiates certain business activities. Each activity may have an associated successful and unsuccessful event (e.g. a successful sale). 
     We may also associate revenue and cost to each activity (e.g. cost of call, wages, etc.). If the business activity (e.g. sales activity) is successful that means revenue and profit for the company. The costs as well as the revenues may have a different structure, for example a cost may arise after each call or after 10 successful sales as well. If the business activity is not successful, only the associated cost remains. The system can draw a profit curve based on validation results, expected costs and revenues. It is suggested to use ranked list at the maximum level of profit. It is easier to decide the threshold of maximum profit based on the profit curve. Based on historical business activity results, the present system&#39;s machine learning method may be able to learn these business results and the ranked list will be optimized directly for business outcome, and the customer can decide which is the optimal percentage of the ranked list to use, which means a unique differentiation from existing prior art. 
     Another distinguishing feature of the system may be the learning of ranking: current research gives a special solution for an intensely-researched problem of machine learning. In our case, numeric values assigned to (telephone) conversations constitute the input of the learning process. In a binary case, 1/0 values mean whether the business event was successful, that is, for example, the client bought the product/service in question during the second direct call or not. 
     The present system&#39;s unique approach includes maximizing the number of positive business outcomes at the top of the ranked set by using predictions based on a model. The business outcome is set directly by the user of the system by feeding annotated conversations into the system based on the customer&#39;s historical business data. The annotation may consist of sound files labeled as successful/not successful business event. The prediction is based on a model which relies on the extracted features of digitally recorded conversations and optimizes directly for the customer&#39;s business profit. 
     Method 
     The present method may include four steps as noted in  FIG. 3 : 
     Initial Model (Step 1) 
     Feeding the system with annotated conversations (successful/not successful events). The system builds a model based on this train information. 
     Generate Rank (Step 2) 
     During ranking, the system extracts an equal number of features from each conversation and runs the prediction engine. Ranking can be optimized for lift measure. 
     Validate Model (Step 3) 
     During validation the business outcome of the ranked conversations is revealed by the underlying business process. 
     Refine Model (Step 4) 
     The system learns from the validation phase and is able to either upgrade the initial model or build a new one. The refining process uses the customer&#39;s feedback thus providing a dynamic, continuous prediction model optimization. 
     The phases of the ranking process can be seen in  FIG. 4 . The discussion below is exemplary only. 
     On the left side of  FIG. 4  we can follow the learning phase, and parallel to it, the evaluation phase can be seen on the right. Agent-client conversations in way file format along telephone sampling (usually 8 khz, 8 bit mono) constitute the input of both phases. Let us note that both phases can be divided into three functional blocks: preprocessing 
     (noise filtering, speaker separation), feature extraction and ranking. 
     Learning Phase 
     During the learning phase, telephone conversations and numeric values indicating whether the business event occurred or not (0/1) constitute the input. First, we filter noises from the signal, then we attempt to separate the speech segments of agent and client. We consider certain segments where neither the agent nor the client is speaking as unproductive. The next step is feature extraction, during which we examine the characteristics of the dialogue and emotional features of agent and client. We extract the same number of features from each conversation, and convert them into a vector containing numeric elements. In the learning phase we build a model to find the correlations between these vectors and the assigned success indexes. 
     Evaluation Phase 
     As regards its distinct steps, the evaluation phase follows those of the learning phase. Exactly the same steps must be executed on the input data during the use of the ranking model as in the learning phase. The only difference lies in the fact that the success index is not part of the input of the system, since that is exactly what we are going to estimate. We execute the steps we have already taken in the learning phase until the feature extraction phase, and then evaluate the ranking model of the features received. As the output of the evaluation phase we receive a prediction to the incoming conversations concerning their success indexes. On the basis of this, we can rank clients who are yet to be contacted directly. 
       FIG. 4  shows different steps of both the learning and the evaluation phases parallel to one another from input to output. The learning phase displays the methods of model construction, and the evaluation phase presents the application of the model for the cases of telephone conversations that are unknown to the model. 
     Further components of the present disclosure are discussed below. 
     Noise Filtering 
     Telephone conversations undergo several signal processing steps. First we may normalize the signal with deviation and average, and it is followed by the removal of the noise, for which we apply the method Spectral Mean Substraction. We may construct the spectrum using slices of 10 ms samples, and a window size of 1024, with the fast Fourier Transformation along with applying Hamming window. 
     Speaker Separation 
     Using the spectrum received after noise filtering, we may attempt to separate the different speakers. Its first step may be a dividing process that produces chunks, i.e. 1-3-second pieces of the signal along minimal energy-level cutting points. We identify the pieces with learning algorithm as homogenous human speech, simultaneous speech, music or non-informative parts. For the classification we have chosen KTM kernel-based non-linear learning process. A learning database was constructed during the process, whose aforementioned four classes contained at least 5000 samples respectively. For the representation of samples to be learned we extract power spectral density features and the histogram of mel frequency cepstral coefficients&#39; changes. The accuracy of detection is measured on an independent database, in which we detected a higher than 96% accuracy in the case of each class. As the next step, segments identified in homogenous human speech must be partitioned into two fields, which are agent and client segments. To achieve this, we taught a dissimilarity function relating to segment pairs with the help of machine learning. This function assigns a value near 0 to segment pairs selected from the same speaker, and a value near 1 to segment pairs selected from different speakers. In the learning process of the dissimilarity function we used 10000 segment pairs belonging to the same speaker and 10000 belonging to different speakers. On the basis of the learned dissimilarity function we construct the dissimilarity matrix of homogenous segments for each pair, then with an appropriate hierarchical clustering application (agglomerative nesting, in our case) we divide the segments into two classes (agent/client). Finally, we remove segments containing nonhomogenous speech excerpts from the conversation, and contract the parts belonging to the same speaker and correlating in time. After contraction, we obtain an “ABABAB”-type analysis of the conversation, which prepares the field for the execution of further operations. 
     Feature Extraction 
     As the next step, we may extract three different types of features. We determine communicational features on the basis of speaker changes and the length of consecutive agent-client segments and their different statistical functions. 
     We extract emotional information from the segments of both the agent and the client. The statistical functions of the extracted information (e.g. minimum, maximum, median, mean, variance, skewness, etc.) constitute the extracted features. 
     The emotional transition statistics belong to the third class of extracted features. We examine whether consecutive agent and client tracks separately contained changes in different emotional states. For instance, if the client was angry at one moment, but spoke calmly after the agent segment following the client&#39;s angry utterance, that constitutes information for us. 
     Learning Ranking 
     During the learning phase, correlations may be found between features extracted from conversations and target values assigned to conversations. In our case, the traditional classification and regression approaches of machine learning are not necessarily sufficient by themselves. Our goal is to make a prediction with the help of which those cases end up at the top of the list that more probably lead to successful purchases after ranking based on the prediction value. Ranking methodology perfectly suits real applications if we only intend to highlight a subset of a large set where cases favorable to us are gathered. We wish to have an overview of the elements of the highlighted subset organized in a list based on relevance, similarly to a browser search. 
     The following questions arise at some ranking learning problems: 
     i) how to select the ranking measure relevant to us, 
     ii) considering that the learning of different ranking measures regularly leads to learning processes of great time complexity, how to get an appropriate suboptimal solution quickly. 
     We have chosen Lift, a measure popular in data mining terminology, as the learning measure. Lift measure is the index of the model&#39;s performance, which indicates how great the improvement is compared to an arbitrarily constructed model. Lift p  stands for the value of the first p percent of the list. That way 
       Lift(f)f(p)/f(p)pSSR. 
     where f S (N) is the accuracy of the new S model in the case of the first p percent of the elements, and f R (N) provides the percentage of the arbitrary model&#39;s performance. 
     Ranking learning was performed with the following algorithm. Double object (D,T) and p value constituted the learning input. (D,T) indicates the learning database, where D=[v1, . . . vn] vectors indicate the m dimensional feature vectors assigned to the conversations, and T=[c1, . . . , cn] numbers indicate the assigned success indexes. Furthermore, p parameter stands for the cutting at the calculation of Lift measure. M ranking model, whose Lift p  value is the highest out of the constructed model variations, constitutes the output of the algorithm. 
     Model variations are going to be constructed with the help of feature space transformational processes and the execution of dimension reduction of various degrees. Feature space transformational processes attempt to further modify features extracted from conversations in order to make the D-&gt;T learning process more efficient. Methods follow the underlying principle that it is worth oppressing noise-like features, while truly relevant features are being extracted. These methods have two basic types: supervised and non-supervised processes. During the establishment of feature space transformation, supervised processes use T target values along with D samples, whereas non-supervised methods focus only on D feature space. Out of nonsupervised methods, we applied the method of principal component analysis, and, out of supervised methods, we tried Spring-Based Discriminating Analysis defined by us, which is similar to Linear Discriminating Analysis. The two applied processes have versions applying non-linear kernel functions (Kernel PCA, Kernel SDA), which we also incorporated into our research [ ]. After this, if we indicate feature space transformation with T, then by that we mean the execution of one of algorithms PCA, SDA, KPCA, KSDA in practice. Samples learning with T transformation are indicated by (TD,T). After feature space transformation, D=[v1, . . . , vn] vectors will become the shape of tD=[Tv1, . . . , Tvn], where the components of vector Tvi are ordered in the way that dimensions of smaller indexes represent a more relevant feature space component (in the case of spectral feature extraction processes, the dimensions of the new transformed feature space are ordered along the dominant eigenvectors of respective algorithm-specific matrices) [ ]. That is why we can apply a dimension reduction step as well by keeping the first few dimensions of the m dimension space received after transformation. If we keep the first t elements of the Tvi vectors, we indicate the transformation with T_tv_i, and the whole database with (T_tD,T). 
     The applied ranking algorithm follows the transformation of the feature space with a chosen feature space transformation process, and then we consecutively execute the (T — 1D,T), . . . , (T — 1D,T) dimension reduction steps. We consistently apply the aforementioned KTM non-linear regression process to the learning tasks received that way. Finally, we select the best model on the basis of Lift p  measure. The pseudo-code of the algorithm can be found in the chart Algorithm 1. 
     The system is applicable for the previously discussed Profit optimization, in which case we use Profitn instead of Liftn, and the value of Profitn is a numeric value derived from income and cost input data. A further distinguishing feature of the present system is profit optimization. 
     Input: 
     (D,T)—training data 
     D=[v1, . . . , vn]—m-dimensional feature vectors 
     T=[c1, . . . , cn]—corresponding target values 
     p—Lift measure parameter 
     Output: 
     M—ranking model optimizing LiftN 
     Algorithm: 
     
       
         
           
               
               
             
               
                   
                   
               
             
            
               
                   
                 T = the feature space transformation provided by PCA, SDA, KPCA 
               
               
                   
                 or KSDA applied on the training data (D,T) 
               
               
                   
                 For I = 1 to m do 
               
               
                   
                 M_I = learn the KTM model on training data (T_ID,T) 
               
               
                   
                   // T_I represents an i-dimensional cut 
               
               
                   
                   // after transformation T 
               
               
                   
                 End; 
               
               
                   
                 M = Argmax Lift p (M_I) 
               
               
                   
                   
               
            
           
         
       
     
     Voice Analytics, Data Mining Software Techniques 
     The system is layered software architecture may be made up of a core engine, a scheduler and a GUI. 
     Core Engines 
     Core engines consist of all speech analytics and data mining modules that are needed for feature extraction, building an automatic model and making predictions. Core engines are the most essential part of the system due to the proprietary, self-researched algorithms in the field of machine learning and parallel processing. The system has three core engines, a feature extraction, a model builder and a prediction engine. 
     Feature Extraction Engine 
     Feature extraction module processes the sound files and extracts an equal number of features from all conversations. This feature matrix is later used for model builder and prediction engines. The features extracted may include:
         speaker separation   human speech segmentation   extraction of communication and intonation features   construction of an equal number of features for each conversation   working on narrow-bandwidth cell phone/landline quality       

     Model Builder Engine 
     Model builder engine builds a model automatically based on the feature matrix. The engine&#39;s output is a model that is used for predictions. 
     Prediction Engine 
     Prediction engine uses the previously built business-tailored model to predict the business outcome of the business activity. Using the prediction, the system provides a business-optimized ranked set. The system&#39;s uniqueness lies in providing support for the customer&#39;s own business activity based on the customer&#39;s own historical data by predicting future outcomes. 
     Scheduler 
     Scheduler is a system component to start, stop and supervise the core processes of the system. Scheduler features single and multi-threaded modes to maximize performance. 
     GUI 
     The system&#39;s graphical user interface enables end users to build, run and refine models, administer projects and browse the ranking results. GUI is an intuitive, lightweight, web-browser-based software. In addition to GUI, the system is able to run in command line (scripting)/service mode in order to enable system-level integration with different systems. 
     Measure Results 
     We conducted the tests at the customer service center of a company trading holiday rights. Employees of the customer service had to call and invite potential clients to a personal meeting. Clients who did not refuse the offer completely were recalled after a while. We consider the call successful, if the client accepted the invitation, and unsuccessful, if he or she did not. With the help of the ranking system, we endeavored to rank the clients after the first conversation on the basis of success probability, which would potentially result in a higher number of clients after the second call. The learning of the system was conducted on a database of more than 8000 labeled samples with 408 positive cases. During testing, the sample database was divided, and 60% of the samples formed the teaching, and 40% the testing domain. This way, we measured the ranking of a list containing 3200 conversations, out of which 167 were known to be positive outputs. We found the following results: 
     
       
         
           
               
             
               
                 TABLE 1 
               
             
            
               
                   
               
               
                 Ranking Results 
               
            
           
           
               
               
               
               
            
               
                   
                   
                   
                 Lift measure 
               
               
                 Percentage of 
                 Unranked list 
                 Ranked list: 
                 (efficiency 
               
               
                 calls 
                 #of attendees 
                 # of attendees 
                 multiplicator) 
               
               
                   
               
            
           
           
               
               
               
               
            
               
                 1% 
                 1.67 
                 11.67 
                 7.01 
               
               
                 2% 
                 3.33 
                 15.57 
                 4.67 
               
               
                 5% 
                 8.33 
                 54.5 
                 6.54 
               
               
                 10% 
                 16.67 
                 70.83 
                 4.25 
               
               
                 25% 
                 41.67 
                 82.92 
                 1.99 
               
               
                 50% 
                 83.33 
                 142.5 
                 1.71 
               
               
                 75% 
                 125 
                 155 
                 1.24 
               
               
                 90% 
                 150 
                 159 
                 1.06 
               
               
                 100% 
                 166.67 
                 166.67 
                 (—) 
               
               
                   
               
            
           
         
       
     
     More than 7 times more positive outputs reached the upper 1% of the ranked list as opposed to choice selection, but even on the 10% level, there are more than 4 times more. In other words, calling 50% of the numbers formerly made it possible to reach 50% of the participants (that is 83 clients), with the help of ranking, it is 85% (143 clients), which represents a 72% improvement. With 75% of the calls, 75% (125 clients) of the clients were formerly successfully invited, and with ranking, it is 93% (155 clients) of all the participants, which represents a 24% improvement. All in all, we can assume that calls made in accordance with the ranked list result in considerable additional profit. 
     The present disclosure includes that contained in the appended claims, as well as that of the foregoing description. Although this invention has been described in its preferred form with a certain degree of particularity, it is understood that the present disclosure of the preferred form has been made only by way of example and that numerous changes in the details of construction and the combination and arrangement of parts may be resorted to without departing from the spirit and scope of the invention.