Source: http://web.isen-bretagne.fr/livres/python/ressources/WEB/HautParleur/HautParleur.pdf