🔊

Module 8: TTS 음성 브리지

PC에서 보낸 텍스트를 폰이 읽어주는 시스템 — Claude Code 결과를 음성으로

⏱️ 10분 🔊 termux-tts-speak 🔄 SSH 리버스 터널

1 TTS 브리지란?

PC에서 실행 중인 Claude Code/Aider의 출력을 폰 스피커로 읽어주는 시스템입니다.

동작 원리

PC → (SSH 리버스 터널) → 폰 Termux → termux-tts-speak → 폰 스피커 출력

2 서버 실행 (폰)

폰 Termux에서 TTS 서버를 실행합니다.

$ TTS 서버 시작 (폰 Termux)
# 폰에서 실행 — 포트 9876에서 대기
bash ~/termux-bridge/tts-server.sh
tts-server.sh 내부 동작
PORT=9876 while true; do nc -l "$PORT" | while IFS= read -r line; do # 마크다운 기호 제거 clean=$(echo "$line" | sed 's/[#*`_~>|]//g') termux-tts-speak "$clean" done done

서버가 하는 일:

3 PC → 폰 연결

SSH 리버스 터널로 PC에서 폰 TTS 서버에 접속합니다.

$ SSH 리버스 터널 (PC → 폰)
# PC에서 실행 — 9876 포트 포워딩
ssh -R 9876:localhost:9876 dtsli@100.103.250.45 -p 8022
리버스 터널 원리

PC의 localhost:9876으로 보낸 텍스트가 SSH 터널을 통해 폰의 localhost:9876 (TTS 서버)로 전달됩니다.
즉, PC에서 아무 프로그램이든 localhost:9876에 텍스트를 보내면 폰이 읽어줍니다.

4 텍스트 보내기

연결이 된 후 PC에서 텍스트를 보내는 방법.

$ echo로 텍스트 보내기
# PC 터미널에서 실행
echo "안녕하세요, 작업이 완료되었습니다" | nc localhost 9876
$ 파일 내용 보내기
# 파일 내용을 그대로 TTS로 전송
cat result.txt | nc localhost 9876
$ Claude Code 결과를 TTS로
# Claude Code 출력의 마지막 20줄을 음성으로
claude -p "파일 내용 요약해줘" 2>&1 | tail -20 | nc localhost 9876

5 자동화: Claude Code → TTS

Claude Code가 작업 완료 시 자동으로 TTS 알림을 보내게 설정할 수 있습니다.

$ Claude Code TTS wrapper (claude-tts.sh)
# Claude Code 실행 + 완료 시 TTS 알림
cat ~/termux-bridge/claude-tts.sh

TTS 브릿지 활용 아이디어:

6 문제 해결

❌ TTS 서버 안 켜짐

termux-tts-speak 명령 확인: which termux-tts-speak
termux-api 패키지 설치: pkg install termux-api

❌ PC에서 폰 연결 안 됨

리버스 터널 확인: ss -tlnp | grep 9876
폰 TTS 서버 실행 확인: ps aux | grep tts-server

❌ 소리가 안 남

폰 미디어 볼륨 확인
termux-tts-speak 단독 테스트: termux-tts-speak "테스트"

🔊 TTS 음성 브리지 완료!

← 이전: WTG 다음 강의: 헬스체크 + 트러블슈팅 →