본문 바로가기
IT

라즈베리파이 400에서 Ollama와 VoiceVox를 이용한 음성인식 챗봇 구동 성공

by %? 2025. 2. 15.

 

 

 

 제일 최근글에서 VoiceVox를 이용한 음성인식 봇을 올리고 나서 ChatGPT API 대신 LangChain을 써야하나 고민하고 있다가 Deepseek R1이 발표되었습니다. 유료였던 o1의 성능인 R1이 완전 무료라는 점과 OpenAI과는 다르게 오픈소스라는 점이 굉장히 마음에 들었습니다. 다만 중국 정부 특유의 검열과 개인정보 유출이라는 이슈 때문에 로컬로 구동하는 것을 추천한다는 글들을 많이 보았고, 그때부터 AI 모델을 로컬로 구동시키는 방법에 대해서 찾아보았습니다.

 

 가장 많이 사용하면서 간단한 방법이 `Ollama` 라는 프로그램이라는 것을 알아서 스마트폰에 시도했다가 공초를 해야하는 일을 겪었습니다.. 하지만 그 일이 있고 나서 AI 모델의 사양, 양자화, 부동소수점에 대해 알게 되었습니다. 그리고 그즈음 아는 동생한테서 LG에서 자체 개발한 Exaone에 대해 알게 되었고, 다른 언어 모델들과는 다르게 영어와 "한국어"가 기본 언어인 것이 매우 마음에 들어 기존에 작성해놨던 챗봇에 적용시키기로 마음 먹었습니다.

 

 처음에는 사용중인 윈도우 노트북에서 구동하려고 했으나.. VoiceVox를 `ImportError: DLL load failed while importing _rust: %1은(는) 올바른 Win32 응용 프로그램 이 아닙니다.` 라며 거부하였고, 다른 방법들을 사용해서 완성은 하였으나.. 역시 VoiceVox를 못 쓴다는 것이 너무 마음에 걸려서 라즈베리파이에서 작업을 하였습니다. 모니터가 없어 VNC와 SSH를 이용하여 작업을 하였고.. 이래저래 하다가 구동에 성공하였습니다! 물론 VRAM은 커녕 RAM도 4GB라 사용중인 프로그램이 없어야하며 속도가 매우 느리지만 구동이 된다는 점에서 기쁘네요 :)

 

 AI 모델은 exaone3.5:2.4b-instruct-q4_K_M을, 번역은 googletrans가 httpx랑 계속 오류를 일으켜 translate.Translator를 사용하였습니다. 음성 입력은 faster-whisper를 사용하고 싶었지만.. 라이브가 아닌 녹음 파일을 따로 저장해야한다는 점과 한국어 인식률이 너무 떨어져서 기존에 사용하던 speech_recognition를 사용하였습니다. Voicevox는 Core를 썼구요.

 

 코드는 지금 좀 다듬어야하기도 하고 깃허브에 기존에 올렸던 챗봇 + 윈도우에서 작업 Ollama 챗봇이 있어 리포지토리를 하나를 더 만들어서 올릴지 어떻게 할지 고민중입니다..