[ 'url' => env('SEARXNG_URL', 'http://searxng:8080'), ], 'google' => [ 'maps_key' => env('GOOGLE_MAPS_API_KEY'), 'directions_timeout' => (int) env('GOOGLE_DIRECTIONS_TIMEOUT', 8), ], 'ollama' => [ 'url' => env('OLLAMA_URL', 'http://ollama:11434'), 'model' => env('OLLAMA_MODEL', 'llama3.1:8b'), 'embedding_model' => env('OLLAMA_EMBEDDING_MODEL', 'nomic-embed-text'), 'tools_enabled' => filter_var(env('OLLAMA_TOOLS_ENABLED', false), FILTER_VALIDATE_BOOLEAN), ], 'whisper' => [ 'container' => env('WHISPER_CONTAINER', 'fox-whisper'), 'model' => env('WHISPER_MODEL', '/models/ggml-base.bin'), ], 'weather' => [ 'lat' => env('FOX_LAT', 48.2082), 'lon' => env('FOX_LON', 16.3738), 'city' => env('FOX_CITY', 'Wien'), ], /* * TTS-Engine. Default openai (Cloud, ~300ms, multilingual), dann elevenlabs, dann xtts (Mac), dann piper. * Fallback-Kette: wenn engine fehlschlägt, wird automatisch der nächste versucht. */ 'tts' => [ 'engine' => env('TTS_ENGINE', 'openai'), // openai | elevenlabs | xtts | piper 'language' => env('TTS_LANGUAGE', 'de'), ], 'openai' => [ 'key' => env('OPENAI_API_KEY'), 'tts_model' => env('OPENAI_TTS_MODEL', 'tts-1'), 'tts_voice' => env('OPENAI_TTS_VOICE', 'onyx'), 'tts_speed' => (float) env('OPENAI_TTS_SPEED', 1.0), 'timeout' => (int) env('OPENAI_TIMEOUT', 15), ], 'elevenlabs' => [ 'key' => env('ELEVENLABS_API_KEY'), 'voice_id' => env('ELEVENLABS_VOICE_ID', 'KDqku3FJfbImX6HKQdWA'), 'model' => env('ELEVENLABS_MODEL', 'eleven_multilingual_v2'), 'stability' => (float) env('ELEVENLABS_STABILITY', 0.5), 'similarity_boost' => (float) env('ELEVENLABS_SIMILARITY', 0.75), 'style' => (float) env('ELEVENLABS_STYLE', 0.3), 'speaker_boost' => filter_var(env('ELEVENLABS_SPEAKER_BOOST', true), FILTER_VALIDATE_BOOLEAN), 'timeout' => (int) env('ELEVENLABS_TIMEOUT', 10), ], 'xtts' => [ 'url' => env('XTTS_URL', env('TTS_URL', 'http://10.10.80.189:8766')), 'speaker' => env('XTTS_SPEAKER', env('TTS_SPEAKER', 'Ana Florence')), 'timeout' => (int) env('XTTS_TIMEOUT', 30), ], 'piper' => [ 'enabled' => filter_var(env('PIPER_ENABLED', true), FILTER_VALIDATE_BOOLEAN), 'voice' => env('PIPER_VOICE', 'de_DE-thorsten-high'), 'voices_path' => env('PIPER_VOICES_PATH', '/var/www/storage/app/voices'), 'length_scale' => env('PIPER_LENGTH_SCALE', 1.05), 'sentence_silence' => env('PIPER_SENTENCE_SILENCE', 0.3), 'noise_scale' => env('PIPER_NOISE_SCALE', 0.667), 'noise_w' => env('PIPER_NOISE_W', 0.8), ], ];