tts fixed sst fixed
This commit is contained in:
parent
7b2e9394b7
commit
979d921c81
|
|
@ -995,10 +995,11 @@ Erst wenn ich [READY] sehe, starten die TICKs mit Bildern!"""
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# WICHTIG: Wenn Claude spricht (TTS) oder wir auf TTS warten, nicht aufzeichnen!
|
# WICHTIG: Wenn Claude spricht (TTS aktiv), nicht aufzeichnen!
|
||||||
# Das verhindert Echo (Mikrofon nimmt TTS auf) und
|
# Das verhindert Echo (Mikrofon nimmt TTS auf).
|
||||||
# überlappende Gespräche - wir lassen Claude ausreden.
|
# ABER: _awaiting_tts blockiert NICHT mehr das Mikrofon!
|
||||||
if self._speaking.is_set() or self._awaiting_tts.is_set():
|
# Der User soll sprechen können auch wenn TTS noch wartet.
|
||||||
|
if self._speaking.is_set():
|
||||||
# Falls wir mitten in einer Aufnahme waren, diese beenden
|
# Falls wir mitten in einer Aufnahme waren, diese beenden
|
||||||
if self._recording.is_set():
|
if self._recording.is_set():
|
||||||
self._finalize_recording(current_session_texts)
|
self._finalize_recording(current_session_texts)
|
||||||
|
|
@ -1010,7 +1011,7 @@ Erst wenn ich [READY] sehe, starten die TICKs mit Bildern!"""
|
||||||
result = self.stt.listen_once(timeout=1)
|
result = self.stt.listen_once(timeout=1)
|
||||||
|
|
||||||
# Nochmal prüfen nach dem Hören (falls zwischendurch gemutet oder Claude spricht)
|
# Nochmal prüfen nach dem Hören (falls zwischendurch gemutet oder Claude spricht)
|
||||||
if self.is_muted() or self._speaking.is_set() or self._awaiting_tts.is_set():
|
if self.is_muted() or self._speaking.is_set():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if result and result.text and len(result.text) > 2:
|
if result and result.text and len(result.text) > 2:
|
||||||
|
|
|
||||||
|
|
@ -562,7 +562,12 @@ class ClaudeChatInterface:
|
||||||
claude_msgs = [m for m in all_messages if m.is_from_assistant]
|
claude_msgs = [m for m in all_messages if m.is_from_assistant]
|
||||||
total_claude = len(claude_msgs)
|
total_claude = len(claude_msgs)
|
||||||
|
|
||||||
if last_index < total_claude - 1:
|
# WICHTIG: last_index ist 0-basiert.
|
||||||
|
# Wenn last_index=26 und total_claude=27, dann gibt es 27 Nachrichten (0-26).
|
||||||
|
# In diesem Fall ist 26 der letzte Index, also keine neuen.
|
||||||
|
# Aber wenn total_claude=28, dann gibt es eine neue (Index 27).
|
||||||
|
# Bedingung: last_index + 1 < total_claude
|
||||||
|
if last_index + 1 < total_claude:
|
||||||
# Es gibt neue Nachrichten!
|
# Es gibt neue Nachrichten!
|
||||||
new_claude_msgs = claude_msgs[last_index + 1:]
|
new_claude_msgs = claude_msgs[last_index + 1:]
|
||||||
logger.debug(f"Index-basiert: {len(new_claude_msgs)} neue Claude-Nachrichten (Index {last_index + 1} bis {total_claude - 1})")
|
logger.debug(f"Index-basiert: {len(new_claude_msgs)} neue Claude-Nachrichten (Index {last_index + 1} bis {total_claude - 1})")
|
||||||
|
|
@ -900,12 +905,12 @@ class ClaudeChatInterface:
|
||||||
|
|
||||||
msg_id = elem.get_attribute("data-message-id")
|
msg_id = elem.get_attribute("data-message-id")
|
||||||
if not msg_id:
|
if not msg_id:
|
||||||
# WICHTIG: Nutze einen ZÄHLER statt Hash!
|
# WICHTIG: Nutze einen 0-basierten INDEX statt Anzahl!
|
||||||
# Der Zähler ist die Anzahl der bisherigen Claude-Nachrichten.
|
# Der Index entspricht der Position in der Claude-Nachrichten-Liste.
|
||||||
|
# Beispiel: Erste Claude-Nachricht = claude_msg_0, zweite = claude_msg_1, etc.
|
||||||
# Das ist stabil weil neue Nachrichten nur HINZUGEFÜGT werden.
|
# Das ist stabil weil neue Nachrichten nur HINZUGEFÜGT werden.
|
||||||
# Der Hash war instabil weil der Text sich leicht ändern kann.
|
current_claude_count = sum(1 for m in messages if m.is_from_assistant)
|
||||||
claude_msg_count = sum(1 for m in messages if m.is_from_assistant)
|
msg_id = f"claude_msg_{current_claude_count}" # 0-basiert: bei 0 bisherigen -> Index 0
|
||||||
msg_id = f"claude_msg_{claude_msg_count}"
|
|
||||||
|
|
||||||
messages.append(ChatMessage(
|
messages.append(ChatMessage(
|
||||||
id=msg_id,
|
id=msg_id,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue