MCPcopy Create free account
hub / github.com/ARM-software/AVH / _enableStream

Method _enableStream

interface/vstream/python/vsi_audio_server.py:369–454  ·  view source on GitHub ↗

Enable the audio stream for input (microphone/file) or output (file/speakers). Initializes the PyAudio stream or wave file as needed. Returns: None

(self)

Source from the content-addressed store, hash-verified

367 return (data, pyaudio.paContinue)
368
369 def _enableStream(self):
370 """
371 Enable the audio stream for input (microphone/file) or output (file/speakers).
372
373 Initializes the PyAudio stream or wave file as needed.
374 Returns:
375 None
376 """
377 if self.active:
378 logger.info("_enableStream: stream already active")
379 return
380
381 self.eos = False
382 self.audio_buffer.clear()
383
384 try:
385 if self.filename == None:
386 # Use microphone/speakers
387 if self.pyaudio_obj is None:
388 logger.error("_enableStream: PyAudio object is not initialized")
389 return
390
391 audio_format = self._get_pyaudio_format()
392
393 if self.mode == MODE_AUDIO_INPUT:
394 logger.debug("_enableStream: use microphone for input streaming")
395 self.stream = self.pyaudio_obj.open(
396 format=audio_format,
397 channels=self.channels,
398 rate=self.sample_rate,
399 input=True,
400 input_device_index=self.device,
401 frames_per_buffer=self.chunk_size,
402 stream_callback=self._audio_callback_input
403 )
404 self.stream.start_stream()
405
406 if self.mode == MODE_AUDIO_OUTPUT:
407 logger.debug("_enableStream: use speakers for output streaming")
408 self.stream = self.pyaudio_obj.open(
409 format=audio_format,
410 channels=self.channels,
411 rate=self.sample_rate,
412 output=True,
413 output_device_index=self.device,
414 frames_per_buffer=self.chunk_size,
415 stream_callback=self._audio_callback_output
416 )
417 self.stream.start_stream()
418
419 logger.info(f"_enableStream: audio device stream properties: channels={self.channels}, rate={self.sample_rate}, bits={self.sample_bits}")
420
421 else:
422 # Set file name string for audio file
423 file = str(self.filename.absolute())
424
425 logger.debug(f"_enableStream: use audio file: {file}")
426

Callers 1

runMethod · 0.95

Calls 2

_get_pyaudio_formatMethod · 0.95
_disableStreamMethod · 0.95

Tested by

no test coverage detected