2017-05-10 4 views
2

Ich versuchte dies, aber es hat nicht mehr als eine leere Zeile aus:Wie kann ich Ton mit Häufigkeit in Python3 machen?

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

Ändern Sie den 'os.system' auf' print', führen Sie den Code aus und kopieren Sie die Zeichenfolge und fügen Sie sie in Ihr Terminal ein. Spielt das dann den gewünschten Sound? –

+0

Der Lauf gibt immer noch eine Leerzeile aus. Im Terminal druckt die Zeichenfolge es nur aus. – Turcsi

Antwort

1

Einfache Möglichkeiten, einen Piepton von bestimmten Frequenz und Dauer in Python zu spielen:

frequency = 1000 # Hertz 
duration = 2000 # milliseconds 

Auf Windows-:

import winsound 
winsound.Beep(frequency, duration) 

Auf 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)) 

Auf 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)) 

Plattformübergreifender:

Mit PyAudio Modul und ein wenig Codierung: https://stackoverflow.com/a/27978895

+0

play WARN sox: Option '-f 'ist veraltet, stattdessen' -e Fließkomma 'verwenden. play WARN getopt: Option 'l 'nicht erkannt spielen: SoX v14.4.1 play FAIL sox: ungültige Option – Turcsi

+0

Auf welcher Plattform befinden Sie sich und welche Lösung haben Sie versucht? – Josselin

+0

Auf Ubuntu mit der zweiten Lösung. – Turcsi

Verwandte Themen