AI & Automation (vnROM)

Cover image for Local Voice AI: "Trợ lý ảo" chạy local với Ollama, Kokoro, Whisper và LiveKit
Duy Nghiện
Duy Nghiện

Posted on

Local Voice AI: "Trợ lý ảo" chạy local với Ollama, Kokoro, Whisper và LiveKit

Hello 👋

Nếu anh em đã chán ngấy việc các trợ lý ảo như Siri hay Google Assistant lúc nào cũng cần internet, hoặc đơn giản là lo ngại vấn đề dữ liệu riêng tư bị gửi lên "đám mây", thì hôm nay mình mang đến một đồ chơi mới cực kỳ hay.

Đó là Local Voice AI – một hệ thống AI giọng nói hoạt động 100% offline trên máy tính của bạn. Dự án này kết hợp những công nghệ mã nguồn mở xịn xò nhất hiện nay để tạo ra một trải nghiệm giao tiếp thời gian thực cực mượt, không hề tốn một xu phí API nào.


1. Local Voice AI là gì? Tại sao nên dùng?

Local Voice AI là một giải pháp full-stack giúp bạn xây dựng một trợ lý giọng nói thông minh. Điểm đặc biệt là nó sử dụng LiveKit để xử lý luồng âm thanh thời gian thực, giúp độ trễ (latency) cực thấp – cảm giác nói chuyện như người thật chứ không bị "lag" như các chat bot thông thường.

Lợi ích cốt lõi:

  • Riêng tư tuyệt đối: Dữ liệu giọng nói và văn bản nằm gọn trong ổ cứng của bạn.
  • Hoàn toàn miễn phí: Không tốn tiền mua token OpenAI hay API key.
  • Tốc độ: Chạy local qua mạng LAN nên phản hồi cực nhanh (phụ thuộc vào phần cứng).
  • Tùy biến cao: Thích đổi giọng "em gái anime" hay "MC thời sự" đều được nhờ Kokoro TTS.

2. Giải mã công nghệ bên trong

Để hệ thống này chạy mượt mà, nó phối hợp 4 "bộ phận" sau đây:

Ollama (Bộ não)

Đây là công cụ quản lý mô hình ngôn ngữ lớn (LLM) cục bộ hot nhất hiện nay. Trong dự án này, Ollama sẽ chạy các model nhẹ như Llama 3, Gemma 2 hoặc Qwen để xử lý tư duy và trả lời câu hỏi của bạn.

Kokoro (Giọng nói)

Một ngôi sao mới nổi trong làng Text-to-Speech (TTS). Kokoro chỉ nặng khoảng 82M tham số nhưng chất lượng giọng đọc cực kỳ tự nhiên, ăn đứt mấy giọng "chị Google" cũ kỹ. Nó hỗ trợ tiếng Anh rất tốt và đang cập nhật thêm nhiều ngôn ngữ.

Whisper (Đôi tai)

Sử dụng mô hình Whisper của OpenAI (chạy qua VoxBox hoặc Faster-Whisper) để chuyển đổi giọng nói của bạn thành văn bản (Speech-to-Text) với độ chính xác cực cao, kể cả khi bạn nói tiếng Anh "bồi".

LiveKit (Hệ thống thần kinh)

Đây là mảnh ghép quan trọng nhất. LiveKit là một server WebRTC giúp kết nối luồng âm thanh (audio stream) giữa Micro, Loa và các model AI theo thời gian thực (Real-time). Nó giúp việc "ngắt lời" AI hoặc đàm thoại song công (duplex) trở nên mượt mà.


3. Hướng dẫn cài đặt chi tiết

Anh em chuẩn bị đồ nghề nhé. Kèo này yêu cầu máy cấu hình tầm trung trở lên mới "gánh" nổi.

Yêu cầu hệ thống

  • OS: Windows 10/11 (khuyên dùng WSL2), MacOS hoặc Linux (Ubuntu).
  • RAM: Tối thiểu 16GB (để chạy mượt cả Docker + LLM). 8GB sẽ rất lag.
  • CPU: Chip đời mới hỗ trợ AVX2.
  • GPU (Khuyến nghị): NVIDIA RTX với VRAM 6GB+ (nếu chạy CPU thì vẫn được nhưng phản hồi sẽ chậm hơn).
  • Phần mềm: Đã cài sẵn Docker DesktopGit.

Các bước thực hiện

Bước 1: Cài đặt Docker

Nếu chưa có Docker, anh em tải về tại trang chủ Docker và cài đặt. Lưu ý với Windows: Nhớ bật tính năng WSL2 Integration trong setting của Docker Desktop để hiệu năng tốt nhất.

Bước 2: Clone Source Code

Mở Terminal (hoặc CMD/PowerShell/Git Bash), gõ lệnh sau để tải source về:

git clone https://github.com/ShayneP/local-voice-ai.git
cd local-voice-ai
Enter fullscreen mode Exit fullscreen mode

Bước 3: Cấu hình môi trường

Trong thư mục vừa tải về, anh em sẽ thấy các file .env.example. Dự án này đã được đóng gói sẵn trong Docker Compose nên phần lớn config là tự động. Tuy nhiên, nếu muốn chỉnh model Ollama cụ thể (ví dụ đổi từ Llama3 sang Gemma2), anh em có thể sửa file docker-compose.yml hoặc các file config trong thư mục agent.

Mẹo: Mặc định dự án thường dùng model llama3:8b. Nếu máy yếu, anh em nên đổi thành llama3.2:3b hoặc qwen2:1.5b trong code agent để chạy nhanh hơn.

Bước 4: Khởi chạy (The Magic Button)

Tác giả đã viết sẵn một script để build và chạy tất cả.

  • Trên Linux/Mac/WSL:
    Chạy lệnh sau:

    ./test.sh
    

    Script này sẽ tự động: Xóa container cũ -> Build lại image -> Khởi động toàn bộ stack.

  • Trên Windows (không dùng WSL):
    Anh em chạy lệnh thủ công bằng Docker Compose:

    docker-compose up --build
    

Bước 5: Tải Model cho Ollama

Lần đầu chạy, Ollama sẽ cần tải model về. Nếu nó không tự tải, anh em mở một terminal khác và gõ:

docker exec -it ollama ollama pull llama3
Enter fullscreen mode Exit fullscreen mode

(Thay llama3 bằng model anh em muốn dùng).


4. Chạy thử và Trải nghiệm

Sau khi màn hình terminal chạy một loạt dòng code và dừng lại ở trạng thái ổn định, anh em mở trình duyệt và truy cập:

👉 http://localhost:3000

Giao diện web sẽ hiện ra. Bấm nút Connect (hoặc biểu tượng Micro), cấp quyền truy cập Microphone và bắt đầu nói "Hello".

  • Lúc này: Whisper sẽ nghe bạn -> Gửi text cho Ollama suy nghĩ -> Ollama trả lời text -> Kokoro đọc text đó lên -> Bạn nghe thấy tiếng nói.
  • Screenshot Placeholder: [Ảnh chụp màn hình giao diện web Local Voice AI với sóng âm thanh đang hoạt động]

5. Các lỗi thường gặp (Troubleshooting)

  1. Lỗi "Docker daemon is not running":
    • Kiểm tra xem Docker Desktop đã bật chưa.
  2. Máy quá lag, quạt rú ầm ầm:
    • Kiểm tra Task Manager. Nếu RAM đỏ lòm, hãy thử giảm model LLM xuống các dòng 1.5b hoặc 3b parameter.
    • Tắt bớt các tab Chrome không cần thiết.
  3. Không nghe thấy tiếng:
    • Kiểm tra xem đã chọn đúng Output Device trên máy tính chưa.
    • F12 trên trình duyệt xem có lỗi WebRTC không.

Dự án Local Voice AI này là một minh chứng cho thấy sức mạnh của cộng đồng mã nguồn mở. Không cần server khủng, không cần tốn tiền, chúng ta vẫn có thể tự build một Jarvis cho riêng mình ngay tại nhà.

Anh em đã cài thử chưa? Có gặp lỗi gì không hay có ý tưởng tích hợp nó vào Smart Home không? Hãy để lại comment bên dưới để cùng thảo luận nhé! 👇

Top comments (0)