Speech synthesis method and speech synthesizer

Abstract: In a speech synthesizer, each frame for generating a speech waveform has an expansion degree to which the frame is expanded or compressed in accordance with the production speed of synthetic speech. In accordance with the set speech production speed, the time interval between beat synchronization points is determined on the basis of the speed of speech to be produced, and the time length of each frame present between the beat synchronization points is determined on the basis of the expansion degree of the frame. Parameters for producing a speech waveform in each frame are properly generated by the time length determined for the frame. In the speech synthesizer for outputting a speech signal by coupling phonemes constituted by one or a plurality of frames having parameters of the speech waveform, the number of frames can be held constant regardless of a change in the speech production speed. This prevents degradation in the tone quality or a variation in the processing quantity resulting from a change in the speech production speed.

Description: The present invention relates to a speech synthesis method and a speech synthesizer using a rule-based synthesis method. A general rule-based speech synthesizer synthesizes a digital speech signal by coupling a phoneme, which has a VcV parameter (vowel-consonant-vowel) or a cV parameter (consonant-vowel) as a basic unit, and a driving sound source signal in accordance with a predetermined rule, and forms an analog speech waveform by performing D-A conversion for the digital speech signal. The synthesizer then passes the analog speech signal through an analog low-pass filter to remove unnecessary high-frequency noise components generated by sampling, thereby outputting a correct analog speech waveform. The above conventional speech synthesizer usually employs a method illustrated in Fig. 1 as a means for changing the speech production speed. Referring to Fig. 1, (A1) is a speech waveform before the VcV parameter is extracted, which represents a portion of speech "A•SA". Similarly, (A2) represents a portion of speech "A•KE". (B1) represents the VcV parameter of the speech waveform information of (A1); and (B2), the VcV parameter of the speech waveform information of (A2). (B3) represents a parameter having a length which is determined by, e.g., the interval between beat synchronization points and the type of vowel. The parameter (B3) interpolates the parameters before and after the coupling. The beat synchronization point is included in the label information of each VcV parameter. Each rectangular portion in (B1) to (B3) represents a frame, and each frame has a parameter for generating a speech waveform. The time length of each frame is fixed. (C1) is label information corresponding to (A1) and (B1), which indicates the positions of acoustic boundaries between parameters. Likewise, (C2) is label information corresponding to (A2) and (B2). Labels "?" in Fig. 1 correspond to the positions of beat synchronization points. The production speed of synthetic speech is determined by the time interval between these beat synchronization points. (D) represents the state in which parameter information (frames) corresponding to a portion from the beat synchronization point in (C1) to the beat synchronization point in (C2) are extracted from (B1), (B2), and (B3) and coupled together. (E) represents label information corresponding to (D). (F) indicates expansion degrees set between the neighboring labels, each of which is a relative degree when the parameter of (D) is expanded or compressed in accordance with the beat synchronization point interval in the synthetic speech. (G) represents a parameter string, or a frame string, after being expanded or compressed according to the beat synchronization point interval in the synthetic speech. (H) indicates label information corresponding to (G). As described above, the speech production speed is changed by expanding or compressing the interval between beat synchronization points. This expansion or compression of the interval between beat synchronization points is accomplished by increasing or decreasing the number of frames between the beat synchronization points, since the time length of each frame is fixed. As an example, the number of frames is increased when the beat synchronization point interval is expanded as indicated by (G) in Fig. 1. A parameter of each frame is generated by an arithmetic operation in accordance with the number of necessary frames. The prior art described above has the following problems since the number of frames is changed in accordance with the production speed of synthetic speech. That is, in expanding or compressing the parameter string of (D) into that of (G), if the parameter string of (G) becomes shorter than that of (D), the number of frames is decreased. Consequently, the parameter interpolation becomes coarse, and this sometimes results in an abnormal tone or degradation in the tone quality. In addition, if the speech production speed is extremely lowered, the length of the parameter string of (G) is overly increased to increase the number of frames. This prolongs the calculation time required for calculating the parameters and also increases the required capacity of a memory. Furthermore, after the parameter string of (G) is generated it is not possible to change the speech production speed of that parameter string. Consequently, a time delay is produced with respect to a change of the speech production time designated by the user. This gives the user a sense of incompatibility. The present invention has been made in consideration of the above conventional problems and has its object to provide a speech synthesis method and a speech synthesizer which can maintain the number of frames constant with respect to a change in the production speed of synthetic speech, thereby preventing degradation in the tone quality at high speeds and suppressing a drop of the processing speed and an increase in the required capacity of a memory at low speeds. It is another object of the present invention to provide a speech synthesis method and a speech synthesizer which can change speech speeds to be produced in units of frames and thereby can operate in accordance with a change in the speech production speed even during one mora period. It is still another object of the present invention to provide a speech synthesis method and a speech synthesizer in which the pitch scale is so set that the level of an accent of synthesized speech linearly changes during a predetermined period (e.g., one mora period). It is still another object of the present invention to provide a speech synthesis method and a speech synthesizer in which the pitch scale is so set that the pitch of a tone of synthesized speech linearly changes during a predetermined period (e.g., one molar period). Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof. US-A-4435832 discloses a speech synthesizer for inputting a speech signal for coupling phonemes represented by one or more frames of data of a speech waveform. A speed stretch/compression counter produces timing pulses in order to determine the degree of stretch or compression of the speech timing in the synthesized speech, in particular, a playback speed setting signal. According to a first aspect of the present invention, there is provided a speech synthesizer for outputting a speech signal by coupling phonemes represented by one or more frames of data of a speech waveform, the speech synthesizer being characterized by comprising storage means for storing speech production speed coefficients, each of which indicates the degree of expansion or compression by which a respective frame is expanded or compressed in accordance with the required speech production speed in a one-to-one correspondence with the frames; determining means for determining the time length of each frame on the basis of the speech production speed and the speech production speed coefficients of the frame; first generating means for generating speech data for each frame on the basis of the time length determined by said determining means; and second generating means for generating a speech signal for each frame using the speech data generated by said first generating means. According to a second aspect of the present invention, there is provided a speech synthesis method for outputting a speech signal by coupling phonemes constituted by one or more frames having a parameter of a speech waveform, characterized by comprising a storage step of storing speech production speed coefficients, each of which indicates the degree of expansion or compression by which a frame is expanded or compressed in accordance with the speech production speed in a one-to-one correspondence with the frames; a determining step of determining the time length of each frame on the basis of the speech production speed and the speech production speed coefficients of the frame; a first generating step of generating speech data in each frame on the basis of the time length determined in the determining step; and a second generating step of generating a speech signal for each frame using the speech data generated in the first generating step. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention, by way of example only. Fig. 1 is a view for explaining the general procedure of speech synthesis using VcV parameters; Fig. 2 is a block diagram showing the configuration of functional blocks of a speech synthesizer according to the first embodiment; Fig. 3 is a view for explaining the procedure of speech synthesis using VcV parameters in the first embodiment; Fig. 4 is a view for explaining the expansion or compression of a VcV parameter in the first embodiment; Fig. 5 is a flow chart showing the speech synthesis procedure in the first embodiment; Fig. 6 is a view showing the data structure of one frame of a parameter in the first embodiment; Fig. 7 is a flow chart showing the parameter generation procedure in the first embodiment; Fig. 8 is a view for explaining the generation of a parameter in the first embodiment; Fig. 9 is a view showing one practical example of the setting of a vowel stationary part length in the first embodiment; Fig. 10 is a view showing the concept of the generation of a pitch scale in the first embodiment; Fig. 11 is a view for explaining the pitch scale generation method in the first embodiment; Fig. 12 is a view for explaining the interpolation of a synthetic parameter in the first embodiment; Fig. 13 is a block diagram showing the configuration of functional blocks of a speech synthesizer according to the second embodiment; Fig. 14 is a flow chart showing the speech synthesis procedure in the second embodiment; Fig. 15 is a view showing the data structure of one frame of a parameter in the second embodiment; Fig. 16 is a view for explaining the interpolation of a pitch scale in the second embodiment; Fig. 17 is a block diagram showing the configuration of functional blocks of a speech synthesizer according to the third embodiment; Fig. 18 is a view for explaining the procedure of speech synthesis using VcV parameters in the third embodiment; Fig. 19 is a flow chart showing the operation procedure of the speech synthesizer in the third embodiment. Preferred embodiments of the present invention will now be described in detail in accordance with the accompanying drawings. <First Embodiment> Fig. 2 is a block diagram showing the arrangement of functional blocks of a speech synthesizer according to the first embodiment. A character string input unit 1 inputs a character string of speech to be synthesized. For example, if the speech to be synthesized is "O•N•SE•I", the character string input unit 1 inputs a character string "OnSEI". This character string sometimes contains, e.g., a control sequence for setting the speech production speed or the pitch of a voice. A control data storage unit 2 stores, in internal registers, information which is found to be a control sequence by the character string input unit 1 and control data for the speech production speed and the pitch of a voice input from a user interface. A VcV string generating unit 3 converts the input character string from the character string input unit 1 into a VcV string. As an example, the character string "OnSEI" is converted into a VcV string "QO, On, nSE, EI, IQ". A VcV storage unit 4 stores the VcV string generated by the VcV string generating unit 3 into internal registers. A phoneme time length coefficient setting unit 5 stores a value which represents the degree to which a beat synchronization point interval of synthetic speech is to be expanded from a standard beat synchronization point interval in accordance with the type of VcV stored in the VcV storage unit 4. An accent information setting unit 6 sets accent information of the VcV string stored in the VcV storage unit 4. A VcV parameter storage unit 7 stores VcV parameters corresponding to the VcV string generated by the VcV string generating unit 3, or a V (vowel) parameter or a cV parameter which is the data at the beginning of a word. A label information storage unit 8 stores labels for distinguishing the acoustic boundaries between a vowel start point, a voiced section, and an unvoiced section, and labels indicating beat synchronization points, for each VcV parameter stored in the VcV parameter storage unit 7, together with the position information of these labels. A parameter generating unit 9 generates a parameter string corresponding to the VcV string generated by the VcV string generating unit 3. The procedure of the parameter generating unit 9 will be described later. A parameter storage unit 10 extracts parameters in units of frames from the parameter generating unit 9 and stores the parameters in internal registers. A beat synchronization point interval setting unit 11 sets the standard beat synchronization point interval of synthetic speech from the control data for the speech production speed stored in the control data storage unit 2. A vowel stationary part length setting unit 12 sets the time length of a vowel stationary part pertaining to the connection of VcV parameters in accordance with the type of vowel or the like factor. A frame time length setting unit 13 calculates the time length of each frame in accordance with the speech production speed coefficient of the parameter, the beat synchronization point interval set by the beat synchronization point interval setting unit 11, and the vowel stationary part length set by the vowel stationary part length setting unit 12. Reference numeral 14 denotes a driving sound source signal generating unit. The procedure of this driving sound source signal generating unit 14 will be described later. A synthetic parameter interpolating unit 15 interpolates the parameters stored in the parameter storage unit by using the frame time length set by the frame time length setting unit 13. A speech synthesizing unit 16 generates synthetic speech from the parameters interpolated by the synthetic parameter interpolating unit 15 and the driving sound source signal generated by the driving sound source signal generating unit 14. Fig. 3 illustrates one example of speech synthesis using VcV parameters as phonemes. Note that the same reference numerals as in Fig. 1 denote the same parts in Fig. 3, and a detailed description thereof will be omitted. Referring to Fig. 3, VcV parameters (B1) and (B2) are stored in the VcV parameter storage unit 7. A parameter (B3) is the parameter of a vowel stationary part, which is generated by the parameter generating unit 9 from the information stored in the VcV parameter storage unit 7 and the label information storage unit 8. Label information, (C1) and (C2), of the individual parameters are stored in the label information storage unit 8. (D') is a frame string formed by extracting parameters corresponding to a portion from the position of the beat synchronization point in (C1) to the position of the beat synchronization point in (C2) from (B1), (B3), and (B2), and connecting these parameters. Each frame in (D') is further added with an area for storing a speech production speed coefficient K i . (E') is label information corresponding to (D'). (F') indicates expansion degrees set in accordance with the types of neighboring labels. (G') is the result of interpolation performed by the synthetic parameter interpolating unit 15 for each frame in (D') by using the time length set by the frame time length setting unit 13. The speech synthesizing unit 16 generates synthetic speech in accordance with the parameter (G'). Expansion or compression of the VcV parameter will be described in detail below with reference to Fig. 4. Assuming the expansion degree of the ith label is e i , the label time length, T i , before expansion or compression and the label time length, T' i , after expansion or compression hold the following relation: (T 1 - T' 1 )/T 1 :(T 2 - T' 2 )/T 2 : ••• (T i - T' i )/T i ••• = e 1 :e 2 : ••• e i : ••• where the time length is in units of sample numbers. Assume that the product sum (expansion/compression frame product sum) of the expansion degree and the label time length before expansion or compression is σ = Σ e i T i that the difference (the time length difference) between the time lengths before and after expansion or compression is δ = T' - T = - Σ (T i - T' i ) and that the speech production speed coefficient is K i = e i /σ Equation (1) is rewritten as follows: T 1 - T' 1 :T 2 - T' 2 : ••• T i - T' i : ••• = e 1 T 1 :e 2 T 2 : ••• e i T i : ••• (T' i - T i )/δ = e i T i /σ T' i /T i = (e i /σ)•δ + 1 T' i /T i = K i •δ + 1 If the standard time length of one frame is N samples (120 samples for 12-kHz sampling), the synthetic parameter of the ith label is interpolated with n i samples per frame. In this case n i is represented by Equation (3) below: n i = (T' i /T i )•N = (K i •δ + 1)•N Since the only value determined according to the speech production speed is T', it is possible to change the speech production speed in units of frames using Equation (3) by giving the speech production speed coefficient K i as the parameter of each frame. The above operation will be described below with reference to the flow chart in Fig. 5. In step S101, the character string input unit 1 inputs a phonetic text. In step S102, the control data storage unit 2 stores externally input control data (the speech production speed, the pitch of a voice) and the control data contained in the input phonetic text. In step S103, the VcV string generating unit 3 generates a VcV string from the input phonetic text from the character string input unit 1. In step S104, the VcV storage unit 4 fetches VcV parameters before and after a mora. In step S105, the phoneme time length coefficient setting unit 5 sets a phoneme time length in accordance with the types of VcV parameters before and after the mora. Fig. 6 shows the data structure of one frame of a parameter. Fig. 7 is a flow chart which corresponds to step S107 in Fig. 5 and illustrates the parameter generation procedure performed by the parameter generating unit 9. A vowel stationary part flag vowelflag indicates whether the parameter is a vowel stationary part. This parameter vowelflag is set in step S75 or S76 of Fig. 7. A parameter voweltype which represents the type of vowel is used in a calculation of the vowel stationary part length. This parameter is set in step S73. Voiced•unvoiced information uvflag indicates whether the phoneme is voiced or unvoiced. This parameter is set in step S77. In step S106, the accent information setting unit 6 sets accent information. An accent mora accMora represents the number of moras from the beginning to the ending of accent. An accent level accLevel indicates the level of accent in a pitch scale. The accent information described in the phonetic text is stored in these parameters. In step S107, the parameter generating unit 9 generates a parameter string of one mora by using the phoneme time length coefficient set by the phoneme time length coefficient setting unit 5, the accent information set by the accent information setting unit 6, the VcV parameter fetched from the VcV parameter storage unit 7, and the label information fetched from the label information storage unit 8. In step S71, a VcV parameter of one mora (from the beat synchronization point of the former VcV to the beat synchronization point of the latter VcV) is fetched from the VcV parameter storage unit 7, and the label information of that mora is fetched from the label information storage unit 8. In step S72, the fetched VcV parameter is divided into a non-vowel stationary part and a vowel stationary part, as illustrated in Fig. 8. A time length T p before expansion or compression and an expansion/compression frame product sum σ p of the non-vowel stationary part and a time length T v before expansion or compression and an expansion or compression frame product sum σ v of the vowel stationary part are calculated. Subsequently, the flow proceeds on to the processing for each frame of the parameter (steps S73 to S77). In step S73, the phoneme time length coefficient is stored in α, and the vowel type is stored in voweltype. In step S74, whether the parameter is a vowel stationary part is checked. If the parameter is a vowel stationary part, in step S75 the vowel stationary part flag is turned on and the time length before expansion or compression and the speech production speed coefficient of the vowel stationary part are set. If the parameter is a non-vowel stationary part, in step S76 the vowel stationary part flag is turned off and the time length before expansion or compression and the speech production speed coefficient of the non-vowel stationary part are set. In step S77, the voiced•unvoiced information and the synthetic parameter are stored. If the processing for one mora is completed in step S78, the flow advances to step S108. If the one-mora processing is not completed in step S78, the flow returns to step S73 to repeat the above processing. In step S108, the parameter storage unit 10 fetches one frame of the parameter from the parameter generating unit 9. In step S109, the beat synchronization point interval setting unit 11 fetches the speech production speed from the control data storage unit 2, and the driving sound source signal generating unit 14 fetches the pitch of a voice from the control data storage unit 2. In step S110, the beat synchronization point interval setting unit 11 sets the beat synchronization point interval by using the phoneme time length coefficient of the parameter fetched into the parameter storage unit 10 and the speech production speed fetched from the control data storage unit 2. Assuming the speech production speed of the control data is m (mora/sec), the standard beat synchronization point interval is Ts = 100 N/m (the number of samples/mora). N (120 points for 12-kHz sampling) is the standard time length of one frame. The beat synchronization point interval is equal to the standard beat synchronization point interval times the phoneme time length coefficient α T' = α x Ts In step S111, the vowel stationary part length setting unit 12 sets the vowel stationary part length by using the vowel type of the parameter fetched into the parameter storage unit 10 and the beat synchronization point interval set by the beat synchronization point interval setting unit 11. As an example, the vowel stationary part length, vlen, is determined from the type of vowel voweltype and the beat synchronization point interval T' as shown in Fig. 9. In step S112, the frame time length setting unit 13 sets the frame time length by using the beat synchronization point interval set by the beat synchronization point interval setting unit 11 and the vowel stationary part length set by the vowel stationary part length setting unit 12. Assume that the difference, δ, between the time length after expansion or compression and the time length before expansion or compression is δ = T' - vlen - plen when the vowel stationary part flag vowelflag is OFF (a non-vowel stationary part), and the difference δ is δ = vlen - plen when the vowel stationary part flag vowelflag is ON (a vowel stationary part). A time length (sample number) n k of the kth frame is calculated using Equation (3) presented earlier. In step S113, the driving sound source signal generating unit 14 generates a pitch scale by using the voice pitch fetched from the control data storage unit 2, the accent information of the parameter fetched into the parameter storage unit 10, and the frame time length set by the frame time length setting unit 13, thereby generating a driving sound source signal. Fig. 10 shows the concept of generation of the pitch scale. The level of accent, P m , which changes during one mora and the number of samples, N m , in one mora are calculated by P m = accLevel/accMora N m = T' The pitch scale is so generated that it linearly changes during one mora if the speech production speed remains unchanged. Assuming that the time length of the kth frame is n k samples, the value of n k changes in accordance with k . However, the pitch scale is so set as to change in units of P m /N m per sample regardless of the change of n k . Processing based on the above rule will be described below, in which the pitch scale can be changed in units of frames even if the speech production speed changes during the course of the processing. Fig. 11 is a view for explaining generation of the pitch scale. Assuming the level of accent which changes during the time from the beat synchronization point to the kth frame is P g and the number of samples processed is N g , the pitch scale need only change by (P m - P g ) for the remaining samples (N m -N g ). Therefore, the pitch scale change amount per sample is obtained by Δ p = (P m - P g )/(N m - N g ) Suppose that the initial value of the pitch scale is P 0 and the difference between the pitch scales P and P 0 is P d , the initial value of the pitch scale of the kth frame is P = P 0 + P d Subsequently, processing represented by P = P + Δ p P g = P g + Δ p in which the pitch scale is updated for each sample is executed for the time length n k of the kth frame. Finally, N g and P d are updated as follows: N g = N g + n k P d = P - P 0 If the voiced•unvoiced information of the parameter indicates voiced speech, a driving sound source signal corresponding to the pitch scale calculated by the above method is generated. On the other hand, if the voiced•unvoiced information of the parameter indicates unvoiced speech, a driving sound source signal corresponding to the unvoiced sound is generated. In step S114, the synthetic parameter interpolating unit 15 interpolates a synthetic parameter by using a synthetic parameter of elements of the parameter fetched into the parameter storage unit 10 and the frame time length set by the frame time length setting unit 13. Fig. 12 is a view for explaining the synthetic parameter interpolation. Assume that the synthetic parameter of the kth frame is c k [i] (0 ≤ i ≤ M), the parameter of the (k-1)th frame is c k-1 [i] (0 ≤ i ≤ M), and the time length of the kth frame is n k samples. In this case the difference, Δ k [i] (0 ≤ i ≤ M), of the synthetic parameter per sample is given by Δ k [i] = (c k [i] - c k-1 [i])/n k Subsequently, a synthetic parameter C[i] (0 ≤ i ≤ M) is updated for each sample. The initial value of C[i] is c k-1 [i], and processing represented by C[i] = C[i] + Δ k [i] is executed for the time length n k of the kth frame. In step S115, the speech synthesizing unit 16 synthesizes speech by using the driving sound source signal generated by the driving sound source signal generating unit 14 and the synthetic parameter interpolated by the synthetic parameter interpolating unit 15. This speech synthesis is done by applying the pitch scale P calculated by Equations (4) and (5) and the synthetic parameter C[i] (0 ≤ i ≤ M) to a synthesis filter for each sample. In step S116, whether the processing for one frame is completed is checked. If the processing is completed, the flow advances to step S117. If the processing is not completed, the flow returns to step S113 to continue the processing. In step S117, whether the processing for one mora is completed is checked. If the processing is completed, the flow advances to step S119. If the processing is not completed, externally input control data is stored in the control data storage unit 2 in step S118, and the flow returns to step S108 to continue the processing. In step S119, whether the processing for the input character string is completed is checked. If the processing is not completed, the flow returns to step S104 to continue the processing. In the first embodiment described above, the pitch scale linearly changes in units of moras. However, it is also possible to generate the pitch scale in units of labels. In addition, the pitch scale can be generated by using the response of a filter, rather than by linearly changing the pitch scale. In this case data concerning the coefficient or the step width of the filter is used as the accent information. Also, Fig. 9 used in the setting of the vowel stationary part length is merely an example, so other setting can also be performed. According to the first embodiment as described above, the number of frames can be maintained constant with respect to a change in the production speed of synthetic speech. This makes it feasible to prevent degradation in the tone quality at high speeds and suppress a drop in the processing speed and an increase in the required capacity of a memory at low speeds. It is also possible to change the speech production speed in units of frames. <Second Embodiment> In the first embodiment, the accent information setting unit 6 controls the accent in producing speech. In this second embodiment, speech is produced by using a pitch scale for controlling the pitch of a voice. In the second embodiment, portions different from those of the first embodiment will be described, and a description of portions similar to those of the first embodiment will be omitted. Fig. 13 is a block diagram showing the arrangement of functional blocks of a speech synthesizer according to the second embodiment. Parts denoted by reference numerals 4, 5, 7, 8, 9, and 17 in this block diagram will be described below. A VcV storage unit 4 stores VcV generated by a VcV string generating unit 3 into internal registers. A phoneme time length coefficient setting unit 5 stores a value which represents the degree to which the beat synchronization point interval of synthetic speech is to be expanded from a standard beat synchronization point interval in accordance with the type of VcV stored in the VcV storage unit 4. A VcV parameter storage unit 7 stores VcV parameters corresponding to the VcV string generated by the VcV string generating unit 3, or stores a V (vowel) parameter or a cV parameter which is the data at the beginning of a word. A label information storage unit 8 stores labels for distinguishing the acoustic boundaries between a vowel start point, a voiced section, and an unvoiced section, and labels indicating beat synchronization points, for each VcV parameter stored in the VcV parameter storage unit 7, together with the position information of these labels. A parameter generating unit 9 generates a parameter string corresponding to the VcV string generated by the VcV string generating unit 3. The procedure of the parameter generating unit 9 will be described later. A pitch scale generating unit 17 generates a pitch scale for the parameter string generated by the parameter generating unit 9. Generation of a parameter, generation of a pitch scale, and generation of a driving sound source signal, different from those of the processing in the flow chart of Fig. 5, will be described below with reference to Fig. 14. Other steps are denoted by the same step numbers as in the first embodiment. In step S120, the parameter generating unit 9 generates a parameter string of one mora by using the phoneme time length coefficient set by the phoneme time length coefficient setting unit 5, the VcV parameter fetched from the VcV parameter storage unit 7, and the label information fetched from the label information storage unit 8. In step S121, the pitch scale generating unit 17 generates a pitch scale for the parameter string generated by the parameter generating unit 9, by using the label information fetched from the label information storage unit 8. The pitch scale thus generated gives the difference from a pitch scale V which corresponds to a reference value of the pitch of a voice. The generated pitch scale is stored in a pitch scale pitch in Fig. 15. In step S122, a driving sound source signal generating unit 14 generates a driving sound source signal by using the voice pitch fetched from a control data storage unit 2, the pitch scale of the parameter fetched into a parameter storage unit 10, and the frame time length set by a frame time length setting unit 13. Fig. 16 is a view for explaining interpolation of the pitch scale. Suppose the pitch scale from the beat synchronization point to the (k-1)th frame is P k-1 and the pitch scale from the beat synchronization point to the kth frame is P k . Each of P k-1 and P k gives the difference from the pitch scale V corresponding to the reference value of the voice pitch. Suppose also that the pitch scale corresponding to the voice pitch from the beat synchronization point to the (k-1)th frame is V k-1 and the pitch scale corresponding to the voice pitch from the beat synchronization point to the kth frame is V k . That is, consider the case in which the voice pitch stored in the control data storage unit 2 changes from V k-1 to V k . In this case the change amount, ΔP k , of the pitch scale per sample is given by ΔP k = ((V k + P k ) - (V k-1 + P k-1 ))/n k Subsequently, the pitch scale P is updated for each sample. The initial value of P is V k-1 + P k-1 , and processing represented by P = P + ΔP k is executed for the time length, n k , of the kth frame. If the voiced•unvoiced information of the parameter indicates voiced speech, a driving sound source signal corresponding to the pitch scale interpolated by the above method is generated. On the other hand, if the voiced•unvoiced information of the parameter indicates unvoiced speech, a driving sound source signal corresponding to the unvoiced speech is generated. <Third Embodiment> The third embodiment of the present invention will be described below. Fig. 17 is a block diagram showing the arrangement of functional blocks of a speech synthesizer according to the third embodiment. Referring to Fig. 17, a character string input unit 101 inputs a character string of speech to be synthesized. For example, if the speech to be synthesized is "O•N•SE•I", the character string input unit 101 inputs a character string "OnSEI". A VcV string generating unit 102 converts the input character string from the character string input unit 101 into a VcV string. As an example, the character string "OnSEI" is converted into a VcV string "QO, On, nSE, EI, IQ". A VcV parameter storage unit 103 stores VcV parameters corresponding to the VcV string generated by the VcV string generating unit 102, or a V (vowel) parameter or a cV parameter which is the data at the beginning of a word. A VcV label storage unit 104 stores labels for distinguishing the acoustic boundaries between a vowel start point, a voiced section, and an unvoiced section, and labels indicating beat synchronization points, for each VcV parameter stored in the VcV parameter storage unit 103, together with the position information of these labels. A beat synchronization point interval setting unit 105 sets the standard beat synchronization point interval of synthetic speech. A vowel stationary part length setting unit 106 sets the time length of a vowel stationary part pertaining to the connection of VcV parameters in accordance with the standard beat synchronization point interval set by the beat synchronization point interval setting unit 105 and with the type of vowel. A speech production speed coefficient setting unit 107 sets the speech production speed coefficient of each frame by using an expansion degree which is determined in accordance with the type of label stored in the VcV label storage unit 104. For example, a vowel part or a fricative sound whose length readily changes with the speech production speed is given a speech production speed coefficient with a large value, and a plosive which hardly changes its length is given a speech production speed coefficient with a small value. A parameter generating unit 108 generates a VcV parameter string matching the standard beat synchronization point interval which corresponds to the VcV string generated by the VcV string generating unit 102. In this embodiment, the parameter generating unit 108 connects the VcV parameters read out from the VcV parameter storage unit 103 on the basis of the information of the vowel stationary part length setting unit 106 and the beat synchronization point interval setting unit 105. The procedure of the parameter generating unit 108 will be described later. An expansion/compression time length storage unit 109 extracts a sequence code pertaining to expansion/compression time length control from the input character string from the character string input unit 101, interprets the extracted sequence code, and stores a value which represents the degree to which the beat synchronization point interval of synthetic speech is to be expanded from the standard beat synchronization point interval. A frame length determining unit 110 calculates the length of each frame from the speech production speed coefficient of the parameter obtained from the parameter generating unit 108 and the expansion/compression time length stored in the expansion/compression time length storage unit 109. A speech synthesizing unit 111 outputs synthetic speech by sequentially generating speech waveforms on the basis of the VcV parameters obtained from the parameter generating unit 108 and the frame length obtained from the frame length determining unit 110. The operation procedure of the speech synthesizer with the above arrangement will be described below with reference to Figs. 18 and 19. Fig. 18 illustrates one example of speech synthesis using VcV parameters as phonemes. Note that the same reference numerals as in Fig. 1 denote the same parts in Fig. 18, and a detailed description thereof will be omitted. Referring to Fig. 18, VcV parameters (B1) and (B2) are stored in the VcV parameter storage unit 103. A parameter (B3) is the parameter to be interpolated in accordance with the standard beat synchronization point interval and the type of vowel relating to the connection. This parameter is generated by the parameter generating unit 108 on the basis of the information stored in the beat synchronization point interval setting unit 105 and the vowel stationary part length setting unit 106. Label information, (C1) and (C2), of the individual parameters are stored in the VcV label storage unit 104. (D') is a frame string formed by extracting parameters (frames) corresponding to a portion from the position of the beat synchronization point in (C1) to the position of the beat synchronization point in (C2) from (B1), (B3), and (B2), and connecting these parameters. Each frame in (D') is further added with an area for storing a speech production speed coefficient K i . (E') indicates expansion degrees set in accordance with the types of adjacent labels. (F') is label information corresponding to (D'). (G') is the result of expansion or compression performed by the speech synthesizing unit 111 for each frame in (D'). The speech synthesizing unit 111 generates a speech waveform in accordance with the parameter and the frame lengths in (G'). The above operation will be described in detail below with reference to Fig. 19. In step S11, the character string input unit 101 inputs a character string of speech to be synthesized. In step S12, the VcV string generating unit 102 converts the input character string into a VcV string. In step S13, VcV parameters (Fig. 18, (B1) and (B2)) of the VcV string to be subjected to speech synthesis are acquired from the VcV parameter storage unit 103. In step S14, labels (Fig. 18, (C1) and (C2)) representing the acoustic boundaries and the beat synchronization points are extracted from the VcV label storage unit 104 and given to the VcV parameters. In step S15, a parameter (Fig. 18, (B3)) for connecting the VcV parameters is generated in accordance with the information from the beat synchronization point interval setting unit 105 and the vowel stationary part length setting unit 106, and the VcV parameters are connected by using this parameter. Subsequently, the speech production speed coefficient setting unit 107 gives a speech production speed coefficient for each frame. The method of giving the speech production speed will be described in more detail below with reference to (D'), (E'), and (F') in Fig. 18. Assume that the expansion degree between the labels (Fig. 18, (F')) is E i (0 ≤ i ≤ n), the time interval between the labels before expansion or compression (i.e., the time interval between the labels at the standard synchronization point interval) is S i (0 ≤ i ≤ n), and the time interval between the labels after expansion or compression is D i (0 ≤ i ≤ n). In this case the expansion degree E i is defined such that the following equation is established (Fig. 18, (E')). D 0 - S 0 : ••• :D i - S i : ••• :D n - S n = E 0 S 0 : ••• :E i S i : ••• :E n S n This expansion degree E i is stored in the speech production speed coefficient setting unit 107. The speech production speed coefficient K i is calculated by using the expansion degree E i as follows: K i = E i /(E 0 S 0 + ••• + E i S i + ••• + E n S n ) The speech production speed coefficient setting unit 107 gives this speech production speed coefficient K i to each frame (Fig. 18, (D')). When the speech production speed coefficient of each frame is set in step S16 as described above, the flow advances to step S17 in which the frame length determining unit 110 determines the frame length (the time interval) of each frame. Assuming the time length of each frame before expansion or compression is T 0 and the total increased time length after expansion or compression stored in the expansion/compression time length storage unit 109 is T p , the time length, T i , of each frame after expansion or compression is calculated by the following equation: T i = (K i T p + 1)T 0 In step S18, the frame length determining unit 110 calculates the frame length of each frame, and the speech synthesizing unit 111 performs interpolation in these frames such that the frames have their respective calculated frame lengths, thereby synthesizing speech. According to this embodiment as described above, the number of frames can be held constant with respect to a change in the speech production speed. The result is that the tone quality does not degrade even when the speech production speed is increased and the required memory capacity does not increase even when the speech production speed is lowered. In addition, since the speech synthesizing unit 111 calculates the frame length for each frame, it is possible to respond to a change in the speech production speed in real time. Furthermore, the pitch scale and the synthetic parameter of each frame are also properly changed in accordance with a change in the speech production speed. This makes it possible to maintain natural synthetic speech. Note that in the above third embodiment the frame lengths are equal before expansion or compression. However, the present invention can be applied to the case in which the frame lengths of the parameter (D'), Fig. 18, are different. In this case each frame is given a time interval T i0 at the standard beat synchronization point interval, and the frame length determining unit 110 calculates the frame length of each frame by using the following equation: T i = (K i T p + 1)T i0 The speech synthesizing unit 111 performs interpolation in these frames such that the frames have their respective calculated frame lengths, thereby producing synthetic speech. In this manner, expansion is readily possible even if the frame length at the standard beat synchronization point interval is variable. The use of the variable frame length as described above allows preparation of parameters of, e.g., a plosive with fine steps. This contributes to an improvement in the clearness of synthetic speech. Note that the present invention can be applied to the system comprising either a plurality of units or a single unit. It is needless to say that the present invention can be applied to the case which can be attained by supplying programs to the system or the apparatus. According to the third embodiment as described previously, the number of frames can be held constant with respect to a change in the production speed of synthetic speech. This makes it possible to prevent degradation in the tone quality at high speeds and suppress a drop in the processing speed and an increase in the required capacity of a memory at low speeds. It is also possible to change the speech speed in units of frames. Furthermore, the present invention can be applied to the system comprising either a plurality of units or a single unit. It is needless to say that the present invention can be applied to the case which can be attained by supplying programs which execute the process defined by the present system or invention. As many apparently widely different embodiments of the present invention can be made without departing from the scope of the claims, it is to be understood that the invention is not limited to the specific embodiments.

Claims: A speech synthesizer for outputting a speech signal by coupling phonemes represented by one or more frames of data of a speech waveform, the speech synthesizer being characterized by comprising: storage means (10) for storing speech production speed coefficients (K), each of which indicates the degree of expansion or compression by which a respective frame is expanded or compressed in accordance with the required speech production speed in a one-to-one correspondence with the frames; determining means (13; 110) for determining the time length of each frame on the basis of the speech production speed and the speech production speed coefficients (K) of the frame; first generating means (15) for generating speech data for each frame on the basis of the time length determined by said determining means (13); and second generating means (14, 16; 111) for generating a speech signal for each frame using the speech data generated by said first generating means (15). A synthesizer according to claim 1, further comprising setting means (11; 105) for setting the time interval between beat synchronization points on the basis of the speech production speed, wherein said determining means (13; 110) is arranged to determine the time length of each frame on the basis of the beat synchronization point time interval (T') set by said setting means (11; 105) and the speech production speed coefficients (K). A synthesizer according to claim 2, wherein: said setting means (11; 105) is arranged to set the beat synchronization point time interval, obtained on the basis of the speech production speed, for each of the time length of a vowel stationary part and the time length of a non-vowel stationary part, and said determining means (13; 110) is arranged to determine the time length of a frame corresponding to the vowel stationary part on the basis of the time interval of the vowel stationary part, and to determine the time length of a frame corresponding to the non-vowel stationary part on the basis of the time interval of the non-vowel stationary part. A synthesizer according to claim 3, wherein said setting means (11; 105) is arranged to determine the time length of the vowel stationary part on the basis of a beat synchronization point time interval after expansion or compression and the type of vowel stationary part. A synthesizer according to claim 1, wherein said storage means is arranged to store, as the speech production speed coefficients (K), degrees of expansion or compression to each of which the time interval between change points where acoustic changes exist is expanded or compressed in accordance with the speech production speed in a one-to-one correspondence with the frames. A synthesizer according to claim 1, wherein said first generating means includes means (14) for generating a pitch scale with which the level of accent (Pm) linearly changes in the time length determined by said determining means (13). A synthesizer according to claim 1, wherein said first generating means (15) includes means for generating a pitch scale (V) in which the pitch of the produced speech changes linearly in the time length determined by said determining means (13). A synthesizer according to claim 6 or 7, wherein the time length in said first generating means (15) is the interval between beat synchronization points. A synthesizer according to claim 2, wherein: each frame is constituted by a plurality of data sampled at predetermined intervals, and said first generating means includes means for generating a pitch scale (P), which changes at a predetermined rate for each sampling, on the basis of the beat synchronization point time interval. A synthesizer according to claim 1, wherein the frames before being expanded or compressed in accordance with the speech production speed have respective unique time lengths. A speech synthesis method for outputting a speech signal by coupling phonemes constituted by one or more frames having a parameter of a speech waveform, characterized by comprising: a storage step (S107) of storing speech production speed coefficients (K), each of which indicates the degree of expansion or compression by which a frame is expanded or compressed in accordance with the speech production speed in a one-to-one correspondence with the frames; a determining step (S112) of determining the time length of each frame on the basis of the speech production speed and the speech production speed coefficients (K) of the frame; a first generating step (S114) of generating speech data in each frame on the basis of the time length determined in the determining step (S112); and a second generating step (S113, S115) of generating a speech signal for each frame using the speech data generated in the first generating step (S114). A method according to claim 11, further comprising a setting step (S110) of setting the time interval between beat synchronization points on the basis of the speech production speed, wherein in the determining step (S112) the time length of each frame is determined on the basis of the beat synchronization point time interval set in the setting step and the speech production speed coefficients (K). A method according to claim 12, wherein: in the setting step the beat synchronization point time interval is set, on the basis of the speech production speed, for each of the time length of a vowel stationary part (S111) and the time length of a non-vowel stationary part, and in the determining step (S107) the time length of a frame corresponding to the vowel stationary part is determined on the basis of the time interval of the vowel stationary part, and the time length of a frame corresponding to the non-vowel stationary part is determined on the basis of the time interval of the non-vowel stationary part. A method according to claim 13, wherein in the setting step the time length of the vowel stationary part is determined on the basis of the beat synchronization point time interval after expansion or compression and the type of vowel stationary part. A method according to claim 11, wherein in the storage step degrees of expansion or compression to each of which a time interval between change points where acoustic changes exist is expanded or compressed in accordance with the speech production speed are stored as the speech production speed coefficients (K) in a one-to-one correspondence with the frames. A method according to claim 11, wherein the first generating step includes the substep of generating a pitch scale with which the level of accent linearly changes in the time length determined in the determining step. A method according to claim 11, wherein the first generating step includes the substep of generating a pitch scale with which a pitch of produced speech changes linearly in the time length determined by the determining step. A method according to claim 16 or 17, wherein the time length in the first generating step is an interval between beat synchronization points. A method according to claim 12, wherein: each frame is constituted by a plurality of data sampled at predetermined intervals, and the first generating step includes the substep of generating a pitch scale, which changes at a predetermined rate for each sampling, on the basis of the beat synchronization point time interval. A method according to claim 11, wherein the frames before being expanded or compressed in accordance with the speech production speed have respective unique time lengths. A computer program product programmed with machine readable instructions for carrying out a method according to any one of claims 11 to 20.

Inventors: ASOU TAKASHI, FUJITA TAKESHI, FUKADA TOSHIAKI, OHORA YASUNORI, OHTSUKA MITSURU, ASOU, TAKASHI, FUJITA, TAKESHI, FUKADA, TOSHIAKI, OHORA, YASUNORI, OHTSUKA, MITSURU, Asou, Takashi, c/o Canon Kabushiki Kaisha, FUJITA, TAKESHI, C/O CANON KABUSHIKI KAISHA, FUKADA, TOSHIAKI, C/O CANON KABUSHIKI KAISHA, OHORA, YASUNORI, C/O CANON KABUSHIKI KAISHA, Ohtsuka, Mitsuru, c/o Canon Kabushiki Kaisha
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1995
Main classification: G10L13
IPC codes: G10L21, G10L13