Hallo,
wir haben zuhause oft das Problem, dass Lebensmittel im Kühlschrank in Vergessenheit geraten. Daher möchte ich mir ein Skript schreiben, dem ich sage:
1. was ich in den Kühlschrank lege
2. wie lange es haltbar ist - um kurz vor Ablauf gewarnt zu werden
3. wann ich etwas anbreche (um dann in einer liste zu sehen, was schon am längsten geöffnet ist)
Ich habe gegoogelt was es schon so gibt und bin unter anderem auf diese Seite gestoßen. Daran würde ich mich gerne orientieren und haben zunächst ein paar Fragen zum Skript:
import speech_recognition as sr
r = sr.Recognizer()
items = dict()
command = ""
item = ""
while(1):
with sr.Microphone() as source:
print("Speak:")
audio = r.listen(source)
try:
speechString =r.recognize_google(audio)
parsedCommands = speechString.split(" ")
except sr.UnknownValueError:
print("Could not understand audio")
except sr.RequestError as e:
print("Could not request results; {0}".format(e))
if(len(parsedCommands) > 0):
command = parsedCommands[0]
if(len(parsedCommands) > 1):
item = parsedCommands[1]
if(command == "add"):
if item in items:
items[item] = str(int(items[item]) + 1)
else:
items[item] = str(1)
print(item + " added")
if(command == "remove"):
if item in items:
if(int(items[item]) > 1):
items[item] = str(int(items[item]) - 1)
else:
try:
items.pop(item, None)
except:
pass
print(item + " removed")
if(command == "display"):
print(items)
command = ""
item = ""
days = ""
parsedCommands.clear()
Alles anzeigen
1. Ich glaube die Seite ist schon etwas älter. Ist das Skript so noch in Ordnung? Aus while(1): mache ich while True:?
2. In diesem Skript werden werden ja zwei Wörter benötigt. Das erste ist der command, das zweite das item. Hier wird es mit einem dictionary gemacht.
Für meine Zwecke bräuchte ich ja nun manchmal mehr Einträge. Bsp.:
Kommando | Lebensmittel | Anzahl | Ablaufdatum |
hinzufügen | Sahne | 2 | 22.12.2018 |
geöffnet | Sahne |
Bei geöffnet müsste ich dann noch das Datum mit einbinden um dann anzeigen zu lassen wie lange es schon geöffnet ist. Aber vorher zunächst einmal die Frage, wo genau ich meine vier parsedCommands speichere?
Wenn ich das richtig verstanden habe speicher ich im dictionary nur zwei Einträge. Es sei denn ich mache es mit einem Tuple. Empfiehlt sich das? Oder eher eine Liste?
Ich würde mit euren Tipps einmal anfangen zu schreiben und bei Problemen noch mal hier schreiben, bin aber auch für Tipps/Anregungen zum Projekt offen. Evtl. gibt's es etwas vergleichbares ja sogar schon und ich habe es nur nicht gefunden
Gruß, Tom