Phím tắt OBS và điều khiển bằng Stream Deck Thử nghiệm

Cập nhật lần cuối 4 tháng 10, 2026 Dành cho: Trưởng ban kỹ thuật tự động hóa OBS bằng phím tắt, Stream Deck hoặc Companion

Trên trang này

Bạn có thể điều khiển SermonWave trong OBS mà không cần chạm vào dock: bằng phím tắt, hoặc từ Stream Deck hay Bitfocus Companion qua obs-websocket. Mọi thứ ở đây đều hoạt động khi dock đã đóng. Trong dock, mục Stream Deck & control đặt thời điểm việc dịch tự bắt đầu và hiện một bản tóm tắt ngắn trong Hotkeys and Stream Deck.

Dành cho ai#

Trưởng ban kỹ thuật đã điều khiển OBS bằng phím tắt, Elgato Stream Deck, Bitfocus Companion hoặc một bộ điều khiển tương tự.

Trước khi bắt đầu#

  • Plugin đã được cài đặt và ghép nối. Xem Ghép nối OBS với SermonWave.
  • Với Stream Deck / Companion: máy chủ obs-websocket đã được bật trong OBS (Tools → WebSocket Server Settings → Enable WebSocket server). Tính năng này có sẵn trong OBS 28 trở lên.
  • Bộ điều khiển của bạn có thể gửi một yêu cầu obs-websocket thô (ví dụ mô-đun OBS của Companion với yêu cầu tùy chỉnh, hoặc một plugin Stream Deck hỗ trợ CallVendorRequest).

Phím tắt#

Plugin thêm các mục SermonWave vào OBS Settings → Hotkeys:

  • SermonWave: Start translation (bắt đầu dịch), SermonWave: Stop translation (dừng dịch) và SermonWave: Start / stop translation (toggle) (bật/tắt dịch).
  • Theo từng ngôn ngữ: SermonWave: Start translated stream … / Stop translated stream … (bắt đầu/dừng luồng phát đã dịch) và SermonWave: Start translated recording … / Stop translated recording … (bắt đầu/dừng bản ghi đã dịch).
  • Theo từng ngôn ngữ: SermonWave: Toggle language … thêm hoặc gỡ ngôn ngữ đó khỏi danh sách ngôn ngữ của thiết bị. Thao tác này thay đổi thiết bị cho tất cả mọi người, giống như Save languages.

Gán phím ở đó như mọi phím tắt OBS khác. Stream Deck có thể nhấn các phím này bằng các thao tác phím tắt OBS của nó.

Thường thì bạn thậm chí không cần đến chúng, vì việc dịch đi theo OBS:

  1. Trong dock, ở mục Stream Deck & control, đặt Translate when thành Streaming (khi phát), Recording (khi ghi) hoặc Streaming or recording (khi phát hoặc ghi). Xem Thiết lập âm thanh, ngôn ngữ và bắt đầu/dừng trong OBS.
  2. Trong OBS Settings → Hotkeys, gán phím cho các lệnh có sẵn của OBS: Start Streaming / Stop Streaming và Start Recording / Stop Recording.
  3. Từ giờ, nhấn các phím đó sẽ bắt đầu và dừng cùng lúc việc dịch, các luồng phát đã dịch và các bản ghi đã dịch.
OBS Settings > Hotkeys với các mục SermonWave và phím đã gán cho Start Streaming

Yêu cầu vendor obs-websocket#

Plugin đăng ký một vendor obs-websocket tên là sermonwave. Bất kỳ ứng dụng obs-websocket nào cũng có thể gọi nó bằng yêu cầu chuẩn CallVendorRequest:

{
  "requestType": "CallVendorRequest",
  "requestData": {
    "vendorName": "sermonwave",
    "requestType": "get_state",
    "requestData": {}
  }
}

Ngôn ngữ được ghi bằng mã ngắn, ví dụ es, fr, pt.

Các yêu cầu hữu ích#

Loại yêu cầuDữ liệu yêu cầuChức năng
GetStatus—Trạng thái ghép nối, kết nối, phiên, ngôn ngữ của thiết bị, trạng thái luồng phát/bản ghi của từng ngôn ngữ đã thêm và tên các phím tắt.
Start / Stop / Togglewait (true/false, không bắt buộc)Bắt đầu, dừng hoặc bật/tắt phiên dịch, giống như Start translation / Stop translation. Với wait, câu trả lời đến sau khi SermonWave xác nhận (tối đa 10 giây).
StartTranslatedStream / StopTranslatedStreamlanguageBắt đầu hoặc dừng luồng phát đã dịch của một ngôn ngữ, giống như nút Start / Stop của nó.
StartTranslatedRecording / StopTranslatedRecordinglanguageBật hoặc tắt bản ghi của một ngôn ngữ, giống như nút REC của nó.
ToggleLanguagelanguageThêm hoặc gỡ ngôn ngữ đó khỏi danh sách ngôn ngữ của thiết bị. Thay đổi thiết bị cho tất cả mọi người.
get_state—Trạng thái ghép nối, số thiết bị, ngôn ngữ của thiết bị, ngôn ngữ phụ đề, tình trạng hoạt động.
get_outputs—Theo từng ngôn ngữ: trạng thái luồng phát/bản ghi, bitrate, khung hình bị rớt, tiến độ đồng bộ lại, trạng thái YouTube và liên kết xem.
set_outputlanguage cùng bất kỳ trường nào bên dướiThay đổi cài đặt của một ngôn ngữ đã thêm.
add_languagelanguageGiống như Add language.
remove_languagelanguageGiống như Remove.
set_sync_delaysync_delay_ms (4000–15000)Đặt Sync delay.
set_languagessource_language, target_languages (danh sách {"code": "es"})Lưu ngôn ngữ của thiết bị, giống như Save languages. Thay đổi thiết bị cho tất cả mọi người.
set_youtube_channelchannelLưu Channel for /listen.
youtube_state—Trạng thái đăng nhập YouTube và buổi phát.
youtube_settingsprivacy (unlisted, public, private), title_templateĐặt chế độ riêng tư và tiêu đề YouTube.
youtube_keysrefresh (true/false)Liệt kê các khóa luồng (stream key) của kênh bạn.
collect_diagnosticsreasonGửi ngay một báo cáo chẩn đoán đến bộ phận hỗ trợ SermonWave.

Các trường của set_output#

Tất cả đều không bắt buộc, trừ language:

  • stream_now: "start" hoặc "stop" — giống như nút Start / Stop của ngôn ngữ đó trên thanh điều khiển.
  • video_quality: auto, 720p, 1080p, 480p hoặc match — Video quality của ngôn ngữ đó (match = Same as the main stream, giống luồng phát chính).
  • stream_enabled, record_enabled, room (true/false) — Stream …, Record a … copy, Play … in the room.
  • preset: youtube_rtmps, youtube_rtmps_backup, youtube_rtmp, facebook, custom; hoặc destination: youtube_auto cho YouTube (automatic).
  • server, key — máy chủ và khóa luồng cho một nền tảng nhập thủ công.
  • sync_video, stream_captions, record_captions, captions_default, resync, keep_live (true/false).
  • bg_db, bg_off, duck_db — mức Original audio, tắt Original audio (Off), và mức Under translation, tính bằng dB.

Ví dụ#

Bắt đầu ngay luồng phát đã dịch tiếng Tây Ban Nha:

{
  "requestType": "CallVendorRequest",
  "requestData": {
    "vendorName": "sermonwave",
    "requestType": "set_output",
    "requestData": { "language": "es", "stream_now": "start" }
  }
}

Bật phát tiếng Pháp trong phòng:

{
  "requestType": "CallVendorRequest",
  "requestData": {
    "vendorName": "sermonwave",
    "requestType": "set_output",
    "requestData": { "language": "fr", "room": true }
  }
}

Giảm âm thanh gốc dưới bản dịch tiếng Tây Ban Nha xuống −25 dB:

{
  "requestType": "CallVendorRequest",
  "requestData": {
    "vendorName": "sermonwave",
    "requestType": "set_output",
    "requestData": { "language": "es", "duck_db": -25 }
  }
}

Kết quả trả về nằm trong responseData của phản hồi. Các yêu cầu như set_output trả lời {"ok": true} ngay lập tức; hãy kiểm tra kết quả bằng get_outputs.

Khắc phục sự cố#

Yêu cầu bị lỗi với thông báo vendor không xác định. obs-websocket chưa chạy khi OBS tải plugin, hoặc plugin chưa được cài đặt. Hãy bật máy chủ WebSocket rồi khởi động lại OBS.

set_output trả về ok: false. Thiếu trường language.

Không có gì xảy ra với một ngôn ngữ. Bảo đảm ngôn ngữ đó đã được thêm bằng Add language trong mục Translated streams (hoặc gọi add_language trước). Phím tắt theo từng ngôn ngữ xuất hiện trong OBS Settings → Hotkeys khi thiết bị cung cấp ngôn ngữ đó hoặc khi ngôn ngữ được thêm trong dock.

Câu hỏi thường gặp#

Phím tắt có hoạt động khi dock đã đóng không?#

Có. Phím tắt, các yêu cầu obs-websocket và việc tự động bắt đầu, dừng theo luồng phát hoặc bản ghi đều hoạt động khi dock đã đóng.

Kết nối obs-websocket có an toàn không?#

Kết nối này chỉ nằm trong mạng nội bộ của bạn. Hãy giữ Enable Authentication được bật trong WebSocket Server Settings và dùng mật khẩu đó trong bộ điều khiển của bạn.