Â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:
1. 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.
2. Áp dụng
maxBytestrước khi gửi đến từng mục mô hình. 3. Chạy mục mô hình đủ điều kiện đầu tiên theo thứ tự (nhà cung cấp hoặc CLI). 4. 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. 5. 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)
To disable auto-detection, set 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)¶
{
tools: {
media: {
audio: {
enabled: true,
maxBytes: 20971520,
models: [
{ provider: "openai", model: "gpt-4o-mini-transcribe" },
{
type: "cli",
command: "whisper",
args: ["--model", "base", "{{MediaPath}}"],
timeoutSeconds: 45,
},
],
},
},
},
}
Chỉ nhà cung cấp với giới hạn phạm vi¶
{
tools: {
media: {
audio: {
enabled: true,
scope: {
default: "allow",
rules: [{ action: "deny", match: { chatType: "group" } }],
},
models: [{ provider: "openai", model: "gpt-4o-mini-transcribe" }],
},
},
},
}
Chỉ nhà cung cấp (Deepgram)¶
{
tools: {
media: {
audio: {
enabled: true,
models: [{ provider: "deepgram", model: "nova-3" }],
},
},
},
}
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. - Giới hạn kích thước mặc định là 20MB (
tools.media.audio.maxBytes). Âm thanh vượt quá giới hạn sẽ bị bỏ qua cho mô hình đó và mục tiếp theo sẽ được thử. maxCharsmặc định cho audio là chưa đặt (toàn bộ bản ghi). Đặttools.media.audio.maxCharshoặcmaxCharscho từng mục để rút gọn đầu ra.- 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¶
- 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.