# -*- coding: utf-8 -*-
"""
Created on Mon Jul 21 09:02:51 2014

@author: barthes
"""

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
from scipy import fftpack
import winsound

plt.close("all")

########################################################################
####################   #Extraction audio ###############################
########################################################################
NomFichier = "test.wav"
Fe, s = wavfile.read(NomFichier)   # Fe Frequence d'echantillonnage

print("la frequence d'echantillonnage est : Fe =",Fe," Hz")
#abscisse temporelle
t=[]
for k in range(len(s)):
    t.append(k*1./Fe)

########################################################################
####################   #transformée de Fourier #########################
########################################################################

#Transformee de Fourier du signal d'entree
TF_s = np.real(fftpack.fft(s)/np.size(s))
# axe frequentiel:
N=len(s)+1
axe_freq = np.arange(0.,N-1)*Fe/N


## Génération des figures
plt.figure(1,figsize=(12,6))

# chronogramme
plt.subplot(1,2,1)
plt.plot(t,s)
plt.xlabel('t (en s)')
plt.ylabel('s(t) (en V)')
plt.title("Chronogramme")

# spectre
plt.subplot(1,2,2)
plt.plot(axe_freq,np.abs(TF_s),'-r')
plt.xlim(0,Fe/2) # critere de Shannon
plt.xlabel('Frequence (en Hertz)')
plt.ylabel('Amplitude (en V)')
plt.title("Spectre")

plt.show()

## Modification du fichier wav

# modification de la fréquence d echantillonnage
# Fe = 40000 # Hz
# wavfile.write("temp.wav", Fe, s)
# winsound.PlaySound('temp.wav',winsound.SND_FILENAME)

# modification du volume
# ampli  = 2
# wavfile.write("temp.wav", Fe, ampli*s)
# winsound.PlaySound('temp.wav',winsound.SND_FILENAME)
