본문 바로가기
IT

VoiceVox를 이용한 음성 대화 봇

by %? 2025. 1. 8.

Test Video

음성 출력 테스트 영상

SourceCode

https://github.com/reatmos/Chatbot

 

GitHub - reatmos/Chatbot: Voice Conversation Bots with LLM and VoiceVox

Voice Conversation Bots with LLM and VoiceVox. Contribute to reatmos/Chatbot development by creating an account on GitHub.

github.com


 졸업하고 나서 2월에 바로 구직 활동을 시작할 건데 그 전에 라즈베리파이를 메인으로 쓰고 있을 때 뭔가 해보고 싶었습니다.

그러다가 최근에 친구랑 LLM을 이용하여 AI 버튜버나 자신만의 캐릭터를 만드는 것에 대해 계속 이야기 하였고 라즈베리파이에서도 가능한가 싶어서 한 번 해보고 있습니다.

 

 동작 원리는 다음과 같습니다.

한국어 음성 입력 -> 영어 번역 후 LLM에 전달 -> 답변 생성 후 음성 출력은 일본어로, 콘솔 출력은 한국어로 번역 -> 답변을 콘솔과 VoiceVox를 통해 출력

물론 콘솔 출력은 gTTS로 할 땐 한국어로 잘 나오다가 VoiceVox를 쓰니 일본어로 나와서 조금 골치가 아파졌어요..ㅋㅋ

 

 LLM은 OpenAI API를 쓰고 있지만 크레딧이 필요해서 Google Gemini API도 써봤는데 Gemini-1.5-flash 모델도 그닥 성능이 좋진 못 한 것 같아, 인터넷 연결할 겸 LangChain으로 변경할 예정입니다.

그리고 입력은 faster-whisper를 추천하던데 아직은 입력 받는 속도가 괜찮은 것 같아서 그대로 쓸 생각입니다. 토큰 관련해서도 손을 봐야하나 싶긴한데 AI쪽은 전공에서 배울 때도 대충대충 했어서 어떻게 해야하는 건지 감이 안 잡히네요..ㅋㅋ

지금 라즈베리파이 400에 i3wm + pulseaudio로 사용하고 있어서 그런지 콘솔창에 ALSA랑 JACK 관련 경고들이 계속 떠서 그것도 해결해야하고, VoiceVox가 답변을 출력하는 속도도 엄청 느리고.. 이것저것 수정할 게 많기도 하고 라즈베리파이에선 못 끝낼 것 같아 취업하고도 계속 붙잡을 프로젝트일 것 같네요 ㅋㅋ

 

 아 참고로 이번 코드는 Copilot이 무료로 풀려서 VS Code에서 엄청 써보면서 만들어진 코드입니다. 기본 틀 만드는 것부터 Copilot 위주로 해보고 있는데 생각보다 잘하다가 VoiceVox나 LangChain 등 조금씩 부가적인 요소를 요구하기 시작하니 벌써 한계가 보이네요.. 조금 더 쌀먹하고 싶었는데 쩝...