Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from askbob.speech.listener.listener import UtteranceService
2import wave
5class FileUtteranceService(UtteranceService):
7 chunk: int = 320
9 def __init__(self, filename: str, aggressiveness: int = 1,
10 lowpass_frequency: int = 65, highpass_frequency: int = 4000):
11 super().__init__(aggressiveness, lowpass_frequency, highpass_frequency)
13 wf = wave.open(filename, 'rb')
14 self.input_rate = wf.getframerate()
16 if wf.getnchannels() != 1:
17 raise RuntimeError(
18 "Uploaded WAV files must only have a single audio channel (mono).")
20 self.reset_buffer_queue = False
21 data = wf.readframes(self.chunk)
22 while data:
23 self.buffer_queue.put(data)
24 data = wf.readframes(self.chunk)
26 wf.close()