Ich versuche ein Script zu basteln welches eine Mikrofonaufnahme startet sobald Ton erkannt wurde.
Das erkennen vom Ton löse ich mittels pyaudio, analyse und diversen anderen Modulen.
Da ich ziemlicher Neuling bin komm ich an einer stelle nicht weiter.
Die While True schleife in der das Mikrofon abgefragt wird soll ab einem Bestimmten bereich stoppen und die aufnahme starten und dann erneut starten. Derzeit ist es für mich nur möglich die aufnahme über ein extra script zu starten und nach der aufname das abfrage script einfach erneut zu starten.
Code: Alles auswählen
#analyse.loudness(samps)
#analyse.musical_detect_pitch(samps)
import numpy
import pyaudio
import analyse
import subprocess
import os
import time
i = 0
numbers = []
pyaud = pyaudio.PyAudio()
stream = pyaud.open(
format = pyaudio.paInt16,
channels = 1,
rate = 44100,
input_device_index = 2,
input = True)
def theloop():
global i
i = 0
while True:
rawsamps = stream.read(1024)
samps = numpy.fromstring(rawsamps, dtype=numpy.int16)
blaa = str(analyse.musical_detect_pitch(samps))
if blaa == "None":
print "Warte auf Stimme"
else:
blaa = int(float(blaa))
print blaa
if 60 <= blaa < 80:
# hier soll schleife stoppen und nach ausführen des scripts erneut laufen.
#os.system("./speech.sh s")
else:
i = 0
theloop()
bin für jede hilfe dankbar.