0

Tổng đài AI hoạt động như thế nào? Mổ xẻ kiến trúc VAD – STT – LLM – TTS

Mở đầu

Nếu vài năm trước "tổng đài tự động" chỉ có nghĩa là IVR kiểu "Bấm phím 1 để gặp bộ phận kinh doanh, bấm phím 2 để…", thì nay khách hàng có thể nói chuyện tự nhiên với một tổng đài AI (AI Voicebot / Voice Agent): hỏi gì đáp nấy, ngắt lời giữa chừng, đổi ý, thậm chí được chuyển sang nhân viên thật khi cần.

Trong bài này, mình sẽ mổ xẻ kiến trúc của một tổng đài AI hiện đại dưới góc nhìn kỹ thuật: dữ liệu âm thanh đi qua những thành phần nào, độ trễ nằm ở đâu, và những bài toán thực tế khi triển khai cho doanh nghiệp Việt Nam.

1. Tổng đài truyền thống (IVR) khác gì tổng đài AI?

Tiêu chí IVR truyền thống Tổng đài AI
Cách tương tác Bấm phím (DTMF), menu cố định Nói tự nhiên
Kịch bản Cây menu cứng Hiểu ý định, hội thoại linh hoạt
Xử lý câu hỏi ngoài kịch bản Không Có (trong phạm vi tri thức được cấp)
Tích hợp dữ liệu Hạn chế Tra cứu CRM, đơn hàng, lịch hẹn theo thời gian thực
Trải nghiệm Dễ khiến khách "bỏ máy" Gần với nói chuyện cùng người thật

Điểm mấu chốt: IVR điều hướng cuộc gọi, còn tổng đài AI giải quyết cuộc gọi.

2. Kiến trúc tổng quan

Một tổng đài AI điển hình là một pipeline gồm các khối sau:

Khách hàng ──(PSTN/SIP)──► Telephony / SIP Trunk
                                 │  audio stream (RTP / WebSocket)
                                 ▼
                         ┌──────────────┐
                         │  VAD + STT   │  ← nhận diện giọng nói
                         └──────┬───────┘
                                │ text
                                ▼
                         ┌──────────────┐     ┌───────────────┐
                         │  LLM / NLU   │◄───►│ Tools / RAG    │
                         │  (Dialog)    │     │ CRM, KB, API   │
                         └──────┬───────┘     └───────────────┘
                                │ text
                                ▼
                         ┌──────────────┐
                         │     TTS      │  ← tổng hợp giọng nói
                         └──────┬───────┘
                                │ audio
                                ▼
                         Telephony ──► Khách hàng

2.1. Telephony layer

Đây là phần "nối dây" với mạng điện thoại:

  • SIP Trunk / Hotline từ nhà mạng hoặc nhà cung cấp tổng đài ảo.
  • Media server (Asterisk, FreeSWITCH, hoặc dịch vụ cloud) để nhận luồng âm thanh RTP.
  • Luồng audio thường được chuyển thành stream qua WebSocket tới backend AI, định dạng phổ biến là PCM 16-bit, 8 kHz (điện thoại) hoặc 16 kHz.

Lưu ý: audio điện thoại 8 kHz có chất lượng thấp hơn nhiều so với micro thông thường. Mô hình STT cần được huấn luyện/tinh chỉnh cho dữ liệu telephony thì mới cho độ chính xác tốt.

2.2. VAD – Voice Activity Detection

VAD trả lời câu hỏi: "Khách đang nói hay đang im lặng?". Nghe đơn giản nhưng đây là thành phần quyết định cảm giác "tự nhiên":

  • Ngắt quá sớm → bot chen ngang khi khách mới dừng để thở.
  • Ngắt quá muộn → bot phản hồi chậm, khách tưởng cuộc gọi bị treo.

Các hệ thống tốt kết hợp VAD âm học với phát hiện kết thúc lượt nói (end-of-turn detection) dựa trên ngữ nghĩa: câu "Cho tôi hỏi là…" rõ ràng chưa kết thúc dù khách đang ngập ngừng.

2.3. STT – Speech to Text

STT chuyển giọng nói thành văn bản. Với tiếng Việt, các thách thức chính:

  • Phương ngữ Bắc – Trung – Nam, giọng địa phương.
  • Từ chuyên ngành, tên riêng, mã đơn hàng (ví dụ "BF-20391", tên sản phẩm tiếng Anh).
  • Nhiễu nền khi khách gọi ngoài đường.

Mẹo thực tế: dùng streaming STT (trả kết quả từng phần) thay vì chờ khách nói xong mới nhận dạng, và bổ sung từ điển gợi ý (hotword / custom vocabulary) cho tên thương hiệu, sản phẩm.

2.4. LLM / Dialog Manager – "bộ não"

Đây là nơi thay đổi lớn nhất so với thế hệ chatbot cũ. Thay vì phân loại intent cứng, LLM có thể:

  • Hiểu câu nói tự nhiên, kể cả nói vòng vo.
  • Duy trì ngữ cảnh nhiều lượt.
  • Gọi tool/function để tra cứu: kiểm tra đơn hàng, đặt lịch, tạo ticket.
  • Trả lời dựa trên RAG (Retrieval-Augmented Generation) từ kho tri thức của doanh nghiệp: chính sách bảo hành, bảng giá, FAQ.

Ví dụ một định nghĩa tool đơn giản:

{
  "name": "tra_cuu_don_hang",
  "description": "Tra cứu trạng thái đơn hàng theo mã đơn hoặc số điện thoại",
  "parameters": {
    "type": "object",
    "properties": {
      "ma_don": { "type": "string" },
      "so_dien_thoai": { "type": "string" }
    }
  }
}

Khi khách hỏi "Đơn của tôi giao tới đâu rồi?", LLM sẽ hỏi lại mã đơn (nếu thiếu), gọi tool, rồi diễn đạt kết quả thành câu nói tự nhiên.

Prompt cho voice khác prompt cho chat: câu trả lời phải ngắn, không dùng markdown, không liệt kê dài dòng, số điện thoại/số tiền phải được viết sao cho TTS đọc đúng.

2.5. TTS – Text to Speech

TTS biến câu trả lời thành giọng nói. Tiêu chí chọn TTS cho tổng đài:

  • Độ tự nhiên của giọng tiếng Việt, ngữ điệu, dấu thanh.
  • Streaming: phát âm thanh ngay khi có câu đầu tiên, không chờ cả đoạn.
  • Chuẩn hóa văn bản (text normalization): "15/11" đọc là "ngày mười lăm tháng mười một", "2.500.000đ" đọc là "hai triệu năm trăm nghìn đồng".

3. Bài toán độ trễ (latency) – kẻ thù số 1

Trong hội thoại giữa người với người, khoảng lặng giữa hai lượt nói thường rất ngắn. Bot phản hồi chậm hơn vài giây là khách sẽ thấy "sượng".

Tổng độ trễ ≈ VAD (chờ kết thúc lượt) + STT + LLM (thời gian ra token đầu) + TTS (thời gian ra audio đầu) + mạng.

Một số kỹ thuật giảm độ trễ:

  1. Streaming toàn bộ pipeline: STT streaming → LLM streaming → TTS streaming theo từng câu.
  2. Đặt hạ tầng gần người dùng: chọn region cloud gần Việt Nam, giảm round-trip.
  3. Dùng model LLM vừa đủ: model lớn chưa chắc tốt hơn cho tác vụ hẹp; cân bằng giữa chất lượng và tốc độ.
  4. Câu đệm (filler): "Dạ, anh chờ em kiểm tra một chút nhé" trong lúc gọi tool chậm.
  5. Cache các câu trả lời phổ biến (giờ làm việc, địa chỉ) và audio TTS tương ứng.

4. Barge-in: cho phép khách ngắt lời

Người thật hay ngắt lời: "Ừ ừ biết rồi, thế còn…". Tổng đài AI cần:

  • Lắng nghe song song ngay cả khi đang phát TTS.
  • Khi phát hiện khách nói, dừng phát audio ngay, hủy phần câu trả lời chưa đọc.
  • Cập nhật ngữ cảnh: bot chỉ "đã nói" tới đoạn bị ngắt, không phải toàn bộ câu.

Thiếu barge-in, trải nghiệm sẽ quay về cảm giác của IVR cũ.

5. Chuyển máy cho nhân viên (Human handoff)

AI không nên cố xử lý mọi thứ. Thiết kế tốt cần quy tắc chuyển máy rõ ràng:

  • Khách yêu cầu gặp người thật.
  • Khách bực bội (phát hiện qua nội dung hoặc lặp lại nhiều lần).
  • Nghiệp vụ nhạy cảm: khiếu nại, hoàn tiền giá trị lớn.
  • Bot không đủ tự tin với câu trả lời.

Khi chuyển, hãy gửi kèm tóm tắt cuộc hội thoại cho nhân viên để khách không phải kể lại từ đầu.

6. Ứng dụng thực tế

  • Chăm sóc khách hàng 24/7: tra cứu đơn, bảo hành, giờ mở cửa.
  • Gọi ra (outbound): nhắc lịch hẹn, xác nhận đơn hàng COD, khảo sát sau mua.
  • Đặt lịch: phòng khám, spa, garage ô tô.
  • Sàng lọc lead: hỏi nhu cầu cơ bản rồi chuyển cho sale phù hợp.

7. Checklist trước khi triển khai

  • [ ] Xác định rõ 5–10 kịch bản chiếm phần lớn cuộc gọi, bắt đầu từ đó.
  • [ ] Chuẩn bị kho tri thức sạch, cập nhật (chính sách, giá, FAQ).
  • [ ] Kiểm thử STT với giọng thật của khách hàng, nhiều vùng miền.
  • [ ] Đo độ trễ end-to-end trên đường điện thoại thật, không chỉ trên môi trường dev.
  • [ ] Thiết kế luồng chuyển máy và thông báo minh bạch cho khách rằng họ đang nói chuyện với trợ lý AI.
  • [ ] Ghi âm, lưu transcript (tuân thủ quy định về dữ liệu cá nhân) để đánh giá và cải thiện liên tục.
  • [ ] Theo dõi các chỉ số: tỷ lệ tự giải quyết, tỷ lệ chuyển máy, thời lượng cuộc gọi, mức độ hài lòng.

Kết luận

Tổng đài AI không phải là một mô hình đơn lẻ mà là một pipeline thời gian thực ghép từ telephony, VAD, STT, LLM, TTS và các tích hợp nghiệp vụ. Chất lượng cuối cùng phụ thuộc vào khâu yếu nhất, và thường "nút thắt" lại nằm ở độ trễ và khả năng nhận diện tiếng Việt qua đường điện thoại, chứ không chỉ ở việc LLM thông minh đến đâu.

Ở các bài tiếp theo, mình sẽ đi sâu hơn vào từng phần: cách đo và tối ưu latency, thiết kế prompt cho voice agent, và cách triển khai hạ tầng cloud cho tổng đài AI. Nếu bạn quan tâm chủ đề nào trước, hãy để lại bình luận nhé!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí