{"openapi":"3.1.0","info":{"title":"Vibeon Translator API","description":"Smart translation API for text, audio, and documents using AI models","version":"3.0.0"},"paths":{"/metrics":{"get":{"summary":"Metrics","operationId":"metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/register":{"post":{"tags":["Authentication"],"summary":"Register","description":"Register a new user locally in PostgreSQL","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"tags":["Authentication"],"summary":"Login","description":"Authenticate user locally and return JWT token","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLogin"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/me":{"get":{"tags":["Authentication"],"summary":"Read Users Me","description":"Get current user information","operationId":"read_users_me_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/auth/refresh":{"post":{"tags":["Authentication"],"summary":"Refresh Token","description":"Refresh authentication token","operationId":"refresh_token_api_auth_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/translate/text":{"post":{"tags":["Real Translation"],"summary":"Translate Text","description":"Translate text using real AI models","operationId":"translate_text_api_translate_text_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__real_translation__TranslationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__real_translation__TranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/translate/batch":{"post":{"tags":["Real Translation"],"summary":"Translate Batch","description":"Translate multiple texts using real AI models","operationId":"translate_batch_api_translate_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__real_translation__BatchTranslationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchTranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/translate/detect":{"post":{"tags":["Real Translation"],"summary":"Detect Language","description":"Detect language of input text","operationId":"detect_language_api_translate_detect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguageDetectionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguageDetectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/translate/languages":{"get":{"tags":["Real Translation"],"summary":"Get Supported Languages","description":"Get list of supported languages for real translation","operationId":"get_supported_languages_api_translate_languages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/translate/models":{"get":{"tags":["Real Translation"],"summary":"Get Model Info","description":"Get information about loaded translation models","operationId":"get_model_info_api_translate_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/translate/health":{"get":{"tags":["Real Translation"],"summary":"Translation Health","description":"Check health of translation service","operationId":"translation_health_api_translate_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/social/translate":{"post":{"tags":["social-translation"],"summary":"Translate Social Content","description":"Translate social content with context awareness.","operationId":"translate_social_content_api_social_translate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialContentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__social_translation__TranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/social/translate/batch":{"post":{"tags":["social-translation"],"summary":"Translate Batch Content","description":"Translate multiple social content items in batch.","operationId":"translate_batch_content_api_social_translate_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__social_translation__BatchTranslationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/social/translate/voice":{"post":{"tags":["social-translation"],"summary":"Translate Voice Message","description":"Translate voice messages for social interactions.","operationId":"translate_voice_message_api_social_translate_voice_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_translate_voice_message_api_social_translate_voice_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceTranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/social/preferences":{"get":{"tags":["social-translation"],"summary":"Get Language Preferences","description":"Get user's language preferences for social interactions.","operationId":"get_language_preferences_api_social_preferences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["social-translation"],"summary":"Update Language Preferences","description":"Update user's language preferences.","operationId":"update_language_preferences_api_social_preferences_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguagePreferencesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/social/analytics":{"get":{"tags":["social-translation"],"summary":"Get Translation Analytics","description":"Get translation analytics for social platform.","operationId":"get_translation_analytics_api_social_analytics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"time_range","in":"query","required":false,"schema":{"type":"string","default":"24h","title":"Time Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/analytics/admin":{"get":{"tags":["social-translation"],"summary":"Get Admin Translation Analytics","description":"Get global translation analytics (admin only).","operationId":"get_admin_translation_analytics_api_social_analytics_admin_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"time_range","in":"query","required":false,"schema":{"type":"string","default":"24h","title":"Time Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/health":{"get":{"tags":["social-translation"],"summary":"Health Check","description":"Check health of social integration service.","operationId":"health_check_api_social_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/social/features":{"get":{"tags":["social-translation"],"summary":"Get Supported Features","description":"Get list of supported social translation features.","operationId":"get_supported_features_api_social_features_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vibeon/translate/document":{"post":{"tags":["vibeon-integration"],"summary":"Translate Document","description":"Translate documents (PDF, DOCX, TXT) preserving text content.","operationId":"translate_document_api_vibeon_translate_document_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_translate_document_api_vibeon_translate_document_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vibeon/translate":{"post":{"tags":["vibeon-integration"],"summary":"Translate Content","description":"Translate text content for the Vibeon platform\n\nThis endpoint provides high-quality translation with context awareness\nand platform-specific optimizations.","operationId":"translate_content_api_vibeon_translate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__vibeon_integration__TranslationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__vibeon_integration__TranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vibeon/translate/batch":{"post":{"tags":["vibeon-integration"],"summary":"Translate Batch","description":"Translate multiple pieces of content in a batch\n\nOptimized for handling multiple translations efficiently with\nparallel processing and shared context.","operationId":"translate_batch_api_vibeon_translate_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__vibeon_integration__BatchTranslationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/api__routes__vibeon_integration__TranslationResponse"},"type":"array","title":"Response Translate Batch Api Vibeon Translate Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vibeon/translate/audio":{"post":{"tags":["vibeon-integration"],"summary":"Translate Audio","description":"Translate audio content (speech-to-text + translation)\n\nSupports multiple output formats and audio enhancement.","operationId":"translate_audio_api_vibeon_translate_audio_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioTranslationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vibeon/translate/realtime":{"post":{"tags":["vibeon-integration"],"summary":"Translate Realtime","description":"Real-time translation for live chat/streaming\n\nOptimized for low latency with session-based caching.","operationId":"translate_realtime_api_vibeon_translate_realtime_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealTimeTranslationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vibeon/languages/supported":{"get":{"tags":["vibeon-integration"],"summary":"Get Supported Languages","description":"Get list of supported languages for translation","operationId":"get_supported_languages_api_vibeon_languages_supported_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vibeon/health":{"get":{"tags":["vibeon-integration"],"summary":"Health Check","description":"Health check endpoint for the translation service","operationId":"health_check_api_vibeon_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vibeon/metrics":{"get":{"tags":["vibeon-integration"],"summary":"Get Metrics","description":"Get translation service metrics and statistics","operationId":"get_metrics_api_vibeon_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vibeon/sessions/{session_id}":{"get":{"tags":["vibeon-integration"],"summary":"Get Session History","description":"Fetch recent session translation history from cache","operationId":"get_session_history_api_vibeon_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tts/generate":{"post":{"tags":["Text-to-Speech"],"summary":"Generate Speech","description":"Generate speech from text using safe TTS engines","operationId":"generate_speech_api_tts_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__tts_safe__TTSRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/tts/languages":{"get":{"tags":["Text-to-Speech"],"summary":"Get Supported Languages","description":"Get list of languages supported by TTS engines","operationId":"get_supported_languages_api_tts_languages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tts/health":{"get":{"tags":["Text-to-Speech"],"summary":"Health Check","description":"Check TTS service health","operationId":"health_check_api_tts_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/api/languages":{"get":{"tags":["languages"],"summary":"Get Supported Languages","description":"Get all supported languages with their features and capabilities.\n\nThis is the canonical endpoint for language information across the platform.\n\nArgs:\n include_features: Whether to include detailed feature information\n language_codes: Comma-separated list of language codes to filter (optional)\n\nReturns:\n LanguagesResponse with complete language information","operationId":"get_supported_languages_api_api_languages_get","parameters":[{"name":"include_features","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Features"}},{"name":"language_codes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Codes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/api/languages/{language_code}":{"get":{"tags":["languages"],"summary":"Get Language Info","description":"Get detailed information for a specific language.\n\nArgs:\n language_code: ISO 639-1/639-3 language code (e.g., 'rw', 'en', 'es')\n\nReturns:\n LanguageInfo with complete details for the requested language","operationId":"get_language_info_api_api_languages__language_code__get","parameters":[{"name":"language_code","in":"path","required":true,"schema":{"type":"string","title":"Language Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguageInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/api/languages/features/summary":{"get":{"tags":["languages"],"summary":"Get Language Features Summary","description":"Get a summary of language features across all supported languages.\n\nReturns:\n Summary statistics of language capabilities","operationId":"get_language_features_summary_api_api_languages_features_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/api/voice/tts":{"post":{"tags":["voice"],"summary":"Text To Speech","description":"Convert text to speech using the best available TTS engine for the language\n\nSupports multiple TTS engines with automatic fallback:\n- Google TTS (gtts): High quality, many languages\n- Coqui TTS: Open source, customizable voices\n- pyttsx3: Offline, system voices","operationId":"text_to_speech_api_api_voice_tts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__voice_services__TTSRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TTSResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/api/voice/stt":{"post":{"tags":["voice"],"summary":"Speech To Text","description":"Convert speech to text using the best available STT engine for the language\n\nSupports multiple STT engines with automatic fallback:\n- Whisper: High accuracy, many languages, offline\n- Vosk: Fast, offline, multiple languages\n- Speech Recognition: Google-based, online","operationId":"speech_to_text_api_api_voice_stt_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"language","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Language"}},{"name":"engine","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine"}},{"name":"quality","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"medium","title":"Quality"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_speech_to_text_api_api_voice_stt_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/STTResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/api/voice/engines/status":{"get":{"tags":["voice"],"summary":"Get Engine Status","description":"Get status of all available TTS and STT engines","operationId":"get_engine_status_api_api_voice_engines_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/api/voice/languages/{language_code}/engines":{"get":{"tags":["voice"],"summary":"Get Language Engines","description":"Get available TTS and STT engines for a specific language","operationId":"get_language_engines_api_api_voice_languages__language_code__engines_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"language_code","in":"path","required":true,"schema":{"type":"string","title":"Language Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/api/voice/tts/batch":{"post":{"tags":["voice"],"summary":"Batch Text To Speech","description":"Convert multiple texts to speech in batch","operationId":"batch_text_to_speech_api_api_voice_tts_batch_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"language","in":"query","required":true,"schema":{"type":"string","title":"Language"}},{"name":"engine","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine"}},{"name":"quality","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"medium","title":"Quality"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Texts"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/api/voice/health":{"get":{"tags":["voice"],"summary":"Voice Health Check","description":"Health check for voice services","operationId":"voice_health_check_api_api_voice_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","description":"API root endpoint","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health Check","description":"Comprehensive health check","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/database/info":{"get":{"summary":"Database Info","description":"Get database information","operationId":"database_info_api_database_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/memory/status":{"get":{"summary":"Get Memory Status","description":"Get current memory usage and optimization status","operationId":"get_memory_status_memory_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/memory/cleanup":{"post":{"summary":"Cleanup Memory","description":"Manually trigger memory cleanup","operationId":"cleanup_memory_memory_cleanup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AudioTranslationRequest":{"properties":{"audio_url":{"type":"string","title":"Audio Url"},"target_language":{"type":"string","title":"Target Language"},"output_format":{"type":"string","pattern":"^(text|audio|both)$","title":"Output Format","default":"text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"enhance_audio":{"type":"boolean","title":"Enhance Audio","default":true}},"type":"object","required":["audio_url","target_language"],"title":"AudioTranslationRequest","description":"Request model for audio translation"},"BatchTranslationResponse":{"properties":{"translations":{"items":{"$ref":"#/components/schemas/api__routes__real_translation__TranslationResponse"},"type":"array","title":"Translations"},"total_texts":{"type":"integer","title":"Total Texts"},"processing_time":{"type":"number","title":"Processing Time"},"models_used":{"items":{"type":"string"},"type":"array","title":"Models Used"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["translations","total_texts","processing_time","models_used","timestamp"],"title":"BatchTranslationResponse","description":"Response model for batch translation"},"Body_speech_to_text_api_api_voice_stt_post":{"properties":{"audio_file":{"type":"string","format":"binary","title":"Audio File"}},"type":"object","required":["audio_file"],"title":"Body_speech_to_text_api_api_voice_stt_post"},"Body_translate_document_api_vibeon_translate_document_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"target_language":{"type":"string","title":"Target Language"},"source_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},"type":"object","required":["file","target_language"],"title":"Body_translate_document_api_vibeon_translate_document_post"},"Body_translate_voice_message_api_social_translate_voice_post":{"properties":{"audio_file":{"type":"string","format":"binary","title":"Audio File"},"target_language":{"type":"string","title":"Target Language","default":"en"},"context_type":{"type":"string","title":"Context Type","default":"message"}},"type":"object","required":["audio_file"],"title":"Body_translate_voice_message_api_social_translate_voice_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LanguageDetection":{"properties":{"language":{"type":"string","title":"Language"},"confidence":{"type":"number","title":"Confidence"},"is_reliable":{"type":"boolean","title":"Is Reliable"},"alternatives":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Alternatives"}},"type":"object","required":["language","confidence","is_reliable"],"title":"LanguageDetection","description":"Language detection result"},"LanguageDetectionRequest":{"properties":{"text":{"type":"string","maxLength":5000,"minLength":1,"title":"Text","description":"Text to analyze"}},"type":"object","required":["text"],"title":"LanguageDetectionRequest","description":"Request model for language detection"},"LanguageDetectionResponse":{"properties":{"text":{"type":"string","title":"Text"},"detected_language":{"$ref":"#/components/schemas/LanguageDetection"},"processing_time":{"type":"number","title":"Processing Time"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["text","detected_language","processing_time","timestamp"],"title":"LanguageDetectionResponse","description":"Response model for language detection"},"LanguageFeature":{"properties":{"translation":{"type":"boolean","title":"Translation","description":"Text translation support"},"tts":{"type":"boolean","title":"Tts","description":"Text-to-speech support"},"stt":{"type":"boolean","title":"Stt","description":"Speech-to-text support"},"learning":{"type":"boolean","title":"Learning","description":"Language learning features"},"audio_translation":{"type":"boolean","title":"Audio Translation","description":"Audio translation support"},"real_time":{"type":"boolean","title":"Real Time","description":"Real-time translation support"}},"type":"object","required":["translation","tts","stt","learning","audio_translation","real_time"],"title":"LanguageFeature","description":"Language feature availability"},"LanguageInfo":{"properties":{"code":{"type":"string","title":"Code","description":"ISO 639-1/639-3 language code"},"name":{"type":"string","title":"Name","description":"English name of the language"},"native_name":{"type":"string","title":"Native Name","description":"Native name of the language"},"flag_emoji":{"type":"string","title":"Flag Emoji","description":"Flag emoji for the language"},"features":{"$ref":"#/components/schemas/LanguageFeature","description":"Available features"},"models":{"items":{"type":"string"},"type":"array","title":"Models","description":"Available ML models"},"tts_engines":{"items":{"type":"string"},"type":"array","title":"Tts Engines","description":"Available TTS engines"},"stt_engines":{"items":{"type":"string"},"type":"array","title":"Stt Engines","description":"Available STT engines"},"difficulty_level":{"type":"integer","title":"Difficulty Level","description":"Learning difficulty (1-5)"},"cultural_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cultural Notes","description":"Cultural context notes"},"sample_phrases":{"items":{"type":"string"},"type":"array","title":"Sample Phrases","description":"Sample phrases for learning"}},"type":"object","required":["code","name","native_name","flag_emoji","features","models","tts_engines","stt_engines","difficulty_level","cultural_notes","sample_phrases"],"title":"LanguageInfo","description":"Complete language information"},"LanguagePreferencesRequest":{"properties":{"primary_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Language"},"secondary_languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Secondary Languages"},"auto_translate_posts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Translate Posts"},"auto_translate_comments":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Translate Comments"},"auto_translate_messages":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Translate Messages"},"voice_message_translation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Voice Message Translation"},"live_stream_captions":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Live Stream Captions"},"translation_confidence_threshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Translation Confidence Threshold"},"cultural_adaptation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cultural Adaptation"},"preserve_emojis":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Preserve Emojis"},"translate_hashtags":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Translate Hashtags"}},"type":"object","title":"LanguagePreferencesRequest"},"LanguagesResponse":{"properties":{"languages":{"items":{"$ref":"#/components/schemas/LanguageInfo"},"type":"array","title":"Languages","description":"List of supported languages"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of supported languages"},"last_updated":{"type":"string","title":"Last Updated","description":"Last update timestamp"},"version":{"type":"string","title":"Version","description":"API version"}},"type":"object","required":["languages","total_count","last_updated","version"],"title":"LanguagesResponse","description":"Response model for languages endpoint"},"RealTimeTranslationRequest":{"properties":{"text":{"type":"string","title":"Text"},"source_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"session_id":{"type":"string","title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"is_final":{"type":"boolean","title":"Is Final","default":false}},"type":"object","required":["text","target_language","session_id"],"title":"RealTimeTranslationRequest","description":"Request model for real-time translation"},"STTResponse":{"properties":{"text":{"type":"string","title":"Text","description":"Recognized text"},"confidence":{"type":"number","title":"Confidence","description":"Recognition confidence (0.0-1.0)"},"language":{"type":"string","title":"Language","description":"Detected language"},"engine_used":{"type":"string","title":"Engine Used","description":"STT engine that was used"},"processing_time":{"type":"number","title":"Processing Time","description":"Processing time in seconds"},"alternatives":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Alternatives","description":"Alternative recognition results"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["text","confidence","language","engine_used","processing_time"],"title":"STTResponse","description":"Speech-to-Text response model"},"SocialContentRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Content to translate"},"content_type":{"type":"string","title":"Content Type","description":"Type of social content"},"source_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language","description":"Source language (auto-detect if None)"},"target_language":{"type":"string","title":"Target Language","description":"Target language","default":"en"},"context_data":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Context Data","description":"Additional context"}},"type":"object","required":["text","content_type"],"title":"SocialContentRequest"},"TTSResponse":{"properties":{"audio_base64":{"type":"string","title":"Audio Base64","description":"Base64 encoded audio data"},"audio_format":{"type":"string","title":"Audio Format","description":"Audio format (mp3, wav, etc.)"},"duration":{"type":"number","title":"Duration","description":"Audio duration in seconds"},"engine_used":{"type":"string","title":"Engine Used","description":"TTS engine that was used"},"language":{"type":"string","title":"Language","description":"Language of the generated speech"},"quality":{"type":"string","title":"Quality","description":"Quality level used"},"processing_time":{"type":"number","title":"Processing Time","description":"Processing time in seconds"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["audio_base64","audio_format","duration","engine_used","language","quality","processing_time"],"title":"TTSResponse","description":"Text-to-Speech response model"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"expires_in":{"type":"integer","title":"Expires In","description":"Token expiration time in seconds"}},"type":"object","required":["access_token","expires_in"],"title":"Token","description":"JWT Token response"},"User":{"properties":{"username":{"type":"string","maxLength":50,"minLength":3,"title":"Username"},"email":{"type":"string","format":"email","title":"Email"},"id":{"type":"string","title":"Id"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_superuser":{"type":"boolean","title":"Is Superuser","default":false},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["username","email","id"],"title":"User","description":"User model for responses"},"UserCreate":{"properties":{"username":{"type":"string","maxLength":50,"minLength":3,"title":"Username"},"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":100,"minLength":8,"title":"Password"}},"type":"object","required":["username","email","password"],"title":"UserCreate","description":"User creation model"},"UserLogin":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"type":"object","required":["username","password"],"title":"UserLogin","description":"User login model"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VoiceTranslationResponse":{"properties":{"transcribed_text":{"type":"string","title":"Transcribed Text"},"translated_text":{"type":"string","title":"Translated Text"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"confidence_score":{"type":"number","title":"Confidence Score"},"audio_duration":{"type":"number","title":"Audio Duration"},"processing_time":{"type":"number","title":"Processing Time"},"context_type":{"type":"string","title":"Context Type"},"audio_quality":{"type":"string","title":"Audio Quality"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["transcribed_text","translated_text","source_language","target_language","confidence_score","audio_duration","processing_time","context_type","audio_quality","timestamp"],"title":"VoiceTranslationResponse"},"api__routes__real_translation__BatchTranslationRequest":{"properties":{"texts":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Texts","description":"List of texts to translate"},"source_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language","description":"Source language code"},"target_language":{"type":"string","maxLength":10,"minLength":2,"title":"Target Language","description":"Target language code"},"model_preference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Preference","description":"Preferred model","default":"auto"}},"type":"object","required":["texts","target_language"],"title":"BatchTranslationRequest","description":"Request model for batch translation"},"api__routes__real_translation__TranslationRequest":{"properties":{"text":{"type":"string","maxLength":10000,"minLength":1,"title":"Text","description":"Text to translate"},"source_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language","description":"Source language code (auto-detect if not provided)"},"target_language":{"type":"string","maxLength":10,"minLength":2,"title":"Target Language","description":"Target language code"},"model_preference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Preference","description":"Preferred model (nllb, marian, auto)","default":"auto"}},"type":"object","required":["text","target_language"],"title":"TranslationRequest","description":"Request model for translation"},"api__routes__real_translation__TranslationResponse":{"properties":{"id":{"type":"string","title":"Id"},"original_text":{"type":"string","title":"Original Text"},"translated_text":{"type":"string","title":"Translated Text"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"detected_language":{"anyOf":[{"$ref":"#/components/schemas/LanguageDetection"},{"type":"null"}]},"confidence_score":{"type":"number","title":"Confidence Score"},"quality_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Quality Score"},"processing_time":{"type":"number","title":"Processing Time"},"model_used":{"type":"string","title":"Model Used"},"alternative_translations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Alternative Translations"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["id","original_text","translated_text","source_language","target_language","confidence_score","processing_time","model_used","timestamp"],"title":"TranslationResponse","description":"Response model for translation"},"api__routes__social_translation__BatchTranslationRequest":{"properties":{"content_items":{"items":{"type":"object"},"type":"array","title":"Content Items","description":"List of content items to translate"},"target_language":{"type":"string","title":"Target Language","description":"Target language","default":"en"}},"type":"object","required":["content_items"],"title":"BatchTranslationRequest"},"api__routes__social_translation__TranslationResponse":{"properties":{"translated_text":{"type":"string","title":"Translated Text"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"confidence_score":{"type":"number","title":"Confidence Score"},"content_type":{"type":"string","title":"Content Type"},"context_applied":{"type":"string","title":"Context Applied"},"translation_time":{"type":"number","title":"Translation Time"},"quality_score":{"type":"number","title":"Quality Score"},"alternatives":{"items":{"type":"string"},"type":"array","title":"Alternatives"},"detected_sentiment":{"type":"string","title":"Detected Sentiment"},"cultural_adaptations":{"items":{"type":"string"},"type":"array","title":"Cultural Adaptations"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["translated_text","source_language","target_language","confidence_score","content_type","context_applied","translation_time","quality_score","alternatives","detected_sentiment","cultural_adaptations","timestamp"],"title":"TranslationResponse"},"api__routes__tts_safe__TTSRequest":{"properties":{"text":{"type":"string","maxLength":5000,"minLength":1,"title":"Text","description":"Text to convert to speech"},"language":{"type":"string","maxLength":10,"minLength":2,"title":"Language","description":"Language code (e.g., en, es, fr)"},"voice_style":{"type":"string","pattern":"^(natural|fast|quality)$","title":"Voice Style","description":"Voice style","default":"natural"}},"type":"object","required":["text","language"],"title":"TTSRequest","description":"TTS generation request"},"api__routes__vibeon_integration__BatchTranslationRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/api__routes__vibeon_integration__TranslationRequest"},"type":"array","maxItems":100,"minItems":1,"title":"Items"},"preserve_order":{"type":"boolean","title":"Preserve Order","default":true},"fail_fast":{"type":"boolean","title":"Fail Fast","default":false}},"type":"object","required":["items"],"title":"BatchTranslationRequest","description":"Request model for batch translation"},"api__routes__vibeon_integration__TranslationRequest":{"properties":{"content":{"type":"string","maxLength":10000,"minLength":1,"title":"Content"},"source_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language","description":"Auto-detect if not provided"},"target_language":{"type":"string","maxLength":10,"minLength":2,"title":"Target Language"},"content_type":{"type":"string","pattern":"^(text|post|message|comment|bio)$","title":"Content Type","default":"text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"platform_context":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Platform Context"},"priority":{"type":"string","pattern":"^(low|normal|high|urgent)$","title":"Priority","default":"normal"}},"type":"object","required":["content","target_language"],"title":"TranslationRequest","description":"Request model for translation"},"api__routes__vibeon_integration__TranslationResponse":{"properties":{"original_text":{"type":"string","title":"Original Text"},"translated_text":{"type":"string","title":"Translated Text"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"confidence_score":{"type":"number","title":"Confidence Score"},"processing_time":{"type":"number","title":"Processing Time"},"quality_metrics":{"type":"object","title":"Quality Metrics"},"suggestions":{"items":{"type":"string"},"type":"array","title":"Suggestions"},"metadata":{"type":"object","title":"Metadata"}},"type":"object","required":["original_text","translated_text","source_language","target_language","confidence_score","processing_time","quality_metrics"],"title":"TranslationResponse","description":"Response model for translation"},"api__routes__voice_services__TTSRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Text to convert to speech"},"language":{"type":"string","title":"Language","description":"Language code (e.g., 'en', 'rw', 'es')"},"engine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine","description":"TTS engine to use (gtts, pyttsx3, coqui)"},"quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quality","description":"Voice quality (low, medium, high, premium)","default":"medium"},"speed":{"type":"number","title":"Speed","description":"Speech speed (0.5-2.0)","default":1.0},"pitch":{"type":"number","title":"Pitch","description":"Voice pitch (0.5-2.0)","default":1.0},"volume":{"type":"number","title":"Volume","description":"Voice volume (0.0-1.0)","default":1.0},"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id","description":"Specific voice ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID for tracking"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for tracking"}},"type":"object","required":["text","language"],"title":"TTSRequest","description":"Text-to-Speech request model"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}