245 lines
8 KiB
Markdown
245 lines
8 KiB
Markdown
# Azure Voice Services Integration
|
|
|
|
## Übersicht
|
|
|
|
Diese Implementierung bietet Azure Speech Services Integration für zwei Hauptfunktionen:
|
|
|
|
1. **Realtime Dolmetscher**: Sprache → Text (übersetzt)
|
|
2. **Konversation**: Frage → Antwort in Voice
|
|
|
|
## Architektur
|
|
|
|
### Backend (Gateway)
|
|
- **Route**: `gateway/modules/routes/routeVoiceAzure.py`
|
|
- **Connector**: `gateway/modules/connectors/connectorAzureSpeech.py`
|
|
- **Integration**: In `gateway/app.py` eingebunden
|
|
|
|
### 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 Stimmen
|
|
- `POST /api/voice/speech-to-text` - Sprache zu Text
|
|
- `POST /api/voice/text-to-speech` - Text zu Sprache
|
|
- `POST /api/voice/translate` - Text übersetzen
|
|
- `POST /api/voice/conversation` - Konversation mit Voice-Antwort
|
|
- `POST /api/voice/realtime-interpreter` - Realtime Dolmetscher
|
|
- `GET /api/voice/health` - Verbindungsstatus
|
|
|
|
### Streaming Services (Neu!)
|
|
- `POST /api/voice/stream/speech-to-text` - Streaming Sprache zu Text
|
|
- `POST /api/voice/stream/text-to-speech` - Streaming Text zu Sprache
|
|
- `POST /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-Mikrofon
|
|
- `WS /api/voice/ws/speech-to-text` - Echte Real-time Speech-to-Text mit Live-Mikrofon
|
|
- `WS /api/voice/ws/text-to-speech` - Real-time Text-to-Speech Streaming
|
|
- `GET /api/voice/ws/status` - WebSocket Verbindungsstatus
|
|
|
|
### Subscription Management (Neu!)
|
|
- `GET /api/voice/connections` - Microsoft Verbindungen mit Speech Key Status
|
|
- `POST /api/voice/subscription` - Azure Speech Services Subscription Key setzen
|
|
- `GET /api/voice/subscription` - Aktuelle Subscription Information abrufen
|
|
|
|
## Authentifizierung
|
|
|
|
Die Voice Services nutzen Azure Speech Services Subscription Keys für die Authentifizierung:
|
|
|
|
### Setup Prozess:
|
|
1. **Microsoft Account verbinden**: User muss zuerst eine Microsoft Connection erstellen
|
|
2. **Azure Speech Services Subscription erstellen**:
|
|
- Azure Portal → Cognitive Services → Speech
|
|
- Subscription Key und Region notieren
|
|
3. **Subscription Key konfigurieren**:
|
|
- `POST /api/voice/subscription` mit Subscription Key und Region
|
|
- System testet automatisch die Gültigkeit des Keys
|
|
4. **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
|
|
|
|
1. **Microsoft Account verbinden**: User muss zuerst eine Microsoft Connection erstellen
|
|
2. **Voice Module öffnen**: Über Navigation → Verwaltung → Voice Services
|
|
3. **Einstellungen konfigurieren**: Sprache, Stimme, Übersetzung
|
|
4. **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
|
|
|
|
1. **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
|
|
|
|
2. **Audio Format Handling**
|
|
- Unterstützung für WAV, MP3, OGG Formate
|
|
- Automatische Format-Validierung
|
|
- Audio-Konvertierung für optimale Qualität
|
|
|
|
3. **Robuste Error Handling**
|
|
- Spezifische Fehlermeldungen für verschiedene HTTP-Status-Codes
|
|
- Retry-Logik mit exponentieller Backoff
|
|
- Timeout-Handling für langsame Verbindungen
|
|
|
|
4. **Rate Limiting**
|
|
- 20 Requests pro Minute pro Service
|
|
- Automatische Reset-Funktionalität
|
|
- Benutzerfreundliche Fehlermeldungen
|
|
|
|
5. **AI Integration**
|
|
- Intelligente Konversationsantworten
|
|
- Mehrsprachige Unterstützung (Deutsch/Englisch)
|
|
- Erweiterbare Response-Logik
|
|
|
|
6. **Umfassendes Logging**
|
|
- Detaillierte Fehlerprotokollierung
|
|
- Performance-Monitoring
|
|
- Debug-Informationen für Audio-Formate
|
|
|
|
7. **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
|
|
|
|
8. **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:**
|
|
1. Azure Speech Services Resource erstellen
|
|
2. Subscription Key in der Datenbank speichern
|
|
3. 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:
|
|
```bash
|
|
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:
|
|
```bash
|
|
curl -X GET "https://your-api.com/api/voice/subscription" \
|
|
-H "Authorization: Bearer YOUR_JWT_TOKEN"
|
|
```
|
|
|
|
### 3. Verbindungen mit Speech Key Status anzeigen:
|
|
```bash
|
|
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:
|
|
```javascript
|
|
// 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:
|
|
```javascript
|
|
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
|
|
|
|
1. **Azure OpenAI Integration** für erweiterte Konversation
|
|
2. ✅ **Audio Streaming** für bessere Performance - **IMPLEMENTIERT!**
|
|
3. ✅ **Subscription Key Management** - **IMPLEMENTIERT!**
|
|
4. ✅ **WebSocket Real-time Services** - **IMPLEMENTIERT!**
|
|
5. **Voice Cloning** mit Custom Neural Voices
|
|
6. **Advanced Audio Processing** mit Noise Reduction
|
|
7. **Audio Quality Enhancement** mit Noise Reduction und Echo Cancellation
|
|
8. **Multi-user WebSocket Rooms** für Gruppen-Übersetzung
|