You need to sign in or sign up before continuing.
Name Last Update
frontend Loading commit data...
server Loading commit data...
.gitignore Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...
about-polly.md Loading commit data...
docker-compose.yml Loading commit data...
infra.png Loading commit data...
polly-example.html Loading commit data...

Khuwitch

khuwitch는 다국어 번역 지원하며, 이를 음성으로도 들을 수 있도록해주는 twitch bot 입니다.

khuwitch를 이용하면 채널 관리자는 자신의 채널의 외국어 채팅을 한국어로 바로 번역해 볼 수 있고, 필요한 경우 이를 음성파일로 변환하여 재생한 뒤 시청자들에게 송출할 수도 있습니다.

사용되는 API

아키텍쳐

infra.png

사용된 기술 및 동작 방법

khuwitch는 크게 아래의 항목들로 동작한다고 볼 수 있습니다.

  • websocket 을 기반으로 Twtich api를 편리하게 이용할 수 있게해주는 tmi client
  • Papago API 를 통한 번역
  • Socket io 를 이용한 frontend, backend의 통신
  • AWS Polly 를 이용한 TTS(Text To Speech)

위의 기술들을 바탕으로 khuwitch는 아래와 같이 동작합니다.

  1. websocket 을 기반으로 를 통해 메시지를 받아보거나 작성할 수 있습니다.
  2. Papago의 언어감지 API를 이용해 해당 채팅 메시지가 어떤 언어인지 판별합니다.
  3. 채팅 메시지가 외국어인 경우 Papago의 번역 API를 이용해 내용을 번역한 뒤 채팅으로 번역 내용을 전송하고, socket io를 통해 현재 khuwith 서비스에 접속 중인 사용자에게도 번역 내용을 전송합니다.
  4. frontend에서는 수신한 text를 AWS Polly 를 이용해 음성 파일로 변환한 뒤, 접속자의 브라우저에서 재생합니다.

빌드 및 실행 방법

추후 보완 예정

local에서 실행하기

frontend

$ PORT=8000 npm start

backend

$ KHUWITCH_PORT=3000 npm start

docker image 빌드 후 docker-compose로 실행

frontend 빌드

$ docker build -f Dockerfile-frontend -t khuwitch/frontend

backend 빌드

$ docker build -f Dockerfile-backend -t khuwitch/backend

docker-compose로 실행

$ docker-compose -f docker-compose.yml -f docker-compose-dev.yml up

기본적 설정으로 존재하는 docker-compose.yml 에 추가적인 내용을 담은 docker-compose-{{NAME}}.yml 을 전달함으로써 설정을 Override할 수 있습니다.

사용 방법

로그인 화면 추후 추가.png 봇 입장 화면 추후 추가.png

채널관리자는 twitch login을 통해 khuwitch bot을 자신의 Twitch 채널에 입장시킬 수 있습니다.

번역 화면 추가.png

khuwitch bot이 채널에 입장하면 모든 message에 대해 언어감지를 한 뒤 한국어가 아닌 경우는 해당 text를 한국어로 번역하여 누가 어떤 말을 했는지 알려줍니다.

tts 선택화면 추가.png

단순한 번역 챗봇을 넘어 TTS 번역 봇으로 이용하고 싶다면, TTS를 청취하고싶은 채널을 선택할 수 있습니다. 이후 변환된 음성 파일이 자동으로 재생되므로 내 채널로도 해당 음성이 송출되어 시청자들도 들을 수 있게 됩니다.

License

누구나 편리하게 khuwitch를 개발하고 사용할 수 있도록 해당 프로젝트의 License를 MIT License로 선정하였습니다.