171 votes

Python : Faire un bruit de bip

Je tente de faire en sorte que le programme me donne un bruit de bip. Je suis sur une machine windows. J'ai consulté http://docs.python.org/library/winsound.html

Mais je ne suis pas sûr comment je peux programmer cela avec un lecteur de code-barres.

Voici mon code pour le lecteur de code-barres série.

ser = serial.Serial()
ser.baudrate = 9600

#pour windows
ser.port = 2 #pour COM3

ser.open()
ser.write('hello')
ser.close()

MISE À JOUR : Puisque j'ennuie mes collègues avec le bip. Puis-je le faire passer par la prise audio pour les écouteurs ?

4 votes

Vous souhaitez que le scanner de code-barres fasse du bruit ou que la machine Windows à laquelle il est connecté le fasse ?

0 votes

La machine Windows. Je pense que le scanner de code-barres le fera tout seul

16 votes

Re "Mise à jour": Oui, c'est un fait bien connu que les bip peuvent être agaçants :)

23voto

Brad123 Points 11

J'ai trouvé cette bibliothèque utile : Installer beepy,

pip install beepy

Il existe 6 options de son différentes, vous pouvez voir les détails ici : https://pypi.org/project/beepy/

Extrait de code pour écouter tous les sons :

import beepy as beep
for ii in range(1,7): 
    beep.beep(ii)

1 votes

J'ai eu un problème avec winsound.Beep(....) dans w10 (j'ai dû exécuter le dépanneur à chaque fois que je lance winsound.Beep(....)), mais cela l'a résolu.

1 votes

@utilisateur_007 J'ai également rencontré quelques erreurs après l'avoir exécuté les premières fois. Je ne suis pas sûr de quel était le problème mais j'ai fini par l'abandonner et utiliser '\a' à la place.

0 votes

Sur Windows 10 en 2022, la commande pip install beepy échoue avec une erreur lors de l'installation de simpleaudio

13voto

foo bar Points 747

La manière multiplateforme :

import time
import sys
for i in range(1,6):
    sys.stdout.write('\r\a{i}'.format(i=i))
    sys.stdout.flush()
    time.sleep(1)
sys.stdout.write('\n')

Merci à c z:

print(end='\a')

9 votes

La seule partie importante de ceci est sys.stdout.write('\a')

2 votes

@jstrieb -- c'est un petit programme autonome. Son importance réside dans sa complétude même.

3 votes

imprimer(fin='\a')

7voto

Rodrigo Points 27

Sous linux : print('\007') déclenchera le son de la cloche du système.

5voto

Serge Stroobandt Points 525

Utiliser pygame sur n'importe quelle plateforme

L'avantage d'utiliser pygame est qu'il peut être configuré pour fonctionner sur n'importe quelle plateforme OS. L'exemple ci-dessous concerne GNU/Linux.

Commencez par installer le module pygame pour python3 comme expliqué en détail ici.

$ sudo pip3 install pygame

Le module pygame peut lire des fichiers .wav et .ogg à partir de n'importe quel emplacement de fichier. Voici un exemple :

#!/usr/bin/env python3
import pygame
pygame.mixer.init()
sound = pygame.mixer.Sound('/usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga')
sound.play()

3voto

qed Points 1769

J'ai créé un package dans ce but.

Vous pouvez l'utiliser comme ceci :

from pybeep.pybeep import PyVibrate, PyBeep
PyVibrate().beep()
PyVibrate().beepn(3)
PyBeep().beep()
PyBeep().beepn(3)

Cela dépend de sox et ne prend en charge que python3.

1 votes

Essayer pip3 install pybeep.

1 votes

Il vous suffit d'installer sox. Exécutez : brew install sox

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X