Skip to content

Commit 044573d

Browse files
committed
cleanup
added option for text only output
1 parent 3ee66b1 commit 044573d

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
venv/
33
.idea/*
44
*.mp3
5+
*.ssml

wetterbericht.py

+23-19
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,31 @@
1212

1313

1414
class ForecastParser(HTMLParser):
15-
_text = "";
15+
_text = ""
1616
_lastTag = ""
1717

1818
def __init__(self):
1919
super().__init__()
2020
pass
2121

2222
def handle_starttag(self, tag, attrs):
23-
self._lastTag = tag;
23+
self._lastTag = tag
2424

2525
def handle_endtag(self, tag):
2626
if self._lastTag == "strong":
2727
self._text += '<break time="0.4s"/>'
2828

29-
self._lastTag = "";
29+
self._lastTag = ""
3030

3131

3232
def handle_data(self, data):
3333
if not data:
34-
return;
34+
return
3535

3636
if not self._lastTag:
37-
return;
37+
return
3838

39-
self._text += data;
39+
self._text += data
4040

4141

4242
def clear(self):
@@ -88,7 +88,7 @@ def fetch_text(self, url):
8888
lines = parser._text.splitlines()
8989

9090
# Meta zeugs rausfiltern
91-
newLines = [];
91+
newLines = []
9292
for line in lines:
9393
line = line.strip()
9494

@@ -151,21 +151,20 @@ def fetch_text(self, url):
151151

152152
newLines.append(line)
153153

154-
return newLines;
154+
return newLines
155155

156156
def fetch(self) -> str:
157-
parser = ForecastParser()
157+
# parser = ForecastParser()
158158

159-
allLines = [];
159+
allLines = []
160160
allLines.append("<speak>\r\n")
161161

162162
# Gesamtwetterlage
163163
allLines.append('\r\n<!-- Gesamtwetterlage -->\r\n')
164164
allLines.append("<p>\r\n")
165165

166-
lines = self.fetch_text('http://opendata.dwd.de/weather/text_forecasts/html/VHDL54_DW{0}_LATEST_html'.format(self._stateKey));
166+
lines = self.fetch_text('http://opendata.dwd.de/weather/text_forecasts/html/VHDL54_DW{0}_LATEST_html'.format(self._stateKey))
167167

168-
# allLines.append('Die Wetterlage:<break time="0.5s"/>\r\n')
169168
for line in lines:
170169
allLines.append(line + "\r\n")
171170

@@ -188,7 +187,7 @@ def fetch(self) -> str:
188187
allLines.append('<break time="1.2s"/>\r\n<p>\r\n')
189188
allLines.append('<s>Die Aussichten für morgen.</s><break time="0.4s"/>\r\n')
190189

191-
lines = self.fetch_text('http://opendata.dwd.de/weather/text_forecasts/html/VHDL51_DW{0}_LATEST_html'.format(self._stateKey));
190+
lines = self.fetch_text('http://opendata.dwd.de/weather/text_forecasts/html/VHDL51_DW{0}_LATEST_html'.format(self._stateKey))
192191
for line in lines:
193192
allLines.append(line + "\r\n")
194193

@@ -198,14 +197,14 @@ def fetch(self) -> str:
198197

199198
s = ""
200199
for line in allLines:
201-
s += line;
200+
s += line
202201

203202
return s
204203

205204

206205
class TextToSpeech:
207206
_keyFile = ""
208-
_useWaveNet = True;
207+
_useWaveNet = True
209208

210209
def __init__(self, keyfile: str, useWaveNet: bool):
211210
self._keyFile = keyfile
@@ -252,6 +251,7 @@ def main():
252251
parser.add_argument("-o", "--Output", dest="output",help='Name der Ausgabedatei', type=str, required=False, default='output.mp3')
253252
parser.add_argument("-s", "--State", dest="state",help='Bundesland', default='Sachsen', choices=[u'Sachsen', u'Sachsen-Anhalt', u'Thüringen', u'Berlin', u'Mecklenburg-Vorpomern', u'Brandenburg', u'Niedersachsen', u'Bremen', u'Hamburg', u'Rheinland-Pfalz', u'Bayern', u'Hessen', u'Saarland', u'Baden-Würtenberg', u'Schleswig-Holstein', u'Nordrhein-Westfalen'])
254253
parser.add_argument("-k", "--Keyfile", dest="key_file", help='Pfad zu der json Datei mit dem Key für das google text-to-speech api', required=True)
254+
parser.add_argument("-t", "--TextOnly", dest="text_only", help='Wenn dieses Flag gesetzt ist wird nur eine ssml datei erstellt.', required=False, default=False, action='store_true')
255255
parser.add_argument("-wave", "--UseWaveNet", dest="use_wave_net", help='Wenn dieses flag gesetzt ist wird sprache hoher qualität ausgegeben.', required=False, default=False, action='store_true')
256256
parser.add_argument("-nowarn", "--NoWarnings", dest="skip_warnings", help='Ignoriere die Abschnitte zu Warnrelevanten Wettermeldungen.', required=False, default=False, action='store_true')
257257

@@ -287,10 +287,14 @@ def main():
287287
print('------------------------------------------')
288288
print(ssml)
289289

290-
291-
print('\r\nErzeuge Sprachversion...')
292-
tts = TextToSpeech(args.key_file, args.use_wave_net)
293-
tts.text_to_speech(ssml, args.output);
290+
if (args.text_only):
291+
text_filename = os.path.splitext(args.output)[0] + '.ssml'
292+
with open(text_filename, 'w') as f:
293+
f.write(ssml)
294+
else:
295+
print('\r\nErzeuge Sprachversion...')
296+
tts = TextToSpeech(args.key_file, args.use_wave_net)
297+
tts.text_to_speech(ssml, args.output);
294298

295299
# Prerequisites:
296300
# sudo apt-get install python3-setuptools

0 commit comments

Comments
 (0)