Back to articles
Technology Insight

Tự Host OpenAI-Compatible Speech Gateway Với Whisper-live Và Kokoro-TTS Trên VPS 8GB RAM

May 30, 2026

Giới thiệu xu hướng tối ưu hóa chi phí AI Voice Gateway

Trong kỷ nguyên AI hiện nay, các tính năng chuyển đổi giọng nói thành văn bản (Speech-to-Text - STT) và văn bản thành giọng nói (Text-to-Speech - TTS) đã trở thành một phần không thể thiếu trong các ứng dụng thông minh, trợ lý ảo và hệ thống tổng đài tự động. Tuy nhiên, việc phụ thuộc hoàn toàn vào các API thương mại như OpenAI Audio, ElevenLabs hay Google Cloud Speech thường đi kèm với mức chi phí đắt đỏ khi quy mô sử dụng (scale) tăng lên, đồng thời dấy lên những lo ngại lớn về bảo mật dữ liệu nội bộ.

Giải pháp tối ưu nhất cho các doanh nghiệp và nhà phát triển hiện nay là tự host (self-host) một Speech Gateway riêng biệt. Bài viết này sẽ hướng dẫn bạn cách thiết lập một hệ thống Speech Gateway hoàn chỉnh, tương thích hoàn toàn với chuẩn API của OpenAI bằng cách kết hợp hai mô hình mã nguồn mở thế hệ mới cực kỳ mạnh mẽ: Whisper-live (cho STT tốc độ cao) và Kokoro-TTS (cho TTS chất lượng siêu thực). Toàn bộ hệ thống này được cấu hình tối ưu để vận hành mượt mà, ổn định trên một cấu hình phần cứng vô cùng tiết kiệm: VPS chỉ với 8GB RAM và hoàn toàn chạy trên CPU.

---

Tại sao chọn Whisper-live và Kokoro-TTS?

Việc triển khai các mô hình AI phục vụ âm thanh thường đòi hỏi phần cứng có GPU đắt tiền. Tuy nhiên, sự xuất hiện của các kiến trúc tối ưu hóa đã thay đổi cuộc chơi, giúp một VPS 8GB RAM phổ thông cũng có thể đảm nhận tốt vai trò này nhờ hai nhân tố chính:

1. Kokoro-TTS: Kẻ hủy diệt phân khúc siêu nhẹ

  • Kích thước siêu nhỏ: Với cấu trúc chỉ vỏn vẹn 82 triệu tham số (82M parameters) dựa trên kiến trúc StyleTTS 2, Kokoro-TTS tiêu tốn cực kỳ ít tài nguyên RAM và CPU.
  • Chất lượng vượt trội: Dù dung lượng nhỏ, chất lượng âm thanh đầu ra của Kokoro-TTS lại vô cùng tự nhiên, biểu cảm cao và không hề thua kém các mô hình nặng hàng tỷ tham số.
  • Tích hợp sẵn OpenAI Endpoint: Các image Docker hiện tại của Kokoro (như kokoro-fastapi) hỗ trợ giả lập trực tiếp endpoint /v1/audio/speech của OpenAI, giúp cắm là chạy với mọi thư viện client hiện có.

2. Whisper-live: Xử lý luồng âm thanh thời gian thực

  • Tối ưu hóa độ trễ: Thay vì bắt buộc gửi toàn bộ file âm thanh lớn và chờ đợi, Whisper-live cho phép stream dữ liệu âm thanh qua WebSocket hoặc chia nhỏ chunk để xử lý ngay lập tức.
  • Hỗ trợ đa ngôn ngữ chuyên sâu: Kế thừa sức mạnh từ OpenAI Whisper, mô hình có khả năng nhận diện tiếng Việt và các ngôn ngữ khác với độ chính xác cực cao, bất chấp môi trường có nhiều tiếng ồn hoặc tạp âm.
---

Chuẩn bị môi trường trên VPS 8GB RAM

Để đảm bảo hệ thống hoạt động ổn định và không bị crash do tràn RAM (Out of Memory), cấu hình VPS khuyến nghị cần đáp ứng:

Cấu hình tối thiểu: CPU 4 Cores (Intel/AMD hoặc ARM), 8GB RAM, 40GB SSD/NVMe dung lượng trống, hệ điều hành Ubuntu 22.04 LTS hoặc 24.04 LTS đã cài đặt sẵn Docker và Docker Compose.

Bước 1: Cấu hình phân vùng RAM ảo (Swap Space)

Trên VPS 8GB RAM, khi cả hai mô hình STT và TTS cùng khởi chạy và tải các file weights (trọng số) vào bộ nhớ, lượng RAM thực tế có thể tiệm cận mức giới hạn. Tạo Swap là bước bắt buộc để giữ hệ thống an toàn:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
---

Triển khai hệ thống bằng Docker Compose

Chúng ta sẽ sử dụng kiến trúc container hóa để gom cả hai dịch vụ vào chung một mạng nội bộ, đồng thời phơi bày một cổng Gateway duy nhất ra ngoài qua Reverse Proxy.

Tạo một thư mục dự án có tên speech-gateway và tạo file docker-compose.yml với nội dung cấu hình chi tiết dưới đây:

version: '3.8'

services:
  # Dịch vụ Text-to-Speech
  tts-service:
    image: ghcr.io/remsky/kokoro-fastapi-cpu:latest
    container_name: kokoro-tts
    ports:
      - "8880:8880"
    environment:
      - TZ=Asia/Ho_Chi_Minh
    volumes:
      - kokoro-cache:/kokoro/cache
    restart: unless-stopped

  # Dịch vụ Speech-to-Text
  stt-service:
    image: speaches-ai/speaches:latest
    container_name: whisper-live-stt
    ports:
      - "8000:8000"
    environment:
      - WHISPER_MODEL=base # Sử dụng bản 'base' hoặc 'small' để tối ưu trên CPU
      - LIVE_TRANSCRIPTION_ENABLED=true
    restart: unless-stopped

volumes:
  kokoro-cache:

Kích hoạt toàn bộ cụm dịch vụ bằng lệnh sau:

docker compose up -d

Lưu ý: Trong lần chạy đầu tiên, hệ thống sẽ mất vài phút để tải các container image và tự động pull bộ voicepack của Kokoro cũng như model weights của Whisper về phân vùng cache trên ổ đĩa.

---

Cấu hình Gateway tương thích OpenAI API định dạng chuẩn

Để các ứng dụng như AutoGen, LangChain, LlamaIndex hoặc các ứng dụng frontend tùy biến của bạn gọi trực tiếp mà không cần sửa code, chúng ta cần cấu hình một Reverse Proxy (như Nginx hoặc Caddy) để gom hai endpoint này về cùng một domain/IP thống nhất dưới dạng cấu trúc đường dẫn của OpenAI:

  • Định tuyến luồng phát âm thanh (TTS): /v1/audio/speech chuyển tiếp về cổng 8880.
  • Định tuyến luồng nhận diện (STT): /v1/audio/transcriptions chuyển tiếp về cổng 8000.

Ví dụ cấu hình ngược với Caddy đơn giản và tự động cấp mã hóa SSL:

speech.yourdomain.com {
    reverse_proxy /v1/audio/speech* http://localhost:8880
    reverse_proxy /v1/audio/transcriptions* http://localhost:8000
}
---

Kiểm tra và đánh giá hiệu năng thực tế

Khi hệ thống đã lên sóng, bạn có thể kiểm tra khả năng tương thích của hệ thống tự host bằng các đoạn mã chuẩn hóa của thư viện OpenAI SDK.

1. Kiểm tra tính năng Text-to-Speech (Kokoro-TTS)

Chạy đoạn mã Python dưới đây để kiểm tra khả năng tổng hợp giọng nói của Kokoro thông qua endpoint vừa thiết lập:

from openai import OpenAI

client = OpenAI(
    base_url="http://:8880/v1",
    api_key="not-needed-for-local"
)

response = client.audio.speech.create(
    model="tts-1",
    voice="am_eric", # Danh sách voice có sẵn trên trang chủ Kokoro
    input="Welcome to your self-hosted OpenAI compatible speech gateway. This is running completely on a cost-effective VPS."
)

response.stream_to_file("output_test.mp3")
print("Đã xuất file audio thành công!")

2. Đánh giá tài nguyên sử dụng trên VPS 8GB RAM

Khi kiểm tra bằng lệnh htop trong quá trình xử lý đồng thời (concurrency):

  • Trạng thái tĩnh (Idle): Hệ thống tiêu tốn khoảng 1.5GB - 2GB RAM, CPU dao động ở mức dưới 3%.
  • Khi TTS hoạt động: Khả năng xử lý của Kokoro-TTS cực kỳ ấn tượng nhờ mô hình 82M siêu nhẹ. RTF (Real-Time Factor) đạt dưới 1.0 trên các CPU thế hệ mới, nghĩa là việc tạo ra một đoạn audio 5 giây chỉ mất khoảng dưới 1.5 giây xử lý trên CPU, RAM tăng không đáng kể.
  • Khi STT hoạt động: Mô hình Whisper phiên bản base chiếm dụng thêm khoảng 1GB RAM. CPU sẽ đẩy lên cao (70-90% trên các nhân được phân bổ) trong thời gian ngắn khi tiến hành giải mã dữ liệu âm thanh (inference), nhưng hạ nhiệt ngay lập tức sau khi trả kết quả văn bản.
---

Kết luận và các lưu ý tối ưu bảo mật

Việc tự host một OpenAI-Compatible Speech Gateway sử dụng Whisper-live và Kokoro-TTS là giải pháp đột phá giúp bạn làm chủ hoàn toàn hạ tầng AI Voice của mình. Với mức chi phí vận hành VPS 8GB RAM cực kỳ rẻ, bạn đã có một hệ thống có độ trễ thấp, chất lượng cao và đặc biệt là bảo mật tuyệt đối dữ liệu âm thanh.

Trước khi đưa hệ thống vào môi trường production thực tế, hãy lưu ý thực hiện hai biện pháp bảo mật quan trọng sau:

  1. Cấu hình lớp bảo mật khóa API (API Key Authentication): Do các container mã nguồn mở này mặc định không tích hợp sẵn cơ chế kiểm tra quyền truy cập, hãy bổ sung một lớp xác thực token ở tầng Reverse Proxy (Nginx/Caddy) hoặc sử dụng các công cụ Gateway chuyên dụng như Kong hoặc Traefik nhằm ngăn chặn việc rò rỉ endpoint ra ngoài internet.
  2. Giới hạn tần suất yêu cầu (Rate Limiting): Do chạy hoàn toàn trên CPU của cấu hình VPS tầm trung, một cuộc tấn công từ chối dịch vụ (DoS) bằng chuỗi văn bản dài liên tục có thể làm nghẽn CPU hệ thống. Hãy thiết lập giới hạn số lượng request per minute (RPM) hợp lý đối với từng IP client để đảm bảo tính sẵn sàng cao nhất cho toàn bộ hệ thống.
Tự Host OpenAI-Compatible Speech Gateway Với Whisper-live Và Kokoro-TTS Trên VPS 8GB RAM | DPTCloud