RSS
Affichage des articles dont le libellé est python. Afficher tous les articles
Affichage des articles dont le libellé est python. Afficher tous les articles

Analyse audio avec python

Ce qui est cool aussi avec python, c'est qu'on peut faire une analyse spectrale :

import pyaudio
from numpy import fromstring
#fenetre

from Tkinter import *
fen = Tk()
close = Button(fen,text="fermer",command=fen.quit)
can = Canvas(fen, width=400,height=200,bg="grey")
can.pack(side=TOP,padx=5,pady=5)
close.pack(side=BOTTOM,pady=12)

#fonctions
num=0
def affiche():
time=[]
time = getAudioData()
global can, lines
n,m,o=0,0,0
if len(lines)==0 :
for a in time:
val = (a*200)+100
lines.append(can.create_line(o,m,n,val,fill="blue"))
m=val
o=n
n+=1
else :
for a in time:
val = (a*200)+100
can.coords(lines[n],o,m,n,val)
m=val
o=n
n+=1
fen.after(1,affiche)

def getAudioData():
rate=1024
p = pyaudio.PyAudio()
inStream = p.open(format=pyaudio.paInt16, channels=1, rate=44100,
input=True, frames_per_buffer=rate)
audio_data = fromstring(inStream.read(rate), dtype=short)
normalized_data = audio_data / 32768.0
return normalized_data




print "enregistrement"
lines = []
affiche()
fen.mainloop()




l'idée c'est bel et bien récuperrer un buffer de la bande audio
puis d'en faire une mini analyse, histoire de se faire plaisir ; tout simplement !!

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

scanner tout les liens en Python

simpa cette petite librairie urllib !!!

def getLink(url):
import urllib
str=[]
htmlSource = urllib.urlopen(url).read(200000)
for chunk in htmlSource.lower().split('href=')[1:]:
indexes = [i for i in [chunk.find('"',1),chunk.find('>'),chunk.find(' ')] if i>-1]
str.append(chunk[:min(indexes)])
return str


ce code retourne un tableau avec tout les liens du site ;
Problème : il retourne aussi les liens avec les images ; le mieux serait ainsi :


def getLink2(url):
import urllib
str=[]
ext = ['.gif','.png','.jpg','.bmp','.css']
htmlSource = urllib.urlopen(url).read()
for chunk in htmlSource.lower().split('href=')[1:]:
indexes = [i for i in [chunk.find('"',1),chunk.find('>'),chunk.find(' ')] if i>-1]
link = chunk[:min(indexes)]
link = link.replace("'","")
if link[0]=='"':link=link[1:]
if link[-1]=='"':link=link[:1]
if url[-1]!="/":url+="/"
if link[0]=="/":
link = url+link[1:]
if link != "#":
if not link[-4:] in ext :
str.append(link)
return str


on évitera aussi les ancres, les liens nuls, etc ..

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Analyse audio avec python scanner tout les liens en Python