@@ -51,9 +51,26 @@ start_workers() {
5151 uv run python -m advanced_omi_backend.workers.rq_worker_entry audio &
5252 AUDIO_PERSISTENCE_WORKER_PID=$!
5353
54- echo " 🎵 Starting audio stream Deepgram worker (1 worker for sequential processing)..."
55- uv run python -m advanced_omi_backend.workers.audio_stream_deepgram_worker &
56- AUDIO_STREAM_WORKER_PID=$!
54+ # Start stream workers based on available configuration
55+ # Only start Deepgram worker if DEEPGRAM_API_KEY is set
56+ if [ -n " $DEEPGRAM_API_KEY " ]; then
57+ echo " 🎵 Starting audio stream Deepgram worker (1 worker for sequential processing)..."
58+ uv run python -m advanced_omi_backend.workers.audio_stream_deepgram_worker &
59+ AUDIO_STREAM_DEEPGRAM_WORKER_PID=$!
60+ else
61+ echo " ⏭️ Skipping Deepgram stream worker (DEEPGRAM_API_KEY not set)"
62+ AUDIO_STREAM_DEEPGRAM_WORKER_PID=" "
63+ fi
64+
65+ # Only start Parakeet worker if PARAKEET_ASR_URL or OFFLINE_ASR_TCP_URI is set
66+ if [ -n " $PARAKEET_ASR_URL " ] || [ -n " $OFFLINE_ASR_TCP_URI " ]; then
67+ echo " 🎵 Starting audio stream Parakeet worker (1 worker for sequential processing)..."
68+ uv run python -m advanced_omi_backend.workers.audio_stream_parakeet_worker &
69+ AUDIO_STREAM_PARAKEET_WORKER_PID=$!
70+ else
71+ echo " ⏭️ Skipping Parakeet stream worker (PARAKEET_ASR_URL/OFFLINE_ASR_TCP_URI not set)"
72+ AUDIO_STREAM_PARAKEET_WORKER_PID=" "
73+ fi
5774
5875 echo " ✅ All workers started:"
5976 echo " - RQ worker 1: PID $RQ_WORKER_1_PID (transcription, memory, default)"
@@ -63,7 +80,8 @@ start_workers() {
6380 echo " - RQ worker 5: PID $RQ_WORKER_5_PID (transcription, memory, default)"
6481 echo " - RQ worker 6: PID $RQ_WORKER_6_PID (transcription, memory, default)"
6582 echo " - Audio persistence worker: PID $AUDIO_PERSISTENCE_WORKER_PID (audio queue - file rotation)"
66- echo " - Audio stream worker: PID $AUDIO_STREAM_WORKER_PID (Redis Streams consumer - sequential processing)"
83+ [ -n " $AUDIO_STREAM_DEEPGRAM_WORKER_PID " ] && echo " - Deepgram stream worker: PID $AUDIO_STREAM_DEEPGRAM_WORKER_PID (real-time transcription)"
84+ [ -n " $AUDIO_STREAM_PARAKEET_WORKER_PID " ] && echo " - Parakeet stream worker: PID $AUDIO_STREAM_PARAKEET_WORKER_PID (real-time transcription)"
6785}
6886
6987# Function to check worker registration health
@@ -103,7 +121,9 @@ monitor_worker_health() {
103121 echo " 🔧 Self-healing: Restarting all workers to restore registration..."
104122
105123 # Kill all workers
106- kill $RQ_WORKER_1_PID $RQ_WORKER_2_PID $RQ_WORKER_3_PID $RQ_WORKER_4_PID $RQ_WORKER_5_PID $RQ_WORKER_6_PID $AUDIO_PERSISTENCE_WORKER_PID $AUDIO_STREAM_WORKER_PID 2> /dev/null || true
124+ kill $RQ_WORKER_1_PID $RQ_WORKER_2_PID $RQ_WORKER_3_PID $RQ_WORKER_4_PID $RQ_WORKER_5_PID $RQ_WORKER_6_PID $AUDIO_PERSISTENCE_WORKER_PID 2> /dev/null || true
125+ [ -n " $AUDIO_STREAM_DEEPGRAM_WORKER_PID " ] && kill $AUDIO_STREAM_DEEPGRAM_WORKER_PID 2> /dev/null || true
126+ [ -n " $AUDIO_STREAM_PARAKEET_WORKER_PID " ] && kill $AUDIO_STREAM_PARAKEET_WORKER_PID 2> /dev/null || true
107127 wait 2> /dev/null || true
108128
109129 # Restart workers
@@ -128,7 +148,8 @@ shutdown() {
128148 kill $RQ_WORKER_5_PID 2> /dev/null || true
129149 kill $RQ_WORKER_6_PID 2> /dev/null || true
130150 kill $AUDIO_PERSISTENCE_WORKER_PID 2> /dev/null || true
131- kill $AUDIO_STREAM_WORKER_PID 2> /dev/null || true
151+ [ -n " $AUDIO_STREAM_DEEPGRAM_WORKER_PID " ] && kill $AUDIO_STREAM_DEEPGRAM_WORKER_PID 2> /dev/null || true
152+ [ -n " $AUDIO_STREAM_PARAKEET_WORKER_PID " ] && kill $AUDIO_STREAM_PARAKEET_WORKER_PID 2> /dev/null || true
132153 wait
133154 echo " ✅ All workers stopped"
134155 exit 0
@@ -161,7 +182,8 @@ kill $RQ_WORKER_4_PID 2>/dev/null || true
161182kill $RQ_WORKER_5_PID 2> /dev/null || true
162183kill $RQ_WORKER_6_PID 2> /dev/null || true
163184kill $AUDIO_PERSISTENCE_WORKER_PID 2> /dev/null || true
164- kill $AUDIO_STREAM_WORKER_PID 2> /dev/null || true
185+ [ -n " $AUDIO_STREAM_DEEPGRAM_WORKER_PID " ] && kill $AUDIO_STREAM_DEEPGRAM_WORKER_PID 2> /dev/null || true
186+ [ -n " $AUDIO_STREAM_PARAKEET_WORKER_PID " ] && kill $AUDIO_STREAM_PARAKEET_WORKER_PID 2> /dev/null || true
165187wait
166188
167189echo " 🔄 All workers stopped"
0 commit comments