주희봇은 Discord 서버에서 텍스트 메시지를 음성으로 변환하여 음성 채널에서 읽어주는 TTS(Text-to-Speech) 봇입니다.
Microsoft Azure Cognitive Services의 고품질 음성 합성 엔진을 사용하며, discord.js 라이브러리로 제작되었습니다.
- 🎤 고품질 TTS: Microsoft Azure의 한국어 음성 합성 엔진
- 🎵 다양한 목소리: 10가지 음성 옵션 (남성 5종, 여성 5종)
- ⚡ 속도 조절: 0~100 범위로 자유로운 속도 설정
- 🌏 다국어 지원: 한국어, 영어, 일본어 자동 감지
- 🔒 개인정보 보호: 메시지는 TTS 변환 후 즉시 삭제
- 🤖 자동 관리: 비활성 시 자동 퇴장, 빈 채널 감지
주희봇 공식 Discord 서버 - 문의, 피드백, 업데이트 소식
주희봇은 Discord 표준 **슬래시 커맨드(Slash Commands)**를 지원합니다.
| 명령어 | 설명 |
|---|---|
/들어와 |
봇을 음성 채널에 입장시킵니다 |
/나가 |
봇을 음성 채널에서 퇴장시킵니다 |
| 명령어 | 설명 |
|---|---|
/채널설정 [채널명] |
TTS 메시지를 읽을 채팅 채널을 설정합니다 |
/채널해제 |
설정된 TTS 채널을 제거합니다 |
| 명령어 | 설명 |
|---|---|
/목소리설정 [목소리] |
9가지 한국어 음성 중 원하는 목소리를 선택합니다 |
/속도설정 [0~100] |
TTS 속도를 조절합니다 (0: 느림, 100: 빠름) |
/현재설정 |
현재 설정된 목소리와 속도를 확인합니다 |
| 명령어 | 설명 |
|---|---|
/음소거 |
봇의 채팅 메시지를 숨깁니다 (명령어 응답만 개인에게 표시) |
/음소거해제 |
음소거 기능을 해제합니다 |
- 자동 퇴장: 30분간 상호작용이 없으면 자동으로 음성 채널 퇴장
- 빈 채널 감지: 음성 채널에 봇만 남으면 자동 퇴장
- 채널 제한: 설정된 TTS 채널의 메시지만 읽음
- 사용자 제한: 음성 채널에 있는 사용자의 메시지만 읽음
- 메시지 길이 제한: 최대 200자까지 처리
주희봇은 사용자의 개인정보를 소중히 다룹니다:
- ✅ 메시지 내용: TTS 변환 후 즉시 삭제 (저장 안 함)
- ✅ 로그 파일: 7일 후 자동 삭제
- ✅ 서버 데이터: 봇 퇴장 시 자동 삭제
- ✅ 오픈소스: 코드 공개로 투명한 개인정보 처리
자세한 내용은 개인정보 보호정책을 참고해주세요.
개인정보 관련 문의: kevin1113dev@gmail.com
- 언어: TypeScript
- 런타임: Node.js
- 봇 프레임워크: discord.js v14
- 음성: @discordjs/voice
- TTS 엔진: Microsoft Azure Cognitive Services
- 데이터베이스: SQLite (Sequelize ORM)
- 로깅: 커스텀 로거 (한국 시간대 지원)
- 프로세스 관리: PM2 (무중단 배포)
- 샤딩: Discord.js ShardingManager (확장성)
- ✅ 무중단 배포: PM2를 사용한 zero-downtime deployment
- ✅ 자동 재시작: 오류 발생 시 자동으로 재시작
- ✅ 로그 관리: 체계적인 로그 수집 및 관리
- ✅ 프로세스 모니터링: 실시간 상태 확인
- ✅ 샤딩 지원: 대규모 서버를 위한 수평 확장
이 프로젝트는 오픈소스이며, 누구나 코드를 확인하고 기여할 수 있습니다.
- GitHub: kevin1113-github/juhee-bot
- 라이선스: 저장소의 LICENSE 파일 참조
- 📧 이메일: kevin1113dev@gmail.com
- 💻 GitHub: @kevin1113-github
- 💬 Discord: 주희봇 공식 서버
주희봇 운영 및 개발을 후원해주세요!
- 💳 후원계좌: 카카오뱅크 3333-18-5316602
- 💰 월 TTS 사용량이 500만자를 초과하여 유료 티어를 사용 중입니다
- 🙏 여러분의 후원이 지속 가능한 서비스를 만듭니다
- 주희봇 소스코드: 저장소의 LICENSE 파일 참조
- 주희봇 프로필 이미지: 뜰밤님 작품
- Microsoft Azure TTS: Microsoft의 서비스 약관 적용
Made with ❤️ by kevin1113-github
