feat(P3): Diktat in Fremdsprache → Übersetzung in die Zielsprache
Spricht der Nutzer in einer anderen als der eingestellten Sprache, erkennt das System die gesprochene Sprache automatisch (transcribe_detect) und übersetzt die Anfrage per LLM in die Zielsprache — sie wird dann auch in der Zielsprache angezeigt und verarbeitet. Hilft beim Sprachenlernen und in der Kommunikation über Sprachgrenzen. - Orchestrator.translate() (LLM-basiert, nur Übersetzung). - ws.py Voice-STT: transcribe_detect + Übersetzung bei abweichender Sprache. - Test-Stubs um transcribe_detect ergänzt; neuer Übersetzungstest. 209 passed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
40291d318b
commit
a7f718192f
4 changed files with 70 additions and 2 deletions
|
|
@ -203,8 +203,15 @@ async def _voice_turn(websocket, store, user, session_id, audio, fmt, options):
|
|||
return
|
||||
|
||||
try:
|
||||
# Feste Sprache an Whisper → Whisper übersetzt automatisch.
|
||||
transcript = await orchestrator.stt.transcribe(audio, fmt=fmt, language=route.language)
|
||||
# Gesprochene Sprache automatisch erkennen (egal welche). Weicht sie von der
|
||||
# Zielsprache ab, wird die Anfrage in die Zielsprache übersetzt — so erscheint
|
||||
# und verarbeitet das System sie immer in der eingestellten Sprache.
|
||||
transcript, detected = await orchestrator.stt.transcribe_detect(
|
||||
audio, fmt=fmt, language=None
|
||||
)
|
||||
if (transcript and transcript.strip() and detected
|
||||
and detected.lower() != (route.language or "").lower()):
|
||||
transcript = await orchestrator.translate(transcript, route.language)
|
||||
effective_voice = voice_for_route(route.tts_provider, route.language, route.voice_gender)
|
||||
except Exception as exc:
|
||||
await websocket.send_json({"type": "error", "status": 502, "detail": str(exc)})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue