2017-05-10 2 views
2

J'ai essayé, mais il n'a pas fait plus d'une ligne vide:Comment puis-je faire du son avec fréquence dans python3?

import os 
a=300 
b=2000 
os.system('play --no-show-progress --null --channels 1 synth %s sine %f' % (a, b)) 
+0

Modifier le '' à os.system' print', exécutez le code et copiez et collez la chaîne sur votre terminal. Est-ce que cela joue le son que vous voulez? –

+0

La course donne toujours une ligne vide. Dans le terminal, la chaîne l'imprime simplement. – Turcsi

Répondre

1

Une façon simple de jouer un bip sonore de la fréquence et de la durée donnée en Python:

frequency = 1000 # Hertz 
duration = 2000 # milliseconds 

Sur de Windows:

import winsound 
winsound.Beep(frequency, duration) 

Sur Linux:

# SoX must be installed using 'sudo apt-get install sox' in the terminal 
import os 
os.system('play -n synth %s sin %s' % (duration/1000, frequency)) 

Sur macOS:

# First install Homebrew (https://brew.sh/) 
# and then SoX using 'brew install sox' in the terminal 
import os 
os.system('play -n synth %s sin %s' % (duration/1000, frequency)) 

multiplateformes:

en utilisant le module PyAudio et un peu de codage: https://stackoverflow.com/a/27978895

+0

play WARN sox: L'option '-f 'est obsolète, utilisez' -t-floating-point' à la place. Lecture WARN getopt: l'option 'l 'n'est pas reconnue Lecture: SoX v14.4.1 Lecture FAIL sox: option invalide – Turcsi

+0

Sur quelle plate-forme êtes-vous et quelle solution avez-vous essayé? – Josselin

+0

Sur Ubuntu avec la deuxième solution. – Turcsi