Node-RED TTS: 자연스러운 로컬 목소리로
Node-RED는 센서, 스마트홈, 챗봇, 업무 시스템을 캔버스 위 몇 개의 선으로 연결합니다. 음성은 여기에 잘 어울립니다. 방문객을 알리는 문 센서, 매일의 요약을 읽어 주는 플로, 작업장 스피커로 나오는 창고 경보.
무료 SuperClonica 엔진은 Node-RED 옆에서 작은 HTTP 서버로 돌아가며, 내 하드웨어에서 텍스트를 자연스러운 음성으로 바꿉니다. 이 가이드에서는 플로를 노드별로 보여 주고 오디오 활용법을 소개합니다.
음성으로 만들 수 있는 것
Node-RED가 데이터를 옮기고, SuperClonica가 내 네트워크 안에서 텍스트를 음성으로 바꿉니다.
- 센서와 스마트홈 이벤트의 안내.
- 다른 노드로 만든 매일의 요약.
- 공장, 창고, 사무실 스피커의 경보.
- 음성 메시지를 보내는 챗봇용 메시지.
목소리를 무료로 고르기
아무 목소리 페이지에서 전형적인 안내문을 30~100자로 입력하고 언어를 고른 뒤 생성 버튼을 누르세요. 몇 초 만에 플로가 어떻게 들릴지 알 수 있습니다. 계정은 필요 없습니다.
플로 만들기
Node-RED도 Docker에서 돌린다면 두 컨테이너를 같은 네트워크에 연결하고 localhost 대신 http://tts:8000을 쓰세요.
- 같은 컴퓨터나 네트워크에서 서버 실행: docker run -d --name tts -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu.
- function이나 change 노드에서 msg.payload를 {"text": "현관에 누가 왔어요", "voice": "F1", "lang": "ko"} 같은 객체로 설정하세요.
- http request 노드 추가: 메서드 POST, URL http://localhost:8000/synthesize, 응답은 바이너리 버퍼. 객체 payload는 자동으로 JSON으로 전송됩니다.
- 노드는 WAV를 msg.payload의 버퍼로 다음 노드에 넘깁니다.
오디오 저장 또는 재생
write file 노드로 버퍼를 WAV로 저장하세요. 예: /data/tts/door.wav. 스피커가 있는 Linux 컴퓨터라면 exec 노드에서 aplay로 재생할 수 있고, 스마트 스피커라면 파일을 스마트홈 시스템에 넘기거나 HTTP로 제공하세요. 고정 문구는 한 번만 읽혀 파일을 다시 쓰고, 바뀌는 부분만 읽히세요. 다른 컴퓨터에서 서버에 접근할 수 있다면 SUPERCLONICA_API_KEY를 설정하고 Authorization 헤더로 보내세요.
목소리와 정직함
모델 기본 목소리 10종 M1~M5·F1~F5는 무료입니다. 나만의 목소리가 필요하면 동의한 화자의 녹음으로 SuperClonica 스튜디오에서 학습하세요. 중요한 곳에서는 안내가 기계로 만든 것임을 알리고, 실제 인물을 흉내 낸 목소리로 음성을 자동화하지 마세요.