8 KiB
8 KiB
Azure Voice Services Integration
Übersicht
Diese Implementierung bietet Azure Speech Services Integration für zwei Hauptfunktionen:
- Realtime Dolmetscher: Sprache → Text (übersetzt)
- Konversation: Frage → Antwort in Voice
Architektur
Backend (Gateway)
- Route:
gateway/modules/routes/routeVoiceAzure.py - Connector:
gateway/modules/connectors/connectorAzureSpeech.py - Integration: In
gateway/app.pyeingebunden
Frontend (Frontend Agents)
- Module:
frontend_agents/public/js/modules/voiceMain.js - HTML:
frontend_agents/public/htmlparts/part_voiceMain.html - API: Erweitert in
frontend_agents/public/js/shared/apiCalls.js - Navigation: Integriert in
frontend_agents/public/js/shared/globalState.js
API Endpunkte
Voice Services
GET /api/voice/settings- Verfügbare Sprachen und StimmenPOST /api/voice/speech-to-text- Sprache zu TextPOST /api/voice/text-to-speech- Text zu SprachePOST /api/voice/translate- Text übersetzenPOST /api/voice/conversation- Konversation mit Voice-AntwortPOST /api/voice/realtime-interpreter- Realtime DolmetscherGET /api/voice/health- Verbindungsstatus
Streaming Services (Neu!)
POST /api/voice/stream/speech-to-text- Streaming Sprache zu TextPOST /api/voice/stream/text-to-speech- Streaming Text zu SprachePOST /api/voice/stream/realtime-interpreter- Streaming Realtime Dolmetscher
WebSocket Real-time Services (Neu!) ⭐
WS /api/voice/ws/realtime-interpreter- Echte Real-time Übersetzung mit Live-MikrofonWS /api/voice/ws/speech-to-text- Echte Real-time Speech-to-Text mit Live-MikrofonWS /api/voice/ws/text-to-speech- Real-time Text-to-Speech StreamingGET /api/voice/ws/status- WebSocket Verbindungsstatus
Subscription Management (Neu!)
GET /api/voice/connections- Microsoft Verbindungen mit Speech Key StatusPOST /api/voice/subscription- Azure Speech Services Subscription Key setzenGET /api/voice/subscription- Aktuelle Subscription Information abrufen
Authentifizierung
Die Voice Services nutzen Azure Speech Services Subscription Keys für die Authentifizierung:
Setup Prozess:
- Microsoft Account verbinden: User muss zuerst eine Microsoft Connection erstellen
- Azure Speech Services Subscription erstellen:
- Azure Portal → Cognitive Services → Speech
- Subscription Key und Region notieren
- Subscription Key konfigurieren:
POST /api/voice/subscriptionmit Subscription Key und Region- System testet automatisch die Gültigkeit des Keys
- Verwendung: Azure Speech Services werden mit dem konfigurierten Key aufgerufen
Fallback:
- Falls kein Subscription Key konfiguriert ist, wird der Microsoft Access Token als Fallback verwendet
- Dies funktioniert nur für Entwicklung/Testing, nicht für Produktion
Frontend Features
Realtime Dolmetscher Tab
- Mikrofon-Aufnahme Button
- Original Text Anzeige
- Übersetzter Text Anzeige
- Echtzeit-Verarbeitung
Konversation Tab
- Chat-Interface
- Voice-Input Button
- Voice-Output Wiedergabe
- Konversationshistorie
Einstellungen Tab
- Spracheinstellungen (STT/TTS)
- Stimmen-Auswahl
- Übersetzungsoptionen
- Verbindungstest
Verwendung
- Microsoft Account verbinden: User muss zuerst eine Microsoft Connection erstellen
- Voice Module öffnen: Über Navigation → Verwaltung → Voice Services
- Einstellungen konfigurieren: Sprache, Stimme, Übersetzung
- Services nutzen: Dolmetscher oder Konversation
Technische Details
Audio Format
- Input: WAV, 16kHz, Mono
- Output: MP3, 16kHz, 128kbps
Unterstützte Sprachen
- Deutsch (de-DE)
- English (en-US, en-GB)
- Französisch (fr-FR)
- Spanisch (es-ES)
- Weitere über Azure verfügbar
Stimmen
- Neural Voices (hohe Qualität)
- Männlich/Weiblich verfügbar
- Sprachenspezifisch
Production Implementation
Die Azure Voice Services sind jetzt vollständig implementiert mit:
✅ Implementierte Features
-
Echte Azure Speech Services API Integration
- Speech-to-Text (STT) mit Azure Cognitive Services
- Text-to-Speech (TTS) mit Azure Neural Voices
- Translation Services mit Azure Translator
-
Audio Format Handling
- Unterstützung für WAV, MP3, OGG Formate
- Automatische Format-Validierung
- Audio-Konvertierung für optimale Qualität
-
Robuste Error Handling
- Spezifische Fehlermeldungen für verschiedene HTTP-Status-Codes
- Retry-Logik mit exponentieller Backoff
- Timeout-Handling für langsame Verbindungen
-
Rate Limiting
- 20 Requests pro Minute pro Service
- Automatische Reset-Funktionalität
- Benutzerfreundliche Fehlermeldungen
-
AI Integration
- Intelligente Konversationsantworten
- Mehrsprachige Unterstützung (Deutsch/Englisch)
- Erweiterbare Response-Logik
-
Umfassendes Logging
- Detaillierte Fehlerprotokollierung
- Performance-Monitoring
- Debug-Informationen für Audio-Formate
-
Audio Streaming Support ⭐ NEU!
- Real-time Audio-Verarbeitung in Chunks
- Server-Sent Events (SSE) für Live-Updates
- Streaming Text-to-Speech für bessere Performance
- Chunked Audio-Upload für große Dateien
- Reduzierte Latenz bei Voice-Interaktionen
-
WebSocket Real-time Services ⭐ NEU!
- Echte Live-Mikrofon-Integration
- Bidirektionale Echtzeit-Kommunikation
- Real-time Audio-Streaming ohne Datei-Upload
- Live-Übersetzung während des Sprechens
- WebSocket-basierte Verbindungsverwaltung
- Automatische Wiederverbindung bei Verbindungsabbruch
🔧 Konfiguration
Azure Speech Services Setup:
- Azure Speech Services Resource erstellen
- Subscription Key in der Datenbank speichern
- Region konfigurieren (Standard: westeurope)
Unterstützte Audio-Formate:
- STT Input: WAV (16kHz), MP3, OGG
- TTS Output: MP3 (verschiedene Qualitäten), PCM
Rate Limits:
- Speech-to-Text: 20 requests/minute
- Text-to-Speech: 20 requests/minute
- Translation: 20 requests/minute
Subscription Key Setup Beispiel
1. Subscription Key setzen:
curl -X POST "https://your-api.com/api/voice/subscription" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"subscription_key": "your-azure-speech-subscription-key",
"region": "westeurope"
}'
2. Subscription Status prüfen:
curl -X GET "https://your-api.com/api/voice/subscription" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
3. Verbindungen mit Speech Key Status anzeigen:
curl -X GET "https://your-api.com/api/voice/connections" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
WebSocket Real-time Usage Beispiel
1. JavaScript WebSocket Client:
// Real-time Interpreter
const client = new VoiceWebSocketClient();
await client.connectRealtimeInterpreter('user123', 'de-DE', 'en-US');
// Callbacks setzen
client.onTranslationResult = (result) => {
console.log('Original:', result.original_text);
console.log('Translated:', result.translated_text);
};
// Recording starten
await client.startRecording();
2. WebSocket Verbindung:
const ws = new WebSocket('ws://localhost:8000/api/voice/ws/realtime-interpreter?user_id=user123&from_language=de-DE&to_language=en-US');
ws.onmessage = (event) => {
const message = JSON.parse(event.data);
if (message.type === 'translation_result') {
// Live-Übersetzung anzeigen
displayTranslation(message.original_text, message.translated_text);
}
};
🚀 Nächste Schritte
- Azure OpenAI Integration für erweiterte Konversation
- ✅ Audio Streaming für bessere Performance - IMPLEMENTIERT!
- ✅ Subscription Key Management - IMPLEMENTIERT!
- ✅ WebSocket Real-time Services - IMPLEMENTIERT!
- Voice Cloning mit Custom Neural Voices
- Advanced Audio Processing mit Noise Reduction
- Audio Quality Enhancement mit Noise Reduction und Echo Cancellation
- Multi-user WebSocket Rooms für Gruppen-Übersetzung