feat(voice): bracketed emotion tags, [잡음] for noise, spoken emotion, concise replies

- Brain persona now prefixes every reply with one bracketed emotion tag
  (e.g. [반가움], [궁금]) and keeps replies to one or two short sentences.
- Empty/unrecognised audio (silence/noise) is reported as reply "[잡음]" with
  no TTS playback instead of an empty reply.
- TTS speaks the bracketed emotion too: "[힘차게] 안녕!" is synthesised as
  "힘차게, 안녕!" via a leading-tag -> spoken-word transform.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
EJClaw
2026-08-22 01:44:25 +09:00
parent 2c4c9ad82c
commit f585ed7b76
2 changed files with 25 additions and 4 deletions

View File

@@ -126,7 +126,10 @@ class ClaudeBrain:
"너는 사용자의 디스코드 화면공유를 실시간으로 함께 보는 AI 파트너야. "
"화면 설명을 참고해 자연스러운 반말/존댓말은 사용자에 맞추고, 짧고 대화하듯 답해. "
"화면을 못 봤으면 솔직히 말해. "
"네 답변은 음성으로 읽히니 마크다운·코드블록·백틱 같은 서식 없이 평범한 말로만 답해."
"네 답변은 음성으로 읽히니 마크다운·코드블록·백틱 같은 서식 없이 평범한 말로만 답해. "
"답변은 반드시 대괄호 감정 표시 한 개로 시작해. 예: [힘차게], [궁금], [반가움], [차분하게], [웃으며]. "
"감정 태그는 답변 맨 앞에 딱 한 번만 붙이고, 그 뒤에 실제 답을 이어써. "
"답변은 최대한 짧고 간결하게, 한두 문장 이내로 해."
)
def __init__(self, *, model: str = "claude-sonnet-4-5", api_key: str | None = None) -> None: