Âm thanh / Ghi chú giọng nói — 2026-01-17
Những gì hoạt động
- Hiểu media (âm thanh): Nếu tính năng hiểu âm thanh được bật (hoặc tự động phát hiện), OpenClaw:
- Xác định tệp đính kèm âm thanh đầu tiên (đường dẫn cục bộ hoặc URL) và tải xuống nếu cần.
- Áp dụng
maxBytestrước khi gửi đến từng mục mô hình. - Chạy mục mô hình đủ điều kiện đầu tiên theo thứ tự (nhà cung cấp hoặc CLI).
- Nếu thất bại hoặc bị bỏ qua (kích thước/thời gian chờ), sẽ thử mục tiếp theo.
- Khi thành công, thay thế
Bodybằng một khối[Audio]và đặt{{Transcript}}.
- Phân tích lệnh: Khi phiên âm thành công,
CommandBody/RawBodyđược đặt thành bản phiên âm để các lệnh gạch chéo vẫn hoạt động. - Ghi log chi tiết: Trong
--verbose, chúng tôi ghi lại khi phiên âm chạy và khi nó thay thế nội dung.
Tự động phát hiện (mặc định)
Nếu bạn không cấu hình mô hình vàtools.media.audio.enabled không được đặt thành false,
OpenClaw sẽ tự động phát hiện theo thứ tự sau và dừng ở tùy chọn đầu tiên hoạt động:
- CLI cục bộ (nếu đã cài)
sherpa-onnx-offline(yêu cầuSHERPA_ONNX_MODEL_DIRvới encoder/decoder/joiner/tokens)whisper-cli(từwhisper-cpp; dùngWHISPER_CPP_MODELhoặc mô hình tiny đi kèm)whisper(CLI Python; tự động tải mô hình)
- Gemini CLI (
gemini) sử dụngread_many_files - Khóa nhà cung cấp (OpenAI → Groq → Deepgram → Google)
tools.media.audio.enabled: false.
To customize, set tools.media.audio.models.
Lưu ý: Việc phát hiện nhị phân là best‑effort trên macOS/Linux/Windows; hãy đảm bảo CLI nằm trong PATH (chúng tôi mở rộng ~), hoặc đặt một mô hình CLI tường minh với đường dẫn lệnh đầy đủ.
Ví dụ cấu hình
Nhà cung cấp + dự phòng CLI (OpenAI + Whisper CLI)
Chỉ nhà cung cấp với giới hạn phạm vi
Chỉ nhà cung cấp (Deepgram)
Ghi chú & giới hạn
- Xác thực nhà cung cấp tuân theo thứ tự xác thực mô hình tiêu chuẩn (hồ sơ xác thực, biến môi trường,
models.providers.*.apiKey). - Deepgram sử dụng
DEEPGRAM_API_KEYkhi dùngprovider: "deepgram". - Chi tiết thiết lập Deepgram: Deepgram (phiên âm âm thanh).
- Các nhà cung cấp âm thanh có thể ghi đè
baseUrl,headersvàproviderOptionsthông quatools.media.audio. - Default size cap is 20MB (
tools.media.audio.maxBytes). Oversize audio is skipped for that model and the next entry is tried. - Default
maxCharsfor audio is unset (full transcript). Settools.media.audio.maxCharsor per-entrymaxCharsto trim output. - Mặc định tự động của OpenAI là
gpt-4o-mini-transcribe; đặtmodel: "gpt-4o-transcribe"để có độ chính xác cao hơn. - Dùng
tools.media.audio.attachmentsđể xử lý nhiều ghi chú giọng nói (mode: "all"+maxAttachments). - Bản phiên âm có sẵn cho các template dưới dạng
{{Transcript}}. - stdout của CLI bị giới hạn (5MB); hãy giữ đầu ra CLI ngắn gọn.
Các điểm dễ sai
KhirequireMention: true được thiết lập cho một cuộc trò chuyện nhóm, OpenClaw hiện sẽ phiên âm âm thanh trước khi kiểm tra đề cập. Điều này cho phép xử lý tin nhắn thoại ngay cả khi chúng chứa đề cập.
Cách hoạt động:
- Nếu một tin nhắn thoại không có nội dung văn bản và nhóm yêu cầu đề cập (mention), OpenClaw sẽ thực hiện phiên âm “preflight”.
- Bản phiên âm được kiểm tra các mẫu đề cập (ví dụ:
@BotName, emoji kích hoạt). - Nếu phát hiện đề cập, tin nhắn sẽ tiếp tục đi qua toàn bộ quy trình phản hồi.
- Bản phiên âm được dùng để phát hiện đề cập để các ghi chú thoại có thể vượt qua bước kiểm soát đề cập.
- Nếu quá trình phiên âm thất bại trong giai đoạn preflight (timeout, lỗi API, v.v.), tin nhắn sẽ được xử lý dựa trên phát hiện đề cập chỉ từ văn bản.
- Điều này đảm bảo rằng các tin nhắn kết hợp (văn bản + âm thanh) không bao giờ bị loại bỏ nhầm.
requireMention: true. Ghi chú thoại được phiên âm, đề cập được phát hiện và tác nhân sẽ phản hồi.
Các điểm dễ sai
- Scope rules use first-match wins.
chatTypeis normalized todirect,group, orroom. - Đảm bảo CLI của bạn thoát với mã 0 và in văn bản thuần; JSON cần được xử lý lại qua
jq -r .text. - Giữ thời gian chờ ở mức hợp lý (
timeoutSeconds, mặc định 60s) để tránh chặn hàng đợi phản hồi. - Phiên âm preflight chỉ xử lý tệp âm thanh đầu tiên để phát hiện đề cập. Các tệp âm thanh bổ sung sẽ được xử lý trong giai đoạn hiểu phương tiện chính.