⚠ Bản dịch đã lỗi thời

Xem bản tiếng Anh để biết thông tin mới nhất về lệnh gọi công cụ và hiệu năng VoiceChat.

Tham khảo CLI

Tệp thực thi speech là điểm vào chính cho mọi tác vụ xử lý giọng nói. Biên dịch bằng make build, sau đó chạy từ .build/release/speech.

transcribe

Chuyển tệp âm thanh thành văn bản.

speech transcribe <file> [options]
Tùy chọnMặc địnhMô tả
<file>Tệp âm thanh để chuyển thành văn bản (WAV, M4A, MP3, CAF)
--engineqwen3Engine ASR: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper
--model, -m0.6BBiến thể mô hình: 0.6B, 1.7B hoặc ID mô hình HuggingFace đầy đủ (chỉ qwen3) [whisper]: default, turbo, or full CoreML HuggingFace repo ID.
[cohere/voxtral]: INT5 (mặc định), INT8, FP16, mã mô hình Hugging Face hoặc thư mục cục bộ. [moss coreml]: int8 (mặc định) hoặc fp16; [moss mlx]: int5 (mặc định) hoặc int8. Cũng chấp nhận kho Hugging Face tương thích hoặc thư mục cục bộ.
--max-tokensCoreML: 512
MLX: 5120
[moss] Số token bản ghi tối đa được tạo.
--kv-cachefp16[moss mlx] Độ chính xác bộ đệm KV động: fp16 hoặc int8.
--languageGợi ý ngôn ngữ (tùy chọn, bị bỏ qua bởi omnilingual)
--window10[omnilingual] Kích thước cửa sổ CoreML tính bằng giây: 5 hoặc 10
--backendcoreml[omnilingual] Backend: coreml (Neural Engine) hoặc mlx (Metal GPU)
[moss] CoreML dùng trạng thái cố định 1.024 token; MLX cung cấp ngữ cảnh động 131.072 token.
--variant300M[omnilingual mlx] Kích thước: 300M, 1B, 3B hoặc 7B
--bits4[omnilingual mlx] Số bit lượng tử hóa: 4 hoặc 8
--streamBật chuyển âm thanh thành văn bản kiểu streaming với VAD
--max-segment10Thời lượng tối đa của một đoạn, tính bằng giây (streaming)
--partialPhát kết quả từng phần trong khi đang nói (streaming)

Ví dụ:

# Chuyển âm thanh thành văn bản cơ bản
speech transcribe recording.wav

# Dùng mô hình lớn hơn
speech transcribe recording.wav --model 1.7B

# Bộ mã hóa CoreML (Neural Engine + bộ giải mã MLX)
speech transcribe recording.wav --engine qwen3-coreml

# Dùng engine Parakeet (CoreML)
speech transcribe recording.wav --engine parakeet

# Dùng Nemotron Streaming (CoreML, tiếng Anh có dấu câu gốc)
speech transcribe recording.wav --engine nemotron                                 # theo lô
speech transcribe recording.wav --engine nemotron --stream --partial              # streaming

# Omnilingual (CoreML, 1.672 ngôn ngữ)
speech transcribe recording.wav --engine omnilingual                              # cửa sổ 10 s
speech transcribe recording.wav --engine omnilingual --window 5                     # cửa sổ 5 s

# Omnilingual (MLX, độ dài bất kỳ tới 40 s)
speech transcribe recording.wav --engine omnilingual --backend mlx                              # 300M @ 4-bit
speech transcribe recording.wav --engine omnilingual --backend mlx --variant 1B                  # 1B @ 4-bit
speech transcribe recording.wav --engine omnilingual --backend mlx --variant 3B --bits 8         # 3B @ 8-bit
speech transcribe recording.wav --engine omnilingual --backend mlx --variant 7B                  # 7B @ 4-bit

# Cohere Transcribe 2B (MLX, INT5 mặc định)
speech transcribe recording.wav --engine cohere
speech transcribe recording.wav --engine cohere --model int8 --language de

# Voxtral Mini 3B (MLX, INT5 mặc định)
speech transcribe recording.wav --engine voxtral
speech transcribe recording.wav --engine voxtral --model int8 --language fr

# MOSS Transcribe Diarize (CoreML cho bản ghi ngắn)
speech transcribe recording.wav --engine moss
speech transcribe recording.wav --engine moss --model fp16

# MOSS Transcribe Diarize (ngữ cảnh MLX ngoại tuyến 128K; INT5 mặc định)
speech transcribe meeting.wav --engine moss --backend mlx
speech transcribe meeting.wav --engine moss --backend mlx --model int8 --kv-cache int8

# Whisper Large-v3 Turbo (CoreML)
speech transcribe recording.wav --engine whisper
speech transcribe recording.wav --engine whisper --model turbo --language de

# Streaming kèm VAD
speech transcribe recording.wav --stream --partial

align

Căn chỉnh cưỡng bức ở cấp từ — lấy dấu thời gian chính xác cho từng từ.

speech align <file> [options]
Tùy chọnMặc địnhMô tả
<file>Tệp âm thanh
--text, -tVăn bản để căn chỉnh (nếu bỏ qua thì sẽ chuyển âm thanh thành văn bản trước)
--model, -m0.6BMô hình ASR dùng cho chuyển âm thanh: 0.6B, 1.7B hoặc ID đầy đủ
--aligner-modelID mô hình aligner cưỡng bức
--languageGợi ý ngôn ngữ

Ví dụ:

# Tự chuyển âm thanh thành văn bản rồi căn chỉnh
speech align recording.wav

# Căn chỉnh với văn bản đã biết
speech align recording.wav --text "Can you guarantee that the replacement part will be shipped tomorrow?"

speak

Tổng hợp văn bản thành giọng nói.

speech speak "<text>" [options]
Tùy chọnMặc địnhMô tả
<text>Văn bản cần tổng hợp (tùy chọn nếu dùng --batch-file)
--engineqwen3Engine TTS: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, indic-mio, magpie hoặc magpie-coreml
--output, -ooutput.wavĐường dẫn tệp WAV đầu ra
--languageenglishNgôn ngữ. Bỏ qua để dùng phương ngữ gốc của người nói khi đã đặt --speaker.
--streamBật tổng hợp dạng streaming
--voice-sampleÂm thanh tham chiếu để nhân bản giọng nói (hoạt động với qwen3, cosyvoice, voxcpm2, f5, higgsindextts2)
--verboseHiển thị thông tin thời gian chi tiết

Tùy chọn Qwen3-TTS

Tùy chọnMặc địnhMô tả
--modelbaseBiến thể mô hình: base, customVoice hoặc ID mô hình HF đầy đủ
--speakerGiọng người nói (yêu cầu --model customVoice)
--instructChỉ thị về phong cách (mô hình CustomVoice)
--list-speakersLiệt kê các giọng có sẵn rồi thoát
--temperature0.3Nhiệt độ lấy mẫu
--top-k50Lấy mẫu Top-k
--max-tokens500Số token tối đa (500 = ~40s âm thanh)
--batch-fileTệp chứa mỗi dòng một văn bản để tổng hợp theo lô
--batch-size4Kích thước lô tối đa để tạo song song
--first-chunk-frames3Số frame codec trong chunk streaming đầu tiên
--chunk-frames25Số frame codec mỗi chunk streaming

Tùy chọn CosyVoice3

Tùy chọnMặc địnhMô tả
--speakersÁnh xạ người nói cho hội thoại nhiều người: s1=alice.wav,s2=bob.wav
--cosy-instructChỉ thị về phong cách (ghi đè mặc định). Điều khiển phong cách giọng nói cho CosyVoice3.
--turn-gap0.2Khoảng lặng giữa các lượt trong hội thoại, tính bằng giây
--crossfade0.0Crossfade chồng giữa các lượt, tính bằng giây
--model-idID mô hình HuggingFace

Tùy chọn VoxCPM2

Tùy chọnMặc địnhMô tả
--voxcpm2-variantbf16Biến thể lượng tử hóa: bf16, int8 hoặc int4. Tương ứng với aufklarer/VoxCPM2-MLX-<variant>.
--voxcpm2-instructMô tả giọng nói bằng ngôn ngữ tự nhiên (thiết kế giọng), ví dụ "một phụ nữ trẻ, ấm áp và dịu dàng".
--voxcpm2-ref-audioTệp âm thanh tham chiếu để nhân bản (16 kHz mono, sẽ được lấy mẫu lại nội bộ).
--voxcpm2-prompt-audio / --voxcpm2-prompt-textCặp "nhân bản tối ưu" — đoạn tham chiếu + bản chép của nó để nhân bản giữ nguyên ngữ điệu.
--voxcpm2-cfg-value2.0Tỉ lệ classifier-free guidance cho bộ lấy mẫu diffusion.
--voxcpm2-timesteps10Số bước solver Euler trên mỗi patch âm thanh được tạo.
--voxcpm2-max-tokens2000Số patch tối đa trước khi buộc dừng.
--voxcpm2-min-tokens2Số patch tối thiểu trước khi cho phép đầu dừng kích hoạt.
--seedSeed RNG của MLX trước khi tổng hợp (kết quả nhất quán giữa các lần chạy).

Tùy chọn Magpie

NVIDIA Magpie-TTS Multilingual 357M, 9 ngôn ngữ với 5 giọng dựng sẵn. Chọn backend bằng --engine magpie (MLX, mặc định) hoặc --engine magpie-coreml (CoreML cho mô hình lớn với MLX đảm nhiệm LocalTransformer + embedding âm thanh). Xem hướng dẫn Magpie để biết chi tiết phân tách G2P theo từng ngôn ngữ. Không hỗ trợ nhân bản giọng nói: --voice-sample, --speaker--instruct sẽ bị từ chối kèm thông báo hữu ích trỏ tới --magpie-speaker.

Tùy chọnMặc địnhMô tả
--magpie-variantint4Chỉ dùng cho MLX. Lượng tử hóa: int4 (247 MB) hoặc int8 (411 MB). Tương ứng với aufklarer/Magpie-TTS-Multilingual-357M-MLX-<variant>. Engine CoreML dùng bundle CoreML INT8 và bỏ qua cờ này.
--magpie-speakersofiaGiọng dựng sẵn: sofia, aria, jason, leo hoặc john. Bản sắc giọng đồng nhất trên cả 9 ngôn ngữ và cả hai backend.
--magpie-temperature0.6Nhiệt độ lấy mẫu (0 = greedy). Dùng 0.6 cho tiếng Nhật — greedy bị kẹt ở cụm đầu tiên.
--magpie-top-k80Bộ lọc top-k cho lấy mẫu.
--magpie-max-frames500Giới hạn cứng số frame codec (~23 s).
--magpie-min-frames4Số frame tối thiểu trước khi cho phép EOS.
--magpie-prephonemizedCoi đầu vào là luồng IPA / phoneme; bỏ qua G2P theo từng ngôn ngữ.
--list-speakersIn 5 giọng dựng sẵn rồi thoát.

Lưu ý về magpie-coreml: NanoCodec đi kèm được trace ở cửa sổ cố định 64 frame, vì vậy --stream bị từ chối. --language ja tự định tuyến sang backend MLX kèm ghi chú trên stderr (bundle CoreML chưa kèm tài nguyên tokenizer JA). Engine CoreML tải lười bundle MLX ở lần tổng hợp đầu tiên để vận hành LocalTransformer và trung bình hóa embedding âm thanh; triển khai thuần CoreML đang được theo dõi như một mục tiếp theo.

Tùy chọn IndexTTS2

IndexTTS2 là engine nhân bản giọng nói zero-shot dựa trên bundle MLX mở rộng. Nó yêu cầu --voice-sample và hiện chỉ chạy tổng hợp theo lô.

Tùy chọnMặc địnhMô tả
--indextts2-model-idaufklarer/IndexTTS2-MLX-fp16ID mô hình HuggingFace. Mặc định là aufklarer/IndexTTS2-MLX-fp16.
--indextts2-bundle-dirTải bundle mở rộng cục bộ thay vì tải từ Hugging Face.
--indextts2-emotion-audioÂm thanh tham chiếu cảm xúc/phong cách tùy chọn. Mặc định dùng tham chiếu người nói.
--indextts2-emotionPreset tùy chọn hoặc vector cảm xúc 8 giá trị. Preset gồm eager, happy, excitedcalm.
--indextts2-emotion-weight1.0Scale --indextts2-emotion; nên giữ vừa phải khi cần giữ danh tính người nói.
--indextts2-speaking-rate1.0Hệ số tốc độ nói từ 0.5 đến 1.5; giá trị trên 1.0 nhanh hơn.
--indextts2-max-pauseGiới hạn tùy chọn cho khoảng nghỉ nội bộ dài có năng lượng thấp, tính bằng giây.
--indextts2-s2mel-steps15Số bước dòng S2Mel (mặc định 15, kiểm chứng bằng tai; 25 khớp hoàn toàn upstream)

F5-TTS Options

Tùy chọnMặc địnhMô tả
--f5-reference-textBản chép lời tham chiếu: nội dung văn bản của --voice-sample (bắt buộc)
--f5-steps16Số bước flow matching (mặc định 16; 32 cho độ trung thực tối đa)
--f5-cfg-strength2.0Cường độ classifier-free guidance
--f5-sway-1.0Hệ số lấy mẫu sway
--f5-speed1.0Hệ số tốc độ nói
--f5-seed0Seed để đầu ra tái lập được
--f5-target-rms0.1Mục tiêu chuẩn hóa RMS của tham chiếu
--f5-model-idID mô hình Hugging Face
--f5-bundle-dirNạp bundle từ thư mục cục bộ này

Higgs TTS 3 Options

Tùy chọnMặc địnhMô tả
--higgs-ref-textBản chép lời tham chiếu: nội dung văn bản của --voice-sample (cải thiện nhân bản)
--higgs-temperature0.8Nhiệt độ lấy mẫu (mặc định 0.8)
--higgs-top-pNgưỡng lấy mẫu nucleus (mặc định tắt)
--higgs-top-kNgưỡng cắt top-k (mặc định tắt)
--higgs-max-new-tokens2048Số khung âm thanh sinh tối đa (25 mỗi giây)
--higgs-seed0Seed để đầu ra tái lập được
--higgs-model-idID mô hình Hugging Face
--higgs-bundle-dirNạp bundle từ thư mục cục bộ này

Ví dụ:

# TTS cơ bản
speech speak "Hello, world!" --output hello.wav

# Nhân bản giọng (Qwen3-TTS)
speech speak "Hello in your voice" --voice-sample reference.wav -o cloned.wav

# Nhân bản giọng (CosyVoice)
speech speak "Hello in your voice" --engine cosyvoice --voice-sample reference.wav -o cloned.wav

# CosyVoice đa ngôn ngữ
speech speak "Hallo Welt" --engine cosyvoice --language german -o hallo.wav

# Hội thoại nhiều người nói
speech speak "[S1] Hello there! [S2] Hey, how are you?" \
    --engine cosyvoice --speakers s1=alice.wav,s2=bob.wav -o dialogue.wav

# Thẻ cảm xúc/phong cách inline
speech speak "(excited) Wow, amazing! (sad) But I have to go..." \
    --engine cosyvoice -o emotion.wav

# Kết hợp: hội thoại + cảm xúc + nhân bản giọng
speech speak "[S1] (happy) Great news! [S2] (surprised) Really?" \
    --engine cosyvoice --speakers s1=alice.wav,s2=bob.wav -o combined.wav

# Chỉ thị phong cách tùy chỉnh
speech speak "Hello world" --engine cosyvoice --cosy-instruct "Speak cheerfully" -o cheerful.wav

# Magpie TTS đa ngôn ngữ — cùng giọng Aria trên 9 ngôn ngữ
speech speak "Hello, world." --engine magpie --magpie-speaker aria \
    --magpie-temperature 0 -o en.wav
speech speak "Hola mundo." --engine magpie --language es --magpie-speaker aria \
    --magpie-temperature 0 -o es.wav
# Tiếng Nhật cần lấy mẫu ngẫu nhiên
speech speak "こんにちは世界、これは音声合成システムです。" \
    --engine magpie --language ja --magpie-temperature 0.6 \
    --magpie-top-k 80 --seed 42 -o ja.wav
speech speak --engine magpie --list-speakers

# Backend Magpie CoreML (tăng tốc ANE, 8 ngôn ngữ, không streaming)
speech speak "Hello world." --engine magpie-coreml --magpie-speaker aria -o en.wav
speech speak "Hola mundo." --engine magpie-coreml --language es \
    --magpie-speaker leo -o es.wav
# Tiếng Nhật tự định tuyến sang MLX (bundle CoreML không có tokenizer JA)
speech speak "こんにちは。" --engine magpie-coreml --language ja -o ja.wav

# Tổng hợp dạng streaming
speech speak "Long text here..." --stream

# Tổng hợp theo lô từ tệp
speech speak --batch-file texts.txt --batch-size 4

# VoxCPM2 — đầu ra studio 48 kHz
speech speak "Hello there." --engine voxcpm2 --voxcpm2-variant int8 -o hi.wav

# VoxCPM2 — thiết kế giọng nói
speech speak "Welcome to the show." --engine voxcpm2 \
    --voxcpm2-instruct "A young woman, warm and gentle voice." -o design.wav

# VoxCPM2 — nhân bản từ một tham chiếu
speech speak "This is a cloned voice." --engine voxcpm2 \
    --voice-sample speaker.wav -o clone.wav

kokoro

TTS nhẹ dùng Kokoro-82M trên Neural Engine (CoreML). Không tự hồi quy — một lần forward duy nhất, độ trễ ~45ms.

speech kokoro "<text>" [options]
Tùy chọnMặc địnhMô tả
<text>Văn bản cần tổng hợp
--voiceaf_heartGiọng dựng sẵn (50 giọng trên 10 ngôn ngữ)
--languageenMã ngôn ngữ: en, es, fr, hi, it, ja, pt, zh, ko, de
--output, -okokoro_output.wavĐường dẫn tệp WAV đầu ra
--list-voicesLiệt kê tất cả giọng có sẵn rồi thoát
--model, -mID mô hình HuggingFace

Ví dụ:

# Kokoro TTS cơ bản
speech kokoro "Hello, world!" --voice af_heart -o hello.wav

# Giọng Pháp
speech kokoro "Bonjour le monde" --voice ff_siwis --language fr -o bonjour.wav

# Liệt kê toàn bộ 50 giọng
speech kokoro --list-voices

respond

Hội thoại giọng nói tới giọng nói full-duplex bằng PersonaPlex 7B.

speech respond [options]
Tùy chọnMặc địnhMô tả
--input, -iTệp WAV âm thanh đầu vào (24kHz mono) (bắt buộc)
--output, -oresponse.wavTệp WAV phản hồi đầu ra
--voiceNATM0Giọng dựng sẵn (ví dụ NATM0, NATF1, VARF0)
--system-promptassistantPreset: assistant, focused, customer-service, teacher
--system-prompt-textVăn bản system prompt tùy chỉnh (ghi đè preset)
--max-steps200Số bước tạo tối đa ở 12.5Hz (~16s)
--streamPhát các chunk âm thanh trong khi tạo
--compileBật transformer đã biên dịch (warmup + kernel fusion)
--list-voicesLiệt kê các giọng dựng sẵn
--list-promptsLiệt kê các preset system prompt
--transcriptIn văn bản độc thoại nội tâm của mô hình
--jsonXuất dạng JSON (bản chép, độ trễ, đường dẫn âm thanh)
--verboseHiển thị thông tin thời gian chi tiết

Ghi đè lấy mẫu

Tùy chọnMặc địnhMô tả
--audio-temp0.8Nhiệt độ lấy mẫu cho âm thanh
--text-temp0.7Nhiệt độ lấy mẫu cho văn bản
--audio-top-k250Top-k ứng viên cho âm thanh
--repetition-penalty1.2Phạt lặp lại cho âm thanh (1.0 = tắt)
--text-repetition-penalty1.2Phạt lặp lại cho văn bản (1.0 = tắt)
--repetition-window30Cửa sổ phạt lặp lại tính bằng frame
--silence-early-stop15Số frame im lặng trước khi dừng sớm (0 = tắt)
--entropy-threshold0Ngưỡng entropy văn bản để dừng sớm (0 = tắt)
--entropy-window10Số bước entropy thấp liên tiếp trước khi dừng sớm

Ví dụ:

# Giọng nói tới giọng nói cơ bản
speech respond --input question.wav

# Dùng giọng nữ với transformer đã biên dịch
speech respond -i question.wav --voice NATF1 --compile

# Stream phản hồi và hiển thị bản chép
speech respond -i question.wav --stream --transcript --verbose

voice-chat

Hội thoại full-duplex trực tiếp với Soniqo, dựa trên NVIDIA Nemotron VoiceChat 11B. Bundle INT5 protected-head được tải ở lần dùng đầu tiên; chế độ microphone có Apple AEC, phụ đề RNN-T streaming, số đo dễ hiểu, tinh chỉnh giọng nói thích ứng 8→2→1 bước và đồng bộ lại có giới hạn thay vì âm thầm bắt kịp lâu.

speech voice-chat [options]
Tùy chọnMặc địnhMô tả
--model, -maufklarer/VoiceChat-11B-Perception-MLX-int5Hugging Face model ID hoặc local bundle đầy đủ.
--revisionmainHub revision.
--system-promptGhi đè system prompt.
--mcp-configCấu hình JSON chung cho MCP tool server.
--mcp-servertất cả server đã cấu hìnhChọn một server; có thể lặp lại.
--mcp-write-policyallowChính sách ghi: allow tức thì, confirm qua mô hình hoặc deny.
--mcp-timeout-seconds15Timeout cho MCP tool call; server startup được phép ít nhất 60 giây.
--greetYêu cầu mô hình chào trước.
--no-aecTắt Apple acoustic echo cancellation.
--no-transcriptTắt phụ đề người dùng RNN-T trực tiếp.
--no-rnnt-turn-takingTắt fallback an toàn điều khiển lượt RNN-T của NVIDIA.
--prebuffer-frames3Số output frame 80 ms được buffer trước playback.
--max-buffered-frames8Số frame microphone 80 ms tối đa trước khi bỏ audio cũ.
--max-secondsDừng live capture sau số giây này.
--inputĐọc file audio thay cho microphone.
--output, -oGhi WAV full-context 22,05 kHz.
--tail-seconds6Khoảng lặng thêm sau file input.
--force-turn-at-endÉp BOS tại cuối file; chỉ dùng cho hồi quy.
--plainDùng đầu ra nối tiếp thay cho bảng điều khiển cố định được vẽ lại.
--debug-timelineHiển thị mốc thời gian tương đối của câu nói và lúc phát âm tạo sinh kết thúc, cùng các sự kiện vòng đời công cụ do mô hình giải mã.
--terminal-width120Chiều rộng màn hình terminal.
--temperature0Text temperature; 0 là greedy.
--text-top-p1Text top-p.
--guidance0.2Cường độ guidance EAR-TTS.
--speech-top-p0.95EAR-TTS top-p.
--speech-noise0.001EAR-TTS sampling noise.
--speech-iterations8Số vòng lặp EAR-TTS MaskGIT mỗi frame.
--realtime-speech-iterations2Số bước tinh chỉnh giọng nói tạm thời để bảo vệ tốc độ realtime.
--live-speech-context-seconds20Lịch sử EAR-TTS gần đây được giữ ở chế độ trực tiếp; 0 giữ toàn bộ lịch sử.

Ví dụ:

speech voice-chat

speech voice-chat --model /path/to/complete-bundle --prebuffer-frames 3

speech voice-chat --input question.wav --output response.wav

speech voice-chat --mcp-config Examples/VoiceChatMCP/apple-reminders.json

Chế độ file là đường chạy có thể tái lập mà không cần phần cứng audio. --force-turn-at-end chỉ dành cho kiểm thử hồi quy có kiểm soát và không được báo cáo như độ trễ đổi lượt tự nhiên.

Demo Apple Reminders chỉ công khai list_reminders, create_reminderupdate_reminder; việc khám phá danh sách nằm trong adapter. Một lần đọc dạng phẳng bao phủ mọi danh sách và cập nhật ánh xạ tên được nói tới ID riêng trong runtime. Dashboard tách thời gian, số token step và token/s của function decoding khỏi audio RTF.

vad

Phát hiện hoạt động giọng nói ngoại tuyến dùng phân đoạn Pyannote.

speech vad <file> [options]
Tùy chọnMô tả
<file>Tệp âm thanh cần phân tích
--model, -mID mô hình HuggingFace
--onsetNgưỡng onset (bắt đầu giọng nói)
--offsetNgưỡng offset (kết thúc giọng nói)
--min-speechThời lượng giọng nói tối thiểu, tính bằng giây
--min-silenceThời lượng im lặng tối thiểu, tính bằng giây
--jsonXuất dạng JSON

vad-stream

Phát hiện hoạt động giọng nói dạng streaming dùng Silero VAD v5. Xử lý giọng nói theo các chunk 32ms.

speech vad-stream <file> [options]
Tùy chọnMô tả
<file>Tệp âm thanh cần phân tích
--engineEngine VAD: mlx (mặc định) hoặc coreml
--model, -mID mô hình HuggingFace (tự chọn theo engine)
--onsetNgưỡng onset
--offsetNgưỡng offset
--min-speechThời lượng giọng nói tối thiểu, tính bằng giây
--min-silenceThời lượng im lặng tối thiểu, tính bằng giây
--jsonXuất dạng JSON

wake

Phát hiện từ đánh thức / từ khóa trên thiết bị bằng KWS Zipformer (3.49M tham số, CoreML INT8, 26× thời gian thực, chỉ tiếng Anh).

speech wake <file> [options]
Tùy chọnMô tả
<file>Tệp âm thanh cần phân tích
--keywordsMột hoặc nhiều từ khóa. Định dạng: "hey soniqo" (BPE greedy), "hey soniqo:0.15:0.5" (kèm ngưỡng/boost), hoặc "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0" (mảnh BPE rõ ràng kiểu sherpa-onnx)
--keywords-fileTệp từ khóa, mỗi mục một dòng (cú pháp giống --keywords); dùng # cho chú thích
--model, -mID mô hình HuggingFace. Mặc định là aufklarer/KWS-Zipformer-3M-CoreML-INT8
--jsonXuất dạng JSON
# Cụm từ đơn giản, mặc định đã tinh chỉnh
speech wake recording.wav --keywords "hey soniqo"

# Mảnh BPE rõ ràng cho các cụm mà tokenizer greedy hiểu sai
speech wake recording.wav --keywords "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0"

# Nhiều cụm từ + đầu ra JSON
speech wake recording.wav \
  --keywords "lovely child|▁LOVE LY ▁CHI L D:0.25:2.0" \
             "for ever|▁FOR E VER:0.25:2.0" \
  --json

diarize

Phân tách người nói — xác định ai nói lúc nào.

speech diarize <file> [options]
Tùy chọnMặc địnhMô tả
<file>Tệp âm thanh cần phân tích
--enginepyannoteEngine phân tách: pyannote, community1 (CoreML + PLDA/VBx native) hoặc sortformer
--community1-compute-unitsaneĐơn vị tính toán CoreML cho Community-1: ane, cpu, gpu hoặc all
--num-speakersSố người nói chính xác đã biết cho Community-1
--min-speakers1Số người nói tối thiểu cho Community-1
--max-speakersSố người nói tối đa cho Community-1
--target-speakerÂm thanh đăng ký để trích xuất người nói mục tiêu (chỉ pyannote)
--embedding-enginemlxEngine tạo embedding người nói: mlx hoặc coreml (chỉ pyannote)
--vad-filterLọc trước bằng Silero VAD (chỉ pyannote)
--rttmXuất ở định dạng RTTM
--jsonXuất dạng JSON
--score-againstTệp RTTM tham chiếu để tính DER

Ví dụ:

# Phân tách cơ bản (pyannote, mặc định)
speech diarize meeting.wav

# Sortformer end-to-end (CoreML, Neural Engine)
speech diarize meeting.wav --engine sortformer

# Xuất RTTM để đánh giá
speech diarize meeting.wav --rttm

# Trích xuất người nói mục tiêu (chỉ pyannote)
speech diarize meeting.wav --target-speaker enrollment.wav

# Chấm điểm so với tham chiếu
speech diarize meeting.wav --score-against reference.rttm

embed-speaker

Trích xuất vector embedding người nói từ âm thanh.

speech embed-speaker <file> [options]
Tùy chọnMô tả
<file>Tệp âm thanh chứa giọng người nói
--enginemlx (mặc định) hoặc coreml cho WeSpeaker 256 chiều; redimnet2 cho định danh lâu dài CoreML 192 chiều; camplusplus cho CAM++ CoreML 192 chiều
--jsonXuất dạng JSON

language-id

Nhận dạng ngôn ngữ nói trong tệp âm thanh.

speech language-id <file> [options]
Tùy chọnMô tả
<file>Tệp âm thanh cần phân loại
--engineCông cụ suy luận: mlx hoặc coreml
--modelGhi đè ID mô hình Hugging Face
--topSố ngôn ngữ ứng viên
--jsonXuất kết quả dưới dạng JSON
speech language-id recording.wav --top 5
speech language-id recording.wav --engine coreml --json

denoise

Loại bỏ tiếng ồn nền bằng DeepFilterNet3 trên Neural Engine.

speech denoise <file> [options]
Tùy chọnMặc địnhMô tả
<file>Tệp âm thanh đầu vào
--output, -oinput_clean.wavĐường dẫn tệp đầu ra
--model, -mID mô hình HuggingFace

Ví dụ:

speech denoise noisy-recording.wav -o clean.wav

compose

Tạo 30 giây nhạc từ một prompt văn bản dùng MAGNeT trên MLX.

speech compose <prompt> [options]
Tùy chọnMặc địnhMô tả
<prompt>Prompt văn bản mô tả bản nhạc cần tạo (ví dụ "happy rock")
--output, -omagnet.wavĐường dẫn WAV đầu ra (32 kHz mono)
--variantsmall-int4Biến thể mô hình: small-int4, small-int8, medium-int4 hoặc medium-int8. Tương ứng với aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit.
--temperature3.0Nhiệt độ lấy mẫu, giảm tuyến tính theo từng stage.
--top-p0.9Ngưỡng nucleus sampling.
--cfg-max10.0Hệ số classifier-free guidance tối đa.
--cfg-min1.0Hệ số CFG tối thiểu (giảm dần cùng lịch trình mask).
--steps20,10,10,10Số bước giải mã trên mỗi codebook, cách nhau bởi dấu phẩy (4 giá trị).
--seedSeed ngẫu nhiên để đầu ra có thể tái lập.

Ví dụ:

# Mặc định: small-int4, ~10 s trên chip dòng M cho đoạn 30 s
speech compose "happy rock" -o happy_rock.wav

# Mô hình lớn hơn — bám prompt tốt hơn, chậm hơn
speech compose "lo-fi hip hop with mellow piano" --variant medium-int4 -o lofi.wav

# Có thể tái lập
speech compose "energetic EDM with synth lead" --seed 42 -o edm.wav

transcribe-batch

Chuyển văn bản cả một thư mục tệp âm thanh; mô hình chỉ nạp một lần.

speech transcribe-batch <input-dir> [options]
Tùy chọnMặc địnhMô tả
<input-dir>Thư mục các tệp âm thanh cần chuyển văn bản (WAV, FLAC, v.v.)
--output-dirThư mục xuất bản chép lời
--engineqwen3Bộ máy ASR (giá trị như transcribe)
--jsonlXuất kết quả dạng JSON lines, mỗi tệp một dòng

restore

Khôi phục giọng nói (khử ồn + khử vang) với Sidon — CoreML, đầu ra 48 kHz.

speech restore <audio-file> [options]
Tùy chọnMặc địnhMô tả
--output, -oinput_restored.wavĐường dẫn tệp WAV đầu ra (48 kHz)
--variantfp16Biến thể độ chính xác / bundle

separate

Tách bản nhạc thành các stem (vocals, drums, bass, other).

speech separate <input> [options]
Tùy chọnMặc địnhMô tả
--stemsvocals,drums,bass,otherCác stem cần tách: vocals, drums, bass, other
--engineumxBộ máy: umx (mặc định) hoặc htdemucs (chất lượng cao hơn)
--output-dirThư mục xuất bản chép lời

upsample

Siêu phân giải âm thanh với FlashSR — AudioSR chưng cất một bước, đầu ra 48 kHz.

speech upsample <audio-file> [options]
Tùy chọnMặc địnhMô tả
--output, -ohr.wavĐường dẫn tệp WAV đầu ra (48 kHz)
--variantint4Biến thể độ chính xác / bundle
--seedSeed để đầu ra tái lập được

qwen3-tts-coreml

Chuyển văn bản thành giọng nói với Qwen3-TTS trên CoreML (Neural Engine).

speech qwen3-tts-coreml "<text>" [options]
Tùy chọnMặc địnhMô tả
--output, -ooutput.wavĐường dẫn tệp WAV đầu ra
--languageenglishNgôn ngữ đầu ra
--modelID mô hình Hugging Face

vibevoice

Chuyển văn bản thành giọng nói với Microsoft VibeVoice (MLX).

speech vibevoice "<text>" --voice-cache <cache> [options]
Tùy chọnMặc địnhMô tả
--voice-cache, -vBộ nhớ giọng từ vibevoice-encode-voice (bắt buộc)
--stepsSố bước suy luận DPM-Solver (nhiều bước, chất lượng cao hơn)
--cfg1.3Cường độ classifier-free guidance
--long-formTổng hợp dạng dài theo từng đoạn cho văn bản dài

vibevoice-encode-voice

Tạo bộ nhớ giọng VibeVoice từ bản ghi tham chiếu và bản chép lời.

speech vibevoice-encode-voice <input> "<transcript>" [options]
Tùy chọnMặc địnhMô tả
<input>Tệp âm thanh tham chiếu
<transcript>Bản chép lời của âm thanh tham chiếu (chỉ tiếng Anh)
--output, -oBộ nhớ giọng đầu ra (.safetensors)

translate

Dịch văn bản sang ngôn ngữ đích với MADLAD-400 (MLX).

speech translate "<text>" --to <lang> [options]
Tùy chọnMặc địnhMô tả
--to, -tMã ngôn ngữ đích (ISO 639-1, ví dụ es, zh, ja)
--streamPhát token ngay khi giải mã
--modelID mô hình Hugging Face

avatar-motion

Sinh khung hệ số chuyển động avatar NVIDIA Audio2Face-3D từ âm thanh giọng nói.

speech avatar-motion <input> [options]
Tùy chọnMặc địnhMô tả
--output, -oavatar-motion.jsonlĐường dẫn tệp JSONL đầu ra
--model…James-MLXBundle danh tính avatar (mặc định James; có Claire và Mark)
--verboseIn thời gian và số khung hình