Voice AgentsRealtime AISTTTTS

Xây dựng AI voice agent: hướng dẫn lập trình viên (2026)

1 phút đọc

800 mili giây. Đó là khoảng cách giữa “một cuộc gọi điện” và “một ticket hỗ trợ” — và nó là một ngân sách cần được thiết kế, không phải một thước đo để ngưỡng mộ. Đây là ngân sách, phép toán build-vs-buy, và sàn tuân thủ, trước khi bạn chọn một nhà cung cấp nào.

Xây dựng AI voice agent là mảng phát triển nhanh nhất của lĩnh vực agent, và cũng là mảng được ghi chép tệ nhất. Gần như mọi hướng dẫn trên mạng đều là tutorial của nhà cung cấp — Vapi, Retell, LiveKit, Pipecat mỗi cái giải thích cách dùng nền tảng của họ — và không cái nào trả lời những câu hỏi quyết định kết quả production: ngân sách độ trễ end-to-end của bạn thực sự là bao nhiêu, mỗi phút tốn bao nhiêu qua các stack, và liệu build có thắng buy không.

Hướng dẫn này là lớp trung lập: kiến trúc thành phần (STT → LLM → TTS) với việc chọn nhà cung cấp để lại cho bạn, phép toán ngân sách độ trễ biến “cảm giác chậm” thành một bảng tính, một mô hình chi phí mỗi phút áp dụng được cho bất kỳ stack nào, và danh sách kiểm tra tuân thủ giữ cho toàn bộ hợp pháp. So sánh TTS và STT trong loạt bài này bao quát việc chọn nhà cung cấp; bài này bao quát kiến trúc gắn kết chúng lại với nhau.

Voice agent thực sự là gì

Điểm chính: một voice agent là một chat agent cộng một lớp voice I/O — và lớp voice, không phải LLM, mới là nơi tập trung độ khó của production.

Bỏ lớp marketing đi, kiến trúc chỉ là ba thành phần trong một vòng lặp:

Audio in → STT (speech to text) → LLM (decide & respond) → TTS (text to speech) → Audio out
                ↑                                                              |
                └────────────── interruption / barge-in handling ←────────────┘

LLM ở giữa là cùng một model mà sản phẩm chat của bạn dùng — phần đó bạn đã biết. Thứ làm voice agent khó là mọi thứ xung quanh nó: nhận dạng giọng nói theo thời gian thực, quyết định khi nào phản hồi (turn-taking), dừng phản hồi khi người gọi ngắt lời, và giữ tất cả trong một ngân sách độ trễ mà giao diện văn bản chưa bao giờ phải đáp ứng. Người dùng chat chịu được chờ hai giây; người gọi điện diễn giải nó như một hệ thống hỏng.

Một quan niệm sai khác cần dẹp sớm: voice agent không phải một chatbot gắn thêm micro. Nó là một hệ thống realtime với audio làm giao diện, và nó cần kỷ luật của một hệ thống realtime — đó cũng là lý do kiến trúc chatbot hỗ trợ bạn đã biết vẫn áp dụng cho mọi thứ phía trên lớp voice.

Vì sao voice AI trong production lại khác

Điểm chính: ba ràng buộc tách voice khỏi mọi workload agent khác — độ trễ, ngắt lời và chi phí mỗi phút.

  1. Độ trễ chính là sản phẩm. Hội thoại của con người chịu được khoảng 800ms end-to-end trước khi cảm giác sai, và dưới 500ms cảm giác tự nhiên — quy ước chung của ngành được ghi chép kỹ trong phân tích ngân sách độ trễ của Twig. Một text API trả về trong 2 giây là ổn; một voice agent phản hồi trong 2 giây là hỏng. Mọi thành phần đều đóng góp vào ngân sách đó, nên mọi thành phần đều phải được đo.
  2. Ngắt lời là một tính năng. Barge-in — người gọi nói đè lên agent — phải dừng TTS giữa câu, khởi động lại STT lắng nghe, và lập kế hoạch lại phản hồi LLM. Các nền tảng xử lý nó một cách native đáng giá thật tiền; các triển khai bỏ qua nó tạo ra những agent nói đè lên khách hàng, đó là con đường nhanh nhất dẫn đến yêu cầu hoàn tiền.
  3. Chi phí tính theo phút, không theo token. Một cuộc hội thoại voice đốt giây STT, token LLM và ký tự TTS đồng thời, cho mỗi phút của mỗi cuộc gọi. Mô hình chi phí mỗi phút bên dưới là con số đầu tiên đội tài chính của bạn sẽ hỏi.

Cách chọn: Build vs Buy

Điểm chính: mua nền tảng khi voice chỉ là một tính năng; tự build stack khi voice là sản phẩm — và thị trường 2026 đã làm cả hai lựa chọn rẻ đi đáng kể.

Tầng nền tảng — Vapi, Retell, LiveKit Agents, Pipecat và các tay chơi mới — đã phát triển thành một lựa chọn thực sự: telephony được quản lý, turn-taking, barge-in và bộ công cụ đánh giá sẵn có ngay từ đầu, tính phí theo phút. Cuộc chiến giá 2026 khiến việc bắt đầu thực sự rẻ: xAI gia nhập với một trình xây dựng voice agent ở mức $0.05 mỗi phút, phá giá các nền tảng đã có mặt, và sản phẩm agent của ElevenLabs khởi điểm khoảng $0.08 mỗi phút. Nếu công ty bạn cần một đường dây điện thoại biết nói chuyện với khách hàng, và voice là một kênh hỗ trợ chứ không phải bản thân sản phẩm, hãy mua — phần chênh lệch giá nền tảng mua cho bạn việc xử lý ngắt lời và tích hợp telephony mà nếu không bạn sẽ phải tự xây trong nhiều tháng.

Hãy build stack thành phần khi voice là yếu tố tạo khác biệt: bạn cần turn-taking tùy chỉnh, tổ hợp nhà cung cấp STT/TTS cụ thể, ranh giới dữ liệu on-premise, hoặc kiểm soát chi phí theo từng thành phần. Con đường build là ba tích hợp thay vì một nền tảng — nhiều việc hơn, nhiều kiểm soát hơn, và chi phí mỗi phút có thể xuống thấp hơn hẳn giá nền tảng ở quy mô lớn. Con đường giữa trung thực: build các thành phần, mua phần hạ tầng kết nối — tự lắp ráp STT/LLM/TTS sau một endpoint duy nhất, và để một lớp điều phối mỏng (hoặc không có gì cả) xử lý vòng lặp.

Cách build: stack thành phần

Điểm chính: stack là ba thành phần có thể thay thế, không phải một nhà cung cấp — chọn từng cái theo giá trị riêng của nó và giữ chúng có thể hoán đổi.

  • STT — nhận dạng streaming có nhận biết ngắt lời. Thế hệ hiện tại (Universal-3-Pro của AssemblyAI, Nova-3 của Deepgram và các lựa chọn thay thế) được trình bày trong so sánh STT của loạt bài này: tầng realtime cho agent, và hãy để ý time-to-first-token, không chỉ WER, vì trong một cuộc hội thoại, WER bạn không nghe thấy kém quan trọng hơn độ trễ bạn nghe được.
  • LLM — cùng lớp model mà sản phẩm chat của bạn dùng, với tool calling cho các hành động thực (đặt chỗ, tra cứu, thanh toán) và structured output cho slot-filling. Không có gì đặc thù voice ở đây; các mẫu function-calling bạn đang dùng áp dụng không thay đổi.
  • TTS — output streaming với hồ sơ độ trễ khớp ngân sách của bạn. So sánh TTS trong loạt bài này bao quát sự đánh đổi chất lượng-vs-độ trễ; với agent, time-to-first-audio là tiêu chí lựa chọn, độ tự nhiên đứng thứ hai.

Quy tắc kiến trúc: mỗi thành phần nằm sau endpoint hợp nhất của bạn — một key, một đầu mối thanh toán chung, và một dashboard bao phủ cả audio lẫn chat. Lớp hợp nhất là gộp hạ tầng kết nối, không phải thay thế nhà cung cấp. STT vẫn native với nhà cung cấp, TTS vẫn native với nhà cung cấp, và LLM định tuyến theo tác vụ — model rẻ cho slot-filling, model frontier cho các câu trả lời tinh tế. Đó là mẫu custom routing được áp dụng cho một cuộc hội thoại.

Một lưu ý về câu hỏi realtime-API: các endpoint realtime tất cả-trong-một là một lựa chọn hợp lệ, nhưng không phải yêu cầu. Một pipeline kiểu thành phần — STT streaming, LLM chat, TTS streaming — là kiến trúc production đã được chứng minh với độ linh hoạt nhà cung cấp tốt hơn, điều quan trọng ngay khi một nhà cung cấp định giá lại. Tài liệu audio API bao quát cả hai hướng của voice trên cùng một endpoint.

Cách đạt ngân sách độ trễ

Điểm chính: ngân sách 800ms là bài toán của stack, không phải của model — hãy ngân sách từng thành phần và đo trong production, không phải trong demo.

Ngân sách end-to-end phân rã thành khoảng: VAD/phát hiện lượt nói (~100-200ms) → STT time-to-text (~200-300ms) → LLM time-to-first-token (~200-400ms) → TTS time-to-first-audio (~100-200ms) → phát lại. Cộng các chặng mạng và tổng đó chính là lý do “mỗi thành phần nhanh” không có nghĩa “agent nhanh”.

Ba đòn bẩy, theo thứ tự tác động:

  1. Pipeline song song, không tuần tự. Bắt đầu tổng hợp TTS trên chunk đầu tiên của LLM trong khi phần còn lại của phản hồi đang stream; bắt đầu STT lắng nghe trong lúc TTS phát lại (đó là thứ kích hoạt barge-in). Triển khai tuần tự trả đủ độ trễ của từng thành phần; triển khai song song chỉ trả con đường dài nhất.
  2. Stream mọi thứ. STT streaming, phản hồi LLM streaming, TTS streaming — các thành phần không streaming là kẻ giết ngân sách trong một vòng lặp voice.
  3. Phân tầng model theo loại lượt nói. Slot-filling và xác nhận chạy trên tầng rẻ/nhanh; suy luận phức tạp chạy trên tầng frontier. Khác biệt độ trễ giữa các tầng thường lớn hơn khác biệt chi phí, và cả hai đều ủng hộ phân tầng.

Đo bằng bản ghi cuộc gọi thật, ở các vùng production, tại P50 P95 — median giấu đi những cuộc gọi thực sự gây hại. Ngân sách độ trễ là thứ đầu tiên cần kiểm thử, không phải thứ cuối cùng.

Chi phí bao nhiêu: chi phí mỗi phút

Điểm chính: một agent production điển hình rơi vào khoảng $0.02-0.10 mỗi phút tùy vào stack và các tầng — với giá nền tảng và giá thành phần đang hội tụ khi cuộc chiến giá 2026 diễn ra.

Mô hình mỗi phút, áp dụng được cho bất kỳ stack nào:

Cost per minute =
  (STT seconds × per-second rate)
  + (LLM tokens × per-token rate, input + output)
  + (TTS characters × per-character rate)

Một ví dụ minh họa với cuộc gọi 60 giây: ~40 giây audio STT, ~300-600 token LLM, ~100-150 ký tự TTS. Ở mức giá điển hình 2026, các thành phần cộng lại khoảng $0.02-0.06 mỗi phút cho một stack được phân tầng tốt — và các sản phẩm nền tảng như mô hình chi phí minh họa của Inworld cùng các mức $0.05-0.08 mỗi phút từ xAI và ElevenLabs xác nhận khoảng giá này. Chênh lệch đến từ ba nơi: tầng LLM nào xử lý cuộc hội thoại, STT/TTS chạy trên tầng realtime hay async, và bạn trả phí chênh nền tảng hay giá thành phần.

Cái bẫy khi mở rộng quy mô: một agent hỗ trợ xử lý 10,000 phút gọi mỗi tháng ở mức $0.05/phút là một khoản mục $500 — nhỏ. Một agent bán hàng chạy 100,000 phút trên một stack không phân tầng (LLM frontier cho mọi lượt nói, TTS cao cấp cho mọi câu) có thể tốn kém hơn 3-5× mỗi phút. Phân tầng không phải tối ưu hóa; nó là khác biệt giữa một tính năng và một khoản mục mà CFO của bạn kiểm toán.

Những sai lầm thường gặp cần tránh

Điểm chính: bốn thất bại do kiến trúc đánh chìm voice agent trong production — không cái nào là bug code.

  1. Không có ngân sách độ trễ trước khi ra mắt. Demo chạy trên một bàn làm việc yên tĩnh với kết nối nhanh; production chạy trên đường dây điện thoại ở P95. Nếu quy tắc 800ms không được thực thi trong bộ test của bạn, nó không được thực thi ở bất kỳ đâu.
  2. Bỏ qua barge-in và turn-taking. Những agent nói đè lên người gọi, hoặc ngập ngừng chờ im lặng một cách khó xử, sẽ bị cúp máy. Xử lý barge-in là một tính năng phải mua hoặc xây một cách có chủ đích — không bao giờ là tình cờ.
  3. Trói buộc một nhà cung cấp. Một nền tảng cho STT+LLM+TTS cảm giác tiện cho đến khi có một lần định giá lại hoặc loại bỏ model — và rate limits của bất kỳ nhà cung cấp nào cũng có thể cắn một agent lưu lượng cao. Hãy giữ các thành phần có thể hoán đổi sau một endpoint.
  4. Không quy trách nhiệm chi phí. Nếu bạn không trả lời được “agent này tốn bao nhiêu mỗi phút, theo từng loại cuộc gọi” vào cuối tháng, bạn sẽ khám phá câu trả lời trên hóa đơn — đó là thời điểm tồi tệ nhất để biết nó.

Tuân thủ: đồng ý và công bố

Điểm chính: công bố và đồng ý giờ đã được quy định pháp lý, không phải tùy chọn — quy tắc cuộc gọi thoại AI 2026 của FCC và khung TCPA/CCPA/GDPR áp dụng cho agent của bạn ngay từ cuộc gọi đầu tiên.

Bối cảnh pháp lý cho cuộc gọi thoại AI đã cứng rắn hơn vào năm 2026: quy tắc cuộc gọi thoại AI của FCC Hoa Kỳ, chồng lên TCPA, cộng CCPA và GDPR cho việc ghi âm và dữ liệu — một tổ hợp được trình bày sâu trong các hướng dẫn tuân thủ ghi âm cuộc gọi và khung tuân thủ GDPR. Nền tảng thực tế cho mọi triển khai:

  1. Công bố khi bắt đầu cuộc gọi — người gọi phải biết họ đang nói chuyện với một AI, không phải con người, trước khi cuộc hội thoại đi đến đâu.
  2. Đồng ý ghi âm — nơi việc ghi âm được cho phép, hãy thu thập sự đồng ý rõ ràng và lưu trữ nó cùng với dữ liệu cuộc gọi.
  3. Tối thiểu hóa lưu giữ — chỉ giữ audio và bản ghi chép trong khoảng thời gian nhu cầu kinh doanh biện minh, và tôn trọng yêu cầu xóa qua cùng quy trình với dữ liệu cá nhân khác của bạn.
  4. Ghi chép pipeline — điều khoản xử lý dữ liệu của mọi nhà cung cấp thành phần (STT, LLM, TTS) là một phần hồ sơ tuân thủ của bạn, không phải việc nghĩ đến sau.

Mô hình cho toàn bộ danh sách kiểm tra: mặc định coi mọi cuộc gọi thoại là xử lý dữ liệu cá nhân. Giả định đó chẳng tốn gì để áp dụng và tốn tất cả nếu bỏ qua.

Câu hỏi thường gặp

Khác biệt giữa voice agent và chatbot là gì?

Lõi LLM là giống hệt — khác biệt nằm ở lớp voice I/O: STT/TTS realtime, turn-taking, barge-in, và một ngân sách độ trễ tính bằng hàng trăm mili giây thay vì giây. Hướng dẫn kiến trúc chatbot được liên kết ở trên bao quát mọi thứ phía trên lớp voice.

Tôi nên build hay mua một voice agent?

Mua nền tảng (Vapi, Retell, LiveKit, Pipecat và các tay chơi mới $0.05-0.08/phút) khi voice là một kênh hỗ trợ và yếu tố tạo khác biệt của bạn nằm ở nơi khác. Build stack thành phần khi voice là sản phẩm — turn-taking tùy chỉnh, tổ hợp nhà cung cấp hoặc ranh giới dữ liệu khiến con đường build trở thành lựa chọn đúng.

Ngân sách độ trễ nào là chấp nhận được?

End-to-end dưới 800ms là ranh giới chấp nhận được cho hội thoại con người; dưới 500ms cảm giác tự nhiên. Hãy ngân sách từng thành phần — VAD, STT, TTFB của LLM, audio đầu tiên của TTS — và thực thi ngân sách ở P95 tại các vùng production, không phải tại bàn demo.

Một voice agent tốn bao nhiêu mỗi phút?

Một stack thành phần được phân tầng tốt thường rơi vào $0.02-0.06 mỗi phút; các sản phẩm nền tảng khởi điểm khoảng $0.05-0.08. Chênh lệch được tạo ra bởi phân tầng LLM, giá audio realtime-vs-async, và phí chênh nền tảng — mô hình mỗi phút trong hướng dẫn này áp dụng cho bất kỳ stack nào.

Tôi có cần realtime API để xây voice agent không?

Không. Một pipeline kiểu thành phần — STT streaming, LLM chat, TTS streaming — là kiến trúc production đã được chứng minh với độ linh hoạt nhà cung cấp tốt hơn, và nó giữ mỗi thành phần có thể hoán đổi khi giá hoặc model thay đổi. Realtime endpoints là một lựa chọn, không phải yêu cầu.

Tôi cần gì để tuân thủ ghi âm cuộc gọi và công bố?

Công bố khi bắt đầu cuộc gọi, đồng ý rõ ràng cho việc ghi âm nơi được yêu cầu, lưu giữ tối thiểu, và điều khoản xử lý dữ liệu của nhà cung cấp được ghi chép — quy tắc cuộc gọi thoại AI 2026 của FCC cộng TCPA/CCPA/GDPR là khung, và hướng dẫn GDPR được liên kết ở trên là danh sách kiểm tra nền tảng.

Tóm tắt

Khi bạn xây AI voice agent trong năm 2026, kiến trúc là ba thành phần có thể hoán đổi — STT, LLM, TTS — được gắn kết bởi một ngân sách độ trễ thống trị ở mốc 800ms, một mô hình chi phí mỗi phút thống trị trong khoảng $0.02-0.10, và một lớp tuân thủ thống trị từ cuộc gọi đầu tiên. Mua nền tảng khi voice là một tính năng, build các thành phần khi nó là sản phẩm, giữ mọi thành phần sau một endpoint hợp nhất, và đối xử với việc xử lý ngắt lời và công bố như những tính năng — vì cả hai đều là tính năng.

Hãy xây vòng lặp voice nhỏ nhất có thể đáp lời. Lấy API key TokSpan của bạn — $5 tín dụng đầu tiên miễn phí — và nhìn độ trễ theo từng thành phần đổ về một dashboard ngay từ cuộc gọi đầu tiên.