Claude Code Voice Mode: Hướng Dẫn Từng Bước (2026)

Claude Code voice mode hero: stick figure tại terminal với spacebar được nhấn mạnh, 20-language globe icon, sound waves
Claude Code voice mode: nhấn Spacebar để nói, Claude Code transcribe và gửi đến Claude API không tốn token.

Bạn vừa đọc qua changelog Claude Code và bắt gặp dòng “Voice Mode: push-to-talk built-in”. Nghe hay đấy: nói ra, Claude tự hiểu và thực thi, không cần gõ từng ký tự. Nhưng Claude Code voice mode bật thế nào? Cần update lên version nào? Tiếng Việt có dùng được không? Xem chi tiết điều khiển Claude từ xa.

Mình test tính năng này 2 tuần liên tục. Kết quả ngắn: nó hoạt động tốt, thiết lập trong 2 phút, nhưng có 2 điểm bạn cần biết trước: tiếng Việt chưa có trong danh sách chính thức, và cách setup trên WSL khác với macOS. Bài này cover đầy đủ từ bật lần đầu đến tùy chỉnh nâng cao.

Trả lời nhanh:/voice trong terminal Claude Code, giữ Spacebar để nói, thả để gửi transcript đến Claude. Tính năng có từ v2.1.69 (hold mode) và v2.1.116 (tap mode). Transcription không tốn token. Cần claude.ai account. API key trực tiếp không dùng được. Setup mất 2-3 phút.

TL;DR

  • /voice trong terminal, giữ Spacebar để nói, transcript xuất hiện ngay lập tức.
  • Tap mode (v2.1.116): tap 1 lần bắt đầu, tap lần nữa để gửi, tự dừng sau 15 giây silence.
  • Tiếng Việt chưa hỗ trợ. Workaround: nói tiếng Anh, cấu hình language: "english", Claude vẫn reply tiếng Việt.
  • Transcription miễn phí: không tính token, không ảnh hưởng rate limit.
  • Cần claude.ai account. API key, Bedrock, Vertex AI không dùng được.
20
Ngôn ngữ hỗ trợ
$0
Chi phí transcription
$10/mo
Wispr Flow cho Cursor
15s
Auto-stop tap mode

Claude Code Voice Mode là gì và hoạt động thế nào?

Claude Code voice mode là tính năng push-to-talk tích hợp sẵn trong CLI, ra mắt ngày 3 tháng 3 năm 2026 (v2.1.69). Không cần extension bên ngoài, không cần cấu hình microphone phức tạp. Speech được transcribe real-time và stream trực tiếp vào prompt input, bạn có thể trộn voice và typing trong cùng một câu lệnh. Nếu bạn chưa dùng Claude Code trước, xem thêm bài Claude Code là gì trước khi bắt đầu.

Cơ chế hoạt động theo 3 bước: bạn nói, Claude Code transcribe local rồi gửi text đến Claude API, Claude xử lý và trả lời. Transcription không đi qua Claude API nên không tốn token, không ảnh hưởng rate limit. Đây là lý do feature này miễn phí hoàn toàn cho người dùng có claude.ai subscription.

Điểm khác biệt so với các công cụ voice-to-text thông thường là coding vocabulary recognition: Claude Code tự inject tên project và git branch hiện tại làm recognition hints, nên terminal nhận tốt các từ kỹ thuật như “pytest”, “OAuth”, “localhost:3000”, hoặc tên function cụ thể trong codebase của bạn.

Feature được phát triển nhanh sau launch: trong 7 tuần đầu có 5 bản update đáng kể, fix bug startup freeze (v2.1.83), Windows WebSocket issue (v2.1.89), và thêm tap mode (v2.1.116). Đây là dấu hiệu Anthropic đang đầu tư nghiêm túc vào voice-first coding workflow.

Nguồn: Claude Code official docs: Voice dictation + changelog v2.1.69, March 3, 2026.

Bật Voice Mode Trong Claude Code Như Thế Nào?

Bật voice mode bằng lệnh /voice trong terminal. Lần đầu chạy, Claude Code sẽ xin quyền truy cập microphone (macOS hiển thị popup hệ thống). Cần có claude.ai account được authenticate. API key trực tiếp không đủ, Bedrock và Vertex AI cũng không hỗ trợ.

Các bước cụ thể:

Bước 1: Kiểm tra version

Version tối thiểu là v2.1.69 cho hold mode, v2.1.116 cho tap mode. Kiểm tra bằng:

claude --version

Nếu cần update:

npm update -g @anthropic-ai/claude-code

Bước 2: Authenticate claude.ai

Chạy claude và đảm bảo bạn đã login bằng claude.ai account (không phải API key). Voice mode chỉ hoạt động với claude.ai authentication:

claude auth status
# Phải hiển thị: Authenticated as [your-email]@[domain]

Bước 3: Bật voice

Trong một session Claude Code đang chạy, gõ:

/voice

Claude Code hiển thị microphone indicator. Lần đầu trên macOS, cửa sổ permission pop up, chọn “Allow”. Linux và Windows tự nhận mic mà không cần confirm.

Checkpoint: Bạn thấy icon microphone hoặc dòng “Voice mode enabled” trong terminal. Giữ Spacebar và nói vài từ, transcript xuất hiện trong prompt input.

Lệnh /voice là toggle: gõ lại để tắt. Nếu muốn voice bật tự động mỗi khi mở Claude Code, thêm vào config:

/config set voiceEnabled true

Tính năng này có từ v2.1.79 trở lên.

Hold Mode vs Tap Mode: Cái nào phù hợp hơn?

Hold mode (mặc định) bạn giữ Spacebar trong khi nói, thả ra để gửi transcript. Tap mode (v2.1.116) bạn tap 1 lần để bắt đầu ghi âm, tap lần nữa để gửi, tự dừng sau 15 giây silence. Tap mode tiện hơn cho câu dài, hold mode phản hồi nhanh hơn cho lệnh ngắn.

Hold Mode vs Tap Mode comparison: two-column diagram showing hold spacebar on left vs single-tap on right, 15s auto-stop indicator
Hold Mode (v2.1.69): giữ Spacebar để nói, thả để gửi. Tap Mode (v2.1.116): tap 1 lần bắt đầu, tap lần nữa để gửi, tự dừng sau 15 giây.
Tiêu chí Hold Mode Tap Mode
Cách dùng Giữ Spacebar khi nói, thả để gửi Tap 1 lần bắt đầu, tap 1 lần gửi
Version tối thiểu v2.1.69 v2.1.116
Auto-stop Không (phụ thuộc thả tay) Có, sau 15 giây silence
Phù hợp với Lệnh ngắn, query nhanh Câu dài, mô tả phức tạp
Tích hợp autoSubmit Có (min 3 từ) Gửi khi tap lần 2
Khi ngắt kết nối Drop, không gửi Giữ transcript, gửi khi kết nối lại
Nguồn: Claude Code docs: Voice dictation, hold mode vs tap mode, v2.1.116 changelog.

Bật tap mode:

/voice tap

Quay về hold mode:

/voice hold

Sau 2 tuần dùng cả hai, mình thấy tap mode phù hợp hơn cho workflow thực tế. Hold mode khó dùng khi bạn vừa giữ phím vừa nhìn màn hình đọc code. Với tap mode, bạn tap bàn phím, nhìn màn hình, nói thoải mái, rồi tap lại để gửi, tay không bị lock.

Có thể Tùy Chỉnh autoSubmit và Phím Push-to-Talk không?

Có. autoSubmit: true trong config giúp hold mode tự gửi khi thả Spacebar (cần ít nhất 3 từ để trigger). Phím push-to-talk mặc định là Spacebar và rebind được trong ~/.claude/keybindings.json.

Bật autoSubmit:

/config set autoSubmit true

Với autoSubmit, bạn không cần Enter sau khi thả phím. Claude nhận transcript và xử lý ngay. Hữu ích khi dùng voice để ra lệnh liên tục.

Rebind phím push-to-talk: tạo hoặc sửa file ~/.claude/keybindings.json:

{
  "voice:pushToTalk": "ctrl+space"
}

Các phím hợp lệ: single keys (space, f1f12, tab) hoặc combinations (ctrl+space, alt+v). Spacebar là mặc định vì ít conflict nhất trong terminal, nhưng nếu bạn hay dùng Spacebar cho autocomplete thì rebind sang ctrl+space tiện hơn.

Đây là lúc mình áp dụng Push-First Workflow, pattern kết hợp voice và keyboard cho hiệu quả tối ưu. Thay vì dùng voice 100% hoặc bỏ hoàn toàn, mình dùng voice cho intent dài (“viết unit test cho function này, dùng pytest, mock database call, cover cả trường hợp connection timeout”), sau đó dùng keyboard để sửa tên file cụ thể, path, hoặc regex pattern ngắn. Kết quả sau 2 tuần: gõ ít hơn khoảng 40% cho những coding session dài trên 2 tiếng.

Voice Mode có hoạt động trên Windows và WSL không?

macOS, Linux, và Windows native đều hỗ trợ. WSL2 với WSLg (Windows 11) cũng chạy được. WSL1 và Windows 10 WSL không hỗ trợ vì thiếu audio bridge. Cần dùng Windows native terminal thay thế. Remote SSH và GitHub Codespaces không hỗ trợ do mic nằm trên local machine, không truyền qua SSH.

Platform Hỗ trợ Ghi chú
macOS Permission popup lần đầu
Linux SoX fallback nếu không có ALSA
Windows native WebSocket fix trong v2.1.89
WSL2 + WSLg (Win 11) Cần WSLg, xem hướng dẫn bên dưới
WSL1 Không Dùng Windows native terminal
Windows 10 WSL Không WSLg chỉ có trên Windows 11
Remote SSH Không Mic không truyền qua SSH
GitHub Codespaces Không Cloud environment, không có mic
VS Code Extension Hoạt động như CLI

Setup WSL2 trên Windows 11:

Kiểm tra WSLg đã cài chưa:

echo $WAYLAND_DISPLAY
# Nếu hiển thị "wayland-0" hoặc tương tự: WSLg đã hoạt động
# Nếu trống: cần update WSL

Update WSL để có WSLg:

wsl --update
wsl --shutdown
# Khởi động lại WSL

Sau đó chạy Claude Code trong WSL2 như bình thường và /voice sẽ nhận mic từ Windows host qua WSLg audio bridge.

Tiếng Việt có được hỗ trợ trong Voice Mode không?

Tiếng Việt chưa có trong 20 ngôn ngữ hỗ trợ tính đến tháng 4 năm 2026. GitHub issue #40433 (mở ngày 29 tháng 3 năm 2026) ghi nhận yêu cầu này. Workaround: cấu hình language: "english" trong /config, nói tiếng Anh, Claude vẫn reply tiếng Việt vì ngôn ngữ phản hồi phụ thuộc vào conversation context, không phải ngôn ngữ transcription.

Vietnamese language gap diagram: 20-flag grid with VN flag as pending, English flag highlighted, 3-step workaround flow showing /config command to Vietnamese reply
Tiếng Việt chưa có trong 20 ngôn ngữ hỗ trợ. Workaround 3 bước: đặt language English, nói tiếng Anh, nhận reply tiếng Việt.

20 ngôn ngữ hiện hỗ trợ: Czech, Danish, Dutch, English, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Russian, Spanish, Swedish, Turkish, Ukrainian.

Tiếng Việt không có trong danh sách này. Tuy nhiên workaround sau đây hoạt động trong thực tế:

Bước 1: Đặt transcription language về English:

/config set language english

Bước 2: Nói tiếng Anh khi dùng voice (“write unit tests for the auth module, use pytest”).

Bước 3: Claude nhận transcript tiếng Anh, nhưng nếu conversation context của bạn đang là tiếng Việt (hoặc bạn đã gửi message tiếng Việt trước), Claude sẽ reply tiếng Việt.

Lưu ý: Workaround này đòi hỏi bạn nói tiếng Anh khi dùng voice. Không thể nói tiếng Việt và được transcribe chính xác: tiếng Việt có dấu thanh phức tạp mà model tiếng Anh không xử lý đúng. Dùng voice cho technical commands (thường là tiếng Anh anyway), gõ keyboard cho context tiếng Việt.

Điểm thú vị mình phát hiện: transcription engine tự nhận project name và git branch làm recognition hints. Nếu branch của bạn tên feat/user-authentication, engine nhận đúng từ “authentication” dù nó dài và kỹ thuật. Đây là lý do voice mode hoạt động tốt hơn expected cho coding context so với general-purpose dictation.

Nguồn: GitHub issue #40433: Vietnamese language support request, mở ngày 29 tháng 3 năm 2026.

Claude Code Voice Mode vs Cursor và GitHub Copilot: Cái Nào Tốt Hơn?

Claude Code là công cụ coding duy nhất có native voice built-in. Cursor không có voice native, cần Wispr Flow extension ($10/tháng). GitHub Copilot Voice đã bị deprecated từ tháng 4 năm 2024 và không còn nhận user mới. Đây là lý do Push-First Workflow với Claude Code không có equivalent trên Cursor hoặc Copilot.

Tính năng Claude Code /voice Cursor GitHub Copilot Voice
Native voice Có (built-in) Không (cần Wispr Flow) Deprecated Apr 2024
Chi phí voice $0 (included) $10/tháng (Wispr Flow) N/A
Số ngôn ngữ 20 Phụ thuộc Wispr Flow N/A
Push-to-talk Có (hold + tap) Qua Wispr Flow N/A
CLI support Có (native CLI) Không (IDE only) Không
Tap mode Có (v2.1.116) Không N/A
Tiếng Việt Chưa (workaround có) Phụ thuộc Wispr Flow N/A
Account yêu cầu claude.ai account Cursor account + Wispr GitHub account

Cursor là IDE với nhiều tính năng khác mạnh hơn Claude Code CLI (file tree, diff view, inline edit), nhưng về voice thì ngược lại: phải dùng Wispr Flow extension với chi phí riêng và chạy ngoài Cursor. Không có native integration kiểu “giữ Spacebar trong IDE và câu lệnh tự vào chat”.

Wispr Flow bản thân là tool tốt cho general dictation, nhưng không có coding vocabulary optimization và không integrate với Cursor context. Bạn cần 2 subscription riêng biệt cho voice coding với Cursor. Để so sánh tổng chi phí Claude Code, xem thêm Claude Code giá bao nhiêu.

Với Claude Code, Push-First Workflow chạy trong cùng một terminal session: voice intent, keyboard correction, không context-switch, không phụ thuộc external service.

Xử Lý Sự Cố Thường Gặp

4 vấn đề phổ biến nhất: WSL không nhận mic, macOS block permission, CJK IME conflict, và startup freeze 1-8 giây (đã fix trong v2.1.83).

Vấn đề 1: WSL không nhận microphone

Triệu chứng: /voice enable nhưng giữ Spacebar không có gì xảy ra.

Nguyên nhân: WSLg chưa chạy, hoặc đang dùng WSL1.

Sửa: Kiểm tra echo $WAYLAND_DISPLAY, nếu trống hãy chạy wsl --update rồi restart. Nếu đang dùng WSL1, chuyển sang WSL2: wsl --set-version [distro] 2.

Vấn đề 2: macOS báo lỗi permission sau khi deny lần đầu

Triệu chứng: Lần đầu bạn chọn “Don’t Allow” hoặc bấm nhầm, sau đó /voice không xin permission lại.

Sửa: Vào System Settings > Privacy & Security > Microphone, tìm “claude” hoặc “Node” trong danh sách, toggle ON.

Vấn đề 3: CJK IME conflict (tiếng Trung, tiếng Nhật, tiếng Hàn)

Triệu chứng: Spacebar không trigger voice, thay vào đó confirm IME character.

Nguyên nhân: IME intercept Spacebar trước khi Claude Code nhận.

Sửa: Tắt IME mode trước khi dùng voice (thường là Shift hoặc Ctrl+Space tùy IME), hoặc rebind push-to-talk sang ctrl+v hay phím khác không conflict với IME. Fix chính thức có trong v2.1.83.

Vấn đề 4: Voice mode freeze 1-8 giây khi bắt đầu

Triệu chứng: Sau khi gõ /voice, terminal dừng 1-8 giây trước khi microphone active.

Nguyên nhân: Bug khởi tạo audio subsystem, đã fix trong v2.1.83.

Sửa: Update Claude Code lên v2.1.83 trở lên.

Câu Hỏi Thường Gặp

Cần version Claude Code nào để dùng voice mode?

Hold mode (giữ Spacebar) cần v2.1.69 trở lên, ra mắt ngày 3 tháng 3 năm 2026. Tap mode (/voice tap) cần v2.1.116 trở lên. Để có trải nghiệm ổn định nhất, nên update lên v2.1.119 trở lên: version này fix bug macOS first-recording empty result (Apr 23, 2026). Kiểm tra version hiện tại bằng claude --version.

Voice mode có tốn thêm chi phí không?

Không. Transcription (speech-to-text) chạy local và không đi qua Claude API, không tính vào Claude messages hay token consumption. Rate limit của bạn không bị ảnh hưởng. Tính năng này included trong Claude subscription hiện có mà không cần trả thêm.

Có cần claude.ai account không, dùng API key có được không?

Bắt buộc cần claude.ai account. API key trực tiếp không đủ để authenticate voice mode. Voice mode cũng không hoạt động với Amazon Bedrock, Google Vertex AI, hoặc Microsoft Foundry: chỉ hỗ trợ với claude.ai authentication.

Tiếng Việt có được hỗ trợ không và có workaround không?

Tiếng Việt chưa có trong 20 ngôn ngữ hỗ trợ tính đến tháng 4 năm 2026 (GitHub issue #40433). Workaround: cấu hình language: "english" bằng lệnh /config set language english, nói tiếng Anh khi dùng voice. Claude sẽ vẫn reply tiếng Việt nếu conversation context của bạn là tiếng Việt. Đây là workaround functional: nói tiếng Anh cho technical commands vốn hay là tiếng Anh, Claude reply tiếng Việt cho context và explanation.

Tap mode khác hold mode như thế nào?

Hold mode: giữ Spacebar khi nói, thả để gửi transcript, phản hồi nhanh, phù hợp câu ngắn. Tap mode (v2.1.116): tap 1 lần để bắt đầu ghi âm, tap lần 2 để gửi, tự dừng sau 15 giây silence, phù hợp câu dài. Bật tap mode bằng lệnh /voice tap. Mình thích tap mode hơn vì không cần giữ tay trên bàn phím trong lúc nói.

Voice mode có hoạt động trong VS Code extension không?

Có. VS Code extension của Claude Code hỗ trợ voice mode giống như CLI. Khi dùng trong VS Code, bạn vẫn gõ /voice trong chat panel và dùng Spacebar push-to-talk. Tương tự, JetBrains extension cũng hỗ trợ. Chỉ Web version (claude.ai/code) là không hỗ trợ voice mode.

Kết Luận

Claude Code voice mode là tính năng thiết thực cho workflow hàng ngày. Điểm mạnh nhất là native integration: không thêm subscription, không context-switch, không setup phức tạp. Gõ /voice, nói, Claude làm.

Push-First Workflow là cách khai thác tốt nhất: voice cho intent và câu lệnh dài, keyboard cho correction và path cụ thể. Tiếng Việt chưa được hỗ trợ nhưng workaround language: "english" hoạt động đủ tốt cho coding session. Technical commands vốn là tiếng Anh, Claude reply tiếng Việt cho context.

Nếu bạn dùng WSL trên Windows 11, hãy chắc WSLg đã cài trước khi thử. Nếu mới bắt đầu với Claude Code, xem thêm hướng dẫn cài đặt Claude Code để có nền tảng trước khi thiết lập voice.

Muốn đẩy workflow xa hơn, kết hợp voice mode với Claude Code hooks để tự động hóa toàn bộ pipeline từ voice command đến commit. Với mình, tính năng này thay đổi cách viết code theo hướng nói ra ý tưởng trước rồi mới chỉnh sửa chi tiết sau, thay vì gõ từng dòng từ đầu. Xem tổng hợp tất cả tính năng tại roadmap đầy đủ Claude Code 2026.

Similar Posts