Files
smart-speaker/app/core/audio_manager.py

28 lines
625 B
Python

import pyaudio
import threading
class AudioManager:
_instance = None
_lock = threading.Lock()
def __new__(cls):
with cls._lock:
if cls._instance is None:
cls._instance = super(AudioManager, cls).__new__(cls)
cls._instance.pa = pyaudio.PyAudio()
print("🔊 AudioManager: PyAudio initialized (Global)")
return cls._instance
def get_pyaudio(self):
return self.pa
def cleanup(self):
if self.pa:
self.pa.terminate()
self.pa = None
def get_audio_manager():
return AudioManager()