Hạ tầng Voice AI: Xây dựng các Agent Giọng nói Thời gian thực
Cập nhật ngày 11 tháng 12 năm 2025
Cập nhật tháng 12/2025: Deepgram STT đạt 150ms, ElevenLabs TTS đạt 75ms—nhưng hầu hết agent vẫn mất 800ms đến 2 giây để phản hồi do độ trễ tích lũy qua toàn bộ stack. Hội thoại con người yêu cầu cửa sổ phản hồi 300-500ms. Độ trễ pipeline: STT (100-500ms) + LLM (350ms-1s+) + TTS (75-200ms). Mỗi mili-giây đều quan trọng cho các voice agent trong môi trường production.
Deepgram cung cấp speech-to-text trong 150 mili-giây. ElevenLabs tổng hợp giọng nói trong 75 mili-giây. Tuy nhiên hầu hết các voice AI agent vẫn mất 800 mili-giây đến hai giây để phản hồi—bởi độ trễ tích lũy qua toàn bộ stack.¹ Khoảng cách giữa khả năng của từng thành phần và hiệu suất end-to-end cho thấy thách thức hạ tầng cốt lõi của voice AI: điều phối nhận dạng giọng nói, mô hình ngôn ngữ và tổng hợp âm thanh thành các pipeline đáp ứng được nhịp độ hội thoại của con người.
Hội thoại của con người hoạt động trong cửa sổ phản hồi 300-500 mili-giây.² Độ trễ vượt quá 500 mili-giây tạo cảm giác không tự nhiên. Vượt quá 1,2 giây, người dùng sẽ cúp máy hoặc ngắt lời. Xây dựng voice agent đáp ứng các ngưỡng này đòi hỏi phải hiểu từng tầng của stack, lựa chọn các thành phần phù hợp và thiết kế hệ thống mà mỗi mili-giây đều được tính toán.
Stack voice AI
Mọi voice agent đều dựa trên bốn thành phần hoạt động phối hợp:³
Speech-to-Text (STT/ASR): "Đôi tai" chuyển đổi âm thanh giọng nói thành văn bản. Độ trễ dao động từ 100-500 mili-giây tùy thuộc cấu hình streaming.
Large Language Model (LLM): "Bộ não" xử lý văn bản đã chuyển đổi và tạo phản hồi. Độ trễ dao động từ 350 mili-giây cho các mô hình tối ưu đến hơn một giây cho các mô hình tiên tiến nhất.
Text-to-Speech (TTS): "Giọng nói" tổng hợp văn bản phản hồi thành âm thanh. TTS streaming hiện đại đạt time-to-first-audio 75-200 mili-giây.
Orchestration: "Nhạc trưởng" quản lý luồng thời gian thực giữa các thành phần, xử lý việc luân phiên nói, ngắt lời và trạng thái phiên.
Phương trình độ trễ
Độ trễ voice AI tích lũy qua pipeline:⁴
Tổng độ trễ = STT + LLM + TTS + Network + Processing
= 200ms + 500ms + 150ms + 50ms + 100ms
= 1000ms (điển hình)
Đạt được phản hồi dưới 500 mili-giây đòi hỏi phải nén từng thành phần hoặc song song hóa pipeline thông qua streaming—bắt đầu tổng hợp giọng nói trước khi LLM hoàn thành tạo nội dung, xử lý các bản chuyển đổi một phần trước khi người dùng nói xong.
Hạ tầng speech-to-text
Tầng ASR chuyển đổi luồng âm thanh thành văn bản mà các mô hình ngôn ngữ có thể xử lý. Việc lựa chọn nhà cung cấp liên quan đến cân bằng giữa độ trễ, độ chính xác và chi phí.
So sánh nhà cung cấp
Deepgram Nova-3:⁵ - Time-to-first-token: ~150ms (Mỹ), 250-350ms (toàn cầu) - Tỷ lệ lỗi từ: 18,3% - Tối ưu hóa streaming với hệ số thời gian thực 0,2-0,3x - Giá: $0,0043/phút (trả theo mức sử dụng) - Tốt nhất cho: Voice agent độ trễ thấp ưu tiên tốc độ
AssemblyAI Universal-2:⁶ - Độ trễ: 300-600ms - Tỷ lệ lỗi từ: 14,5% (độ chính xác tốt nhất trong các mô hình streaming) - Hiệu suất cao trong các lĩnh vực chuyên biệt như y tế và bán hàng - Giá: $0,00025/giây - Tốt nhất cho: Ứng dụng yêu cầu độ chính xác hơn tốc độ thuần túy
Whisper (tự host):⁷ - Độ trễ: 1-5 giây (batch), 380-520ms (WhisperX tối ưu) - Độ chính xác cao nhất cho chuyển đổi offline - Đòi hỏi kỹ thuật đáng kể cho streaming production - Tốt nhất cho: Xử lý batch, kiến trúc hybrid
Groq-accelerated Whisper: - Độ trễ: Dưới 300ms trên phần cứng LPU - Kết hợp độ chính xác Whisper với độ trễ streaming - Khả dụng hạn chế qua GroqCloud - Tốt nhất cho: Ứng dụng thời gian thực tập trung vào chất lượng
Các pattern hạ tầng ASR
Kiến trúc streaming: Bắt đầu chuyển đổi ngay khi âm thanh đến thay vì đợi hoàn thành câu nói. Kết quả một phần được đưa đến các thành phần downstream trước khi người dùng nói xong.
# Pattern ASR streaming
async def transcribe_stream(audio_stream):
async for chunk in audio_stream:
partial = await asr_client.transcribe_chunk(chunk)
if partial.is_final:
yield partial.text
else:
# Gửi kết quả tạm thời để dự đoán
yield partial.interim_text
Voice Activity Detection (VAD): Phát hiện khi người dùng bắt đầu và ngừng nói. VAD kém tạo ra hoặc cắt ngang sớm (ngắt lời người dùng) hoặc trễ quá mức (đợi im lặng đã xảy ra).
Endpointing: Xác định khi người dùng đã hoàn thành lượt nói. Endpointing aggressive giảm độ trễ nhưng có nguy cơ cắt ngang người nói. Endpointing conservative đảm bảo hoàn chỉnh nhưng thêm độ trễ.
Yêu cầu GPU cho ASR tự host
Triển khai Whisper tự host yêu cầu tăng tốc GPU:⁸
| Mức tải | GPU | Luồng đồng thời |
|---|---|---|
| Phát triển | RTX 3060/4060 | 5-10 |
| Production | A100 40GB | 50-100 |
| Enterprise | H100 | 200+ |
Speech-to-text production thường chạy trên A100 hoặc RTX 6000 Ada thay vì H100—workload này hưởng lợi nhiều hơn từ băng thông bộ nhớ so với sức mạnh tính toán thuần túy.
Tầng large language model
LLM xử lý giọng nói đã chuyển đổi và tạo văn bản phản hồi. Lựa chọn mô hình ảnh hưởng đáng kể đến cả độ trễ và chất lượng hội thoại.
Hồ sơ độ trễ mô hình
Siêu nhanh (dưới 350ms):⁹ - Gemini Flash 1.5: ~300ms time-to-first-token - Groq-served Llama: ~200ms trên LPU - Tốt nhất cho: Độ phản hồi tối đa, truy vấn đơn giản
Nhanh (350-700ms): - GPT-4o-mini: ~400ms - Claude 3.5 Haiku: ~350ms - Tốt nhất cho: Cân bằng tốc độ và khả năng
Tiêu chuẩn (700ms-1s+): - GPT-4o: ~700ms - Claude 3.5 Sonnet: ~800ms - Tốt nhất cho: Suy luận phức tạp, ứng dụng ưu tiên chất lượng
Chiến lược tối ưu hóa
Streaming generation: Bắt đầu tổng hợp TTS khi các token LLM đến thay vì đợi phản hồi hoàn chỉnh. Các pipeline orchestration hiện đại stream token trực tiếp đến tổng hợp giọng nói.
Speculative execution: Dự đoán các phản hồi có khả năng dựa trên bản chuyển đổi một phần. Bắt đầu tạo phản hồi trước khi người dùng nói xong, loại bỏ các dự đoán không khớp với ý định cuối cùng.
Model routing: Định tuyến truy vấn đơn giản đến mô hình nhanh, truy vấn phức tạp đến mô hình có khả năng cao. Bộ phân loại xác định độ phức tạp truy vấn trong vài mili-giây.
# Pattern định tuyến mô hình
def route_query(transcript, context):
complexity = classify_complexity(transcript)
if complexity == "simple":
return "gemini-flash"
elif complexity == "moderate":
return "gpt-4o-mini"
else:
return "gpt-4o"
Tối ưu hóa prompt: Prompt ngắn hơn giảm thời gian xử lý. Cache system prompt khi nhà cung cấp hỗ trợ prompt caching (Anthropic đạt giảm 90% chi phí trên các prefix được cache).
Hạ tầng text-to-speech
TTS chuyển đổi văn bản do LLM tạo thành giọng nói tự nhiên. Tầng này đã chuyển đổi từ điểm nghẽn (2-3 giây trước đây) thành điểm mạnh (75-150ms với các nhà cung cấp hiện đại).
So sánh nhà cung cấp
ElevenLabs Flash v2.5:¹⁰ - Time-to-first-audio: 75ms - Chất lượng giọng: Độ tự nhiên hàng đầu ngành - Phạm vi cảm xúc: Khả năng biểu cảm xuất sắc - Giá: $0,050/1.000 ký tự - Tốt nhất cho: Ứng dụng ưu tiên chất lượng
Cartesia Sonic:¹¹ - Time-to-first-audio: 40-95ms - Được xây dựng riêng cho hội thoại thời gian thực - Độ trễ thấp ổn định dưới tải - Giá: $0,038/1.000 ký tự - Tốt nhất cho: Ứng dụng ưu tiên độ trễ
Deepgram Aura-2:¹² - Time-to-first-audio: Dưới 150ms - Độ tin cậy cấp enterprise - Chi phí hiệu quả ở quy mô lớn - Giá: $0,030/1.000 ký tự - Tốt nhất cho: Triển khai enterprise khối lượng cao
PlayHT: - Độ trễ: ~300ms - Thư viện giọng nói phong phú - Khả năng nhân bản giọng nói - Giá thấp hơn - Tốt nhất cho: Ứng dụng quan tâm ngân sách
Các pattern hạ tầng TTS
Streaming synthesis: Tạo âm thanh dần dần khi văn bản đến từ LLM. Gửi các chunk âm thanh đến người dùng trước khi hoàn thành tổng hợp câu hoàn chỉnh.
Audio buffering: Duy trì buffer nhỏ để làm mượt phát lại bất chấp thời gian tổng hợp biến đổi. Buffer quá nhiều và độ trễ bị ảnh hưởng. Buffer quá ít và âm thanh bị giật.
Voice caching: Cache các cụm từ thường dùng (lời chào, phản hồi phổ biến) dưới dạng âm thanh đã tổng hợp sẵn. Loại bỏ hoàn toàn độ trễ TTS cho nội dung được cache.
Các nền tảng orchestration
Tầng orchestration kết nối các thành phần ASR, LLM và TTS trong khi xử lý điện thoại, luân phiên nói và quản lý phiên. Lựa chọn nền tảng quyết định tốc độ phát triển và độ tin cậy production.
So sánh nền tảng
Vapi:¹³ - Trọng tâm: Nền tảng voice agent turnkey - Điện thoại: Tích hợp SIP/PSTN native - Tùy chỉnh: Lựa chọn thành phần modular - Giá: $0,05/phút + chi phí thành phần - Tốt nhất cho: Triển khai nhanh, ứng dụng tập trung điện thoại
LiveKit:¹⁴ - Trọng tâm: Hạ tầng thời gian thực mã nguồn mở - Kiến trúc: WebRTC-native với framework agent - Tùy chỉnh: Toàn quyền kiểm soát, có thể tự host - Giá: Gói miễn phí (100 đồng thời, 5.000 phút/tháng), gói trả phí từ $50/tháng - Tốt nhất cho: Ứng dụng tùy chỉnh, đội ngũ cần toàn quyền kiểm soát
Retell AI:¹⁵ - Trọng tâm: Luồng hội thoại tự nhiên - Điểm khác biệt: Tối ưu hóa xử lý luân phiên và ngắt lời - Compliance: HIPAA và SOC 2 Type II - Giá: $0,07+/phút - Tốt nhất cho: Ưu tiên chất lượng hội thoại, compliance enterprise
Pipecat: - Trọng tâm: Framework agent mã nguồn mở - Tích hợp: Hoạt động với các nhà cung cấp cloud lớn - Tùy chỉnh: Xây dựng pipeline rất linh hoạt - Tốt nhất cho: Nhà phát triển muốn framework không bị khóa vào nền tảng
Tiêu chí lựa chọn
| Yếu tố | Vapi | LiveKit | Retell |
|---|---|---|---|
| Tích hợp điện thoại | Xuất sắc | Tốt (qua SIP) | Xuất sắc |
| Tùy chỉnh | Cao | Cao nhất | Trung bình |
| Độ phức tạp thiết lập | Thấp | Trung bình | Thấp |
| Tự host | Không | Có | Không |
| Tính năng enterprise | Tốt | Đang phát triển | Xuất sắc |
Các pattern kiến trúc
Pipeline cascading (ASR → LLM → TTS)
Kiến trúc truyền thống xử lý âm thanh qua các giai đoạn rời rạc:¹⁶
Audio → ASR → Text → LLM → Response Text → TTS → Audio
Ưu điểm: - Tính modular của thành phần (dễ dàng thay đổi nhà cung cấp) - Công cụ và debug đã trưởng thành - Cấu trúc chi phí dự đoán được (~$0,15/phút bất kể độ dài hội thoại) - Biểu diễn trung gian minh bạch (văn bản có thể kiểm tra)
Thách thức: - Tích lũy độ trễ qua các giai đoạn - Mất thông tin trong biểu diễn văn bản (ngữ điệu, cảm xúc) - Phối hợp streaming phức tạp
Speech-to-speech (S2S)
Mô hình end-to-end xử lý âm thanh trực tiếp thành âm thanh:¹⁷
Audio → Multimodal Model → Audio
Ví dụ: - GPT-4o voice mode - Moshi (Kyutai Labs) - Ultravox
Ưu điểm: - Bảo toàn thông tin ngữ điệu - Độ trễ tiềm năng thấp hơn (một mô hình duy nhất) - Xử lý giọng nói chồng lấn tự nhiên
Thách thức: - Chi phí cao hơn (~$0,30-1,50/phút cho hội thoại dài hơn) - Tùy chỉnh hạn chế (không thể thay đổi thành phần) - Độ mờ đục trong debug (không có văn bản trung gian)
Các phương pháp hybrid
Hệ thống production ngày càng kết hợp các kiến trúc:
Cascading với S2S fallback: Sử dụng cascading cho tương tác tiêu chuẩn, chuyển sang S2S cho hội thoại chồng lấn phức tạp.
Xử lý song song: Chạy ASR và dự đoán ý định đồng thời. Bắt đầu tạo phản hồi dựa trên ý định dự đoán trong khi ASR hoàn thành.
Speculative TTS: Tạo trước âm thanh phản hồi có khả năng. Phát âm thanh đã cache ngay lập tức nếu dự đoán khớp; quay lại tổng hợp nếu không.
Mở rộng quy mô hạ tầng voice AI
Lập kế hoạch dung lượng đồng thời
Voice AI mở rộng quy mô khác với AI dựa trên văn bản. Mỗi cuộc gọi đồng thời yêu cầu tài nguyên xử lý chuyên dụng qua toàn bộ pipeline.¹⁸
Dung lượng mỗi GPU (tự host):
| GPU | Luồng ASR | LLM đồng thời | Luồng TTS |
|---|---|---|---|
| L4 | 50 | 20-30 | 100 |
| L40S | 100 | 50-75 | 200 |
| A100 | 100 | 75-100 | 250 |
| H100 | 200+ | 150-200 | 400+ |
Dung lượng dịch vụ managed: Các nhà cung cấp cloud xử lý việc mở rộng quy mô tự động
[Nội dung bị cắt ngắn để dịch thuật]