Vì sao độ trễ quyết định thành bại của Voice AI

Các nghiên cứu ngôn ngữ học về luân phiên lượt lời (turn-taking) cho thấy khoảng lặng trung bình giữa hai lượt nói trong hội thoại tự nhiên chỉ khoảng 200 mili-giây, gần như không phụ thuộc vào ngôn ngữ. Khi khoảng lặng vượt quá một giây, người nghe bắt đầu nghi ngờ: “Alo, còn nghe không?”. Với tổng đài, mỗi lần khách phải hỏi lại câu đó là một lần trải nghiệm bị phá vỡ.

Một pipeline Voice AI ngây thơ hoạt động tuần tự: đợi khách nói xong, gửi toàn bộ âm thanh đi nhận dạng, đợi văn bản, gửi cho LLM, đợi câu trả lời hoàn chỉnh, rồi mới tổng hợp giọng nói. Tổng độ trễ dễ dàng lên tới 3–5 giây. Kiến trúc tổng đài Voice AI của BEEDONI đi theo hướng ngược lại: mọi khâu đều streaming và chồng lấn (pipelining), để tổng độ trễ cảm nhận được nén xuống mục tiêu dưới 700ms.

KhâuPipeline tuần tựPipeline streaming (mục tiêu)
Phát hiện khách ngừng nói (endpointing)800–1.200ms250–350ms
Nhận dạng tiếng nói (ASR)500–1.500msGần 0 (đã chạy song song khi khách nói)
Mô hình ngôn ngữ (token đầu tiên)1.000–3.000ms150–300ms
Tổng hợp giọng nói (gói âm thanh đầu)300–800ms80–150ms
Tổng cảm nhận3–5 giâyDưới 700ms

Tầng 1. Media Gateway: SIP, WebRTC và codec

Cuộc gọi từ mạng điện thoại đi vào qua SIP trunk của nhà mạng, mã hóa bằng codec G.711 (PCMU/PCMA) ở tần số lấy mẫu 8kHz. Cuộc gọi từ website hoặc ứng dụng đi qua WebRTC với codec Opus, băng thông rộng 16–48kHz. Media Gateway có nhiệm vụ chuẩn hóa mọi luồng về PCM 16-bit, 16kHz, mono, định dạng mà mô hình ASR được huấn luyện.

Âm thanh được cắt thành các khung (frame) 20ms và truyền qua giao thức RTP. Kỹ thuật jitter buffer thích ứng cân bằng giữa độ trễ và độ mượt: buffer quá ngắn gây giật tiếng khi mạng 4G dao động, buffer quá dài cộng thêm độ trễ không cần thiết. Thuật toán Packet Loss Concealment nội suy các khung bị mất để mô hình nhận dạng không bị “hụt chữ”.

Tầng 2. VAD và Endpointing: biết khi nào khách nói xong

Voice Activity Detection (VAD) chạy trên từng khung 20ms để phân loại: tiếng nói hay không phải tiếng nói. VAD dựa trên năng lượng đơn giản dễ bị đánh lừa bởi tiếng xe máy, tiếng điều hòa hay tiếng ồn quán cà phê, rất phổ biến trong cuộc gọi tại Việt Nam. Vì vậy, BEEDONI dùng VAD mạng nơ-ron nhỏ gọn chạy trên CPU, với độ trễ suy luận dưới 1ms mỗi khung.

Thách thức thực sự là endpointing: phân biệt khách ngừng nói vì đã hết ý hay chỉ đang ngập ngừng suy nghĩ (“ờ… để anh xem…”). Ngưỡng im lặng cố định là không đủ. Hệ thống kết hợp tín hiệu âm học (cao độ giảm dần ở cuối câu) với tín hiệu ngữ nghĩa từ bản nhận dạng tạm thời: câu “cho anh đặt lịch vào” rõ ràng chưa hoàn chỉnh, trong khi “cho anh đặt lịch sáng mai nhé” thì đã hoàn chỉnh. Cách tiếp cận semantic endpointing này giúp rút ngắn đáng kể thời gian chờ mà không cắt ngang lời khách.

Tầng 3. Streaming ASR cho tiếng Việt

Tiếng Việt là ngôn ngữ đơn lập, có thanh điệu với 6 thanh (ngang, huyền, sắc, hỏi, ngã, nặng). Cùng một chuỗi âm “ma” mang sáu nghĩa khác nhau tùy thanh điệu, và thanh hỏi, thanh ngã gần như hòa làm một trong giọng miền Nam. Thêm vào đó là sự đa dạng phương ngữ Bắc, Trung, Nam, hiện tượng chêm tiếng Anh (code-switching) như “book lịch”, “check giá”, “ship COD”, và rất nhiều tên riêng: tên dự án, tên bác sĩ, tên sản phẩm.

Kiến trúc Conformer với RNN-Transducer

Mô hình ASR streaming hiện đại thường dùng bộ mã hóa Conformer, kết hợp self-attention (nắm bắt ngữ cảnh dài) với convolution (nắm bắt đặc trưng âm học cục bộ), đầu vào là đặc trưng log-Mel filterbank 80 chiều. Đầu ra được giải mã bằng RNN-Transducer (RNN-T), kiến trúc cho phép phát ra từng token ngay khi đủ bằng chứng, thay vì chờ hết câu như mô hình attention-based encoder-decoder truyền thống.

Để streaming, self-attention được giới hạn trong một cửa sổ ngữ cảnh có độ nhìn trước (look-ahead) nhỏ, thường vài trăm mili-giây. Đây là đánh đổi kinh điển: look-ahead lớn cho độ chính xác cao hơn nhưng tăng độ trễ. Hệ thống trả về partial hypothesis liên tục khi khách đang nói, và final hypothesis khi endpointing xác nhận hết câu.

Contextual biasing cho tên riêng và thuật ngữ ngành

Mô hình tổng quát rất khó nhận đúng “Vinhomes Grand Park”, “The Rainbow” hay tên một loại implant nha khoa. Kỹ thuật contextual biasing (shallow fusion với danh sách cụm từ ưu tiên, hoặc biasing dựa trên cây tiền tố trong beam search) tăng xác suất cho các thuật ngữ thuộc kho tri thức của từng doanh nghiệp. Danh sách này được trích tự động từ tài liệu sản phẩm mà doanh nghiệp tải lên BEEDONI.

Tầng 4. Mô hình ngôn ngữ: suy nghĩ nhanh, nói ngắn

Câu trả lời cho kênh thoại khác hẳn câu trả lời cho kênh chat. Khách không thể “lướt” một đoạn văn bằng tai; họ cần câu ngắn, một ý mỗi lượt, và lời mời phản hồi rõ ràng. Vì vậy, prompt hệ thống cho Voice AI được thiết kế riêng: tối đa hai câu mỗi lượt, không dùng ký hiệu, đọc số theo cách người Việt nói (“bốn tỷ ba” thay vì “4,3 tỷ”).

Về hiệu năng, chỉ số quan trọng nhất là Time To First Token (TTFT). Các kỹ thuật được áp dụng gồm prompt caching cho phần ngữ cảnh cố định (thông tin doanh nghiệp, chính sách), speculative decoding để tăng tốc sinh token, và gọi song song truy vấn tri thức (RAG) ngay từ partial hypothesis của ASR, trước khi khách nói xong.

Tầng 5. Tổng hợp giọng nói tự nhiên theo ngữ điệu Việt

Pipeline TTS gồm hai phần. Acoustic model chuyển văn bản (đã chuẩn hóa: số, đơn vị, viết tắt) thành mel-spectrogram, mã hóa cả cao độ, trường độ và năng lượng của từng âm tiết. Neural vocoder như HiFi-GAN chuyển mel-spectrogram thành dạng sóng âm thanh, với tốc độ suy luận nhanh hơn thời gian thực nhiều lần trên GPU.

Với tiếng Việt, đường nét cao độ (F0 contour) của từng thanh điệu phải được mô hình hóa chính xác: thanh ngã có điểm gãy giữa âm tiết, thanh nặng có hiện tượng thanh quản hóa ở cuối. Sai một chút, giọng nói lập tức nghe “như người nước ngoài”. Ngoài ra, ngữ điệu câu hỏi, câu xác nhận và câu cảm ơn cần được điều khiển riêng để giọng không đều đều như đọc tin.

Để giảm độ trễ, văn bản từ LLM được cắt theo ranh giới cụm ngữ điệu (dấu phẩy, dấu chấm) và tổng hợp từng đoạn ngắn. Gói âm thanh đầu tiên có thể phát chỉ sau một cụm vài từ, trong khi phần còn lại của câu vẫn đang được sinh.

Full-Duplex và Barge-in: cho phép khách ngắt lời

Trong hội thoại thật, khách thường ngắt lời: “À thôi, cho chị đổi sang chiều nhé”. Một hệ thống half-duplex sẽ tiếp tục đọc hết câu trả lời cũ, khiến khách bực bội. Barge-in đòi hỏi hệ thống vừa phát vừa nghe, tức hoạt động full-duplex.

  1. Acoustic Echo Cancellation (AEC): loại bỏ chính giọng của AI bị dội lại qua micro của khách, nếu không VAD sẽ tưởng AI đang tự ngắt lời mình.
  2. VAD song song trên luồng âm thanh đã khử vọng, với ngưỡng cao hơn để tránh kích hoạt bởi tiếng “dạ”, “vâng” mang tính phản hồi (backchannel).
  3. Dừng phát trong vòng vài chục mili-giây khi xác nhận có ngắt lời, đồng thời hủy các token LLM và đoạn TTS chưa phát.
  4. Cập nhật ngữ cảnh: ghi lại AI đã nói tới đâu, để lượt tiếp theo không lặp lại phần khách đã nghe.

Kết thúc cuộc gọi: từ âm thanh tới dữ liệu CRM

Giá trị của một cuộc gọi không dừng ở lúc gác máy. Sau mỗi cuộc gọi, BEEDONI tạo bản ghi âm, bản chép lời có phân vai (speaker diarization), tóm tắt nhu cầu, trích xuất thực thể (tên, số điện thoại, ngày giờ hẹn, sản phẩm quan tâm) và đồng bộ trực tiếp vào Bee CRM hoặc CRM doanh nghiệp đang dùng. Nhân viên kinh doanh nhận được một lead đã được làm sạch, không cần nghe lại toàn bộ cuộc gọi.

“Một tổng đài Voice AI tốt không phải là cỗ máy đọc kịch bản. Nó phải biết lắng nghe, biết im lặng đúng lúc và biết nhường lời, như một tư vấn viên có kinh nghiệm.”

Kết luận

Voice AI tiếng Việt là bài toán liên ngành: xử lý tín hiệu số, học sâu, ngôn ngữ học và kỹ thuật hệ thống thời gian thực. Mỗi khâu chỉ cần chậm thêm vài trăm mili-giây là trải nghiệm tổng thể sụp đổ. BEEDONI được xây dựng bởi đội ngũ có nền tảng nghiên cứu STT/TTS để giải quyết đúng những điểm khó đó, mang tới doanh nghiệp Việt một Tổng đài Voice AI hoạt động 24/7 với giọng nói tự nhiên và khả năng hội thoại thật.