-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmorse.py
65 lines (61 loc) · 1.32 KB
/
morse.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
code = {
"A": ".-",
"B": "-...",
"C": "-.-.",
"D": "-..",
"E": ".",
"F": "..-.",
"G": "--.",
"H": "....",
"I": "..",
"J": ".---",
"K": "-.-",
"L": ".-..",
"M": "--",
"N": "-.",
"O": "---",
"P": ".--.",
"Q": "--.-",
"R": ".-.",
"S": "...",
"T": "-",
"U": "..-",
"V": "...-",
"W": ".--",
"X": "-..-",
"Y": "-.--",
"Z": "--..",
"1": ".----",
"2": "..---",
"3": "...--",
"4": "....-",
"5": ".....",
"6": "-....",
"7": "--...",
"8": "---..",
"9": "----.",
"0": "-----",
"Ä": ".-.-",
"Ö": "---.",
"Ü": "..--",
"ß": "...--..",
" ": "/"
}
# All durations below in seconds
# Duration for the "." character (dit)
duration_dit = 0.25
# Duration for the "-" character (dah), by convention 3 * dit
duration_dah = duration_dit * 3
# Duration of a short pause " ", by convention one dit
duration_pause = duration_dit
# Duration of a long pause between words "/", by convention 7 dits (5 dits + 2 * the normal symbol pause)
duration_pause_word = duration_dit * 5
# Durations in seconds
durations = {
".": duration_dit,
"-": duration_dah,
" ": duration_pause,
"/": duration_pause_word
}
def text_to_morse(text: str):
return " ".join([code[letter] for letter in text.upper()])