Xây dựng với CometAPICần một API cho nhiều mô hình?Kiểm thử quy trình trong Playground, sau đó tạo API key khi mô hình và chi phí phù hợp với trường hợp sử dụng của bạn.
Kết nối với Grok Voice 3.0 bằng Python, tạo phản hồi bằng giọng nói, gửi âm thanh, thêm công cụ và khắc phục các sự cố thường gặp với API thời gian thực.
Grok Voice 3.0 là mô hình chuyển giọng nói sang giọng nói thời gian thực của xAI, phát hành vào ngày 14 tháng 10 năm 2026. Tên mô hình API là grok-voice-3.0; tính đến ngày 3 tháng 11 năm 2026, grok-voice-latest points to this version. Thông báo ra mắt liệt kê mức giá phiên thoại là $0.08 mỗi phút ($4.80 mỗi giờ). Sản phẩm kết hợp hội thoại, xử lý ngắt lời và sử dụng công cụ cho trợ lý giọng nói và hỗ trợ khách hàng. Chỉ với Python cơ bản, một khóa API của xAI và thư viện websockets, bạn có thể gửi một lời nhắc và lưu phản hồi dạng giọng nói. Bắt đầu với ví dụ bên dưới, sau đó thêm âm thanh đã ghi, truyền trực tiếp từ micro và các công cụ nghiệp vụ khi ứng dụng phát triển.
Đã được xem xét về độ rõ ràng, ghi nguồn và thuật ngữ API hiện tại.
Các điểm chính
Grok Voice 3.0 trao đổi giọng nói và văn bản theo thời gian thực. Ứng dụng của bạn gửi và nhận các sự kiện phiên qua WebSocket xuyên suốt cuộc hội thoại.
Bài kiểm tra đầu tiên có thể là một lượt chuyển văn bản thành âm thanh. Một phản hồi có thể phát được xác nhận rằng xác thực và tạo âm thanh hoạt động trước khi bạn thêm micro.
Âm thanh đầu vào cần định dạng phù hợp và ranh giới lượt rõ ràng. Ứng dụng có thể gửi âm thanh PCM đã ghi với việc hoàn tất lượt thủ công hoặc truyền âm thanh từ micro với phát hiện giọng nói phía máy chủ.
Ứng dụng của bạn kiểm soát các hành động nghiệp vụ. Ứng dụng xác thực đối số hàm và quyền của người dùng, thực thi hành động đã được phê duyệt, rồi trả về kết quả để tác nhân giọng nói tiếp tục.
Khách hàng trên trình duyệt và di động sử dụng thông tin xác thực ngắn hạn. Máy chủ của bạn giữ khóa API vĩnh viễn và cấp token tạm thời cho các kết nối của client.
Grok Voice 3.0 là gì?
Grok Voice 3.0 là một mô hình hội thoại giọng nói thời gian thực do xAI phát triển, vận hành dưới thương hiệu SpaceX Super Intelligence. Mô hình chấp nhận đầu vào là giọng nói hoặc văn bản và có thể trả về âm thanh và văn bản trong một phiên đang diễn ra. Mô hình được tối ưu cho các trường hợp dùng tác nhân giọng nói, thay vì thay thế trực tiếp cho các mô hình Grok chỉ văn bản nói chung.
Các trợ lý giọng nói truyền thống thường xâu chuỗi nhận dạng giọng nói, một mô hình ngôn ngữ và tổng hợp giọng nói. Grok Voice thay vào đó cung cấp một phiên chuyển giọng nói sang giọng nói với hành vi hội thoại tích hợp và hỗ trợ công cụ. Kiến trúc này có thể đơn giản hóa lớp điều phối của nhà phát triển, dù ứng dụng vẫn cần thu âm, truyền tải, ủy quyền, tích hợp nghiệp vụ và giám sát.
Tài liệu định nghĩa mô hình Grok Voice 3.0 nêu rõ văn bản và âm thanh là các phương thức đầu vào và đầu ra. Trong hướng dẫn này, mốc hữu ích đầu tiên là một phản hồi có thể phát được từ một script Python phía máy chủ.
Các tính năng và khả năng chính của Grok Voice 3.0
Duy trì hội thoại trực tiếp: trao đổi giọng nói và văn bản qua WebSocket trong suốt phiên.
Xử lý ngắt lời: dùng phát hiện giọng nói phía máy chủ và dừng phát hàng đợi khi người gọi bắt đầu nói.
Sử dụng công cụ nghiệp vụ: kết nối các hàm của riêng bạn cho các tác vụ như tra cứu đơn hàng và lên lịch.
Đây là các kết quả benchmark đã công bố, không phải cam kết cho triển khai của bạn. Hãy kiểm thử giọng điệu, điều kiện nhiễu, công cụ và lộ trình chuyển cấp của riêng bạn trước khi dùng tác nhân với khách hàng.
Bạn cần gì trước khi gọi API Grok Voice 3.0?
Tạo hoặc đăng nhập tài khoản trong xAI Console, tạo khóa API và kiểm tra rằng tài khoản của bạn có quyền truy cập và còn hạn mức sử dụng. Dùng một terminal cục bộ hoặc máy chủ tin cậy cho ví dụ Python.
Python 3.11 trở lên và pip trong cùng môi trường.
Một khóa xAI API hợp lệ lưu trong XAI_API_KEY.
Kết nối mạng cho phép kết nối WebSocket bảo mật đi ra ngoài.
Trình phát media để mở tệp WAV được tạo.
Tạo khóa trong xAI Console. Lưu khóa trong biến môi trường thay vì hard-code vào ứng dụng.
Đặt khóa API cho terminal Bash hiện tại.
export XAI_API_KEY="your_xai_api_key"
Trên Windows PowerShell:
Đặt khóa API cho phiên PowerShell hiện tại.
$env:XAI_API_KEY="your_xai_api_key"
Cài đặt client WebSocket trong môi trường Python của bạn.
python -m pip install "websockets>=14,<18"
Chạy các lệnh còn lại trong cùng phiên terminal. Nếu bạn dùng môi trường ảo, hãy kích hoạt trước khi cài gói.
Cách sử dụng API Grok Voice 3.0 với Python
Realtime API gốc sử dụng kết nối WebSocket. Khác với hoàn tất chat chỉ văn bản thông thường, API này trao đổi các sự kiện phiên đang diễn ra và truyền các khối âm thanh trong khi hội thoại diễn ra.
Bước 1: Chọn một mô hình cố định và cấu hình phiên
API chấp nhận tên mô hình có phiên bản trong URL WebSocket. Ví dụ dùng grok-voice-3.0 để yêu cầu phiên bản rõ ràng. Một sự kiện session.update đặt giọng, định dạng âm thanh và xử lý lượt thủ công; chờ session.updated trước khi gửi lời nhắc.
Bước 2: Gửi văn bản và thu phản hồi dạng giọng nói
Lưu script sau với tên grok_voice_demo.py. Script gửi một lời nhắc văn bản, thu các khối âm thanh được mã hóa base64 và ghi thành tệp WAV mono, 24 kHz, PCM 16-bit. Script cũng dừng khi gặp lỗi API, hoàn tất không thành công hoặc phản hồi không tạo ra âm thanh.
Tạo một phản hồi nói từ lời nhắc văn bản và lưu thành tệp WAV.
Sau khi phản hồi thành công, terminal sẽ in Saved grok_response.wav. Mở tệp đó trong trình phát media và kiểm tra bạn nghe được phản hồi đầy đủ với tốc độ bình thường. Tệp thiếu hoặc không phát được là lý do để kiểm tra các sự kiện trả về và cấu hình âm thanh trước khi thêm nhiều tính năng hơn.
Tài liệu tham chiếu sự kiện thời gian thực mô tả xác nhận phiên và vòng đời phản hồi được sử dụng ở đây. Script chờ cả lượt trước khi ghi tệp; một ứng dụng thoại tương tác nên phát các khối âm thanh ngay khi chúng đến.
Làm thế nào để gửi âm thanh tới Grok Voice 3.0?
Âm thanh đã ghi với hoàn tất lượt thủ công
Ví dụ này dùng tệp WAV PCM 16-bit, 24 kHz, mono. Grok Voice 3.0 cũng hỗ trợ các tần số lấy mẫu PCM khác, μ-law, A-law và Opus. Định dạng thực tế phải khớp với cấu hình trong session.update. Chỉ thay thế khối conversation.item.create trong script trước bằng đoạn mã bên dưới. Giữ nguyên lời gọi response.create sau đó và vòng lặp nhận hiện có.
Thay khối tin nhắn văn bản bằng phần tải lên âm thanh đã ghi bên trong main().
with wave.open("request.wav", "rb") as source:
if (
source.getnchannels() != 1
or source.getsampwidth() != 2
or source.getframerate() != SAMPLE_RATE
or source.getcomptype() != "NONE"
):
raise ValueError("Use mono, 24 kHz, 16-bit PCM WAV audio.")
pcm = source.readframes(source.getnframes())
if len(pcm) < SAMPLE_RATE * 2 // 10:
raise ValueError("Use a spoken recording longer than 100 ms.")
for offset in range(0, len(pcm), 4800):
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(pcm[offset:offset + 4800]).decode("ascii"),
}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
while (await receive_event(ws)).get("type") != "input_audio_buffer.committed":
pass
Thụt lề đoạn thay thế này cùng mức với khối tin nhắn văn bản gốc, bên trong ngữ cảnh WebSocket. Đoạn mã gửi các mẫu PCM thô từ tệp WAV, không phải phần header của container WAV. Script đầu tiên chọn rõ chế độ xử lý lượt thủ công, nên việc commit bộ đệm và sau đó yêu cầu phản hồi là các thao tác riêng biệt.
Thu âm micro trực tiếp và phát ngay lập tức
Đối với hội thoại tương tác, thu âm liên tục, chuyển đổi về định dạng đầu vào đã cấu hình, và gửi các khối ngắn trong khi một vòng lặp nhận riêng xử lý phản hồi. Chọn server_vad để tự động phát hiện lượt thay vì chế độ thủ công như ví dụ tệp đã ghi. Tránh thêm một response.create thứ hai khi máy chủ đã tạo phản hồi.
Khi bị ngắt lời, dừng nhanh việc phát âm thanh đã xếp hàng. Việc hủy qua mạng không loại bỏ âm thanh đã được ứng dụng của bạn đệm sẵn. Giữ hàng đợi phát nhỏ và theo dõi lượng âm thanh người nghe thực sự đã nghe để ứng dụng của bạn duy trì trạng thái hội thoại nhất quán.
Cách thêm công cụ cho tác nhân Grok Voice 3.0?
Ứng dụng có thể cung cấp các công cụ như tra cứu đơn hàng, lên lịch hoặc xác minh tài khoản. Tác nhân có thể diễn giải yêu cầu nói phức tạp, gọi một hàm được ủy quyền và dùng kết quả để tiếp tục. Điều này đặc biệt hữu ích khi khách hàng yêu cầu nhiều thay đổi liên quan trong một cuộc gọi.
API hỗ trợ hàm tùy chỉnh và công cụ do máy chủ quản lý. Với hàm tùy chỉnh, ứng dụng của bạn triển khai hành động; định nghĩa một công cụ không tự kết nối mô hình với cơ sở dữ liệu của bạn.
Khai báo tên hàm, mô tả và schema đối số JSON trong session.tools.
Xử lý response.function_call_arguments.done, phân tích đối số và xác thực quyền của người gọi trước khi thực thi hàm.
Trả về kết quả dưới dạng sự kiện conversation.item.create với item.type đặt là function_call_output và call_id tương ứng.
Gửi response.create sau khi đã gửi các kết quả hàm cần thiết. Nếu nhiều lời gọi đến cùng lúc, trả về tất cả kết quả trước khi yêu cầu mô hình tiếp tục.
Bắt đầu với một công cụ chỉ đọc, chẳng hạn kiểm tra trạng thái giao hàng của đơn. Với các hành động thay đổi đặt chỗ, hoàn tiền hoặc đặt hàng, hãy áp dụng kiểm tra danh tính, xác nhận và bảo vệ chống yêu cầu trùng lặp trong ứng dụng.
Cách sử dụng Grok Voice 3.0 trong ứng dụng trình duyệt và di động
Sử dụng thông tin xác thực tạm thời cho kết nối phía client. Máy chủ của bạn yêu cầu token ngắn hạn bằng khóa API vĩnh viễn và chuyển token cho client. Xác thực các yêu cầu tới endpoint cấp token của riêng bạn và áp dụng hạn mức sử dụng để endpoint này không trở thành cổng truy cập không kiểm soát.
Giữ phần đồng ý micro, điều khiển ghi âm và trạng thái kết nối hiển thị rõ trong giao diện. Xử lý mất kết nối một cách tường minh: dừng phát lại cũ, thông báo cho người dùng rằng kết nối đang khôi phục và tránh lặp lại các hành động có thể đã hoàn tất.
Cách khắc phục lỗi thường gặp của API Grok Voice 3.0
Lỗi xác thực: xác nhận rằng XAI_API_KEY được đặt trong terminal chạy script và khóa thuộc tài khoản có quyền truy cập. Không dán khóa vào log hoặc tin nhắn hỗ trợ.
Đối số thư viện phía client không mong đợi: xác minh rằng pip đã cài đúng phiên bản websockets vào môi trường Python dùng để chạy script.
Không có âm thanh đầu ra: kiểm tra các sự kiện lỗi và response.done, xác nhận rằng session.updated đã ghi nhận cấu hình, và kiểm tra rằng đã yêu cầu một phản hồi cho lượt thủ công.
Phát bị méo: so sánh byte thực tế với codec, tần số lấy mẫu, số kênh và header WAV đã cấu hình. Đổi tên tệp MP3 thành WAV không chuyển đổi định dạng.
Timeout: kiểm tra truy cập mạng và trạng thái dịch vụ, sau đó xem xét sự kiện cuối cùng thành công. Thử kết nối lại thất bại một cách tách biệt với bất kỳ hành động nghiệp vụ nào có thể đã chạy.
Bạn nên dự trù chi phí gì cho các cuộc gọi API Grok Voice 3.0?
Việc sử dụng giọng nói và các tích hợp tùy chỉnh có thể phát sinh các khoản phí riêng. Trong hướng dẫn này, mức giá liên quan là phiên thời gian thực và đầu vào văn bản; các sản phẩm chuyển giọng nói thành văn bản và tạo giọng nói độc lập là dịch vụ riêng.
Phiên chuyển giọng nói sang giọng nói: $0.08 mỗi phút, tương đương $4.80 mỗi giờ.
Đầu vào văn bản trong một phiên thoại: $0.004 mỗi đầu vào văn bản.
Mức giá được kiểm tra vào ngày 29 tháng 10 năm 2026. Xem trang giá chính thức để biết mức phí hiện hành.
Ví dụ, 500 phút phiên tính phí tương ứng $40 tiền phí giọng nói cơ bản. Ước tính này không bao gồm đầu vào văn bản, công cụ tùy chọn, thoại qua mạng và hạ tầng của bạn. Hãy bắt đầu với các phiên thử ngắn và đóng các kết nối nhàn rỗi khi cuộc hội thoại kết thúc.
Kết luận
Bắt đầu với một lượt API Grok Voice 3.0 hoàn chỉnh: kết nối, cấu hình phiên, gửi lời nhắc, nhận âm thanh và phát kết quả. Khi luồng này hoạt động, hãy thêm giọng nói đã ghi, rồi xây dựng thu âm micro và phát trực tuyến xung quanh nó. Chỉ đưa các công cụ nghiệp vụ vào sau khi các luồng hội thoại và xử lý lỗi đã ổn định.