Initial commit
This commit is contained in:
commit
91ad1790e1
9 changed files with 3340 additions and 0 deletions
103
src/mensa_to_speech.py
Normal file
103
src/mensa_to_speech.py
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
#!/bin/env python3
|
||||
|
||||
import requests
|
||||
import html
|
||||
from datetime import datetime
|
||||
from TTS.api import TTS
|
||||
|
||||
MENSA_API = "https://www.mensa-kl.de/api.php?format=json&date=0"
|
||||
|
||||
LOCATION_NAMES = {
|
||||
"1": "Ausgabe Eins",
|
||||
"1veg": "Ausgabe Eins vegetarisch",
|
||||
"2": "Ausgabe Zwei",
|
||||
"2veg": "Ausgabe Zwei vegetarisch",
|
||||
"2vegan": "Ausgabe Zwei vegan",
|
||||
"Grill": "Grill",
|
||||
}
|
||||
|
||||
MONTHS = {
|
||||
1: "Januar",
|
||||
2: "Februar",
|
||||
3: "März",
|
||||
4: "April",
|
||||
5: "Mai",
|
||||
6: "Juni",
|
||||
7: "Juli",
|
||||
8: "August",
|
||||
9: "September",
|
||||
10: "Oktober",
|
||||
11: "November",
|
||||
12: "Dezember",
|
||||
}
|
||||
|
||||
DAYS = {
|
||||
1: "ersten",
|
||||
2: "zweiten",
|
||||
3: "dritten",
|
||||
4: "vierten",
|
||||
5: "fünften",
|
||||
6: "sechsten",
|
||||
7: "siebten",
|
||||
8: "achten",
|
||||
9: "neunten",
|
||||
10: "zehnten",
|
||||
11: "elften",
|
||||
12: "zwölften",
|
||||
13: "dreizehnten",
|
||||
14: "vierzehnten",
|
||||
15: "fünfzehnten",
|
||||
16: "sechzehnten",
|
||||
17: "siebzehnten",
|
||||
18: "achtzehnten",
|
||||
19: "neunzehnten",
|
||||
20: "zwanzigsten",
|
||||
21: "einundzwanzigsten",
|
||||
22: "zweiundzwanzigsten",
|
||||
23: "dreiundzwanzigsten",
|
||||
24: "vierundzwanzigsten",
|
||||
25: "fünfundzwanzigsten",
|
||||
26: "sechsundzwanzigsten",
|
||||
27: "siebenundzwanzigsten",
|
||||
28: "achtundzwanzigsten",
|
||||
29: "neunundzwanzigsten",
|
||||
30: "dreißigsten",
|
||||
31: "einunddreißigsten",
|
||||
}
|
||||
|
||||
|
||||
START = (
|
||||
"Achtung! Achtung! Meine Damen und Herren, D B 0 K L bittet um ihre Aufmerksamkeit!\n"
|
||||
+ "Es folgt der Mensaplan für heute, den "
|
||||
)
|
||||
|
||||
END = (
|
||||
"Dieser Rundspruch ist maschinell erstellt, ohne Unterschrift gültig und muss nicht bestätigt werden.\n"
|
||||
+ "Guten Appetitt. Das war D B 0 K L."
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
plan = requests.get(MENSA_API).json()
|
||||
|
||||
menu = ""
|
||||
|
||||
for entry in plan:
|
||||
if entry["loc"] not in LOCATION_NAMES.keys():
|
||||
continue
|
||||
menu += "%s: %s.\n" % (LOCATION_NAMES[entry["loc"]], entry["title"])
|
||||
|
||||
menu = html.unescape(menu)
|
||||
menu = menu.replace('"', "")
|
||||
|
||||
today = datetime.now()
|
||||
date_text = DAYS[today.day] + " " + MONTHS[today.month]
|
||||
|
||||
text = START + date_text + ".\n" + menu + END
|
||||
|
||||
tts = TTS("tts_models/de/thorsten/tacotron2-DDC").to("cpu")
|
||||
tts.tts_to_file(text=text, file_path="mensa.wav")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue