🔊
Module 8: TTS 음성 브리지
PC에서 보낸 텍스트를 폰이 읽어주는 시스템 — Claude Code 결과를 음성으로
⏱️ 10분
🔊 termux-tts-speak
🔄 SSH 리버스 터널
1 TTS 브리지란?
PC에서 실행 중인 Claude Code/Aider의 출력을 폰 스피커로 읽어주는 시스템입니다.
- PC 작업 중: 모니터 안 봐도 음성으로 결과 확인
- 다른 작업 중: AI 에이전트 진행 상황을 귀로 듣기
- 알림: 작업 완료, 에러 발생 시 음성 알림
동작 원리
PC → (SSH 리버스 터널) → 폰 Termux → termux-tts-speak → 폰 스피커 출력
2 서버 실행 (폰)
폰 Termux에서 TTS 서버를 실행합니다.
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
서버가 하는 일:
- 9876 포트에서 netcat으로 텍스트 수신 대기
- 수신된 텍스트에서 마크다운 기호 제거
termux-tts-speak 명령으로 음성 출력
- 다음 텍스트가 올 때까지 대기 (연속 수신 가능)
3 PC → 폰 연결
SSH 리버스 터널로 PC에서 폰 TTS 서버에 접속합니다.
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 "안녕하세요, 작업이 완료되었습니다" | nc localhost 9876
cat result.txt | nc localhost 9876
claude -p "파일 내용 요약해줘" 2>&1 | tail -20 | nc localhost 9876
5 자동화: Claude Code → TTS
Claude Code가 작업 완료 시 자동으로 TTS 알림을 보내게 설정할 수 있습니다.
cat ~/termux-bridge/claude-tts.sh
TTS 브릿지 활용 아이디어:
- AI 에이전트 작업 완료 알림
- 오류 발생 시 즉시 음성 경고
- 긴 파일 요약을 음성으로 청취
- 크론 작업 결과 음성 보고
- PC에서 폰으로 간단한 메시지 전송
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 "테스트"