What I can do now is "Stay Home" to protect my life, my beloved family and friends, and the whole society. So, I' m at home rereading books I used to read. One of them is "Who Is Fourier? A Mathematical Adventure" published in Japan in 1988. It explains the Fourier series plainly, which was subsequently translated and published abroad.
And it explains how babies find the rules about language by listening to those around them and they can learn to speak. There are five vowels(あ,え,い,お,う) in the Japanese language and the book explains what the rules are.
The book clarifies the rules of the first formant(F1) and the second formant(F2) of the five vowels. Formants are multiple peaks that are moving in time that can be seen by observing the spectrum of speech of a person uttering a word. The first formant, the second formant, and so on, in order of low frequency, are referred to as F1 and F2, respectively.
For example, F1 and F2 of Japanese vowel “あ” are
Out[]=
The book explains the rules based on data from the spectrum of many people’s vowels. I would like to explain all from measurement to analysis using Wolfram Language (I couldn’t try when I read this book a long long time ago).
Voice Data
Voice Data
Using SpeechSynthesize[], prepare voice data for the five vowels of Japanese. The list of voices available in my environment is below, and the Japanese voice will be a female one called “Haruka”.
In[]:=
VoiceStyleData[]//Dataset
Out[]=
In[]:=
vowelA=SpeechSynthesize"あ",Language"Japanese",vowelE=SpeechSynthesize"え",Language"Japanese",vowelI=SpeechSynthesize"い",Language"Japanese",vowelU=SpeechSynthesize"う",Language"Japanese",vowelO=SpeechSynthesize"お",Language"Japanese"
Out[]=
,,,,
F1 and F2 of five vowels in Japanese
F1 and F2 of five vowels in Japanese
Using Periodogram[] and FindPeaks[], get the frequency of F1 and F2 of them. Unfortunately, some hand-tuning is required.
In[]:=
maxvoice=3000;(*Hz*)getFormants[audio_,n_]:=Module[{pg,p,values,peaks,peaks2,plot,f},pg=Periodogram[audio,512,128,GridLinesAutomatic,PlotRange{{0,maxvoice},Automatic},AxesLabel{"Hz",""}];p=Select[pg[[1,2,1,3,3,1]],#[[1]]<maxvoice&];values=p[[All,2]];peaks=FindPeaks[values,n,Padding"Periodic"];peaks2=p[[peaks[[All,1]]]];plot=Show[pg,ListLinePlot[peaks2,JoinedFalse,PlotStyleOrange],ImageSizeMedium];f=(p[[#]]&/@peaks[[All,1]])[[All,1]];{f,plot}]
vowel A
vowel A
In[]:=
getFormants[vowelA,4]formantA=%[[1]][[{1,2}]];
Out[]=
{864.706,1772.65,2983.24},
vowel: E
vowel: E
In[]:=
getFormants[vowelE,4]formantE=%[[1]][[{1,-1}]]
Out[]=
{562.059,2421.18},
Out[]=
{562.059,2421.18}
vowel: I
vowel: I
In[]:=
getFormants[vowelI,2]formantI=%[[1]][[{1,-1}]]
Out[]=
{302.647,1902.35,2810.29},
Out[]=
{302.647,2810.29}
vowel: U
vowel: U
In[]:=
getFormants[vowelU,4]formantU=%[[1]][[{1,-1}]]
Out[]=
{302.647,1729.41},
Out[]=
{302.647,1729.41}
vowel: O
vowel: O
In[]:=
getFormants[vowelO,1]formantO=%[[1]][[{3,-1}]]
Rules of F1 and F2
Rules of F1 and F2
First of all, using NumberLinePlot[], plot a number line of five vowels with F1 as the starting point and F2 as the ending point.
There are no rules for this, but when I take the logarithm of them, an interesting rule comes up!
The five vowels in Japanese have a symmetrical relationship, with the midpoint between F1 and F2 of the vowel “I”, and each F1 and F2 of vowels are within the range of F1 and F2 of the vowel “I”. Based on this midpoint, “A” & “O” and “E” & “U” have a symmetrical relationship.
Formant Diamond
Formant Diamond
Create a graph that more clearly shows the "symmetry" found in the five vowels of Japanese. The horizontal axis is the deflection to the left and right, and the vertical axis is the interval between F1 and F2.
The square connecting "A", "E", "O", and "U" is almost a square, and is symmetrical with the two criteria of the deflection and the interval determined by "I". And the five vowels are spread out almost to the full within the range of F1 and F2, which allows the five vowels to be clearly discriminated.
Finally
Finally
There are many languages in the world, each has its own vowels. If we assume that they have the same rules, the number of vowels is not only five, but also three, nine and so on because of their symmetry. Please check the symmetry of your vowels if you want.