managarten/services/mana-tts/setup.sh
Till-JS 5a0815708c 🌐 feat: add i18n support to 6 web apps
Add internationalization (DE + EN) to previously missing apps:
- todo: task management translations
- skilltree: skill/XP system translations
- nutriphi: nutrition tracking translations
- planta: plant care translations
- questions: research app translations
- matrix: chat client translations (layout integration)

Each app includes:
- svelte-i18n setup with SSR support
- localStorage persistence ({app}_locale pattern)
- i18n loading state in +layout.svelte
- German (default) and English translations

Updated CONSISTENCY_REPORT.md to mark i18n task as complete.

Also includes:
- mana-tts service placeholder files
2026-01-29 14:48:35 +01:00

150 lines
3.9 KiB
Bash
Executable file

#!/bin/bash
# Setup script for Mana TTS service
# Optimized for Apple Silicon (MLX)
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
VENV_DIR="$SCRIPT_DIR/.venv"
PYTHON_VERSION="3.11"
echo "=========================================="
echo "Mana TTS Setup"
echo "=========================================="
echo ""
# Check platform
if [[ "$(uname)" != "Darwin" ]]; then
echo "Warning: This service is optimized for macOS with Apple Silicon."
echo "Some features may not work on other platforms."
echo ""
fi
# Check for Apple Silicon
if [[ "$(uname -m)" != "arm64" ]]; then
echo "Warning: This service is optimized for Apple Silicon (arm64)."
echo "Performance may be reduced on Intel Macs."
echo ""
fi
# Find Python
if command -v python3.11 &> /dev/null; then
PYTHON_CMD="python3.11"
elif command -v python3 &> /dev/null; then
PYTHON_CMD="python3"
else
echo "Error: Python 3 not found. Please install Python 3.11 or later."
exit 1
fi
echo "Using Python: $PYTHON_CMD"
$PYTHON_CMD --version
echo ""
# Check Python version
PYTHON_MAJOR=$($PYTHON_CMD -c "import sys; print(sys.version_info.major)")
PYTHON_MINOR=$($PYTHON_CMD -c "import sys; print(sys.version_info.minor)")
if [[ $PYTHON_MAJOR -lt 3 ]] || [[ $PYTHON_MINOR -lt 10 ]]; then
echo "Error: Python 3.10 or later required. Found $PYTHON_MAJOR.$PYTHON_MINOR"
exit 1
fi
# Create or recreate virtual environment
if [[ -d "$VENV_DIR" ]]; then
echo "Virtual environment exists at $VENV_DIR"
read -p "Recreate it? (y/N) " -n 1 -r
echo ""
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Removing existing virtual environment..."
rm -rf "$VENV_DIR"
echo "Creating new virtual environment..."
$PYTHON_CMD -m venv "$VENV_DIR"
fi
else
echo "Creating virtual environment..."
$PYTHON_CMD -m venv "$VENV_DIR"
fi
# Activate virtual environment
echo "Activating virtual environment..."
source "$VENV_DIR/bin/activate"
# Upgrade pip
echo ""
echo "Upgrading pip..."
pip install --upgrade pip
# Install dependencies
echo ""
echo "Installing dependencies..."
pip install -r "$SCRIPT_DIR/requirements.txt"
# Install ffmpeg check (for MP3 support)
echo ""
echo "Checking for ffmpeg (required for MP3 output)..."
if command -v ffmpeg &> /dev/null; then
echo "ffmpeg found: $(which ffmpeg)"
else
echo "Warning: ffmpeg not found. MP3 output will not work."
echo "Install with: brew install ffmpeg"
fi
# Verify installations
echo ""
echo "Verifying installations..."
# Test FastAPI
python -c "import fastapi; print(f'FastAPI {fastapi.__version__}')" || {
echo "Error: FastAPI not installed correctly"
exit 1
}
# Test soundfile
python -c "import soundfile; print(f'soundfile {soundfile.__version__}')" || {
echo "Error: soundfile not installed correctly"
exit 1
}
# Test MLX (on Apple Silicon)
if [[ "$(uname -m)" == "arm64" ]]; then
python -c "import mlx; print(f'MLX {mlx.__version__}')" || {
echo "Warning: MLX not installed correctly. TTS may not work."
}
fi
# Test mlx-audio
python -c "import mlx_audio; print('mlx-audio installed')" 2>/dev/null || {
echo "Warning: mlx-audio not imported successfully."
echo "You may need to install it manually or models won't load."
}
# Create directories
echo ""
echo "Creating required directories..."
mkdir -p "$SCRIPT_DIR/voices"
mkdir -p "$SCRIPT_DIR/mlx_models"
echo ""
echo "=========================================="
echo "Setup Complete!"
echo "=========================================="
echo ""
echo "To start the service:"
echo ""
echo " cd $SCRIPT_DIR"
echo " source .venv/bin/activate"
echo " uvicorn app.main:app --host 0.0.0.0 --port 3022"
echo ""
echo "Or for development with auto-reload:"
echo ""
echo " uvicorn app.main:app --host 0.0.0.0 --port 3022 --reload"
echo ""
echo "Test the service:"
echo ""
echo " curl http://localhost:3022/health"
echo ""
echo "For Mac Mini deployment, run:"
echo ""
echo " ./../../scripts/mac-mini/setup-tts.sh"
echo ""