พูดอย่างที่ฉันพูด: การพิมพ์ด้วยเสียงที่ไม่มี AI มาเขียนใหม่

การพิมพ์ด้วยเสียงที่เสริมด้วย AI เขียนสิ่งที่คุณพูดใหม่ — คำขยายหายไป ความหมายกลับด้าน ทำไมไปป์ไลน์ขัดเกลาด้วย LLM ถึงถอดความคุณ และทำไม Keebye ถึงยึดความตรงตัว

Teodor Deleanu10 กรกฎาคม 2569ใช้เวลาอ่าน 10 นาที

มีคำบ่นเรื่องการพิมพ์ด้วยเสียงที่เสริมด้วย AI ซึ่งฟังดูขัดแย้งในตัวเองจนกว่าคุณจะเจอกับตัว: การถอดเสียงไม่มีปัญหาเลย — สิ่งที่เกิดขึ้น_หลัง_การถอดเสียงต่างหากที่ทำมันพัง คุณพูดอย่างหนึ่ง แล้วเครื่องมือส่งมอบอีกอย่างหนึ่งที่ขัดเงา มั่นใจ และ_ต่างออกไปนิดหน่อย_ คำขยายหายไปเงียบ ๆ คำกำกวมที่จงใจถูกตัดออก ประโยคถูกจัดโครงสร้างใหม่เป็นสิ่งที่คุณไม่มีวันพูด และในเวอร์ชันที่แย่ที่สุดของรูปแบบนี้ — เวอร์ชันที่ทำให้คนเลิกใช้เครื่องมือทันที — ความหมายกลับด้าน "อย่า deploy จนกว่าเทสต์จะผ่าน" ออกมาอีกฝั่งเป็นคำสั่งให้ deploy โดยที่ อย่า หายไป

สำหรับการพิมพ์ด้วยเสียงทั่ว ๆ ไป นี่คือเรื่องน่ารำคาญ สำหรับวิธีที่ผมใช้การพิมพ์ด้วยเสียงจริง ๆ — ป้อน prompt ให้ Claude Code เวิร์กโฟลว์จาก การขับ Claude Code ด้วยเสียงของคุณ — มันคือยาพิษ coding agent รับคำของคุณเป็นข้อกำหนด มันไม่รู้ว่าเครื่องมือพิมพ์ด้วยเสียงของคุณถอดความคุณใหม่ ถ้าคำขยายที่ทำให้คำสั่งนั้นปลอดภัยถูกลูบให้เรียบหายไประหว่างปากคุณกับเทอร์มินัล agent ก็จะรันเวอร์ชันที่ถูกลูบให้เรียบนั้นอย่างร่าเริง ความแม่นยำคือสาระทั้งหมดของ prompt และชั้นเขียนใหม่ด้วย AI ก็คือเครื่องจักรสำหรับกำจัดความแม่นยำ พร้อมกับทำให้ผลลัพธ์ดู_ตั้งใจมากขึ้น_

ทำไมเครื่องมือพิมพ์ด้วยเสียงที่ใช้ AI ถึงเขียนสิ่งที่คุณพูดใหม่

คำตอบระดับหมวดหมู่ไม่ใช่ว่ามีใครตั้งใจบิดเบือนคำพูด แต่เป็นเพราะ "เก็บกวาดข้อความที่ถอดได้นี้ให้หน่อย" เป็นฟีเจอร์ที่น่าสนใจจริง ๆ และวิธีสร้างที่ชัดเจนที่สุดคือส่งข้อความดิบผ่านโมเดลภาษา

คำพูดดิบนั้นรกรุงรัง — คำฟุ่มเฟือย การเริ่มผิด คำซ้ำ เครื่องหมายวรรคตอนที่ขาดหาย LLM ที่ถูกขอให้จัดระเบียบสิ่งนั้นผลิตผลลัพธ์ที่สวยงาม ปัญหาคือโมเดลภาษาไม่ได้_แก้ไข_ ในแบบที่บรรณาธิการมนุษย์ลบ "um" ออก มันสร้างใหม่ ผลลัพธ์คือข้อความใหม่ที่โมเดลเห็นว่าเป็นเวอร์ชันที่ดีของอินพุตคุณ และ "ดี" คือจุดที่เจตนาของคุณรั่วออกไป โมเดลที่ถูกฝึกมาให้เป็นประโยชน์และลื่นไหลมีความคิดเห็นของตัวเอง: คำกำกวมดูเหมือนสิ่งรบกวน คำขยายดูเหมือนของเกะกะ ถ้อยคำที่เก้ ๆ กัง ๆ แต่แม่นยำดูเหมือนสิ่งที่ควรปรับปรุง ส่วนใหญ่แล้วการเขียนใหม่นั้นไม่มีพิษภัย แต่มันเป็นความน่าจะเป็น และคุณดูจากผลลัพธ์ไม่ออกว่าประโยคไหนถูกถอดมาและประโยคไหนถูกแต่งขึ้น ความขัดเงานั้นสม่ำเสมอ ส่วนความซื่อตรงไม่

นั่นคือปัญหาลึกของไปป์ไลน์ขัดเกลาด้วย LLM: มันล้มเหลวอย่างเงียบ ๆ และมั่นใจ ตัวรู้จำเสียงที่ได้ยินคุณผิดมักผลิตอะไรที่ผิดอย่างเห็นได้ชัด ส่วนชั้นเขียนใหม่ที่ทรยศคุณผลิตอะไรที่_ดูถูกต้อง_ — ถูกไวยากรณ์ น่าเชื่อ สวมเสียงของคุณอยู่ — ซึ่งเป็นเหตุผลตรง ๆ ที่ "อย่า deploy" ที่กลับด้านแล้วถูกส่งออกไปแทนที่จะถูกจับได้

ตรงตัวเป็นค่าเริ่มต้น

จุดยืนของ Keebye ง่ายมาก: สิ่งที่โมเดลแปลงเสียงเป็นข้อความได้ยิน คือสิ่งที่ไปลงที่เคอร์เซอร์ของคุณ ตามค่าเริ่มต้น ไม่มีโมเดลภาษาตัวไหนนั่งอยู่ระหว่างข้อความที่ถอดได้กับเทอร์มินัลของคุณเพื่อแต่งเวอร์ชันที่ดีกว่าของคุณขึ้นมา — ขั้นตอนขัดเกลาตามค่าเริ่มต้นคือรายการกฎที่แน่นอนสั้น ๆ ชุดหนึ่ง เท่านั้น

นั่นคือการเดิมพันที่จงใจ และมันมาจากกรณีใช้งานแบบ Vibe Coding เมื่อการพิมพ์ด้วยเสียงคือช่องทางควบคุมสำหรับ coding agent งานของเครื่องมือคือการขนส่ง ไม่ใช่การประพันธ์ คุณคือผู้เขียน agent คือผู้อ่าน ชั้นการพิมพ์ด้วยเสียงไม่ควรมีความคิดเห็น เวิร์กโฟลว์นั้น — การพูด prompt ทั้งอันแทนการพิมพ์ — วางไว้ใน พิมพ์ด้วยเสียงสำหรับ prompt ของ AI

Keebye มี การขัดเกลาด้วย LLM อยู่ — เดี๋ยวผมจะพูดถึง — แต่มันเป็นแบบเลือกเปิดใช้ รันบนเครื่องคุณทั้งหมด และทำงานภายใต้ตัวป้องกันที่ออกแบบมาปฏิเสธการเพี้ยน การขยายตัวเกินควบคุม และการซ้ำในรูปแบบที่พบบ่อย ถ้าผลลัพธ์ไม่ผ่านการตรวจนั้น Keebye จะถอยกลับไปใช้กฎ ค่าเริ่มต้นยังคงเป็นกฎ

แล้วการเก็บกวาดทำอะไรกันแน่

ตรงตัวไม่จำเป็นต้องแปลว่าดิบ Keebye มาพร้อมขั้นตอนการเก็บกวาดแบบเลือกได้ — enhancement เปิดไว้ตามค่าเริ่มต้น และเขียนทับได้รายแอป — แต่มันอิงกฎ ไม่ใช่โมเดล และรายการทั้งหมดของสิ่งที่มันทำใส่ได้ในย่อหน้าเดียว

มันตัดคำฟุ่มเฟือยที่ยืนอยู่ลำพัง (um, uh, erm, you know) มันยุบคำซ้ำที่ติดกัน — "the the" กลายเป็น "the" มันยุบช่องว่าง มันทำอักษรตัวแรกให้เป็นตัวใหญ่ และเติมจุดปิดท้ายถ้าคุณไม่ได้จบด้วยจุด นั่นคือรายการทั้งหมด กฎเหล่านี้แน่นอนและมีขอบเขตแคบ มันไม่จงใจสลับลำดับอนุประโยค ไม่ลบการปฏิเสธ และไม่แทนที่ด้วยคำพ้องความหมาย

ก่อนการเก็บกวาดจะรัน การแทนที่จากพจนานุกรมของคุณจะทำงานก่อน — การแทนที่ที่ผู้ใช้กำหนดเองสำหรับศัพท์เฉพาะและคำนามเฉพาะที่โมเดลเสียงมักทำเละ เพื่อให้ "pnpm" และชื่อโมดูลของคุณมาถึงโดยสะกดแบบเดียวกับที่โค้ดเบสของคุณสะกด

และถ้าแม้แต่ขั้นตอนที่อิงกฎก็ยังแทรกแซงมากเกินไปสำหรับคุณ ให้ปิด enhancement แล้ว Keebye จะแทรกข้อความดิบจากโมเดลเสียง: ทั้งคำฟุ่มเฟือย ทั้งคำซ้ำ ครบถ้วน สำหรับบางบริบท — การอ้างคำพูดของใครสักคน การพูดลงในช่องที่จุดปิดท้ายทำให้อะไรพัง — ข้อความดิบคือตัวเลือกที่ดีกว่า และการเขียนทับรายแอปให้คุณเลือกมันได้

การขัดเกลาแบบเลือกเปิดใช้ และตัวป้องกันความซื่อตรงที่ล้อมมันไว้

ทีนี้มาถึง LLM ที่ผมสัญญาไว้ว่าจะพูดถึง สำหรับคนที่ต้องการการเก็บกวาดที่ฉลาดขึ้นจริง ๆ Keebye มีโหมดขัดเกลาแบบเลือกได้ (ตั้ง polish_mode เป็น local_llm): โมเดล Qwen3 ตัวเล็กที่รันบนเครื่องผ่าน llama.cpp เร่งความเร็วด้วย Metal ไม่มีอะไรถูกส่งไปไหน คำสั่งของมันคือฉบับแคบของการขัดเกลา — ซ่อมเครื่องหมายวรรคตอนและตัวพิมพ์ใหญ่ ตัดคำฟุ่มเฟือย เก็บคำ ภาษา และความหมายที่ผู้ใช้พูดไว้เป๊ะ ๆ รักษาโค้ดและชื่อไฟล์ไว้ตามตัวอักษร การสร้างข้อความเป็นแบบแน่นอน (greedy sampling อินพุตเดิม → เอาต์พุตเดิม) และมีเพดานกำกับ ถ้าโมเดลค้างเกินเส้นตายสองวินาที ผลลัพธ์ของมันจะถูกทิ้ง

แต่คำสั่งคือความหวัง และบทความนี้มีอยู่เพราะความหวังไม่ใช่การรับประกัน ฉะนั้นผลลัพธ์ที่ขัดเกลาด้วย LLM ทุกชิ้นจะผ่านตัวป้องกันความซื่อตรงก่อนจะแตะเคอร์เซอร์ของคุณได้ ผลลัพธ์ต้องคงโทเคนของข้อความต้นฉบับไว้อย่างน้อย 50% มันต้องไม่พองตัว — อะไรที่เกินราวสองเท่าของความยาวเดิม (บวกสี่โทเคน) ถือว่าไม่ผ่าน การซ้ำแบบเกินควบคุมถูกตรวจจับ ถ้าผลลัพธ์ที่ขัดเกลาแล้วไม่ผ่านการตรวจข้อใดข้อหนึ่ง Keebye จะทิ้งมันแล้วถอยกลับไปใช้การเก็บกวาดแบบอิงกฎแทน

ตัวป้องกันนั้นจับการสูญเสียโทเคนอย่างรุนแรง การขยายตัวเกินควบคุม และการซ้ำ ได้ก่อนที่ผลลัพธ์ของโมเดลจะเข้าไปแทนข้อความที่เก็บกวาดด้วยกฎ มันคือฮิวริสติก ไม่ใช่การพิสูจน์เชิงความหมาย: การเขียนใหม่ที่สั้นหรือการปฏิเสธที่เปลี่ยนไปยังอาจผ่านเกณฑ์ของมันได้ ถ้าคำขยายคำหนึ่งเพี้ยนไม่ได้ ให้ปิดการขัดเกลาด้วย AI แล้วตรวจข้อความที่แทรกเข้ามาก่อนส่ง

ข้อจำกัดที่ต้องพูดตรง ๆ

ตรงตัวก็คือตรงตัว ถ้าคุณพูดวกวน ความวกวนของคุณก็ไปลง — แม้แต่การขัดเกลาแบบเลือกเปิดใช้ก็ถูกสั่งและถูกกำกับให้เก็บกวาด ไม่ใช่ประพันธ์ Keebye จึงไม่เปลี่ยนความคิดที่เตร็ดเตร่ให้กลายเป็นคำสั่งที่คมชัด วินัยของการพูดในสิ่งที่คุณหมายถึงยังเป็นของคุณอยู่

การเก็บกวาดแบบอิงกฎนั้นโง่โดยตั้งใจ มันตัด "um" ออก มันจะไม่ซ่อมไวยากรณ์ของคุณ ไม่จัดโครงสร้างประโยคยืดยาวใหม่ และไม่สังเกตว่าคุณพูดขัดแย้งกับตัวเอง อะไรที่ฉลาดกว่านั้นจะนำการตัดสินใจเชิงดุลพินิจที่การออกแบบนี้มีอยู่เพื่อหลีกเลี่ยงกลับเข้ามาอีก

และความซื่อตรงป้องกันการ_เขียนใหม่_ ไม่ใช่การ_ฟังผิด_ ถ้าโมเดลเสียงได้ยิน "cache" เป็น "cash" ความผิดพลาดนั้นจะถูกรักษาไว้อย่างซื่อสัตย์ — ตัวป้องกันไม่รู้เลยว่าคุณตั้งใจจะพูดอะไร รู้แค่ว่าอะไรถูกถอดออกมา การพิมพ์ด้วยเสียงแบบตรงตัวย้ายขอบเขตความไว้ใจไปที่โมเดล STT มันไม่ได้กำจัดขอบเขตนั้นทิ้ง (เกี่ยวข้องกัน: ถ้าปัญหาของคุณคือโมเดลถอดเสียงเป็นภาษาผิดไปเลย นั่นคือความล้มเหลวคนละแบบที่มีวิธีแก้คนละอย่าง — ปักหมุดภาษาพิมพ์ด้วยเสียงของคุณ)

สุดท้าย กรอบระดับหมวดหมู่: การขัดเกลาด้วย AI ไม่ใช่การหลอกลวง และผู้ใช้จำนวนมากก็ชอบผลลัพธ์ที่อ่านลื่นกว่าที่ตัวเองพูดจริง ๆ ถ้านั่นคือคุณ เครื่องมืออื่นทุ่มไปทางนั้นได้ดี และการเปรียบเทียบของเราก็พูดแบบนั้นอย่างตรงไปตรงมา — Keebye เทียบกับ Wispr Flow และ Keebye เทียบกับ Superwhisper ต่างมีหัวข้อ "เมื่อไรอีกตัวเหมาะกว่า" จริง ๆ อยู่ในนั้น

การขนส่ง ไม่ใช่การประพันธ์

ข้อตกลงที่ Keebye เสนอนั้นแคบโดยตั้งใจ: คุณพูด แล้วข้อความที่ถูกเก็บกวาดเบา ๆ ไปลงที่เคอร์เซอร์ของคุณ เมื่อคำเหล่านั้นคือ prompt ถึง agent ที่จะลงมือทำตามอย่างตรงตัว ความแคบคือฟีเจอร์ สิ่งที่แพงที่สุดที่เครื่องมือพิมพ์ด้วยเสียงทำกับนักพัฒนาได้ ไม่ใช่คำที่สะกดผิด แต่คือประโยคลื่นไหลที่คุณไม่เคยพูด

Keebye อยู่ในช่วงเข้าถึงล่วงหน้าสำหรับ macOS เริ่มทดลองใช้ฟรีได้ด้านล่าง พูดว่า “อย่า deploy จนกว่าเทสต์จะผ่าน” แล้วตรวจดูว่าข้อจำกัดนั้นรอดจากการเก็บกวาดหรือไม่ การทดสอบนั้นคือตัวผลิตภัณฑ์ทั้งหมด

ทดสอบคำสั่งที่เพี้ยนไม่ได้

เริ่มทดลองใช้ฟรี แล้วพูด prompt ที่มีคำขยายสำคัญ—โดยเฉพาะคำว่า 'อย่า'—จากนั้นตรวจดูว่าอะไรมาถึง

Start free trial

Early access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.

อ่านต่อ

พูดป้อน prompt ให้ agent ขนาน ทีละเลน
Teodor Deleanuใช้เวลาอ่าน 10 นาที

พูดป้อน prompt ให้ agent ขนาน ทีละเลน

การรัน coding agent พร้อมกันสองสามตัวทำให้การสั่ง prompt กลายเป็นคอขวด นี่คือเวิร์กโฟลว์เสียงสำหรับป้อนงานทุกเลนโดยไม่ต้องออกจากเลนที่คุณอยู่

vibecoding
parallel-agents
workflow
Teodor Deleanuใช้เวลาอ่าน 8 นาที

ขับ Claude Code ด้วยเสียงของคุณ: การสร้างงานแบบเลนขนาน

AI coding agent ทำให้การพิมพ์กลายเป็นคอขวด นี่คือเวิร์กโฟลว์ใช้งานจริงสำหรับการพูด prompt รีวิว และคำสั่งปรับทิศทางข้ามเลน agent ขนานบน macOS

vibecoding
claude-code
workflow
Teodor Deleanuใช้เวลาอ่าน 9 นาที

การพิมพ์ด้วยเสียงที่รอดในเทอร์มินัล

การวางข้อความเสียงล้มเหลวเงียบ ๆ ในเทอร์มินัล SSH, tmux และเลย์เอาต์ที่ไม่ใช่ QWERTY ทำไมคลิปบอร์ดจึงใช้ไม่ได้ที่นั่น และโหมดพิมพ์จำลองทำอะไรแทน

vibecoding
terminal
workflow