The present invention relates to a speech synthesis method for artificially generating speech waveform signals.
Speech waveforms of natural speech can be expressed by connecting basic units which are made by continuously connecting phonemes, one vowel (V) and one consonant (C) in a form such as “CV”, “CVC” or “VCV”.
Accordingly, a conversation can be created by means of synthetic speech by processing and registering such phonemes as data (phoneme data) in advance, reading out phoneme data corresponding to a conversation from the registered phoneme data in sequence, and generating sounds corresponding to respective read-out phoneme data.
To create a database based on the above-mentioned phoneme data, firstly, a given document is read by a person, and his/her speech is recorded. Then, speech signals reproduced from the recorded speech are divided into the above-mentioned phonemes. Various data indicative of these phonemes are registered as phoneme data. Then, in order to synthesize the speech, respective speech data is connected and supplied as a serial speech.
However, respective connected phonemes are segmented from the separately recorded speeches. Hence, irregularities exist in the vocal power with which the phonemes are uttered. Therefore, a problem arises that synthesized speech is unnatural when the uttered phonemes are merely connected together.
An object of the present invention is to provide a speech synthesizing method for generating natural sounding synthetic speech.
It is an object of the present invention to provide a method for synthesizing speech with an apparatus comprising a sound source for generating a frequency signal, a vocal tract filter for generating speech waveform signals by filtering the frequency signal with filter characteristics corresponding to a linear predictive coefficient based on respective phonemes.
In one aspect of the invention, a method comprises the steps of: dividing said phonemes into a plurality of frames having a predetermined time length, summing squares of speech samples in one of said plurality of frames for each frame as a frame power value, standardizing frame power values at head and tail frames in one phoneme to predetermined values, respectively, to obtain a frame power value of an n-th frame, summing squares of signal levels of a frame in said frequency signal to obtain a frame power correction value, providing a speech envelope signal by means of a function having variables of said standardized frame power values and said frame power correction value, and adjusting an amplitude level of said speech waveform signal as a function of the speech envelope signal.
As described above, the levels of the head and tail portions of respective phonemes are always maintained at predetermined levels without substantially deforming the synthesized speech waveform. Therefore, phonemes are connected together smoothly so that natural sounding synthesized speeches can be generated.
The aforementioned aspects and other features of the invention are explained in the following description, taken in connection with the accompanying drawing figures wherein:
In
A phoneme data memory 20, a RAM (Random Access Memory) 27, and a ROM (Read Only Memory) 28 are connected to the speech synthesis control circuit 22.
The phoneme data memory 20 stores phoneme data corresponding to various phonemes which have been sampled from actual human voice, and speech synthesizing parameters (standardized frame power values and mean frame power values) used for the speech synthesis.
A sound source module 23 is provided with a pulse generator 231 for generating impulse signals having a frequency corresponding to a pitch frequency designating signal K supplied from the speech synthesis control circuit 22, and a noise generator 232 for generating noise signals carrying an unvoiced sound. The sound source module 23 alternatively selects the impulse signal and the noise signal in response to a sound source selection signal Sv supplied from the speech synthesis control circuit 22. The sound source module 23 then supplies the selected signal as a frequency signal Q to a vocal tract filter 24.
The vocal tract filter 24 may include a FIR (Finite Impulse Response) digital filter, for example. The vocal tract filter 24 filters a frequency signal Q supplied from the sound source module 23 with a filtering coefficient corresponding to a linear predictive code signal LP supplied from the speech synthesis control circuit 22, thereby generating a speech waveform signal VF.
An amplitude adjustment circuit 25 generates an amplitude adjustment waveform signal VAUD by adjusting the amplitude of a speech waveform signal VF to a level based on a speech envelope signal Vm supplied from the speech synthesis control circuit 22. The amplitude adjustment circuit 25 then supplies the amplitude adjustment waveform signal VAUD to a speaker 26. The speaker 26 generates an acoustic output corresponding to the amplitude adjustment waveform signal VAUD. That is, the speaker 26 generates the reading speeches based on the input text signals as explained hereinafter.
A method will be described hereinafter for generating the above-mentioned phoneme data and speech synthesis parameters stored in the phoneme data memory 20.
In
The phoneme data generating device 30 sequentially samples a speech signal supplied from the speech recorder 32 to generate a speech sample. The phoneme data generating device 30 then stores the signals in a predetermined domain in a memory 33. The phoneme data generating device 30 then executes steps for generating phonemes, as shown in
In
For example, a Japanese spoken phrase “mokutekichi ni” is segmented to mo/oku/ute/eki/iti/ini/i. The Japanese spoken phrase “moyosimono” is segmented to mo/oyo/osi/imo/ono/ono/o. The Japanese spoken phrase “moyorino” is segmented to mo/oyo/ori/ino/o. The Japanese spoken phrase “mokuhyono” is segmented to mo/oku/uhyo/ono/o.
Subsequently, the phoneme data generating device 30 divides each segmented phoneme into frames of a predetermined length, for example, 10 ms (step S2). Control information including a name of the phoneme to which each frame belongs, a frame length of the phoneme, and the frame number is added to each divided frame. The above frame is then stored in a given domain of the memory 33 (step S3). Then, the phoneme data generating device 30 analyzes a linear predictive coding LPC on every frame with respect to the waveform of each phoneme to generate a linear predictive coding coefficient (hereinafter called “LPC coefficient”) of 15 orders. The resultant coefficient is stored in a memory domain 1 of the memory 33 as shown in
Then, the phoneme data generating device 30 calculates speech synthesis parameters as shown in
In
Subsequently, the phoneme data generating device 30 stores “0” indicative of the head frame number in a built-in register n (not shown) (step S13). Then, the phoneme data generating device 30 generates the relative position in the subject phoneme of the frame n indicated by the frame number stored in the built-in register n (step S14). The relative position is expressed by the following formula:
r=(n−1)/N
wherein, r: relative position, and
N: the number of all frames in the subject phoneme.
Then, the phoneme data generating device 30 reads out the frame power PC in the frame n from the memory domain 2 of the memory 33 shown in
Then, the phoneme data generating device 30 generates a standardized frame power Pn in the frame n indicated by a built-in register n, by executing the following calculation (1) using the head and tail frame powers Pa, Pb, the frame power Pc obtained in step S15 and the relative position r.
Pn−Pc/[(1−r)Pa+rPb] (1)
Then, the phoneme data generating device 30 stores the standardized frame power Pn in a memory domain 3 of the memory 33 (step S17).
That is, the phoneme data generating device 30 generates the frame power value in the frame n when the frame power Pc in the tail frame of this subject phoneme is set to “1”.
Then, the phoneme data generating device 30 reads out the LPC coefficient corresponding to the frame n indicated by the built-in register n from the memory domain 1 of the memory 33 shown in
Then, the phoneme data generating device 30 adds “1” to the frame number n stored in the built-in register n to generate a new frame number n, the new frame number n replacing the previous frame number n, and stores the new frame number n in the built-in register n by substitution (step S20). Subsequently, the phoneme data generating device 30 determines whether the frame number stored in the built-in register n equals (N−1) (step S21).
In step S21, if the frame number stored in the built-in register n does not equal (N−1), the phoneme data generating device 30 returns to the step S14, and repeats the above-mentioned operation. Such an operation stores the standardized frame power Pn and the mean frame power Gf corresponding to each of the head frame to (N−1)th frames of a subject phoneme in the memory domains 3 and 4, as shown in
In the step S21, if the frame number stored in the built-in register n equals (N−1), the phoneme data generating device 30 respectively reads out the standardized frame power Pn and the mean frame power Gf stored in the memory domains 3 and 4 of the memory 33 shown in
That is, the respective phoneme data obtained by the procedure shown in
The speech synthesis control circuit 22 shown in
The speech synthesis control circuit 22 divides segments of the intermediate language characters string signals CL into phonemes consisting of “VCV”, and then receives the phoneme data corresponding to respective phonemes from the phoneme data memory 20 sequentially. The speech synthesis control circuit 22 then supplies a pitch frequency designation signal K for designating the pitch frequency to the sound source module 23. Then, the speech synthesis control circuit 22 synthesizes the speech on respective phoneme data in order of the reading from the phoneme data memory 20.
In
Subsequently, the speech synthesis control circuit 22 samples the frequency signal Q supplied from the sound source module 23 for every predetermined interval. The control circuit 22 then calculates the sum of squares of respective sample values in a frame to generate a frame power correction value Gs. Then, the speech synthesis control circuit 22 stores the frame power correction value Gs in a built-in register G (not shown) (step S103). Then, the speech synthesis control circuit 22 supplies the LPC coefficient to the vocal tract filter 24 as the linear predictive coding signal LP (step S104). It is noted that the LPC coefficient corresponds to the frame n indicated by the built-in register n in the subject phoneme data. Then, the speech synthesis control circuit 22 reads out the standardized frame power Pn and the mean frame power Gf corresponding to the frame n indicated by the above-mentioned built-in register n in the subject phoneme data from the phoneme data memory 20 (step S105). Thereafter, the speech synthesis control circuit 22 calculates a speech envelope signal Vm, by the following computation with the standardized frame power Pn, the mean frame power Gf, and the frame power correction value Gs stored in the built-in register G. The speech synthesis control circuit 22 then supplies the speech envelope signal Vm to an amplitude adjustment circuit 25 (step S106).
Vm=√{square root over (Pn/(GsGf))}
By means of the step S106, the amplitude adjustment circuit 25 adjusts the amplitude of the speech waveform signal Vf supplied from the vocal tract filter 24 to a level corresponding to the above-mentioned speech envelope signal Vm. Since the connecting portions of respective phonemes are always maintained at a predetermined level through this amplitude adjustment, the connection of phonemes becomes smooth and hence, natural sounding synthesized speech is produced.
Subsequently, the speech synthesis control circuit 22 determines whether the frame number n stored in the built-in register n is smaller than the total number of frames in the subject phoneme data N by 1, that is, whether the frame number n equals (N−1) (step S107). In the step S107, if it is determined that n does not equal (N−1), the speech synthesis control circuit 22 adds “1” to the frame number stored in the built-in register n, and stores this value as a new frame number in the built-in register n by substitution (step S108). After the step S108, the speech synthesis control circuit 22 returns to the step S103, and then repeats the above-mentioned operation.
On the other hand, in step S107, if it is determined that the frame number n stored in the built-in register n does not equal (N−1), the speech synthesis control circuit 22 returns to the step S101, and repeats the phonemic synthesis process to next phoneme data in the same manner.
The present invention has been explained heretofore in conjunction with the preferred embodiment. However, it should be understood that those skilled in the art could easily conceive various other embodiments and modifications and that such embodiments and modifications fall within the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
11-294357 | Oct 1999 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
6438522 | Minowa et al. | Aug 2002 | B1 |
Number | Date | Country |
---|---|---|
0 427 485 | May 1991 | EP |
0427485 | May 1991 | EP |
WO 9627870 | Sep 1996 | WO |
WO 9835340 | Aug 1998 | WO |