요청
LLM 텍스트가 음성 발화로 넘어갈 때 적용하는 규칙을 언어와 음성 provider에 관계없이 하나의 공통 경계에서 관리한다.
기존 구조 활용
이미 존재하는 packages/shell/src/lib/tts/text-filter.ts 및 sentence-pipeline.ts를 확장한다. 별도 병렬 필터나 컴포넌트별 후처리를 만들지 않는다.
요구사항
- 공통 기본 규칙과 언어별 규칙을 한 레지스트리 또는 설정 구조에서 관리한다.
- 이모지, 이모티콘, 장식용 특수문자, URL 및 발화용이 아닌 제어 태그를 TTS 전달 전에 제거한다.
- 굵게, 굵게, 기울임, 제목, 목록, 인용 등 Markdown 표식은 제거하되 사람이 읽을 본문은 보존한다.
- fenced code block과 Mermaid 원문은 발화에서 제외한다.
- inline code는 언어별 발화 규칙으로 처리하고 backtick 자체는 발화하지 않는다.
- 문장 의미와 운율에 필요한 문자 및 구두점은 보존하며, 필터 결과가 비면 발화를 생성하지 않는다.
- 브라우저 음성, 로컬 음성, 원격 음성 등 모든 TTS 경로가 동일한 정규화 결과를 사용한다.
- provider, 컴포넌트, 번역 문자열에 정규식이나 언어별 예외를 하드코딩하지 않는다.
수용 조건
- 지원 언어의 공통 규칙과 언어별 확장 규칙, 기본 fallback을 자동 테스트로 고정한다.
- Markdown 강조 표식은 제거되지만 내부 텍스트가 보존됨을 검증한다.
- 코드 블록, Mermaid, 특수문자와 이모지가 실제 TTS 요청 payload에 포함되지 않음을 검증한다.
- 일반 텍스트, 숫자, 다국어 문장과 필요한 구두점이 훼손되지 않음을 검증한다.
요청
LLM 텍스트가 음성 발화로 넘어갈 때 적용하는 규칙을 언어와 음성 provider에 관계없이 하나의 공통 경계에서 관리한다.
기존 구조 활용
이미 존재하는 packages/shell/src/lib/tts/text-filter.ts 및 sentence-pipeline.ts를 확장한다. 별도 병렬 필터나 컴포넌트별 후처리를 만들지 않는다.
요구사항
수용 조건