RelfWolf가 ZimaBoard 2로 Dr. Zola AI 터미널을 구축하는 방법

에바 왕 는 기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

가상의 컴퓨터를 집에서 대화형 프로젝트로 구현하는 방법을 보여준 RelfWolf에게 감사드립니다. 그는 Dr. Arnim Zola 제작 영상에서 출력한 외장 케이스와 ZimaBoard 2, Ollama, Home Assistant를 결합해 음성 질문에 캐릭터의 말투로 답하는 터미널을 만들었습니다.

이 프로젝트는 여러 개별 시스템을 하나로 결합합니다. Ollama는 로컬 하드웨어에서 언어 모델을 실행하고, Home Assistant는 대화를 조정하며, ESP 기반 장치는 마이크와 스피커를 제공합니다. 화면의 애니메이션 얼굴은 이러한 응답에 물리적인 존재감을 더합니다.

이러한 조합은 이 빌드를 Marvel에서 영감을 받은 소품 이상의 것으로 만듭니다. 소형 홈 서버가 음성 인터페이스를 어떻게 지원할 수 있는지, 통합 과정에서 작은 모델에 과부하가 걸리면 어떤 일이 발생하는지, 그리고 가장 그럴듯한 음성이 항상 가장 사용하기 편한 선택은 아닌 이유를 살펴봅니다.

시작하기 전에: 조립 및 디버깅 과정을 보려면 전체 영상을 시청하세요. 이 내용은 바로 설치할 수 있는 키트가 아니라 실험적인 빌드의 기록으로 봐야 합니다. 외장 케이스의 치수와 장치 설정, 네트워크 주소는 사용하는 부품에 따라 달라집니다.

이 빌드에 관하여: 아래 내용은 RelfWolf의 시연과 테스트 후 변경 사항을 포함해 그가 진행한 과정을 따릅니다. 그의 로컬 대화 설정에는 ChatGPT가 사용되지 않으며, 시각 자료는 AI 이미지 및 동영상 도구로 별도로 제작됩니다. 완성된 터미널은 여전히 프로토타입이며, 외장 케이스와 음성, 응답 시간에 대한 추가 작업이 예정되어 있습니다.

RelfWolf가 완성한 복고풍 AI 터미널에 표시된 Dr. Zola 얼굴
완성된 터미널은 녹색 애니메이션 얼굴과 물리적 제어 장치, 상태 표시등을 결합합니다. RelfWolf의 영상에서 캡처한 화면입니다.

RelfWolf의 Dr. Zola AI 터미널이 실제로 하는 일

이 터미널은 음성을 로컬에서 호스팅되는 언어 모델의 응답으로 변환합니다. Home Assistant는 마이크 장치에서 오디오를 받아 음성으로 변환된 내용을 Ollama에 전달하고, 생성된 답변을 음성 합성으로 전환한 후 스피커로 오디오를 다시 보냅니다.

RelfWolf는 대화 에이전트에 캐릭터를 설명하는 시스템 프롬프트를 지정합니다. 또한 사용자 지정 호출 문구와 듣기 및 말하기 애니메이션 사이를 전환하는 화면을 설정해, 상호작용이 별도의 컴퓨터 인터페이스가 아니라 터미널과 연결되어 있는 듯한 느낌을 줍니다.

대화 중 시스템은 다음을 수행합니다:

  1. 사용자 지정 웨이크 문구를 감지하고 마이크를 통해 듣기 시작합니다.
  2. 말한 메시지를 대화 에이전트가 처리할 수 있는 텍스트로 변환합니다.
  3. ZimaBoard 2에서 Ollama를 사용해 답변을 생성하고, 해당 답변을 음성으로 변환합니다.
  4. 음성을 재생하면서 디스플레이를 말하는 애니메이션으로 전환합니다.

재생이 끝나면 화면은 대기 루프로 돌아갑니다. 패널 조명은 각 단계를 표시하여 터미널의 전원이 켜져 있는지, 듣고 있는지, 요청을 처리 중인지, 말하고 있는지를 보여줍니다.

시작하기 전에 필요한 것

RelfWolf의 빌드에는 인클로저, 네트워크 및 음성 소프트웨어 전반에 걸친 준비가 필요합니다. 사용된 구성 요소는 다음과 같습니다.

  • ZimaOS를 실행하는 16GB RAM의 ZimaBoard 2
  • Ollama 및 로컬에 다운로드한 언어 모델
  • 음성 파이프라인이 구성된 정상 작동하는 Home Assistant 설치
  • ESPHome을 사용하는 ESP 기반 마이크 및 스피커 장치
  • 디스플레이, 제어 패널 스위치, 버튼 및 표시 LED
  • 케이스에 적합한 출력 인클로저, 장착 하드웨어, 배선 및 스피커

이 워크플로에서는 마이크 장치, Home Assistant, Ollama 서버가 서로 통신할 수 있어야 합니다. 전자 부품을 인클로저에 설치하기 전에 이러한 연결을 테스트하고, 사용하려는 실제 부품을 기준으로 디스플레이 치수와 커넥터 위치를 확인하세요.

ZimaBoard 2가 이러한 로컬 AI 터미널에 적합한 이유

RelfWolf는 터미널 내부의 컴퓨터로 ZimaBoard 2를 선택합니다. 16GB 구성은 데스크톱 타워를 중심으로 프로젝트를 구성하지 않고도 로컬 언어 모델을 테스트하고, ZimaOS를 통해 Ollama를 관리하며, 캐릭터 디스플레이를 구동할 수 있는 컴팩트한 플랫폼을 제공합니다.

이 시연은 메모리 용량만으로 사용 경험이 결정되지 않는 이유도 보여줍니다. 모델의 작업 부하, 냉각, Home Assistant 구성, 음성 생성 기능이 모두 사용자가 답변을 기다리는 시간에 영향을 줍니다.

파트 1: 터미널 인클로저 및 제어 패널 제작

첫 번째 파트에서는 어시스턴트에 물리적 형태를 부여합니다. RelfWolf는 화면과 제어 패널을 중심으로 레트로 컴퓨터 하우징을 설계한 다음, 조립을 위해 출력 부품을 준비합니다.

1단계: 인클로저 설계 및 출력

디스플레이와 내부 하드웨어의 실제 치수에 맞춰 하우징을 설계합니다. RelfWolf의 경험은 커넥터 배치가 보이는 화면 크기만큼 중요하다는 점을 보여줍니다. 디스플레이 모델이 조금만 달라도 제작 후반에 예상치 못한 케이블 여유 공간 문제가 생길 수 있습니다.

Dr. Zola 터미널 인클로저용 부품을 제작하는 Ender 3D 프린터
인클로저는 데스크톱 3D 프린터로 제작되므로 치수와 커넥터 간격이 빌드에서 중요한 요소입니다.

2단계: 제어 장치 및 장착 지점 준비하기

케이스를 닫기 전에 제어 패널에 스위치, 버튼, LED와 배선을 조립하세요. 나사산 인서트를 사용하면 패널을 나사로 고정할 수 있고 전자 부품을 테스트하는 동안 다시 분리할 수도 있습니다.

3단계: 디스플레이 장착 및 케이블 간격 확인하기

화면을 설치된 위치에 둔 상태에서 HDMI 연결을 테스트하세요. 케이블이 하우징과 부딪히면 RelfWolf는 직각 HDMI 어댑터를 사용해 연결부가 맞도록 합니다. 이렇게 하면 즉시 인클로저를 다시 설계하거나 또 한 번 긴 출력 작업을 진행하지 않아도 됩니다.

4단계: 전면 패널 고정하기

준비한 제어 패널을 터미널 전면에 맞춰 끼우고 인서트에 나사로 고정하세요. 소프트웨어, 오디오, 디스플레이를 함께 테스트할 때까지 내부 전자 부품에 접근할 수 있는 상태로 두세요.

조립된 셸은 터미널의 외관을 만들어 주지만, 아직은 하우징일 뿐입니다. 다음 작업은 컴퓨터가 로컬에서 응답을 생성하고 그 응답을 마이크와 스피커에 연결하도록 하는 것입니다.

파트 2: ZimaOS와 Ollama로 로컬 대화 에이전트 실행하기

에서 6:01, RelfWolf는 로컬 AI 하드웨어를 소개합니다. 먼저 명령줄에서 모델을 테스트한 다음 ZimaOS 인터페이스로 이동해 Ollama를 Home Assistant에 연결합니다.

1단계: ZimaBoard 2에서 Ollama 테스트하기

음성 파이프라인을 추가하기 전에 직접 텍스트를 주고받는 것부터 시작하세요. RelfWolf는 명령줄 테스트에서 빠른 응답을 확인하여, 추가 통합이 개입하기 전에 보드에서 모델을 실행할 수 있음을 확인합니다.

이 초기 결과는 이후에 유용한 참고 자료가 됩니다. 같은 프로젝트가 Home Assistant를 통해 실행할 때 느려지면, 보드가 로컬 AI를 전혀 실행할 수 없다고 가정하기보다 통합 과정에서 요청에 무엇이 추가되는지 조사할 수 있습니다.

2단계: ZimaOS를 통해 Ollama 설정하기

영상에 나온 것처럼 ZimaOS 애플리케이션 인터페이스를 사용해 Ollama를 설치하고 관리하세요. 다른 서비스가 이를 대화 백엔드로 사용하려면 먼저 모델을 사용할 수 있고 응답하는 상태여야 합니다.

RelfWolf의 목표는 자신의 하드웨어에서 대화 모델을 실행하는 것입니다. ZimaOS는 애플리케이션 관리 인터페이스를 제공하고, Ollama는 로컬 모델과 그 응답을 처리합니다.

3단계: 홈 어시스턴트를 Ollama 서버에 연결하기

Home Assistant에 Ollama 통합을 추가하고 서버의 로컬 주소를 지정합니다. Ollama를 대화에 사용하는 Assist 에이전트를 생성하면 Home Assistant를 통해 입력한 메시지가 ZimaBoard 2에서 실행 중인 모델에 전달됩니다.

4단계: 캐릭터 구성 및 불필요한 작업 줄이기

캐릭터의 행동을 정의하는 시스템 프롬프트를 설정한 다음 메시지를 입력해 테스트합니다.

Dr. Arnim Zola 시스템 프롬프트를 보여 주는 Home Assistant Ollama 설정
표시된 설정에서 llama3.2:1b를 선택한 상태로 Home Assistant에서 대화 에이전트의 캐릭터 지침을 구성하는 RelfWolf

RelfWolf의 첫 통합 테스트에서 CPU 사용률은 100%에 도달하고 온도는 80°C를 넘으며 응답에는 예상보다 훨씬 오래 걸립니다. 소형 팬이 온도를 낮추지만, 반환된 JSON에서 또 다른 문제가 드러납니다. 스마트 홈 제어 정보가 모델을 압도하고 있었던 것입니다. 관련 제어 옵션을 비활성화하면 대화가 더 효과적으로 작동합니다.

ZimaBoard 2 방열판에 냉각 팬을 고정하는 RelfWolf
통합 AI 테스트에서 높은 온도가 확인된 후 ZimaBoard 2에 소형 팬을 장착합니다.

5단계: 음성을 추가하기 전에 대화 확인

Home Assistant를 통해 텍스트 테스트를 반복하고 응답이 캐릭터 프롬프트를 따르는지 확인합니다. 이를 통해 다음 단계에서 구성할 마이크, 웨이크 워드, 스피커와 언어 모델 통합을 분리할 수 있습니다.

이 개선 사항은 이 빌드와 대화 중심의 용도에 특화되어 있습니다. RelfWolf는 캐릭터가 스마트 홈 기기를 조작할 필요가 없으므로, 이 추가 작업을 제거하면 모델이 답변에 집중할 수 있습니다.

파트 3: 웨이크 워드, 음성 및 애니메이션 얼굴 추가

마지막 단계에서는 작동하는 대화 에이전트를 물리적 단말기에 연결합니다. ESPHome은 마이크와 스피커를 Home Assistant에 노출하고, 사용자 지정 openWakeWord 모델을 사용하면 RelfWolf가 캐릭터의 이름을 말해 어시스턴트를 활성화할 수 있습니다. 그는 웨이크 워드를 학습시키고, 생성된 파일을 다운로드한 다음 Home Assistant 설정에 추가합니다.

그런 다음 더 자연스러운 음성을 위해 Kokoro를 테스트하고, 짧은 시각적 루프 두 개를 만듭니다. 하나는 대기 애니메이션이고 다른 하나는 말하는 애니메이션입니다. 작은 프로그램은 시작할 때 대기 루프를 재생하고, Home Assistant의 재생 활동에 따라 클립을 전환합니다. 또한 ESPHome은 패널 표시등을 어시스턴트의 상태에 연결하며, 작은 테스트 스피커는 더 큰 5W 스피커로 교체합니다.

초록색 애니메이션 Dr. Zola 얼굴을 미리 보여 주는 AI 동영상 도구
생성된 말하기 클립이 화면 애니메이션을 제공하며, 재생 타이밍에 따라 터미널이 시각적 루프 간에 전환되는 시점이 결정됩니다.

전체 조립을 통해 개별 테스트에서는 분명하지 않았던 문제가 드러납니다. Ethernet 케이블을 다른 네트워크 포트로 옮기면 보드의 주소가 변경되어 연결이 끊깁니다. 또한 디스플레이는 들을 수 있는 음성이 시작되기 전에 말하기 루프를 시작합니다. 재생 트리거를 조정한 후 RelfWolf는 Kokoro가 지연 시간을 충분히 늘려 전체 대기 시간이 20초를 초과하게 만들기 때문에 더 빠른 기존 음성 모델로 돌아갑니다.

화면에 얼굴이 표시되고 뒤에 ZimaBoard 2가 보이는 조립된 Dr. Zola 터미널
조립된 터미널은 화면, 제어판, 상태 표시등 및 연결된 로컬 AI 하드웨어를 포함한 상태로 테스트됩니다.

기본 음성 vs Kokoro vs 최종 구성

음성 설정 주요 장점 주요 제한 사항 구성에서의 역할
기존 음성 모델 시연에서 더 빠른 음성 생성 초기 음성은 일반적인 느낌입니다 초기 테스트 및 최종 작동 터미널
Kokoro 더 자연스러운 음성 옵션 기록된 테스트에서 음성 생성 지연 시간이 약 9초 추가됩니다 음성 품질 실험
최종 통합 구성 더 빠른 음성에 캐릭터 프롬프트, 호출 문구 및 화면을 결합합니다 음성 품질과 응답 시간은 여전히 개선이 필요합니다 완성된 프로토타입 시연
청취, AI 응답 완료 및 지연된 오디오 재생을 보여 주는 타임라인
타임라인은 모델 응답 시간과 음성 재생을 위해 추가로 기다리는 시간을 구분하여 터미널의 전반적인 지연 시간을 설명하는 데 도움을 줍니다.

중요한 성능, 네트워크 및 동기화 제한 사항

완성된 대화는 부품들이 함께 작동할 수 있음을 보여 주지만, 모든 모델이나 설치 환경에서 응답 시간이 일정하다는 것을 입증하지는 않습니다. RelfWolf의 테스트는 통합 과정에서 상당한 작업이 추가될 수 있으며, 언어 모델이 답변을 완료한 후에도 음성 생성이 느리게 진행될 수 있음을 보여 줍니다.

  • 전체 대화를 측정하세요. 사용자는 답변을 듣기 전에 음성 인식, 모델 추론, 음성 생성이 완료되기를 기다립니다.
  • 에이전트에 할당된 작업을 확인하세요. 불필요한 스마트 홈 제어 정보가 이 특정 대화 설정에서 문제를 일으켰습니다.
  • 부하 상태에서 냉각을 모니터링하세요. 추가한 팬 덕분에 이후 테스트에서 보고된 온도가 60도 중반까지 낮아졌습니다.
  • 서버 주소를 일관되게 유지하세요. 네트워크 포트를 변경하면 터미널에서 사용하는 연결이 끊깁니다.
  • 애니메이션을 들리는 재생에 맞추세요. 초기 스피커 이벤트가 생성된 음성이 이미 재생 중이라는 뜻은 아니었습니다.
  • 지연 시간을 고려해 음성 품질을 선택하세요. RelfWolf는 최종 상호작용에 더 빠른 기존 모델을 선호했습니다.

로컬 AI 음성 단말기 문제 해결

조립 후 단말기가 작동하지 않으면 RelfWolf의 테스트 중 문제를 일으킨 다음 세 가지 연결을 동일하게 추적해 보세요.

  1. 특히 네트워크 케이블을 옮긴 후에는 Home Assistant가 여전히 올바른 Ollama 서버 주소를 가리키는지 확인하세요.
  2. 이전에 빠르던 모델이 느려지거나 예상치 못한 구조화된 출력을 반환하면 대화 에이전트 구성을 확인하세요.
  3. 얼굴이 스피커에서 소리가 나기 전에 움직이기 시작하면 오디오 및 재생 로그를 확인하세요.

또한 모델이 응답을 완료하는 시점과 실제로 오디오가 시작되는 시점을 비교해 보세요. 시연 로그에서는 이 두 지연이 서로 달랐습니다. 각 구성 요소를 독립적으로 테스트한 다음, 모든 부품을 케이스 안에 설치한 상태에서 완전한 음성 대화를 반복해 보세요.

컴팩트한 홈 서버가 가상의 단말기에 작동하는 음성을 더하다

RelfWolf의 프로젝트는 캐릭터에서 영감을 얻은 케이스를 작동하는 로컬 AI 인터페이스로 바꿉니다. 결과는 출력된 케이스뿐만 아니라 모델, 음성 파이프라인, 물리적 조작부, 디스플레이 사이의 연결에도 좌우됩니다.

ZimaBoard 2는 로컬 컴퓨팅 플랫폼을 제공하고, ZimaOS는 애플리케이션 관리를 지원하며, Home Assistant는 상호작용을 조정합니다. 가장 유용한 교훈은 테스트 중 적용한 변경 사항에서 얻을 수 있습니다. 대화 에이전트의 작업량을 줄이고, 네트워크 주소를 확인하고, 재생 타이밍을 수정하고, 더 빠른 음성 모델을 선택하는 과정입니다.

RelfWolf의 전체 Dr. Zola 제작 과정을 시청하며 제작, 디버깅, 최종 대화를 확인해 보세요. 마무리 평가에서는 케이스 수정, 더 나은 출력 품질, 음성 및 응답 시간 개선의 여지가 남아 있습니다.

로컬 AI를 실험하거나, 음성 단말기를 만들거나, Zima 하드웨어를 Home Assistant와 결합하고 있다면 ZimaSpace 커뮤니티를 방문해 현재 구성을 공유하고 다음에 개선하고 싶은 부분을 논의해 보세요.

지마 캠페인 허브

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.