로컬 음성 비서 구축, 기술적 난관과 커뮤니티의 솔루션

by DD
2개월 전
조회수 8

Home Assistant를 활용한 로컬 음성 비서 구축 경험을 공유하며, LLM(Large Language Model), TTS(Text-to-Speech), STT(Speech-to-Text) 기술을 통합

Ollamallama.cpp를 활용한 LLM 모델 실행, GPU 성능 최적화, 그리고 프롬프트 엔지니어링(Prompt Engineering)을 통한 성능 개선

웨이크워드(Wake Word) 인식, TTS 품질 문제, 그리고 음성 비서의 실용성에 대한 커뮤니티의 다양한 의견 교환

Gemini 2.5 Flash와 같은 상용 서비스와 오픈 하드웨어(Open Hardware) 기반 솔루션 비교, 아날로그 전화기 활용 등 다양한 시도

로컬 음성 비서 아키텍처 및 기술 스택

저자는 Home Assistant를 중심으로 llama.cpp를 활용한 로컬 LLM, Wyoming ONNX ASRRhasspy Faster Whisper를 사용한 STT, 그리고 Kokoro TTSPiper를 사용한 TTS를 구축했다. 특히, GPU를 활용하여 LLM의 성능을 최적화하고, 프롬프트 엔지니어링(Prompt Engineering)을 통해 음성 비서의 응답 품질을 개선했다. 이러한 아키텍처는 데이터 미저장 정책(Zero-Retention Policy)을 통해 개인 정보 보호를 강화한다.

LLM 성능 최적화 및 프롬프트 엔지니어링

성능 향상을 위해 저자는 Hugging Face에서 GGUF 모델을 찾아 llama.cpp를 통해 실행했다. 또한, 프롬프트(Prompt)를 개선하여 LLM이 원하는 기능을 정확하게 수행하도록 유도했다. 특히, 날씨 정보, 장소 검색, 음악 재생과 같은 기능을 위해 LLM Intents를 활용하고, 각 서비스에 대한 구체적인 지침(Specific Instructions)을 프롬프트에 추가하여 성능을 향상시켰다. 프롬프트 엔지니어링(Prompt Engineering)은 음성 비서의 핵심적인 요소로 작용한다.

TTS 품질 및 웨이크워드 인식 문제

커뮤니티에서는 TTS의 품질과 웨이크워드 인식에 대한 문제점을 지적했다. 특히, TTS(Text-to-Speech)의 자연스러운 발음 부족과 웨이크워드(Wake Word) 인식의 낮은 정확도가 주요 문제로 언급되었다. ljclifford는 TTS의 운율(Prosody) 문제를 해결하기 위해 Coqui XTTS-v2를 제안했으며, hamdingersGemini 2.5 Flash의 빠른 응답 속도와 성능을 높이 평가했지만, 웨이크워드 인식의 문제로 인해 사용에 어려움을 겪었다고 밝혔다.

음성 비서의 실용성 및 미래 전망

일부 사용자들은 음성 비서의 실용성에 의문을 제기하며, 직접 작업을 수행하는 것이 더 빠르고 효율적이라고 주장했다. 하지만, 저자는 로컬 음성 비서 구축을 통해 개인 정보 보호(Privacy)사용자 경험(User Experience)을 모두 만족시키는 것을 목표로 했다. tkems는 아날로그 전화기를 활용하여 웨이크워드 문제를 해결하고, yanis_t는 OpenAI의 음성 AI 기술 발전을 기대하며, 음성 AI 기술의 미래에 대한 다양한 시각을 제시했다.

My Journey to a reliable and enjoyable locally hosted voice assistant