剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进行着声学神通的修炼。
这次要研究的是[九音真经(上)]。
本节到此结束,欲知后事如何,请看下回分解。
[机器小伟]在[工程师阿伟]的陪同下进行着声学神通的修炼。
这次要研究的是[九音真经(上)]。
正剧开始:
星历2016年05月15日 12:15:55, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起研究[九音真经(上)]。
九音真经 第一式:共振求音
释;元音,半元音都有共振峰,抓住共振峰就可以确定出元音
<span style="font-size:18px;">#1. 拼音的元音、半元音名称
['vowel_zh_1000_1400_2400',
'vowel_zh_1100_1550_2600',
'vowel_zh_600_1000_2000',
'vowel_zh_900_1300_3000',
'vowel_zh_600_1400_2400',
'vowel_zh_700_1450_3200',
'vowel_zh_650_2050_2600',
'vowel_zh_550_2400_3000',
'vowel_zh_400_2300_3500',
'vowel_zh_350_2900_3500',
'vowel_zh_400_700',
'vowel_zh_350_650',
'vowel_zh_450_2200_2500',
'vowel_zh_350_2300_2750',
'vowel_zh_500_1500_2600',
'vowel_zh_500_1500_3100',
'vowel_zh_450_1700_2400',
'vowel_zh_450_1900_2600',
'vowel_zh_600_1500_2000',
'vowel_zh_750_1750_3600',
'vowel_zh_550_1800_2650',
'vowel_zh_300_1200_2350',
'vowel_zh_400_1500_2400',
'vowel_zh_380_1000_1800',
'vowel_zh_400_1000_1900',
'vowel_zh_350_1500_2400',
'vowel_zh_300_2200_3500',
'vowel_zh_300_600',
'vowel_zh_350_2400_3600']
#生成声波数据
def tmp3_2():
filename = [];
#普通话元音,浊辅音
frequence = [[1000,1400,2400], #a
[1100,1550,2600], #a(女)
[600,1000,2000], #o
[900,1300,3000], #o(女)
[600,1400,2400], #e
[700,1450,3200], #e(女)
[650,2050,2600], #e^
[550,2400,3000], #e^(女)
[400,2300,3500], #i
[350,2900,3500], #i(女)
[400, 700], #u
[350, 650], #u(女)
[450, 2200, 2500],#yu
[350, 2300, 2750],#yu(女)
[500, 1500, 2600],#i(兹)
[500,1500,3100], #i(兹)(女)
[450, 1700, 2400],#i(知)
[450, 1900, 2600],#i(知)(女)
[600, 1500, 2000],#er
[750, 1750, 3600],#er(女)
#普通话浊辅音
[550, 1800, 2650], #r
[300, 1200, 2350], #m
[400, 1500, 2400], #n
[380, 1000, 1800], #-n
[400, 1000, 1900], #-ng
[350, 1500, 2400], #l
[300, 2200, 3500], #y(i)
[300, 600], #w(u)
[350, 2400, 3600] #yu
];
size = len(frequence);
for i in range(size):
dataStr = '';
size_1 = len(frequence[i]);
if (size_1 == 2):
dataStr = 'vowel_zh_'+ str(frequence[i][0])+'_'+str(frequence[i][1]);
elif (size_1 == 3):
dataStr = 'vowel_zh_'+ str(frequence[i][0])+'_'+str(frequence[i][1])+'_'+str(frequence[i][2]);
filename.append(dataStr);
print(filename);</span>
<span style="font-size:18px;">#2. 生成元音基本数据
#生成声波数据
def tmp2_2():
print('生成波形开始。>>>');
fout= open('output.txt', 'w');
#普通话元音,浊辅音
frequence = [[1000,1400,2400], #a
[1100,1550,2600], #a(女)
[600,1000,2000], #o
[900,1300,3000], #o(女)
[600,1400,2400], #e
[700,1450,3200], #e(女)
[650,2050,2600], #e^
[550,2400,3000], #e^(女)
[400,2300,3500], #i
[350,2900,3500], #i(女)
[400, 700], #u
[350, 650], #u(女)
[450, 2200, 2500],#yu
[350, 2300, 2750],#yu(女)
[500, 1500, 2600],#i(兹)
[500,1500,3100], #i(兹)(女)
[450, 1700, 2400],#i(知)
[450, 1900, 2600],#i(知)(女)
[600, 1500, 2000],#er
[750, 1750, 3600],#er(女)
#普通话浊辅音
[550, 1800, 2650], #r
[300, 1200, 2350], #m
[400, 1500, 2400], #n
[380, 1000, 1800], #-n
[400, 1000, 1900], #-ng
[350, 1500, 2400], #l
[300, 2200, 3500], #y(i)
[300, 600], #w(u)
[350, 2400, 3600] #yu
];
size = len(frequence);
for i in range(size):
dataStr = '';
size_1 = len(frequence[i]);
if (size_1 == 2):
dataStr = 'vowel_zh_'+ str(frequence[i][0])+'_'+str(frequence[i][1]) + ' = [';
elif (size_1 == 3):
dataStr = 'vowel_zh_'+ str(frequence[i][0])+'_'+str(frequence[i][1]) +'_'+str(frequence[i][2])+ ' = [';
fout.write(dataStr);
data = [];
if (size_1 == 2):
data = waveDataGen_2(frequence[i][0], frequence[i][1], 0);
elif (size_1 == 3):
data = waveDataGen_2(frequence[i][0], frequence[i][1], frequence[i][2]);
size_1 = len(data);
for n in range(size_1):
fout.write(str(data[n]));
if (n < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
fout.close();
print('生成波形结束,请到output.txt查收。');</span>
九音真经 第二式:升频得调
释:声调是根据同一根音的频率的变化趋势得到的。由高到低为去声,由低到高为阳平,不变为阴平。
<span style="font-size:18px;">#3. 把元音升频,分五次升频,每次升一个半音
def changeFrequence():
import wavename;
import wavedata;
filename = wavename.wavename;
size = len(filename);
fileStr = 'vowel_zh.py';
fout= open(fileStr, 'w');
print('生成波形开始。>>>');
#分五次升频,每次升一个半音
for n in range(6):
multi = 2**(n/12);
for i in range(size):
tmpdata = eval('wavedata.'+filename[i]);
retData = [];
size_1 = len(tmpdata)//2;
sigma = 0;
for j in range(size_1):
sigma += multi-1;
if sigma > 1:
sigma -= 1;
else:
retData.append(tmpdata[2*j]);
retData.append(tmpdata[2*j+1]);
#由于频率增加而剔除掉的数据
removed = len(tmpdata)-len(retData);
#用阵列的前端补足缺失
for j in range(removed):
retData.append(retData[j]);
#print(len(retData));
dataStr = filename[i] + '_F'+str(n)+ ' = [';
fout.write(dataStr);
size_1 = len(retData);
for m in range(size_1):
fout.write(str(retData[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
fout.close();
print('生成波形结束,请到'+fileStr+'查收。');</span>
#4. 从原子元音组成带声调的单元音,以及不带声调的半元音
['tone_a0', 'tone_a1', 'tone_a2', 'tone_a3', 'tone_a4', 'tone_o0', 'tone_o1', 'tone_o2', 'tone_o3', 'tone_o4', 'tone_e0', 'tone_e1', 'tone_e2', 'tone_e3', 'tone_e4', 'tone_i0', 'tone_i1', 'tone_i2', 'tone_i3', 'tone_i4', 'tone_u0', 'tone_u1', 'tone_u2', 'tone_u3', 'tone_u4', 'tone_yu0', 'tone_yu1', 'tone_yu2', 'tone_yu3', 'tone_yu4', 'tone_er0', 'tone_er1', 'tone_er2', 'tone_er3', 'tone_er4', 'tone_r0', 'tone_m0', 'tone_n0', 'tone__n0', 'tone__ng0', 'tone_l0', 'tone_w0', 'tone_y0']
#把元音原子组合成带声调的单韵母
def simpleVowelCompose():
import vowel_zh;
#<1>
#这部分命名最后有下划线,是原始音,不带声调
#拼音 a
tone_a_ = [];
for i in range(6):
tone_a_.append('vowel_zh.'+'vowel_zh_1000_1400_2400_F'+str(i));
#拼音 o
tone_o_ = [];
for i in range(6):
tone_o_.append('vowel_zh.'+'vowel_zh_600_1000_2000_F'+str(i));
#拼音 e
tone_e_ = [];
for i in range(6):
tone_e_.append('vowel_zh.'+'vowel_zh_600_1400_2400_F'+str(i));
#拼音 i
tone_i_ = [];
for i in range(6):
tone_i_.append('vowel_zh.'+'vowel_zh_400_2300_3500_F'+str(i));
#拼音 u
tone_u_ = [];
for i in range(6):
tone_u_.append('vowel_zh.'+'vowel_zh_400_700_F'+str(i));
#拼音 yu
tone_yu_ = [];
for i in range(6):
tone_yu_.append('vowel_zh.'+'vowel_zh_450_2200_2500_F'+str(i));
#拼音 er
tone_er_ = [];
for i in range(6):
tone_er_.append('vowel_zh.'+'vowel_zh_600_1500_2000_F'+str(i));
#拼音 r
tone_r_ = [];
for i in range(6):
tone_r_.append('vowel_zh.'+'vowel_zh_550_1800_2650_F'+str(i));
#拼音 m
tone_m_ = [];
for i in range(6):
tone_m_.append('vowel_zh.'+'vowel_zh_300_1200_2350_F'+str(i));
#拼音 n
tone_n_ = [];
for i in range(6):
tone_n_.append('vowel_zh.'+'vowel_zh_400_1500_2400_F'+str(i));
#拼音 -n
tone__n_ = [];
for i in range(6):
tone__n_.append('vowel_zh.'+'vowel_zh_380_1000_1800_F'+str(i));
#拼音 -ng
tone__ng_ = [];
for i in range(6):
tone__ng_.append('vowel_zh.'+'vowel_zh_400_1000_1900_F'+str(i));
#拼音 l
tone_l_ = [];
for i in range(6):
tone_l_.append('vowel_zh.'+'vowel_zh_350_1500_2400_F'+str(i));
#拼音 w
tone_w_ = [];
for i in range(6):
tone_w_.append('vowel_zh.'+'vowel_zh_300_600_F'+str(i));
#拼音 y
tone_y_ = [];
for i in range(6):
tone_y_.append('vowel_zh.'+'vowel_zh_350_2400_3600_F'+str(i));
#<2>
#音调
#第0, 1, 2, 3, 4声分别是轻声,阴平,阳平,上声,去声
tones = ['210', '555555', '012345', '210123', '543210'];
names = [];
fout = open('toneComposeData.py', 'w');
#拼音 a
tone_a = [];
for i in range(5):
tmpTone = [];
for j in range(len(tones[i])):
tmpTone += eval(tone_a_[int(tones[i][j])]);
tone_a.append(tmpTone);
fout.write('tone_a'+str(i)+' = [');
names.append('tone_a'+str(i));
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 o
tone_o = [];
for i in range(5):
tmpTone = [];
for j in range(len(tones[i])):
tmpTone += eval(tone_o_[int(tones[i][j])]);
tone_o.append(tmpTone);
fout.write('tone_o'+str(i)+' = [');
names.append('tone_o'+str(i));
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 e
tone_e = [];
for i in range(5):
tmpTone = [];
for j in range(len(tones[i])):
tmpTone += eval(tone_e_[int(tones[i][j])]);
tone_e.append(tmpTone);
fout.write('tone_e'+str(i)+' = [');
names.append('tone_e'+str(i));
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 i
tone_i = [];
for i in range(5):
tmpTone = [];
for j in range(len(tones[i])):
tmpTone += eval(tone_i_[int(tones[i][j])]);
tone_i.append(tmpTone);
fout.write('tone_i'+str(i)+' = [');
names.append('tone_i'+str(i));
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 u
tone_u = [];
for i in range(5):
tmpTone = [];
for j in range(len(tones[i])):
tmpTone += eval(tone_u_[int(tones[i][j])]);
tone_u.append(tmpTone);
fout.write('tone_u'+str(i)+' = [');
names.append('tone_u'+str(i));
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 yu
tone_yu = [];
for i in range(5):
tmpTone = [];
for j in range(len(tones[i])):
tmpTone += eval(tone_yu_[int(tones[i][j])]);
tone_yu.append(tmpTone);
fout.write('tone_yu'+str(i)+' = [');
names.append('tone_yu'+str(i));
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 er
tone_er = [];
for i in range(5):
tmpTone = [];
for j in range(len(tones[i])):
tmpTone += eval(tone_er_[int(tones[i][j])]);
tone_er.append(tmpTone);
fout.write('tone_er'+str(i)+' = [');
names.append('tone_er'+str(i));
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#以下为半元音,不需要带音调
#拼音 r
tone_r = [];
tmpTone = [];
for j in range(len(tones[0])):
tmpTone += eval(tone_r_[int(tones[0][j])]);
tone_r.append(tmpTone);
fout.write('tone_r0'+' = [');
names.append('tone_r0');
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 m
tone_m = [];
tmpTone = [];
for j in range(len(tones[0])):
tmpTone += eval(tone_m_[int(tones[0][j])]);
tone_m.append(tmpTone);
fout.write('tone_m0'+' = [');
names.append('tone_m0');
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 n
tone_n = [];
tmpTone = [];
for j in range(len(tones[0])):
tmpTone += eval(tone_n_[int(tones[0][j])]);
tone_n.append(tmpTone);
fout.write('tone_n0'+' = [');
names.append('tone_n0');
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 -n
tone__n = [];
tmpTone = [];
for j in range(len(tones[0])):
tmpTone += eval(tone__n_[int(tones[0][j])]);
tone__n.append(tmpTone);
fout.write('tone__n0'+' = [');
names.append('tone__n0');
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 -ng
tone__ng = [];
tmpTone = [];
for j in range(len(tones[0])):
tmpTone += eval(tone__ng_[int(tones[0][j])]);
tone__ng.append(tmpTone);
fout.write('tone__ng0'+' = [');
names.append('tone__ng0');
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 l
tone_l = [];
tmpTone = [];
for j in range(len(tones[0])):
tmpTone += eval(tone_l_[int(tones[0][j])]);
tone_l.append(tmpTone);
fout.write('tone_l0'+' = [');
names.append('tone_l0');
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 w
tone_w = [];
tmpTone = [];
for j in range(len(tones[0])):
tmpTone += eval(tone_w_[int(tones[0][j])]);
tone_r.append(tmpTone);
fout.write('tone_w0'+' = [');
names.append('tone_w0');
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
#拼音 y
tone_y = [];
tmpTone = [];
for j in range(len(tones[0])):
tmpTone += eval(tone_y_[int(tones[0][j])]);
tone_y.append(tmpTone);
fout.write('tone_y0'+' = [');
names.append('tone_y0');
size_1 = len(tmpTone);
for m in range(size_1):
fout.write(str(tmpTone[m]));
if (m < size_1-1):
fout.write(', ');
fout.write('];');
fout.write('\r\n');
fout.close();
print(names);</span>
释:由单个带有声调的元音,和不带声调的半元音,可以生出韵母表。
<span style="font-size:18px;">#5.生成韵母表
def tmp():
table = [
'a', 'o', 'e', 'i', 'u', 'yu',
'ai', 'ei', 'ao', 'ou', 'an', 'en', 'ang', 'eng', 'ong',
'ia', 'ie', 'iao', 'iou', 'ian', 'in', 'iang', 'ing', 'iong',
'ua', 'uo', 'uai', 'uei', 'uan', 'uen', 'uang', 'ueng',
'yue', 'yuan', 'yun'
];
for i in range(len(table)):
for j in range(5):
print('\''+table[i]+str(j)+'\', ', end='');
print('');
def tmp():
tableA = ['tone_a0', 'tone_a1', 'tone_a2', 'tone_a3', 'tone_a4',
'tone_o0', 'tone_o1', 'tone_o2', 'tone_o3', 'tone_o4',
'tone_e0', 'tone_e1', 'tone_e2', 'tone_e3', 'tone_e4',
'tone_i0', 'tone_i1', 'tone_i2', 'tone_i3', 'tone_i4',
'tone_u0', 'tone_u1', 'tone_u2', 'tone_u3', 'tone_u4',
'tone_yu0', 'tone_yu1', 'tone_yu2', 'tone_yu3', 'tone_yu4',
'tone_er0', 'tone_er1', 'tone_er2', 'tone_er3', 'tone_er4',
'tone_r0', 'tone_m0', 'tone_n0', 'tone__n0', 'tone__ng0', 'tone_l0', 'tone_w0', 'tone_y0']
tableB = ['a0', 'a1', 'a2', 'a3', 'a4',
'o0', 'o1', 'o2', 'o3', 'o4',
'e0', 'e1', 'e2', 'e3', 'e4',
'i0', 'i1', 'i2', 'i3', 'i4',
'u0', 'u1', 'u2', 'u3', 'u4',
'yu0', 'yu1', 'yu2', 'yu3', 'yu4',
'er0', 'er1', 'er2', 'er3', 'er4',
'r0', 'm0', 'n0', '_n0', '_ng0', 'l0', 'w0', 'y0'
];
for i in range(len(tableA)):
print('tone_'+tableB[i] + ' = ' + 'eval(\'toneComposeData.\'+\''+tableA[i]+'\');');
</span>
def tmp():
table = [
'ai', 'ei', 'ao', 'ou', 'an', 'en', 'ang', 'eng', 'ong',
'ia', 'ie', 'iao', 'iou', 'ian', 'in', 'iang', 'ing', 'iong',
'ua', 'uo', 'uai', 'uei', 'uan', 'uen', 'uang', 'ueng',
'yue', 'yuan', 'yun'
];
for i in range(len(table)):
s = table[i];
for j in range(5):
if (s == 'ai'):
print('tone_'+ s + str(j) + ' = ' + 'tone_a'+str(j)+' + tone_i0;');
elif (s == 'ei'):
print('tone_'+ s + str(j) + ' = ' + 'tone_e'+str(j)+' + tone_i0;');
elif (s == 'ao'):
print('tone_'+ s + str(j) + ' = ' + 'tone_a'+str(j)+' + tone_o0;');
elif (s == 'ou'):
print('tone_'+ s + str(j) + ' = ' + 'tone_o'+str(j)+' + tone_u0;');
elif (s == 'an'):
print('tone_'+ s + str(j) + ' = ' + 'tone_a'+str(j)+' + tone__n0;');
elif (s == 'en'):
print('tone_'+ s + str(j) + ' = ' + 'tone_e'+str(j)+' + tone__n0;');
elif (s == 'ang'):
print('tone_'+ s + str(j) + ' = ' + 'tone_a'+str(j)+' + tone__ng0;');
elif (s == 'eng'):
print('tone_'+ s + str(j) + ' = ' + 'tone_e'+str(j)+' + tone__ng0;');
elif (s == 'ong'):
print('tone_'+ s + str(j) + ' = ' + 'tone_o'+str(j)+' + tone__ng0;');
elif (s == 'ia'):
print('tone_'+ s + str(j) + ' = ' + 'tone_i0' + ' + tone_a'+str(j)+';');
elif (s == 'ie'):
print('tone_'+ s + str(j) + ' = ' + 'tone_i0' + ' + tone_e'+str(j)+';');
elif (s == 'iao'):
print('tone_'+ s + str(j) + ' = ' + 'tone_i0' + ' + tone_ao'+str(j)+';');
elif (s == 'iou'):
print('tone_'+ s + str(j) + ' = ' + 'tone_i0' + ' + tone_ou'+str(j)+';');
elif (s == 'ian'):
print('tone_'+ s + str(j) + ' = ' + 'tone_i0' + ' + tone_an'+str(j)+';');
elif (s == 'in'):
print('tone_'+ s + str(j) + ' = ' + 'tone_i'+str(j)+' + tone__n0;');
elif (s == 'iang'):
print('tone_'+ s + str(j) + ' = ' + 'tone_i0' + ' + tone_ang'+str(j)+';');
elif (s == 'ing'):
print('tone_'+ s + str(j) + ' = ' + 'tone_i'+str(j)+' + tone__ng0;');
elif (s == 'iong'):
print('tone_'+ s + str(j) + ' = ' + 'tone_i0' + ' + tone_ong'+str(j)+';');
elif (s == 'ua'):
print('tone_'+ s + str(j) + ' = ' + 'tone_u0' + ' + tone_a'+str(j)+';');
elif (s == 'uo'):
print('tone_'+ s + str(j) + ' = ' + 'tone_u0' + ' + tone_o'+str(j)+';');
elif (s == 'uai'):
print('tone_'+ s + str(j) + ' = ' + 'tone_u0' + ' + tone_ai'+str(j)+';');
elif (s == 'uei'):
print('tone_'+ s + str(j) + ' = ' + 'tone_u0' + ' + tone_ei'+str(j)+';');
elif (s == 'uan'):
print('tone_'+ s + str(j) + ' = ' + 'tone_u0' + ' + tone_an'+str(j)+';');
elif (s == 'uen'):
print('tone_'+ s + str(j) + ' = ' + 'tone_u0' + ' + tone_en'+str(j)+';');
elif (s == 'uang'):
print('tone_'+ s + str(j) + ' = ' + 'tone_u0' + ' + tone_ang'+str(j)+';');
elif (s == 'ueng'):
print('tone_'+ s + str(j) + ' = ' + 'tone_u0' + ' + tone_eng'+str(j)+';');
elif (s == 'yue'):
print('tone_'+ s + str(j) + ' = ' + 'tone_yu'+str(j)+' + tone_e0;');
elif (s == 'yuan'):
print('tone_'+ s + str(j) + ' = ' + 'tone_yu'+str(j)+' + tone_an0;');
elif (s == 'yun'):
print('tone_'+ s + str(j) + ' = ' + 'tone_yu'+str(j)+' + tone__n0;');
print('');
<span style="font-size:18px;">#6. 韵母的合成与测试
def compoundVowelCompose():
import toneComposeData;
vowelTable0 = [
'a0', 'a1', 'a2', 'a3', 'a4',
'o0', 'o1', 'o2', 'o3', 'o4',
'e0', 'e1', 'e2', 'e3', 'e4',
'i0', 'i1', 'i2', 'i3', 'i4',
'u0', 'u1', 'u2', 'u3', 'u4',
'yu0', 'yu1', 'yu2', 'yu3', 'yu4',
];
vowelTable1 = [
'ai0', 'ai1', 'ai2', 'ai3', 'ai4',
'ei0', 'ei1', 'ei2', 'ei3', 'ei4',
'ao0', 'ao1', 'ao2', 'ao3', 'ao4',
'ou0', 'ou1', 'ou2', 'ou3', 'ou4',
'an0', 'an1', 'an2', 'an3', 'an4',
'en0', 'en1', 'en2', 'en3', 'en4',
'ang0', 'ang1', 'ang2', 'ang3', 'ang4',
'eng0', 'eng1', 'eng2', 'eng3', 'eng4',
'ong0', 'ong1', 'ong2', 'ong3', 'ong4',
'ia0', 'ia1', 'ia2', 'ia3', 'ia4',
'ie0', 'ie1', 'ie2', 'ie3', 'ie4',
'iao0', 'iao1', 'iao2', 'iao3', 'iao4',
'iou0', 'iou1', 'iou2', 'iou3', 'iou4',
'ian0', 'ian1', 'ian2', 'ian3', 'ian4',
'in0', 'in1', 'in2', 'in3', 'in4',
'iang0', 'iang1', 'iang2', 'iang3', 'iang4',
'ing0', 'ing1', 'ing2', 'ing3', 'ing4',
'iong0', 'iong1', 'iong2', 'iong3', 'iong4',
'ua0', 'ua1', 'ua2', 'ua3', 'ua4',
'uo0', 'uo1', 'uo2', 'uo3', 'uo4',
'uai0', 'uai1', 'uai2', 'uai3', 'uai4',
'uei0', 'uei1', 'uei2', 'uei3', 'uei4',
'uan0', 'uan1', 'uan2', 'uan3', 'uan4',
'uen0', 'uen1', 'uen2', 'uen3', 'uen4',
'uang0', 'uang1', 'uang2', 'uang3', 'uang4',
'ueng0', 'ueng1', 'ueng2', 'ueng3', 'ueng4',
'yue0', 'yue1', 'yue2', 'yue3', 'yue4',
'yuan0', 'yuan1', 'yuan2', 'yuan3', 'yuan4',
'yun0', 'yun1', 'yun2', 'yun3', 'yun4'];
tone_a0 = eval('toneComposeData.'+'tone_a0')*4;
tone_a1 = eval('toneComposeData.'+'tone_a1')*4;
tone_a2 = eval('toneComposeData.'+'tone_a2')*4;
tone_a3 = eval('toneComposeData.'+'tone_a3')*4;
tone_a4 = eval('toneComposeData.'+'tone_a4')*4;
tone_o0 = eval('toneComposeData.'+'tone_o0')*4;
tone_o1 = eval('toneComposeData.'+'tone_o1')*4;
tone_o2 = eval('toneComposeData.'+'tone_o2')*4;
tone_o3 = eval('toneComposeData.'+'tone_o3')*4;
tone_o4 = eval('toneComposeData.'+'tone_o4')*4;
tone_e0 = eval('toneComposeData.'+'tone_e0')*4;
tone_e1 = eval('toneComposeData.'+'tone_e1')*4;
tone_e2 = eval('toneComposeData.'+'tone_e2')*4;
tone_e3 = eval('toneComposeData.'+'tone_e3')*4;
tone_e4 = eval('toneComposeData.'+'tone_e4')*4;
tone_i0 = eval('toneComposeData.'+'tone_i0')*4;
tone_i1 = eval('toneComposeData.'+'tone_i1')*4;
tone_i2 = eval('toneComposeData.'+'tone_i2')*4;
tone_i3 = eval('toneComposeData.'+'tone_i3')*4;
tone_i4 = eval('toneComposeData.'+'tone_i4')*4;
tone_u0 = eval('toneComposeData.'+'tone_u0')*4;
tone_u1 = eval('toneComposeData.'+'tone_u1')*4;
tone_u2 = eval('toneComposeData.'+'tone_u2')*4;
tone_u3 = eval('toneComposeData.'+'tone_u3')*4;
tone_u4 = eval('toneComposeData.'+'tone_u4')*4;
tone_yu0 = eval('toneComposeData.'+'tone_yu0')*4;
tone_yu1 = eval('toneComposeData.'+'tone_yu1')*4;
tone_yu2 = eval('toneComposeData.'+'tone_yu2')*4;
tone_yu3 = eval('toneComposeData.'+'tone_yu3')*4;
tone_yu4 = eval('toneComposeData.'+'tone_yu4')*4;
tone_er0 = eval('toneComposeData.'+'tone_er0')*4;
tone_er1 = eval('toneComposeData.'+'tone_er1')*4;
tone_er2 = eval('toneComposeData.'+'tone_er2')*4;
tone_er3 = eval('toneComposeData.'+'tone_er3')*4;
tone_er4 = eval('toneComposeData.'+'tone_er4')*4;
tone_r0 = eval('toneComposeData.'+'tone_r0')*4;
tone_m0 = eval('toneComposeData.'+'tone_m0')*4;
tone_n0 = eval('toneComposeData.'+'tone_n0')*4;
tone__n0 = eval('toneComposeData.'+'tone__n0')*4;
tone__ng0 = eval('toneComposeData.'+'tone__ng0')*4;
tone_l0 = eval('toneComposeData.'+'tone_l0')*4;
tone_w0 = eval('toneComposeData.'+'tone_w0')*4;
tone_ai0 = tone_a0 + tone_i0;
tone_ai1 = tone_a1 + tone_i0;
tone_ai2 = tone_a2 + tone_i0;
tone_ai3 = tone_a3 + tone_i0;
tone_ai4 = tone_a4 + tone_i0;
tone_ei0 = tone_e0 + tone_i0;
tone_ei1 = tone_e1 + tone_i0;
tone_ei2 = tone_e2 + tone_i0;
tone_ei3 = tone_e3 + tone_i0;
tone_ei4 = tone_e4 + tone_i0;
tone_ao0 = tone_a0 + tone_o0;
tone_ao1 = tone_a1 + tone_o0;
tone_ao2 = tone_a2 + tone_o0;
tone_ao3 = tone_a3 + tone_o0;
tone_ao4 = tone_a4 + tone_o0;
tone_ou0 = tone_o0 + tone_u0;
tone_ou1 = tone_o1 + tone_u0;
tone_ou2 = tone_o2 + tone_u0;
tone_ou3 = tone_o3 + tone_u0;
tone_ou4 = tone_o4 + tone_u0;
tone_an0 = tone_a0 + tone__n0;
tone_an1 = tone_a1 + tone__n0;
tone_an2 = tone_a2 + tone__n0;
tone_an3 = tone_a3 + tone__n0;
tone_an4 = tone_a4 + tone__n0;
tone_en0 = tone_e0 + tone__n0;
tone_en1 = tone_e1 + tone__n0;
tone_en2 = tone_e2 + tone__n0;
tone_en3 = tone_e3 + tone__n0;
tone_en4 = tone_e4 + tone__n0;
tone_ang0 = tone_a0 + tone__ng0;
tone_ang1 = tone_a1 + tone__ng0;
tone_ang2 = tone_a2 + tone__ng0;
tone_ang3 = tone_a3 + tone__ng0;
tone_ang4 = tone_a4 + tone__ng0;
tone_eng0 = tone_e0 + tone__ng0;
tone_eng1 = tone_e1 + tone__ng0;
tone_eng2 = tone_e2 + tone__ng0;
tone_eng3 = tone_e3 + tone__ng0;
tone_eng4 = tone_e4 + tone__ng0;
tone_ong0 = tone_o0 + tone__ng0;
tone_ong1 = tone_o1 + tone__ng0;
tone_ong2 = tone_o2 + tone__ng0;
tone_ong3 = tone_o3 + tone__ng0;
tone_ong4 = tone_o4 + tone__ng0;
tone_ia0 = tone_i0 + tone_a0;
tone_ia1 = tone_i1 + tone_a0;
tone_ia2 = tone_i2 + tone_a0;
tone_ia3 = tone_i3 + tone_a0;
tone_ia4 = tone_i4 + tone_a0;
tone_ie0 = tone_i0 + tone_e0;
tone_ie1 = tone_i1 + tone_e0;
tone_ie2 = tone_i2 + tone_e0;
tone_ie3 = tone_i3 + tone_e0;
tone_ie4 = tone_i4 + tone_e0;
tone_iao0 = tone_i0 + tone_ao0;
tone_iao1 = tone_i1 + tone_ao0;
tone_iao2 = tone_i2 + tone_ao0;
tone_iao3 = tone_i3 + tone_ao0;
tone_iao4 = tone_i4 + tone_ao0;
tone_iou0 = tone_i0 + tone_ou0;
tone_iou1 = tone_i1 + tone_ou0;
tone_iou2 = tone_i2 + tone_ou0;
tone_iou3 = tone_i3 + tone_ou0;
tone_iou4 = tone_i4 + tone_ou0;
tone_ian0 = tone_i0 + tone_an0;
tone_ian1 = tone_i1 + tone_an0;
tone_ian2 = tone_i2 + tone_an0;
tone_ian3 = tone_i3 + tone_an0;
tone_ian4 = tone_i4 + tone_an0;
tone_in0 = tone_i0 + tone__n0;
tone_in1 = tone_i1 + tone__n0;
tone_in2 = tone_i2 + tone__n0;
tone_in3 = tone_i3 + tone__n0;
tone_in4 = tone_i4 + tone__n0;
tone_iang0 = tone_i0 + tone_ang0;
tone_iang1 = tone_i1 + tone_ang0;
tone_iang2 = tone_i2 + tone_ang0;
tone_iang3 = tone_i3 + tone_ang0;
tone_iang4 = tone_i4 + tone_ang0;
tone_ing0 = tone_i0 + tone__ng0;
tone_ing1 = tone_i1 + tone__ng0;
tone_ing2 = tone_i2 + tone__ng0;
tone_ing3 = tone_i3 + tone__ng0;
tone_ing4 = tone_i4 + tone__ng0;
tone_iong0 = tone_i0 + tone_ong0;
tone_iong1 = tone_i1 + tone_ong0;
tone_iong2 = tone_i2 + tone_ong0;
tone_iong3 = tone_i3 + tone_ong0;
tone_iong4 = tone_i4 + tone_ong0;
tone_ua0 = tone_u0 + tone_a0;
tone_ua1 = tone_u1 + tone_a0;
tone_ua2 = tone_u2 + tone_a0;
tone_ua3 = tone_u3 + tone_a0;
tone_ua4 = tone_u4 + tone_a0;
tone_uo0 = tone_u0 + tone_o0;
tone_uo1 = tone_u1 + tone_o0;
tone_uo2 = tone_u2 + tone_o0;
tone_uo3 = tone_u3 + tone_o0;
tone_uo4 = tone_u4 + tone_o0;
tone_uai0 = tone_u0 + tone_ai0;
tone_uai1 = tone_u1 + tone_ai0;
tone_uai2 = tone_u2 + tone_ai0;
tone_uai3 = tone_u3 + tone_ai0;
tone_uai4 = tone_u4 + tone_ai0;
tone_uei0 = tone_u0 + tone_ei0;
tone_uei1 = tone_u1 + tone_ei0;
tone_uei2 = tone_u2 + tone_ei0;
tone_uei3 = tone_u3 + tone_ei0;
tone_uei4 = tone_u4 + tone_ei0;
tone_uan0 = tone_u0 + tone_an0;
tone_uan1 = tone_u1 + tone_an0;
tone_uan2 = tone_u2 + tone_an0;
tone_uan3 = tone_u3 + tone_an0;
tone_uan4 = tone_u4 + tone_an0;
tone_uen0 = tone_u0 + tone_en0;
tone_uen1 = tone_u1 + tone_en0;
tone_uen2 = tone_u2 + tone_en0;
tone_uen3 = tone_u3 + tone_en0;
tone_uen4 = tone_u4 + tone_en0;
tone_uang0 = tone_u0 + tone_ang0;
tone_uang1 = tone_u1 + tone_ang0;
tone_uang2 = tone_u2 + tone_ang0;
tone_uang3 = tone_u3 + tone_ang0;
tone_uang4 = tone_u4 + tone_ang0;
tone_ueng0 = tone_u0 + tone_eng0;
tone_ueng1 = tone_u1 + tone_eng0;
tone_ueng2 = tone_u2 + tone_eng0;
tone_ueng3 = tone_u3 + tone_eng0;
tone_ueng4 = tone_u4 + tone_eng0;
tone_yue0 = tone_yu0 + tone_ie0;
tone_yue1 = tone_yu1 + tone_ie0;
tone_yue2 = tone_yu2 + tone_ie0;
tone_yue3 = tone_yu3 + tone_ie0;
tone_yue4 = tone_yu4 + tone_ie0;
tone_yuan0 = tone_yu0 + tone_an0;
tone_yuan1 = tone_yu1 + tone_an0;
tone_yuan2 = tone_yu2 + tone_an0;
tone_yuan3 = tone_yu3 + tone_an0;
tone_yuan4 = tone_yu4 + tone_an0;
tone_yun0 = tone_yu0 + tone_en0;
tone_yun1 = tone_yu1 + tone_en0;
tone_yun2 = tone_yu2 + tone_en0;
tone_yun3 = tone_yu3 + tone_en0;
tone_yun4 = tone_yu4 + tone_en0;
#数据阵列测试
retData = [];
for i in range(len(vowelTable1)):
if i%5!=0:
retData += eval('tone_'+vowelTable1[i]);
retData += idleWave*10;
return retData;
def waveDataChoose_2(filename):
sampledata = [];
sampledata = compoundVowelCompose();
return sampledata;</span>
本节到此结束,欲知后事如何,请看下回分解。