15 self.
logger = logging.getLogger(__name__)
20 self.
wav_in = wave.open(filename,
'rb')
21 except Exception
as e:
22 logging.error(
"Unable to open WAV file. Exception: %s" % e)
30 self.
total_sec = self.wav_in.getnframes() / float(self.wav_in.getframerate())
40 start = max(0, seg.start - context_len)
51 def play_utter(self, utter, context_len=0, play_linked=False):
56 while start_utter.prev:
57 start_utter = start_utter.prev
59 end_utter = end_utter.next
61 start = max(0, start_utter.start - context_len)
68 audio = pyaudio.PyAudio()
69 wav_out = wave.open(filename,
'wb')
70 wav_out.setnchannels(self.wav_in.getnchannels())
71 wav_out.setsampwidth(self.wav_in.getsampwidth())
72 wav_out.setframerate(self.wav_in.getframerate())
75 start_frame = int(start_time * self.wav_in.getframerate())
76 end_frame = int(end_time * self.wav_in.getframerate())
77 num_frames = end_frame - start_frame + 1
79 self.wav_in.setpos(start_frame)
80 data = self.wav_in.readframes(num_frames)
81 wav_out.writeframes(data)
90 self.logger.info(
"Playing clip: [%f, %f]\n" % (start_time, end_time))
93 audio = pyaudio.PyAudio()
96 start_frame = int(start_time * self.wav_in.getframerate())
97 end_frame = int(end_time * self.wav_in.getframerate())
98 num_frames = end_frame - start_frame + 1
101 stream = audio.open(format=audio.get_format_from_width(self.wav_in.getsampwidth()),
102 channels=self.wav_in.getnchannels(),
103 rate=self.wav_in.getframerate(),
106 self.wav_in.setpos(start_frame)
107 data = self.wav_in.readframes(num_frames)