网站自动更新时间代码,wordpress怎么调用音频,怎么做企业官网,控制台网站一、项目需求
训练集数据为六类音乐([“classical”, “jazz”, “country”, “pop”, “rock”, “metal”])#xff0c;格式为.wav#xff0c;每类音乐都有100首 音乐分类器项目#xff0c;主要运用到了傅里叶变换函数 很多东西越在高维空间处理起来就会变得越是简单 例…一、项目需求
训练集数据为六类音乐([“classical”, “jazz”, “country”, “pop”, “rock”, “metal”])格式为.wav每类音乐都有100首 音乐分类器项目主要运用到了傅里叶变换函数 很多东西越在高维空间处理起来就会变得越是简单 例如书本上的文字是一维漫画图像是二维视频是三维(加上了时间维度)你喜欢看书还是看图画书还是看电影 很显然视频更容易让人们所接受
一条直线你从正面看是一条直线当你从侧面看时则变成了一个点这就是观察方向的不同导致的结果不同但是有影响吗这根直线还是这根直线没有变只不过观察方向角度变了而已。 音乐是有多个频率所构成的傅里叶公式可以简单的理解为从另一个角度进行观察音乐频率 正常的我们是通过前方(时间维度)进行观察聆听音乐的而傅里叶则是从右侧(频域)进行观察的 大家都知道任何一个连续函数都可以用正弦函数叠加故音乐则可以理解为多个正弦函数的叠加 当你从傅里叶的角度(右侧)进行观察时就会发现实则是多个峰或者说是多条直线而已问题瞬间变得简单了 二、数据集
这里的音乐使用的都是单声道的音乐(.wav)通过傅里叶变换将音频进行转化为频谱(.fft.npy) 若其他同学手边有数据也可以自己进行转换 可以参考该篇博文.wav音乐文件转换为.fft.npy频谱格式文件 若不想自己动手转换可以直接使用这个数据集.fft.npy格式音乐经过傅里叶变换得到的频谱数据集
训练集 测试集
三、完整代码
需要修改的地方 rad G:/PyCharm/workspace/machine_learning/trainset/g.str(n).zfill(5) .fft.npy训练集路径 wavfile.read(G:/PyCharm/workspace/machine_learning/trainset/sample/heibao-wudizirong-remix.wav)测试集路径
# coding:utf-8import numpy as np
from sklearn import linear_model, datasets
import matplotlib.pyplot as plt
from scipy.stats import norm
from scipy.fftpack import fft
from scipy.io import wavfile
n 40
# hstack使得十足拼接
# rvs是Random Variates随机变量的意思
# 在模拟X的时候使用了两个正态分布,分别制定各自的均值,方差,生成40个点
X np.hstack((norm.rvs(loc2, sizen, scale2), norm.rvs(loc8, sizen, scale3)))
# zeros使得数据点生成40个0,ones使得数据点生成40个1
y np.hstack((np.zeros(n),np.ones(n)))
# 创建一个 10 * 4 点point的图并设置分辨率为 80
plt.figure(figsize(10, 4),dpi80)
# 设置横轴的上下限
plt.xlim((-5, 20))
# scatter散点图
plt.scatter(X, y, cy)
plt.xlabel(feature value)
plt.ylabel(class)
plt.grid(True, linestyle-, color0.75)
plt.savefig(D:/workspace/scikit-learn/logistic_classify.png, bbox_inchestight)# linspace是在-5到15的区间内找10个数
xsnp.linspace(-5,15,10)#---linear regression----------
from sklearn.linear_model import LinearRegression
clf LinearRegression()
# reshape重新把array变成了80行1列二维数组,符合机器学习多维线性回归格式
clf.fit(X.reshape(n * 2, 1), y)
def lin_model(clf, X):return clf.intercept_ clf.coef_ * X#---logistic regression--------
from sklearn.linear_model import LogisticRegression
logclf LogisticRegression()
# reshape重新把array变成了80行1列二维数组,符合机器学习多维线性回归格式
logclf.fit(X.reshape(n * 2, 1), y)
def lr_model(clf, X):return 1.0 / (1.0 np.exp(-(clf.intercept_ clf.coef_ * X)))#----plot---------------------------
plt.figure(figsize(10, 5))
# 创建一个一行两列子图的图像中第一个图
plt.subplot(1, 2, 1)
plt.scatter(X, y, cy)
plt.plot(X, lin_model(clf, X),o,colororange)
plt.plot(xs, lin_model(clf, xs),-,colorgreen)
plt.xlabel(feature value)
plt.ylabel(class)
plt.title(linear fit)
plt.grid(True, linestyle-, color0.75)
# 创建一个一行两列子图的图像中第二个图
plt.subplot(1, 2, 2)
plt.scatter(X, y, cy)
plt.plot(X, lr_model(logclf, X).ravel(),o,colorc)
plt.plot(xs, lr_model(logclf, xs).ravel(),-,colorgreen)
plt.xlabel(feature value)
plt.ylabel(class)
plt.title(logistic fit)
plt.grid(True, linestyle-, color0.75)plt.tight_layout(pad0.4, w_pad0, h_pad1.0)
plt.savefig(D:/workspace/scikit-learn/logistic_classify2.png, bbox_inchestight)使用logistic regression处理音乐数据,音乐数据训练样本的获得和使用快速傅里叶变换FFT预处理的方法需要事先准备好
1. 把训练集扩大到每类100个首歌而不是之前的10首歌,类别仍然是六类:jazz,classical,country, pop, rock, metal
2. 同时使用logistic回归和KNN作为分类器
3. 引入一些评价的标准来比较Logistic和KNN在测试集上的表现
# 准备音乐数据
# def create_fft(g, n):
# rad d:/genres/g/converted/g.str(n).zfill(5).au.wav#音乐文件的路径这里的音乐文件都是.wav格式
# sample_rate, X wavfile.read(rad)#sample_rate采样率X为音乐文件本身
# fft_features abs(fft(X)[:1000])#对音乐文件本身进行fft快速傅里叶变化取前1000赫兹数据进行取绝对值得到fft_features傅里叶变换的特征
# sad d:/trainset/g.str(n).zfill(5) .fft#将特征存储到这个路径下
# np.save(sad, fft_features)#存储特征存储的是.fft格式但是最终生成的是.fft.npy格式这是numpy自动生成的
#
# # -------create fft--------------
#
#
# genre_list [classical, jazz, country, pop, rock, metal]
# for g in genre_list:
# for n in range(100):
# create_fft(g, n)# 加载训练集数据,分割训练集以及测试集,进行分类器的训练
# 构造训练集
# -------read fft--------------
genre_list [classical, jazz, country, pop, rock, metal]
X []#矩阵
Y []#标签
for g in genre_list:for n in range(100):#六类音乐每类100首rad G:/PyCharm/workspace/machine_learning/trainset/g.str(n).zfill(5) .fft.npyfft_features np.load(rad)X.append(fft_features)Y.append(genre_list.index(g))X np.array(X)#把列表转化为array数组类型
Y np.array(Y)# 首先我们要将原始数据分为训练集和测试集这里是随机抽样80%做测试集剩下20%做训练集
import random
randomIndexrandom.sample(range(len(Y)),int(len(Y)*8/10))
trainX[];trainY[];testX[];testY[]
for i in range(len(Y)):if i in randomIndex:trainX.append(X[i])trainY.append(Y[i])else:testX.append(X[i])testY.append(Y[i])
# 接下来我们使用sklearn来构造和训练我们的两种分类器
# ------train logistic classifier--------------
from sklearn.linear_model import LogisticRegression
#multi_classovr表示使用逻辑回归的多分类若为multinomial则使用softmax进行多分类solversag使用随机梯度下降法若不传则默认使用liblinearmax_iter10000最大迭代次数
model LogisticRegression()#创建逻辑回归对象
model.fit(X, Y)#传入数据进行训练模型这里的model是在内存里面
# predictYlogisticmap(lambda x:logclf.predict(x)[0],testX)# 可以采用Python内建的持久性模型 pickle 来保存scikit的模型下面的代码是将model存到硬盘里面
# import pickle
# s pickle.dumps(model)
# clf2 pickle.loads(s)
# clf2.predict(X[0])
#----train knn classifier-----------------------
from sklearn.neighbors import NearestNeighbors
neigh NearestNeighbors(n_neighbors1)
neigh.fit(trainX)
predictYknnmap(lambda x:trainY[neigh.kneighbors(x,return_distanceFalse)[0][0]],testX)# 将predictYlogistic以及predictYknn与testY对比我们就可以知道两者的判定正确率
a np.array(predictYlogistic)-np.array(testY)
print a, np.count_nonzero(a), len(a)
accuracyLogistic 1-np.count_nonzero(a)/(len(a)*1.0)
b np.array(predictYknn)-np.array(testY)
print b, np.count_nonzero(b), len(b)
accuracyKNN 1-np.count_nonzero(b)/(len(b)*1.0)print %f % (accuracyLogistic)
print %f % (accuracyKNN)
print(Starting read wavfile...)
# prepare test data-------------------
# sample_rate, test wavfile.read(d:/trainset/sample/outfile.wav)
sample_rate, test wavfile.read(G:/PyCharm/workspace/machine_learning/trainset/sample/heibao-wudizirong-remix.wav)
# sample_rate, test wavfile.read(d:/genres/metal/converted/metal.00080.au.wav)
testdata_fft_features abs(fft(test))[:1000]
print(sample_rate, testdata_fft_features, len(testdata_fft_features))
type_index model.predict([testdata_fft_features])[0]
print(type_index)
print(genre_list[type_index])
from sklearn.metrics import confusion_matrix
cmlogistic confusion_matrix(testY, predictYlogistic)
cmknn confusion_matrix(testY, predictYknn)def plotCM(cm,title,colorbarOn,givenAX):ncmcm/cm.max()plt.matshow(ncm, fignumFalse, cmapBlues, vmin0, vmax2.0)if givenAX:axplt.axes()else:ax givenAXax.set_xticks(range(len(genre_list)))ax.set_xticklabels(genre_list)ax.xaxis.set_ticks_position(bottom)ax.set_yticks(range(len(genre_list)))ax.set_yticklabels(genre_list)plt.title(title,size12)if colorbarOnon:plt.colorbar()plt.xlabel(Predicted class)plt.ylabel(True class)for i in range(cm.shape[0]):for j in range(cm.shape[1]):plt.text(i,j,cm[i,j],size15)plt.figure(figsize(10, 5))
fig1plt.subplot(1, 2, 1)
plotCM(cmlogistic,confusion matrix: FFT based logistic classifier,off,fig1.axes)
fig2plt.subplot(1, 2, 2)
plotCM(cmknn,confusion matrix: FFT based KNN classifier,off,fig2.axes)
plt.tight_layout(pad0.4, w_pad0, h_pad1.0) plt.savefig(d:/confusion_matrix.png, bbox_inchestight)输出结果如下 其中44100为采样率 44100 [2.62963968e08 4.46200714e06 5.15395385e06 4.43376757e063.74566845e06 4.70186729e06 5.33935836e06 4.61999477e064.15225785e06 3.30594588e06 4.31103082e06 5.05558675e065.32297672e06 4.85506026e06 5.19126496e06 4.14585787e063.62846270e06 4.75147337e06 3.91082781e06 4.62259775e064.48238357e06 3.23787122e06 2.22014030e06 3.78805307e062.14269906e06 3.13617469e06 3.12430918e06 4.46836068e062.74392608e06 3.78402588e06 1.87577534e06 3.49203803e062.33558316e06 3.81553507e06 2.63688151e06 3.02667708e062.04674785e06 2.22072034e06 1.91995398e06 1.98927890e061.68224240e06 1.35139077e06 2.30549645e06 6.03046897e051.31438823e06 1.95087823e06 8.49833030e05 1.19171948e061.23251661e06 1.89390106e06 5.80352061e05 1.50388290e061.25938435e06 1.02978969e06 2.36614610e05 3.01560843e051.27662352e06 1.49221129e06 5.17213388e05 8.00948818e057.65561994e05 3.62419277e05 1.50979436e06 3.85068213e056.41942889e05 3.61144502e05 6.85268116e05 1.00144583e066.46261080e05 1.40845476e06 6.62866166e05 6.91106024e051.23208363e06 1.36027432e06 3.62846259e05 5.72218147e057.75993152e05 9.14515445e05 1.18571572e06 9.02475526e054.98999881e05 1.74914232e06 3.94735421e05 1.22194083e069.44511346e05 5.64374132e05 1.76153158e06 1.92086536e061.23147054e06 3.62420572e05 5.19808732e05 1.34346298e067.21219553e05 8.88950439e05 1.75325706e06 2.29355413e061.08391025e06 9.30282476e05 1.10235851e06 3.67805257e055.77443645e05 5.94086277e05 1.19729395e06 5.34697818e053.88725959e05 7.87438862e05 1.77019327e06 1.66520041e062.07569988e06 7.36173308e05 6.56954650e05 1.61943917e068.67054883e05 1.26014326e06 1.61921808e06 1.54533344e067.07774874e05 1.62786750e05 2.97020086e05 1.13388210e065.63030498e05 9.58680710e05 1.16377079e06 9.77142004e058.99557347e05 4.93741261e05 1.99306708e05 1.20241539e067.47989489e04 1.67983186e06 6.79762302e05 8.65937699e055.50519377e05 1.72907596e06 2.93786505e05 7.75062173e059.68810309e05 1.43654854e06 8.08623022e05 2.59287374e054.57334088e05 9.85646332e05 1.38921416e06 1.17264490e067.41666163e05 2.05204503e06 8.05602385e05 7.40724129e059.05423650e05 4.47600257e05 9.70026356e05 1.19707145e068.66600040e05 9.09215043e05 6.38983412e05 6.24539950e052.30489745e05 9.49711853e05 1.62124067e06 1.33000213e067.49378742e05 4.94629349e05 2.53593993e05 8.26687520e057.83442269e05 1.10375179e06 7.42007345e05 5.10356938e054.41047858e05 8.81833105e05 2.42540213e06 3.30401795e058.80062590e05 6.49905701e05 3.47149964e05 1.05602066e061.18980862e06 1.96891139e05 1.14120246e06 8.02951614e056.00111367e05 6.69160363e05 1.89491761e05 5.95679660e051.38204166e06 1.21312932e06 1.00683336e06 1.71907045e061.47929539e06 1.05542669e06 2.36641708e06 9.33510819e057.48075310e05 1.77764553e06 4.21246379e05 7.90733672e051.39589725e06 7.09737413e05 7.30502934e05 1.25361964e066.19123157e05 6.88892351e05 6.26028154e05 8.54795006e057.06965041e05 1.21987749e06 7.52060331e05 4.71848433e052.36098779e05 8.47966863e05 4.01129984e05 1.27542408e067.14220047e05 5.18027090e05 5.58925060e05 2.79974210e057.62875042e05 1.84079472e06 1.42550029e06 1.14811203e061.30128360e06 1.24869130e06 3.52352404e05 4.21421728e051.18173485e06 5.10136084e05 3.75560127e05 4.79102195e051.10333151e06 2.05555702e06 7.23702249e05 3.61178799e057.04851219e05 1.44012108e06 9.26402727e05 2.02821056e054.45325652e05 7.90522874e05 8.26436685e05 1.17563229e068.43867568e05 4.01048078e05 9.26085978e05 6.44995771e053.53685137e05 8.34366832e05 1.23386512e06 7.02375781e054.58931591e05 8.43526489e05 1.10676720e06 7.68521715e051.62269410e06 1.58265455e06 1.03200640e06 4.64795983e059.90089422e05 5.24337673e05 3.66658840e05 6.55805698e055.70752207e05 2.76033608e05 3.23297345e05 1.33078141e066.16117851e05 3.63376716e05 1.22034305e06 1.87348103e068.18691165e05 2.43489854e05 1.06339848e06 1.38161299e057.08259014e05 1.32420185e06 3.73634708e05 4.74188119e058.56522386e05 1.18141641e06 1.52211708e06 4.07008939e058.35340660e05 6.40881238e05 1.09076459e06 1.21963072e067.56369038e05 1.14117511e06 1.39389976e06 5.10490203e057.00735069e05 2.37107675e05 8.94992427e05 1.53159359e065.24539638e05 7.88949376e04 8.78275390e05 1.68422430e068.09255981e05 4.57182807e05 1.17241872e06 2.09394245e059.77952748e04 8.97739813e05 1.08742141e06 9.69384074e059.81838586e05 5.07041429e05 1.15578207e06 3.49371827e056.20229249e05 3.60935229e05 1.03026311e06 3.46570750e051.08685762e06 1.66151632e06 9.47736790e05 4.26436467e051.13526476e06 5.84625497e05 1.51928634e06 9.70060181e051.62523526e06 6.11541462e05 4.29298422e05 4.61724329e055.66555319e05 1.29364175e06 1.01953071e06 1.94211951e062.72120805e05 1.14321213e06 5.67287402e05 1.94838376e068.23364882e05 1.62185476e06 1.12559716e06 4.55413724e053.94762550e05 9.96679018e05 8.64137068e05 9.73976199e055.00463157e05 5.05326117e05 7.18463504e05 3.00032365e051.29926845e06 9.28358383e05 4.51525493e05 4.65797885e056.70108099e05 1.00455574e06 1.22544843e05 7.84409036e052.52051242e06 1.13223858e06 8.64798855e05 7.61259423e059.48682621e05 5.33148975e05 3.99035609e05 1.47581282e062.39172803e06 6.02291705e05 9.12335511e05 1.10007913e063.88451743e05 3.18750364e05 1.12384444e06 5.00540271e051.60319399e05 7.27587480e05 6.17185073e05 1.35890728e061.56238108e06 9.65851067e05 1.07019478e06 1.63850864e066.47843129e05 2.65218848e05 1.17738892e06 1.19611403e062.75522201e05 1.34222981e06 2.75771621e05 1.98303864e057.81263330e05 3.26290246e05 1.74968242e06 7.61635689e057.82203438e05 4.37269114e05 4.94924240e05 4.04790850e056.06235962e05 1.14968590e06 9.01138935e05 3.87643407e051.25101978e06 1.25419381e06 1.35912365e06 1.10417253e062.56006176e05 1.68242848e05 6.92147285e05 5.62794655e054.93718498e05 5.32081292e05 1.27889173e06 1.07027869e061.10223160e06 1.21005716e06 8.85081307e05 9.54022330e051.09599439e06 1.00597502e06 1.32263178e06 9.81496867e051.34961613e06 9.75037511e05 6.85154265e05 2.74366226e051.50605422e06 1.24630822e06 1.16136322e06 5.19311262e051.63678378e06 1.00376123e06 1.62954572e06 5.53658511e051.47319245e06 1.16738338e06 8.38245719e05 1.09516870e064.70652165e05 4.84287731e05 1.07054018e06 1.51727656e065.68360369e05 1.13788710e06 1.11524639e06 5.50195476e052.54789570e06 6.70319933e05 5.94055329e05 1.40070839e061.12209139e06 6.66737961e05 1.12603699e06 7.59905686e051.28043310e06 1.73220091e06 1.62539809e06 1.43598424e062.44608474e05 9.76455920e05 1.65895428e06 4.74288051e051.10317841e06 7.60719720e05 1.10148269e06 1.22954150e063.90806811e05 7.68896458e05 1.12202274e06 1.20163265e061.22283285e05 3.95298481e05 1.44100987e06 1.13628142e065.47027791e05 1.44282330e06 1.51116579e06 2.94764054e051.98303470e06 6.60890367e05 1.74400473e05 3.43742919e051.32702565e06 9.70334589e05 1.44755428e06 1.19220440e051.05416292e06 7.65688495e05 9.26620871e05 1.05452545e063.45971006e05 1.38729419e06 9.25768093e05 5.78718349e054.97405435e05 6.38795336e05 4.69704768e05 1.08195127e061.16430563e06 1.12494833e06 4.95913198e05 1.77315771e061.03099010e06 4.83720528e05 3.21831897e06 2.89220027e056.79691208e05 5.54079998e05 4.93231507e05 6.97124088e057.70214750e05 3.41919222e05 9.71853585e05 3.02895802e051.60873623e06 1.19824400e06 7.22427028e05 7.13426231e051.02447104e05 7.53407279e05 1.41847030e06 1.17125187e054.90554481e05 2.22813151e06 1.81816145e06 2.00108016e069.88524222e05 6.66761214e05 1.41700184e06 1.73091718e051.27497266e06 8.84137125e05 6.78333314e05 1.25807940e066.10437456e05 6.18501388e05 8.10004665e05 1.52737362e069.48293718e05 8.16537529e05 6.56080065e05 2.61681911e053.09335595e05 1.61035190e06 6.71864447e05 7.03677274e051.44948054e06 1.33119383e06 2.64438246e06 8.99604614e055.90471091e05 1.99137527e05 1.03576680e06 2.36999135e061.09501221e06 2.70689106e05 3.76008484e05 2.13801101e061.72034321e06 1.03344188e06 8.55742897e05 5.82042271e051.85276639e06 8.23264426e05 1.22193431e06 6.48059124e051.72918335e06 1.45109304e06 8.33139569e05 1.05104656e061.01674950e06 1.49288532e05 1.20247840e06 4.39570274e051.79832395e06 9.98752681e05 9.54955398e05 4.28114058e051.58621395e05 9.38163338e05 1.11554619e06 7.80633423e055.13067795e05 5.03253676e05 2.36904360e05 4.99709843e056.21949993e05 2.25802159e06 9.39527797e05 1.23773463e061.15677145e06 6.43416576e05 1.47631874e06 5.80764306e051.40761056e05 6.16162073e05 1.42090316e06 2.47591155e068.58620247e05 7.11971890e05 1.09890188e06 2.79107673e061.45876445e06 1.12196751e06 1.38826076e06 8.28682888e055.07527103e05 1.05698761e06 9.96337472e05 9.74189758e051.40487992e06 3.70140740e05 1.19378682e06 2.54631763e054.53796268e05 1.44369582e06 1.37487873e06 1.33689697e061.19280267e06 1.13395796e06 1.27007970e06 2.57351451e058.82385435e05 1.82934432e06 1.00658762e06 1.65859345e065.92281619e05 8.42457890e05 9.79791964e05 7.08269013e051.23456666e06 1.39433050e06 8.43614328e05 1.04659730e061.71332770e05 1.27208163e06 4.12933744e05 1.19368294e061.01983378e06 1.14148324e06 1.82837589e06 2.17376752e061.15679073e06 9.52035769e05 2.46305964e06 1.64439928e061.24728170e06 1.68959811e06 7.22742065e05 1.33941200e069.36138845e05 1.08803636e06 4.56648829e05 1.46120228e067.85178694e05 1.03316831e06 1.02764622e06 1.15405102e068.27220784e05 8.50158280e05 9.65043821e05 1.23654857e064.99115388e05 1.94305570e06 1.21088371e06 1.30802627e067.70917391e05 1.17759305e06 1.30818276e06 1.62957354e063.23667488e06 8.67097278e05 8.58457212e05 2.72089170e069.08574562e05 2.04681724e06 1.58712952e06 8.40103134e051.14604332e06 1.16037077e06 1.00681060e06 7.75054827e051.23125645e06 1.53232299e06 1.27156373e06 9.17246636e063.29590600e06 2.05453011e06 2.02744927e06 2.04618268e062.32258974e06 2.15913282e06 1.65675095e06 7.94574368e054.14347532e05 1.34996904e06 1.28450160e06 1.70713907e062.53389774e06 7.53067108e05 2.92109765e06 1.35891954e064.54258355e05 9.69501203e05 8.60747492e05 1.25164114e069.52457948e05 1.41437482e06 1.92057969e06 1.93124142e055.84525516e05 1.02859923e06 1.47588480e06 2.11134185e061.65883558e06 1.83035726e06 1.40076106e06 1.68206907e061.18123607e06 2.46259139e06 1.89125390e06 5.48837412e057.18930209e05 1.57502106e06 3.66499377e05 2.68878538e061.31642030e06 3.74088262e06 1.18170765e06 1.32040737e061.31853822e06 2.69033216e06 1.84839762e06 4.25735850e055.51234171e05 1.09019441e06 1.62550524e06 6.57396223e051.27844897e06 5.16691913e05 2.73157674e06 6.23682863e051.10991453e06 2.27380293e06 2.57710006e06 2.31701722e061.56106910e06 2.77372354e05 1.58545730e06 7.49283564e057.03092728e05 8.22247656e05 3.55201948e05 2.82427331e062.37488521e06 1.02221032e06 3.34250229e05 1.76831695e061.73407355e06 1.01221178e06 1.30767170e06 2.06582328e061.30939774e06 9.02271429e05 1.55282000e06 2.66791517e061.46070663e06 2.36855447e06 2.47778462e06 1.65150285e062.86038028e06 2.11331093e06 1.03168160e06 4.20297050e061.37391280e06 1.75552249e06 1.42466104e06 2.02248038e061.21328124e06 1.47561521e06 1.13083699e06 1.99081397e063.09330360e06 2.30924547e06 1.83329091e06 8.09051867e051.70263848e06 1.10090664e06 1.85819900e06 2.38946190e051.95820740e06 1.52776711e06 1.43756932e06 1.85151140e069.35115322e05 1.53739367e06 2.30774990e06 1.12081960e062.65094331e06 2.91169399e06 4.91570496e05 1.37162558e063.83845234e06 2.79701207e05 2.23682020e06 2.85867756e061.49590828e06 2.75865210e06 1.71068052e06 3.17879941e062.21070867e06 1.25671294e06 2.07236085e06 8.59636914e053.33143651e06 2.82114412e06 3.62873617e06 2.30389801e066.23386608e05 1.14024549e06 1.42623320e06 2.94519898e062.08760517e06 2.12760802e06 1.07203047e06 2.72068954e062.01460828e06 1.46703960e06 1.05998485e06 1.90473064e062.03451257e06 8.09722707e05 2.13045612e06 1.62661941e069.49332627e05 1.84730206e06 1.36601889e06 2.20125544e068.21619750e05 2.45818166e06 2.13201457e06 1.65595139e064.79679482e06 3.51013300e06 2.98771178e06 1.26291467e063.49019552e06 2.52078746e06 1.27835388e06 1.91240226e063.69107173e06 2.30183493e06 8.17798057e05 7.77947217e052.19533562e06 6.88382070e06 2.53170163e06 1.50392284e064.01454559e06 1.66508164e06 3.03868030e06 4.26670365e061.66979802e06 5.97165928e06 2.55894914e06 2.30273943e062.10731316e06 3.13332555e06 2.70468729e06 1.16442579e061.46038845e06 2.46001200e06 3.02604152e06 2.30646781e061.71304428e06 2.54375702e06 1.38768714e06 1.06188052e061.72130167e06 1.38045148e06 1.85959525e06 1.72060287e061.86311648e06 1.97971883e06 1.58367654e06 1.57559405e061.86531133e06 1.26524498e06 1.34270543e06 1.87778217e061.76837457e06 2.91085940e06 1.13059030e06 2.17543391e068.25995368e05 1.21550029e06 1.72464645e06 5.32765444e052.97267051e06 2.80904696e06 2.27706903e06 2.45531515e063.14674682e06 2.77241682e05 3.59494379e06 4.70111975e053.31343742e05 1.05652740e06 1.94506705e06 2.54990736e067.65698308e05 2.91493658e06 8.01963983e05 1.72021815e066.02022592e05 1.04332293e06 9.62060816e05 3.36197104e062.68663806e06 1.13708602e06 3.96654483e06 2.81562282e062.42820317e05 8.35760918e04 1.64158835e06 3.30249874e061.37157771e06 2.12389794e06 3.23269416e06 8.45912977e051.35140210e06 5.35804806e05 1.36545428e06 1.30407902e061.29210339e06 1.52951059e06 1.17959961e06 1.33435273e061.71725020e06 4.32548267e06 2.42964008e06 1.09615191e062.38000150e06 2.08306149e05 1.61729929e06 1.69213408e062.17676494e06 1.32419195e06 2.35247695e06 1.22927245e062.45801927e06 2.54130142e06 1.10460223e06 2.83483470e062.25941505e06 1.26583137e06 2.15877447e06 5.32025563e058.10206574e05 1.21008066e06 2.56992726e05 7.78186822e051.57350690e06 2.42269187e06 3.34769234e06 7.14373786e051.73231035e06 1.85696403e06 2.42095050e06 3.28998084e061.28149279e06 2.59963754e06 4.55552548e05 2.40412906e061.67189223e06 1.89699896e06 1.33405479e06 3.33878299e064.37661776e05 2.09006809e06 2.44695877e06 1.65368993e062.88437983e06 5.02961252e06 1.84002601e06 2.26181835e064.38511790e05 6.49497481e05 9.39676571e05 1.74998019e061.61242901e06 2.62123426e06 7.66639670e05 1.56210836e062.86459639e06 5.66697186e05 3.54691073e06 2.69370989e053.82912388e06 3.37837033e06 1.98066407e06 3.18225345e069.74247473e05 1.75306814e06 1.55180915e06 2.91568266e06] 1000
4
rock