stt auf 2 minuten erhöht und tts debuging aktiviert und erkennung von nachrichten claude

This commit is contained in:
duffyduck 2025-12-27 03:36:47 +01:00
parent 10d68d256c
commit 9122058617
4 changed files with 35 additions and 6 deletions

View File

@ -614,12 +614,18 @@ Erst dann starten die automatischen TICKs mit Bildern!"""
# Hole neue Nachrichten
messages = self.chat.get_new_messages(since_id=self.last_assistant_message_id)
if messages:
logger.debug(f"TTS: {len(messages)} neue Nachrichten gefunden")
for msg in messages:
logger.debug(f"TTS: Nachricht - assistant={msg.is_from_assistant}, id={msg.id[:20]}..., text={msg.text[:50]}...")
if msg.is_from_assistant:
self.last_assistant_message_id = msg.id
# Text für Sprache aufbereiten
speech_text = self._clean_for_speech(msg.text)
logger.debug(f"TTS: Nach Bereinigung: {len(speech_text) if speech_text else 0} Zeichen")
if speech_text and len(speech_text) > 5:
# In Konsole anzeigen
@ -628,8 +634,14 @@ Erst dann starten die automatischen TICKs mit Bildern!"""
console.print(f"[dim]...({len(speech_text)} Zeichen)[/dim]")
# Vorlesen
logger.info(f"TTS: Spreche {len(speech_text)} Zeichen...")
self.tts.speak(speech_text)
self.stats.messages_spoken += 1
logger.debug("TTS: Sprechen beendet")
else:
logger.debug(f"TTS: Text zu kurz oder leer, übersprungen")
else:
logger.debug(f"TTS: Nachricht ist nicht von Claude, übersprungen")
except Exception as e:
logger.error(f"TTS-Loop-Fehler: {e}")

View File

@ -559,11 +559,28 @@ class ClaudeChatInterface:
continue
# Bestimme ob Human oder Assistant
# Mehrere Methoden probieren:
class_name = elem.get_attribute("class") or ""
data_role = elem.get_attribute("data-role") or ""
outer_html = ""
try:
# Prüfe Parent-Element auf Hinweise
parent = elem.find_element(By.XPATH, "..")
parent_class = parent.get_attribute("class") or ""
outer_html = parent_class
except:
pass
# Kombiniere alle Hinweise
all_hints = (class_name + " " + data_role + " " + outer_html).lower()
is_assistant = (
"assistant" in class_name.lower() or
"claude" in class_name.lower() or
"ai" in class_name.lower()
"assistant" in all_hints or
"claude" in all_hints or
"ai-message" in all_hints or
"response" in all_hints or
# Claude.ai spezifisch: Nachrichten ohne "human" sind von Claude
("message" in all_hints and "human" not in all_hints and "user" not in all_hints)
)
# Generiere ID

View File

@ -98,8 +98,8 @@ stt:
pause_threshold: 0.8
# Maximale Aufnahmelänge pro Phrase in Sekunden
# Bei langen Sätzen höher setzen (Google STT unterstützt bis ~60s)
phrase_time_limit: 60
# Bei langen Sätzen höher setzen (max 2 Minuten = 120s)
phrase_time_limit: 120
# ============================================================================
# Termux (Android) Einstellungen

View File

@ -28,7 +28,7 @@ class STTEngine:
self,
energy_threshold: int = 300,
pause_threshold: float = 0.8,
phrase_time_limit: int = 60,
phrase_time_limit: int = 120,
service: str = "google",
language: str = "de-DE"
):