fix: 음성통화 STT 환각 완화 + 툴콜 턴 TTS 누락 수정 + 볼륨 슬라이더
- voice_engine.py: condition_on_previous_text=False로 whisper가 애매한 구간에서 그럴듯한 문장을 지어내는 환각 완화 - app.js/voice-call.js: 툴 사용 턴(웹검색 등)에서 finalAnswer가 partialContent를 통째로 덮어쓰면서 음성통화의 spokenUpTo 오프셋이 무효화돼 텍스트는 나오는데 음성이 안 나오는 버그 수정 - index.html/voice-call.js: 통화 중 GainNode 기반 인앱 볼륨 슬라이더 추가 (일부 모바일 브라우저에서 마이크 사용 중엔 하드웨어 볼륨 버튼이 통화 오디오에 반영 안 되는 문제 우회) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -119,7 +119,9 @@ class Engine:
|
||||
f.write(audio_bytes)
|
||||
path = f.name
|
||||
try:
|
||||
segments, info = self.stt_model.transcribe(path, language=language or None, beam_size=5, vad_filter=True)
|
||||
segments, info = self.stt_model.transcribe(
|
||||
path, language=language or None, beam_size=5, vad_filter=True, condition_on_previous_text=False,
|
||||
)
|
||||
text = ''.join(seg.text for seg in segments).strip()
|
||||
return text, (info.language if info else language)
|
||||
finally:
|
||||
@@ -140,7 +142,9 @@ class Engine:
|
||||
# ── Streaming STT (partial decode of an accumulating PCM buffer) ──────
|
||||
def transcribe_pcm(self, pcm: bytes, language: str):
|
||||
audio = pcm16_bytes_to_float(pcm)
|
||||
segments, info = self.stt_model.transcribe(audio, language=language or None, beam_size=1, vad_filter=True)
|
||||
segments, info = self.stt_model.transcribe(
|
||||
audio, language=language or None, beam_size=1, vad_filter=True, condition_on_previous_text=False,
|
||||
)
|
||||
text = ''.join(seg.text for seg in segments).strip()
|
||||
return text, (info.language if info else language)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user