อ้างอิง CLI
ไฟล์ปฏิบัติการ speech คือจุดเริ่มต้นหลักสำหรับงานประมวลผลเสียงพูดทั้งหมด คอมไพล์ด้วย make build แล้วรันจาก .build/release/speech
transcribe
ถอดไฟล์เสียงเป็นข้อความ
speech transcribe <file> [options]
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
<file> | ไฟล์เสียงที่จะถอดเป็นข้อความ (WAV, M4A, MP3, CAF) | |
--engine | qwen3 | เอนจิน ASR: qwen3, qwen3-coreml, parakeet, nemotron หรือ omnilingual |
--model, -m | 0.6B | รุ่นของโมเดล: 0.6B, 1.7B หรือ HuggingFace model ID แบบเต็ม (เฉพาะ qwen3) |
--language | คำใบ้ภาษา (ไม่บังคับ ถูกข้ามโดย omnilingual) | |
--window | 10 | [omnilingual] ขนาดหน้าต่าง CoreML เป็นวินาที: 5 หรือ 10 |
--backend | coreml | [omnilingual] Backend: coreml (Neural Engine) หรือ mlx (Metal GPU) |
--variant | 300M | [omnilingual mlx] ขนาด: 300M, 1B, 3B หรือ 7B |
--bits | 4 | [omnilingual mlx] จำนวนบิตในการ quantize: 4 หรือ 8 |
--stream | เปิดการถอดเสียงเป็นข้อความแบบสตรีมร่วมกับ VAD | |
--max-segment | 10 | ระยะเวลาสูงสุดของหนึ่งส่วน เป็นวินาที (streaming) |
--partial | ส่งผลลัพธ์บางส่วนระหว่างกำลังพูด (streaming) |
ตัวอย่าง:
# การถอดเสียงเป็นข้อความพื้นฐาน
speech transcribe recording.wav
# ใช้โมเดลใหญ่ขึ้น
speech transcribe recording.wav --model 1.7B
# ตัวเข้ารหัส CoreML (Neural Engine + ตัวถอดรหัส MLX)
speech transcribe recording.wav --engine qwen3-coreml
# ใช้เอนจิน Parakeet (CoreML)
speech transcribe recording.wav --engine parakeet
# ใช้ Nemotron Streaming (CoreML, ภาษาอังกฤษพร้อมเครื่องหมายวรรคตอนเนทีฟ)
speech transcribe recording.wav --engine nemotron # batch
speech transcribe recording.wav --engine nemotron --stream --partial # streaming
# Omnilingual (CoreML, 1,672 ภาษา)
speech transcribe recording.wav --engine omnilingual # หน้าต่าง 10 s
speech transcribe recording.wav --engine omnilingual --window 5 # หน้าต่าง 5 s
# Omnilingual (MLX, ความยาวเท่าใดก็ได้สูงสุด 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
# Streaming พร้อม VAD
speech transcribe recording.wav --stream --partial
align
การจัดเรียงแบบบังคับระดับคำ — รับ timestamp ที่แม่นยำสำหรับทุกคำ
speech align <file> [options]
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
<file> | ไฟล์เสียง | |
--text, -t | ข้อความที่จะจัดเรียง (หากเว้นไว้ จะถอดเสียงเป็นข้อความก่อน) | |
--model, -m | 0.6B | โมเดล ASR สำหรับการถอดเสียง: 0.6B, 1.7B หรือ ID แบบเต็ม |
--aligner-model | ID ของโมเดล forced aligner | |
--language | คำใบ้ภาษา |
ตัวอย่าง:
# ถอดเสียงเป็นข้อความอัตโนมัติแล้วจัดเรียง
speech align recording.wav
# จัดเรียงด้วยข้อความที่รู้แล้ว
speech align recording.wav --text "Can you guarantee that the replacement part will be shipped tomorrow?"
speak
การสังเคราะห์ข้อความเป็นเสียงพูด
speech speak "<text>" [options]
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
<text> | ข้อความที่จะสังเคราะห์ (ไม่บังคับเมื่อใช้ --batch-file) | |
--engine | qwen3 | เอนจิน TTS: qwen3, cosyvoice, voxcpm2 หรือ magpie |
--output, -o | output.wav | เส้นทางไฟล์ WAV เอาต์พุต |
--language | english | ภาษา เว้นไว้เพื่อใช้สำเนียงเนทีฟของผู้พูดเมื่อตั้ง --speaker แล้ว |
--stream | เปิดการสังเคราะห์แบบสตรีม | |
--voice-sample | เสียงอ้างอิงสำหรับการโคลนเสียง (ใช้ได้กับทั้งเอนจิน qwen3 และ cosyvoice) | |
--verbose | แสดงข้อมูลเวลาอย่างละเอียด |
ตัวเลือก Qwen3-TTS
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
--model | base | รุ่นของโมเดล: base, customVoice หรือ HF model ID แบบเต็ม |
--speaker | เสียงผู้พูด (ต้องใช้ --model customVoice) | |
--instruct | คำสั่งสไตล์ (โมเดล CustomVoice) | |
--list-speakers | แสดงรายชื่อผู้พูดที่มีและออก | |
--temperature | 0.3 | อุณหภูมิการสุ่ม |
--top-k | 50 | การสุ่ม Top-k |
--max-tokens | 500 | token สูงสุด (500 = เสียงประมาณ 40s) |
--batch-file | ไฟล์ที่มีข้อความหนึ่งบรรทัดต่อหนึ่งรายการเพื่อสังเคราะห์เป็นชุด | |
--batch-size | 4 | ขนาด batch สูงสุดสำหรับการสร้างแบบขนาน |
--first-chunk-frames | 3 | จำนวนเฟรม codec ใน chunk สตรีมแรก |
--chunk-frames | 25 | จำนวนเฟรม codec ต่อ chunk สตรีม |
ตัวเลือก CosyVoice3
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
--speakers | การแมปผู้พูดสำหรับบทสนทนาหลายผู้พูด: s1=alice.wav,s2=bob.wav | |
--cosy-instruct | คำสั่งสไตล์ (เขียนทับค่าเริ่มต้น) ควบคุมสไตล์เสียงสำหรับ CosyVoice3 | |
--turn-gap | 0.2 | ช่วงเงียบระหว่างเทิร์นของบทสนทนา เป็นวินาที |
--crossfade | 0.0 | การ crossfade ที่ซ้อนทับระหว่างเทิร์น เป็นวินาที |
--model-id | HuggingFace model ID |
ตัวเลือก VoxCPM2
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
--voxcpm2-variant | bf16 | รุ่นการ quantize: bf16, int8 หรือ int4 แมปไปยัง aufklarer/VoxCPM2-MLX-<variant> |
--voxcpm2-instruct | คำอธิบายเสียงด้วยภาษาธรรมชาติ (การออกแบบเสียง) เช่น "a young woman, warm and gentle" | |
--voxcpm2-ref-audio | ไฟล์เสียงอ้างอิงสำหรับการโคลน (16 kHz mono ถูก resample ภายใน) | |
--voxcpm2-prompt-audio / --voxcpm2-prompt-text | คู่ "การโคลนระดับสูงสุด" — คลิปอ้างอิง + ข้อความที่ถอดของมันเพื่อโคลนโดยคงสำเนียง | |
--voxcpm2-cfg-value | 2.0 | ค่า classifier-free guidance สำหรับ diffusion sampler |
--voxcpm2-timesteps | 10 | จำนวนขั้น Euler solver ต่อ patch เสียงที่ถูกสร้าง |
--voxcpm2-max-tokens | 2000 | จำนวน patch สูงสุดก่อนจะถูกบังคับให้หยุด |
--voxcpm2-min-tokens | 2 | จำนวน patch ต่ำสุดก่อนจะอนุญาตให้ stop head ทำงาน |
--seed | seed RNG ของ MLX ก่อนการสังเคราะห์ (ให้ผลคงที่ระหว่างการรัน) |
ตัวเลือก Magpie
NVIDIA Magpie-TTS Multilingual 357M, 9 ภาษา พร้อมผู้พูดสำเร็จ 5 คน เลือก backend ด้วย --engine magpie (MLX, ค่าเริ่มต้น) หรือ --engine magpie-coreml (CoreML สำหรับโมเดลใหญ่โดยมี MLX ขับเคลื่อน LocalTransformer + audio embedding) ดู คู่มือ Magpie สำหรับรายละเอียด G2P แยกตามภาษา ไม่รองรับการโคลนเสียง: --voice-sample, --speaker และ --instruct จะถูกปฏิเสธพร้อมข้อผิดพลาดที่ชี้ไปยัง --magpie-speaker
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
--magpie-variant | int4 | เฉพาะ MLX การ quantize: int4 (247 MB) หรือ int8 (411 MB) แมปไปยัง aufklarer/Magpie-TTS-Multilingual-357M-MLX-<variant> เอนจิน CoreML ใช้ bundle CoreML INT8 และไม่สนใจ flag นี้ |
--magpie-speaker | sofia | ผู้พูดสำเร็จ: sofia, aria, jason, leo หรือ john เอกลักษณ์เสียงสม่ำเสมอใน 9 ภาษาและทั้งสอง backend |
--magpie-temperature | 0.6 | อุณหภูมิการสุ่ม (0 = greedy) ใช้ 0.6 สำหรับภาษาญี่ปุ่น — greedy จะค้างที่วลีแรก |
--magpie-top-k | 80 | ตัวกรอง top-k สำหรับการสุ่ม |
--magpie-max-frames | 500 | เพดานคงที่ของเฟรม codec (~23 s) |
--magpie-min-frames | 4 | จำนวนเฟรมต่ำสุดก่อนอนุญาต EOS |
--magpie-prephonemized | ถือว่าอินพุตคือสตรีม IPA / phoneme; ข้าม G2P แยกตามภาษา | |
--list-speakers | พิมพ์ผู้พูดสำเร็จ 5 คนแล้วออก |
ข้อควรระวังของ magpie-coreml: NanoCodec ที่มาด้วยถูก trace ที่หน้าต่างคงที่ 64 เฟรม จึงปฏิเสธ --stream --language ja จะ auto-route ไปยัง backend MLX พร้อมหมายเหตุที่ stderr (bundle CoreML ยังไม่มี tokenizer JA) เอนจิน CoreML จะ lazy-load bundle MLX ในการสังเคราะห์ครั้งแรกเพื่อขับเคลื่อน LocalTransformer และเฉลี่ย audio embedding; การ deploy แบบ CoreML ล้วนถูกติดตามเป็นงานต่อเนื่อง
ตัวอย่าง:
# TTS พื้นฐาน
speech speak "Hello, world!" --output hello.wav
# การโคลนเสียง (Qwen3-TTS)
speech speak "Hello in your voice" --voice-sample reference.wav -o cloned.wav
# การโคลนเสียง (CosyVoice)
speech speak "Hello in your voice" --engine cosyvoice --voice-sample reference.wav -o cloned.wav
# CosyVoice หลายภาษา
speech speak "Hallo Welt" --engine cosyvoice --language german -o hallo.wav
# บทสนทนาหลายผู้พูด
speech speak "[S1] Hello there! [S2] Hey, how are you?" \
--engine cosyvoice --speakers s1=alice.wav,s2=bob.wav -o dialogue.wav
# แท็กอารมณ์/สไตล์แบบ inline
speech speak "(excited) Wow, amazing! (sad) But I have to go..." \
--engine cosyvoice -o emotion.wav
# รวมกัน: บทสนทนา + อารมณ์ + การโคลนเสียง
speech speak "[S1] (happy) Great news! [S2] (surprised) Really?" \
--engine cosyvoice --speakers s1=alice.wav,s2=bob.wav -o combined.wav
# คำสั่งสไตล์กำหนดเอง
speech speak "Hello world" --engine cosyvoice --cosy-instruct "Speak cheerfully" -o cheerful.wav
# Magpie TTS หลายภาษา — เสียง Aria เดียวกันใน 9 ภาษา
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
# ภาษาญี่ปุ่นต้องการการสุ่มแบบ stochastic
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 (เร่งด้วย ANE, 8 ภาษา, ไม่มี 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
# ภาษาญี่ปุ่น auto-route ไปยัง MLX (bundle CoreML ไม่มี tokenizer JA)
speech speak "こんにちは。" --engine magpie-coreml --language ja -o ja.wav
# การสังเคราะห์แบบสตรีม
speech speak "Long text here..." --stream
# การสังเคราะห์เป็นชุดจากไฟล์
speech speak --batch-file texts.txt --batch-size 4
# VoxCPM2 — เอาต์พุตระดับสตูดิโอ 48 kHz
speech speak "Hello there." --engine voxcpm2 --voxcpm2-variant int8 -o hi.wav
# VoxCPM2 — การออกแบบเสียง
speech speak "Welcome to the show." --engine voxcpm2 \
--voxcpm2-instruct "A young woman, warm and gentle voice." -o design.wav
# VoxCPM2 — การโคลนจากการอ้างอิงเดียว
speech speak "This is a cloned voice." --engine voxcpm2 \
--voice-sample speaker.wav -o clone.wav
kokoro
TTS แบบเบาโดยใช้ Kokoro-82M บน Neural Engine (CoreML) ไม่ใช่ autoregressive — forward pass ครั้งเดียว ความหน่วงประมาณ 45ms
speech kokoro "<text>" [options]
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
<text> | ข้อความที่จะสังเคราะห์ | |
--voice | af_heart | เสียงสำเร็จ (50 เสียงใน 10 ภาษา) |
--language | en | รหัสภาษา: en, es, fr, hi, it, ja, pt, zh, ko, de |
--output, -o | kokoro_output.wav | เส้นทางไฟล์ WAV เอาต์พุต |
--list-voices | แสดงรายชื่อเสียงที่มีทั้งหมดและออก | |
--model, -m | HuggingFace model ID |
ตัวอย่าง:
# Kokoro TTS พื้นฐาน
speech kokoro "Hello, world!" --voice af_heart -o hello.wav
# เสียงภาษาฝรั่งเศส
speech kokoro "Bonjour le monde" --voice ff_siwis --language fr -o bonjour.wav
# แสดง 50 เสียงทั้งหมด
speech kokoro --list-voices
respond
บทสนทนาเสียงพูดสู่เสียงพูดแบบ full-duplex โดยใช้ PersonaPlex 7B
speech respond [options]
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
--input, -i | ไฟล์ WAV เสียงอินพุต (24kHz mono) (บังคับ) | |
--output, -o | response.wav | ไฟล์ WAV ตอบกลับเอาต์พุต |
--voice | NATM0 | เสียงสำเร็จ (เช่น NATM0, NATF1, VARF0) |
--system-prompt | assistant | Preset: assistant, focused, customer-service, teacher |
--system-prompt-text | ข้อความ system prompt กำหนดเอง (เขียนทับ preset) | |
--max-steps | 200 | จำนวนขั้นการสร้างสูงสุดที่ 12.5Hz (~16s) |
--stream | ส่ง chunk เสียงระหว่างการสร้าง | |
--compile | เปิด compiled transformer (warmup + kernel fusion) | |
--list-voices | แสดงรายการเสียงสำเร็จที่มี | |
--list-prompts | แสดงรายการ preset ของ system prompt ที่มี | |
--transcript | พิมพ์ข้อความบทพูดในใจของโมเดล | |
--json | เอาต์พุตเป็น JSON (ข้อความถอด ความหน่วง เส้นทางเสียง) | |
--verbose | แสดงข้อมูลเวลาอย่างละเอียด |
การเขียนทับ Sampling
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
--audio-temp | 0.8 | อุณหภูมิการสุ่มเสียง |
--text-temp | 0.7 | อุณหภูมิการสุ่มข้อความ |
--audio-top-k | 250 | top-k ของผู้สมัครเสียง |
--repetition-penalty | 1.2 | ค่าปรับการซ้ำของเสียง (1.0 = ปิด) |
--text-repetition-penalty | 1.2 | ค่าปรับการซ้ำของข้อความ (1.0 = ปิด) |
--repetition-window | 30 | หน้าต่างค่าปรับการซ้ำเป็นเฟรม |
--silence-early-stop | 15 | เฟรมเงียบก่อนหยุดก่อนกำหนด (0 = ปิด) |
--entropy-threshold | 0 | ขีดเริ่มต้น entropy ของข้อความเพื่อหยุดก่อนกำหนด (0 = ปิด) |
--entropy-window | 10 | จำนวนขั้น entropy ต่ำต่อเนื่องก่อนหยุดก่อนกำหนด |
ตัวอย่าง:
# เสียงพูดสู่เสียงพูดพื้นฐาน
speech respond --input question.wav
# ใช้เสียงผู้หญิงพร้อม compiled transformer
speech respond -i question.wav --voice NATF1 --compile
# Stream การตอบกลับและแสดงข้อความถอด
speech respond -i question.wav --stream --transcript --verbose
vad
การตรวจจับกิจกรรมเสียงพูดแบบออฟไลน์โดยใช้ Pyannote segmentation
speech vad <file> [options]
| ตัวเลือก | คำอธิบาย |
|---|---|
<file> | ไฟล์เสียงที่จะวิเคราะห์ |
--model, -m | HuggingFace model ID |
--onset | ขีดเริ่มต้น onset (เริ่มเสียงพูด) |
--offset | ขีดเริ่มต้น offset (สิ้นสุดเสียงพูด) |
--min-speech | ระยะเวลาเสียงพูดต่ำสุดเป็นวินาที |
--min-silence | ระยะเวลาเงียบต่ำสุดเป็นวินาที |
--json | เอาต์พุตเป็น JSON |
vad-stream
การตรวจจับกิจกรรมเสียงพูดแบบสตรีมโดยใช้ Silero VAD v5 ประมวลผลเสียงพูดในชิ้นขนาด 32ms
speech vad-stream <file> [options]
| ตัวเลือก | คำอธิบาย |
|---|---|
<file> | ไฟล์เสียงที่จะวิเคราะห์ |
--engine | เอนจิน VAD: mlx (ค่าเริ่มต้น) หรือ coreml |
--model, -m | HuggingFace model ID (เลือกอัตโนมัติตามเอนจิน) |
--onset | ขีดเริ่มต้น onset |
--offset | ขีดเริ่มต้น offset |
--min-speech | ระยะเวลาเสียงพูดต่ำสุดเป็นวินาที |
--min-silence | ระยะเวลาเงียบต่ำสุดเป็นวินาที |
--json | เอาต์พุตเป็น JSON |
wake
การตรวจจับ wake-word / keyword บนอุปกรณ์โดยใช้ KWS Zipformer (3.49M พารามิเตอร์ CoreML INT8, 26× เรียลไทม์ เฉพาะภาษาอังกฤษ)
speech wake <file> [options]
| ตัวเลือก | คำอธิบาย |
|---|---|
<file> | ไฟล์เสียงที่จะวิเคราะห์ |
--keywords | คีย์เวิร์ดหนึ่งคำหรือมากกว่า รูปแบบ: "hey soniqo" (greedy BPE), "hey soniqo:0.15:0.5" (พร้อมขีดเริ่มต้น/boost) หรือ "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0" (ชิ้น BPE แบบชัดเจนสไตล์ sherpa-onnx) |
--keywords-file | ไฟล์คีย์เวิร์ด หนึ่งรายการต่อบรรทัด (รูปแบบเดียวกับ --keywords); ใช้ # สำหรับความเห็น |
--model, -m | HuggingFace model ID ค่าเริ่มต้นคือ aufklarer/KWS-Zipformer-3M-CoreML-INT8 |
--json | เอาต์พุตเป็น JSON |
# วลีธรรมดา ค่าเริ่มต้นที่ปรับแต่งไว้แล้ว
speech wake recording.wav --keywords "hey soniqo"
# ชิ้น BPE แบบชัดเจนสำหรับวลีที่ greedy tokenizer ผิด
speech wake recording.wav --keywords "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0"
# หลายวลี + เอาต์พุต 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
การแยกผู้พูด — ระบุว่าใครพูดเมื่อใด
speech diarize <file> [options]
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
<file> | ไฟล์เสียงที่จะวิเคราะห์ | |
--engine | pyannote | เอนจินแยกผู้พูด: pyannote (segmentation + การโยงผู้พูด) หรือ sortformer (end-to-end CoreML) |
--target-speaker | เสียงลงทะเบียนสำหรับการแยกผู้พูดเป้าหมาย (เฉพาะ pyannote) | |
--embedding-engine | mlx | เอนจินสร้าง embedding ผู้พูด: mlx หรือ coreml (เฉพาะ pyannote) |
--vad-filter | กรองล่วงหน้าด้วย Silero VAD (เฉพาะ pyannote) | |
--rttm | เอาต์พุตในรูปแบบ RTTM | |
--json | เอาต์พุตเป็น JSON | |
--score-against | ไฟล์ RTTM อ้างอิงเพื่อคำนวณ DER |
ตัวอย่าง:
# การแยกพื้นฐาน (pyannote, ค่าเริ่มต้น)
speech diarize meeting.wav
# Sortformer end-to-end (CoreML, Neural Engine)
speech diarize meeting.wav --engine sortformer
# เอาต์พุต RTTM เพื่อประเมิน
speech diarize meeting.wav --rttm
# การแยกผู้พูดเป้าหมาย (เฉพาะ pyannote)
speech diarize meeting.wav --target-speaker enrollment.wav
# ให้คะแนนเทียบกับอ้างอิง
speech diarize meeting.wav --score-against reference.rttm
embed-speaker
สกัด vector embedding ของผู้พูดจากเสียง
speech embed-speaker <file> [options]
| ตัวเลือก | คำอธิบาย |
|---|---|
<file> | ไฟล์เสียงที่มีเสียงผู้พูด |
--engine | เอนจิน inference: mlx (ค่าเริ่มต้น), coreml (WeSpeaker 256 มิติ) หรือ camplusplus (CAM++ CoreML 192 มิติ) |
--json | เอาต์พุตเป็น JSON |
denoise
กำจัดเสียงรบกวนฉากหลังโดยใช้ DeepFilterNet3 บน Neural Engine
speech denoise <file> [options]
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
<file> | ไฟล์เสียงอินพุต | |
--output, -o | input_clean.wav | เส้นทางไฟล์เอาต์พุต |
--model, -m | HuggingFace model ID |
ตัวอย่าง:
speech denoise noisy-recording.wav -o clean.wav
compose
สร้างเพลง 30 วินาทีจาก prompt ข้อความโดยใช้ MAGNeT บน MLX
speech compose <prompt> [options]
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
<prompt> | Prompt ข้อความอธิบายเพลงที่จะสร้าง (เช่น "happy rock") | |
--output, -o | magnet.wav | เส้นทาง WAV เอาต์พุต (32 kHz mono) |
--variant | small-int4 | รุ่นของโมเดล: small-int4, small-int8, medium-int4 หรือ medium-int8 แมปไปยัง aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit |
--temperature | 3.0 | อุณหภูมิการสุ่ม ลดลงเชิงเส้นต่อแต่ละ stage |
--top-p | 0.9 | ขีดเริ่มต้น nucleus sampling |
--cfg-max | 10.0 | ค่าสัมประสิทธิ์ classifier-free guidance สูงสุด |
--cfg-min | 1.0 | ค่าสัมประสิทธิ์ CFG ต่ำสุด (ลดลงตามตาราง mask) |
--steps | 20,10,10,10 | จำนวนรอบ decode ต่อ codebook คั่นด้วยจุลภาค (4 ค่า) |
--seed | seed สุ่มเพื่อให้ผลลัพธ์ทำซ้ำได้ |
ตัวอย่าง:
# ค่าเริ่มต้น: small-int4, ประมาณ 10 s บนชิปตระกูล M สำหรับคลิป 30 s
speech compose "happy rock" -o happy_rock.wav
# โมเดลใหญ่กว่า — ตาม prompt ได้ดีกว่า ช้ากว่า
speech compose "lo-fi hip hop with mellow piano" --variant medium-int4 -o lofi.wav
# ทำซ้ำได้
speech compose "energetic EDM with synth lead" --seed 42 -o edm.wav