4545# REQUIREMENTS:
4646# Ubuntu: sudo privileges, apt package manager
4747# macOS: internet connection (script installs miniforge automatically if needed)
48+ # Homebrew (optional - required only for voice functionality via PyAudio)
4849#
4950# WHAT IT DOES:
5051# 1. Detects platform (Ubuntu vs macOS)
@@ -427,15 +428,17 @@ install_regular_packages_macos() {
427428 if mamba install -c conda-forge pyaudio -y 2> /dev/null; then
428429 log_success " PyAudio installed via conda"
429430 continue
430- else
431+ elif [[ " $HOMEBREW_AVAILABLE " == " true " ]] ; then
431432 log_warning " PyAudio conda installation failed, trying pip with Homebrew PortAudio..."
432- # Ensure PortAudio is available via Homebrew
433- if command -v brew & > /dev/null ; then
434- if ! brew list portaudio & > /dev/null ; then
435- brew install portaudio
436- fi
433+ if pip install " $package " ; then
434+ log_success " PyAudio installed via pip with Homebrew PortAudio "
435+ else
436+ log_error " PyAudio installation failed even with Homebrew PortAudio "
437+ PYAUDIO_FAILED=true
437438 fi
438- pip install " $package "
439+ else
440+ log_warning " PyAudio installation skipped (Homebrew not available)"
441+ PYAUDIO_SKIPPED=true
439442 fi
440443 else
441444 # Try conda-forge first for other packages
@@ -459,19 +462,23 @@ setup_macos() {
459462 check_mamba
460463 log_success " Mamba is available"
461464
462- # Step 1.5: Ensure Homebrew PortAudio for PyAudio compilation
463- log_info " Ensuring Homebrew PortAudio for PyAudio compilation..."
465+ # Step 1.5: Check Homebrew availability for PyAudio compilation
466+ HOMEBREW_AVAILABLE=false
467+ PYAUDIO_SKIPPED=false
468+ PYAUDIO_FAILED=false
464469 if command -v brew & > /dev/null; then
470+ log_info " Homebrew found. Ensuring PortAudio for PyAudio compilation..."
465471 if ! brew list portaudio & > /dev/null; then
466472 log_info " Installing PortAudio via Homebrew..."
467473 brew install portaudio
468474 log_success " PortAudio installed via Homebrew"
469475 else
470476 log_success " PortAudio already installed via Homebrew"
471477 fi
478+ HOMEBREW_AVAILABLE=true
472479 else
473- log_warning " Homebrew not found. PyAudio compilation may fail ."
474- log_warning " Install Homebrew and run: brew install portaudio "
480+ log_warning " Homebrew not found. Voice functionality ( PyAudio) will be skipped ."
481+ log_info " You can install voice functionality later by installing Homebrew first. "
475482 fi
476483
477484 # Step 2: Create conda environment
@@ -678,6 +685,25 @@ main() {
678685 echo " 2. Test your setup:"
679686 echo " ros2 run coffee_voice_agent_ui voice_agent_monitor"
680687 echo " "
688+
689+ # Check for PyAudio installation issues
690+ if [[ " $PYAUDIO_SKIPPED " == " true" ]]; then
691+ echo " ⚠️ IMPORTANT: Voice functionality is not available"
692+ echo " PyAudio was skipped because Homebrew is not installed."
693+ echo " "
694+ echo " To enable voice functionality:"
695+ echo " 1. Install Homebrew:"
696+ echo " /bin/bash -c \"\$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\" "
697+ echo " 2. Re-run this setup script:"
698+ echo " ./scripts/setup_workspace.sh"
699+ echo " "
700+ elif [[ " $PYAUDIO_FAILED " == " true" ]]; then
701+ echo " ⚠️ WARNING: PyAudio installation failed"
702+ echo " Voice functionality may not work properly."
703+ echo " Try re-running this setup script or install PyAudio manually."
704+ echo " "
705+ fi
706+
681707 echo " 3. If you encounter issues:"
682708 echo " - Check the build logs in coffee_ws/log/"
683709 echo " - Re-run this setup script"
0 commit comments