Chuyển đến nội dung chính
Chế độ Talk bao gồm năm dạng thức runtime:
  • Talk gốc trên macOS/iOS/Android: nhận dạng giọng nói gốc, trò chuyện qua Gateway và TTS talk.speak. Tính năng nhận dạng Apple Speech trên macOS/iOS có thể sử dụng các dịch vụ mạng; hành vi trên Android phụ thuộc vào dịch vụ giọng nói đã cài đặt. Các Node quảng bá khả năng talk và khai báo những lệnh talk.* mà chúng hỗ trợ.
  • Talk trên iOS (thời gian thực): WebRTC do máy khách quản lý cho các cấu hình thời gian thực của OpenAI chọn phương thức truyền tải webrtc hoặc không chỉ định phương thức truyền tải. Các cấu hình thời gian thực gateway-relay, provider-websocket được chỉ định rõ ràng và các cấu hình không phải OpenAI vẫn sử dụng relay do Gateway quản lý; các cấu hình không theo thời gian thực sử dụng vòng lặp giọng nói gốc.
  • Talk trên trình duyệt: talk.client.create cho các phiên webrtc/provider-websocket do máy khách quản lý, hoặc talk.session.create cho các phiên gateway-relay do Gateway quản lý. managed-room được dành riêng cho việc bàn giao qua Gateway và các phòng bộ đàm.
  • Talk trên Android (thời gian thực): chọn tham gia bằng talk.realtime.mode: "realtime"talk.realtime.transport: "gateway-relay". Nếu không, Android tiếp tục sử dụng nhận dạng giọng nói gốc, trò chuyện qua Gateway và talk.speak.
  • Máy khách chỉ phiên âm: talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" }), sau đó là talk.session.appendAudio, talk.session.cancelTurntalk.session.close để tạo phụ đề/đọc chính tả mà không có phản hồi bằng giọng nói của trợ lý. Các ghi chú thoại tải lên một lần vẫn sử dụng đường dẫn âm thanh hiểu nội dung đa phương tiện.
Talk gốc là một vòng lặp liên tục: lắng nghe lời nói, gửi bản phiên âm đến mô hình thông qua phiên đang hoạt động, chờ phản hồi, rồi phát phản hồi đó bằng nhà cung cấp Talk đã cấu hình (talk.speak). Talk thời gian thực do máy khách quản lý chuyển tiếp các lệnh gọi công cụ của nhà cung cấp thông qua talk.client.toolCall thay vì gọi trực tiếp chat.send. Khi một lượt tham vấn thời gian thực đang hoạt động, máy khách có thể gọi talk.client.steer hoặc talk.session.steer để phân loại đầu vào bằng giọng nói là status, steer, cancel hoặc followup. Chỉ dẫn điều hướng được chấp nhận sẽ được đưa vào hàng đợi của lượt chạy nhúng đang hoạt động; chỉ dẫn bị từ chối sẽ trả về một lý do như no_active_run, not_streaming hoặc compacting. Các phát ngôn thời gian thực đã hoàn tất của người dùng và trợ lý luôn được nối trực tiếp vào phiên tác nhân đang hoạt động, để các lượt trò chuyện và giọng nói sau này dùng chung một lịch sử. Các phương thức truyền tải do máy khách quản lý báo cáo bản phiên âm đã hoàn tất bằng mã định danh mục nhập ổn định; các phiên relay của Gateway nối cùng những sự kiện đó ở phía máy chủ. Các phiên của nhà cung cấp cũng nhận ngữ cảnh hồ sơ thời gian thực có giới hạn được giọng nói Discord sử dụng. Các lượt chạy tham vấn bắt nguồn từ giọng nói yêu cầu một xác nhận bằng lời nói mới và chính xác trước các hành động có tác động lớn như gửi tin nhắn, điều khiển Node, thao tác trên trình duyệt/máy tính, thay đổi dịch vụ, thực thi lệnh shell phá hủy hoặc xuất bản. Xác nhận chỉ áp dụng cho đúng các đối số công cụ bị chặn và chỉ được sử dụng một lần; các lượt chạy đồng thời không liên quan không bị ảnh hưởng. Khi cuộc gọi kết thúc, OpenClaw có thể gửi bản tóm tắt ngắn gọn Thay đổi của cuộc gọi thoại về các công cụ gây thay đổi đến đích gửi nhận cuối cùng không phải WebChat của phiên. Talk chỉ phiên âm phát cùng một phong bì sự kiện Talk như các phiên thời gian thực và STT/TTS, nhưng sử dụng mode: "transcription"brain: "none". Tất cả các phiên Talk phát sự kiện trên kênh talk.event; máy khách đăng ký kênh này để nhận các bản cập nhật phiên âm một phần/hoàn chỉnh (transcript.delta/transcript.done) và dữ liệu đo từ xa khác của phiên. Talk Video trên trình duyệt khả dụng cho OpenAI Realtime WebRTC và các phiên WebSocket của nhà cung cấp Google Live. OpenAI nhận một ảnh JPEG duy nhất có giới hạn khi describe_view yêu cầu ngữ cảnh trực quan; OpenAI không nhận luồng camera liên tục. Google Live nhận trực tiếp các khung hình JPEG có giới hạn từ trình duyệt với tốc độ tối đa một khung hình mỗi giây, trong khi describe_view báo cáo trạng thái luồng camera. Trong cả hai trường hợp, các khung hình camera đều bỏ qua Gateway, và việc dừng Talk sẽ giải phóng các luồng camera và micrô.

Hành vi (macOS)

  • Lớp phủ luôn hiển thị khi chế độ Talk được bật.
  • Chuyển đổi giữa các giai đoạn Đang nghe → Đang suy nghĩ → Đang nói.
  • Khi có khoảng dừng ngắn (khoảng lặng), bản phiên âm hiện tại được gửi đi.
  • Các phản hồi được ghi vào WebChat (giống như khi nhập văn bản).
  • Ngắt khi có lời nói (mặc định bật): nếu người dùng nói trong khi trợ lý đang phát lời, quá trình phát sẽ dừng và dấu thời gian ngắt được ghi lại cho lời nhắc tiếp theo.

Chỉ thị giọng nói trong phản hồi

Trợ lý có thể thêm một dòng JSON duy nhất vào đầu phản hồi để điều khiển giọng nói:
Quy tắc:
  • Chỉ áp dụng cho dòng không trống đầu tiên; dòng JSON sẽ bị loại bỏ trước khi phát TTS.
  • Các khóa không xác định sẽ bị bỏ qua.
  • once: true chỉ áp dụng cho phản hồi hiện tại; nếu không có, giọng nói sẽ trở thành mặc định mới của chế độ Talk.
Các khóa được hỗ trợ: voice / voice_id / voiceId, model / model_id / modelId, speed, rate (WPM), stability, similarity, style, speakerBoost, seed, normalize, lang, output_format, latency_tier, once.

Cấu hình (~/.openclaw/openclaw.json)

talk.catalog cung cấp các ID nhà cung cấp chuẩn và bí danh trong sổ đăng ký, các chế độ/phương thức truyền tải/chiến lược bộ não/định dạng âm thanh thời gian thực/cờ khả năng hợp lệ của từng nhà cung cấp và kết quả trạng thái sẵn sàng do môi trường chạy lựa chọn. Các máy khách Talk chính chủ nên đọc danh mục đó thay vì duy trì bí danh nhà cung cấp cục bộ; hãy coi một Gateway cũ không cung cấp trạng thái sẵn sàng theo nhóm là chưa được xác minh, thay vì chắc chắn chưa được cấu hình. Các nhà cung cấp phiên âm trực tuyến được phát hiện thông qua talk.catalog.transcription; tính năng chuyển tiếp Gateway hiện tại sử dụng cấu hình nhà cung cấp phát trực tuyến của Voice Call cho đến khi có bề mặt cấu hình phiên âm Talk chuyên dụng.

Giao diện người dùng macOS

  • Nút bật/tắt trên thanh menu: Talk
  • Thẻ cấu hình: nhóm Talk Mode (ID giọng nói + nút bật/tắt ngắt lời)
  • Lớp phủ: quả cầu hiển thị dạng sóng đàm thoại chung (được chia sẻ với iOS, watchOS và Android). Trạng thái Đang nghe phản ánh mức mic trực tiếp, trạng thái Đang nói phản ánh đường bao phát TTS thực tế, trạng thái Đang suy nghĩ chuyển động nhẹ nhàng. Nhấp vào quả cầu để tạm dừng/tiếp tục, nhấp đúp để dừng nói, nhấp vào X để thoát chế độ Talk.

Giao diện người dùng Android

  • Điều hướng chính của Android gồm Home, ChatSettings. Tính năng nhập liệu bằng giọng nói nằm trong trình soạn thảo Chat thay vì một thẻ Voice riêng.
  • Nhấn vào biểu tượng micrô của trình soạn thảo để đọc chính tả trên thiết bị. Nhấn giữ để ghi tệp đính kèm ghi chú thoại. Bắt đầu Talk liên tục từ dạng sóng Talk.
  • Đọc chính tả, ghi ghi chú thoại và Talk là các đường dẫn micrô loại trừ lẫn nhau; việc bắt đầu một đường dẫn sẽ dừng hoặc chặn các đường dẫn còn lại.
  • Talk theo thời gian thực ưu tiên micrô của tai nghe Bluetooth Classic hoặc BLE đang kết nối; nếu thiết bị ngắt kết nối, ứng dụng sẽ yêu cầu một đầu vào tai nghe khác hoặc dự phòng về micrô mặc định, đồng thời khôi phục tùy chọn mặc định sau khi quá trình thu âm dừng lại.
  • Đọc chính tả và ghi ghi chú thoại sẽ dừng khi ứng dụng rời khỏi nền trước hoặc người dùng rời khỏi Chat.
  • Talk Mode tiếp tục chạy cho đến khi bị tắt hoặc Node ngắt kết nối, sử dụng loại dịch vụ nền trước dành cho micrô của Android khi đang hoạt động.
  • Android hỗ trợ các định dạng đầu ra pcm_16000, pcm_22050, pcm_24000pcm_44100 để phát trực tuyến AudioTrack với độ trễ thấp.

Ghi chú

  • Yêu cầu quyền truy cập Giọng nói + Micrô.
  • Talk gốc sử dụng phiên Gateway đang hoạt động và chỉ dự phòng sang việc thăm dò lịch sử khi các sự kiện phản hồi không khả dụng.
  • Gateway phân giải việc phát Talk thông qua talk.speak bằng nhà cung cấp Talk đang hoạt động. Android chỉ dự phòng sang TTS hệ thống cục bộ khi RPC đó không khả dụng.
  • Tính năng phát MLX cục bộ trên macOS sử dụng trình trợ giúp openclaw-mlx-tts đi kèm khi có, hoặc một tệp thực thi trên PATH. Đặt OPENCLAW_MLX_TTS_BIN để trỏ đến tệp nhị phân trợ giúp tùy chỉnh trong quá trình phát triển.
  • Phạm vi giá trị chỉ thị giọng nói (ElevenLabs): stability, similaritystyle chấp nhận 0..1; speed chấp nhận 0.5..2; latency_tier chấp nhận 0..4.

Liên quan