zodiac.streams.media_stream
1# # # <!-- // /* SPDX-License-Identifier: MPL-2.0*/ --> 2# # # <!-- // /* d a r k s h a p e s */ --> 3 4import sounddevice as sd 5from nnll.monitor.file import dbuq 6 7 8class AudioMachine: 9 audio_stream = [0] 10 frequency = 0 11 duration: float = 3.0 12 precision = duration * frequency 13 sample_length = 0.0 14 15 16async def record_audio(self, frequency: int = 16000) -> None: 17 """Get audio from mic""" 18 self.frequency = frequency 19 self.audio_stream = [0] 20 self.audio_stream = sd.rec(int(self.precision), samplerate=self.frequency, channels=1) 21 sd.wait() 22 self.sample_length = str(float(len(self.audio_stream) / frequency)) 23 return self.audio_stream 24 25 26async def play_audio(self) -> None: 27 """Playback audio recordings""" 28 try: 29 sd.play(self.audio_stream, samplerate=self.frequency) 30 sd.wait() 31 except TypeError as error_log: 32 dbuq(error_log) 33 34 35async def erase_audio(self) -> None: 36 """Clear audio graph and recording""" 37 self.audio_stream = [0] 38 self.frequency = 0.0 39 self.sample_length = 0.0
class
AudioMachine:
async def
record_audio(self, frequency: int = 16000) -> None:
17async def record_audio(self, frequency: int = 16000) -> None: 18 """Get audio from mic""" 19 self.frequency = frequency 20 self.audio_stream = [0] 21 self.audio_stream = sd.rec(int(self.precision), samplerate=self.frequency, channels=1) 22 sd.wait() 23 self.sample_length = str(float(len(self.audio_stream) / frequency)) 24 return self.audio_stream
Get audio from mic
async def
play_audio(self) -> None:
27async def play_audio(self) -> None: 28 """Playback audio recordings""" 29 try: 30 sd.play(self.audio_stream, samplerate=self.frequency) 31 sd.wait() 32 except TypeError as error_log: 33 dbuq(error_log)
Playback audio recordings
async def
erase_audio(self) -> None:
36async def erase_audio(self) -> None: 37 """Clear audio graph and recording""" 38 self.audio_stream = [0] 39 self.frequency = 0.0 40 self.sample_length = 0.0
Clear audio graph and recording