รีวิว earshot — ให้ AI agent ฟังเสียงเป็น ตรวจเสียงในคลิป และสร้างเสียงประกอบด้วยโค้ด
ข้อมูล Repo
Leonxlnx/earshot- ภาษา
- Python
- ดาว
- 1,524
- สร้างเมื่อ
- แก้ไขล่าสุด
เปลี่ยนสถานะผ่าน API: PATCH /api/reports/87c6d189-2a2c-4750-b868-35d284d72aac
แคปชันสำหรับ Facebook
AI เขียนโค้ดทำคลิปได้แล้ว แต่มันยังไม่เคยได้ยินเสียงในงานตัวเองเลย earshot ทำให้ agent มี "หู" ครับ earshot แปลงเสียงเป็นข้อมูลที่ agent อ่านเข้าใจ ทั้งบอกว่าเป็นเสียงอะไร ดังตรงไหน และลงจังหวะกับภาพหรือเปล่า ✅ ฟังคลิปทั้งเรื่องแล้วบอกเป็นช่วงเวลาว่ามีเสียงอะไรตรงไหน ✅ ให้คะแนนคลิปเปิดตัวสินค้า พร้อมบอกจุดที่ควรแก้ก่อน ✅ มีคลังเสียงประกอบ 201 เสียง เช่น whoosh, คลิก, เสียงกระแทก เรนเดอร์ได้ในไม่กี่วินาที ✅ สร้างเสียงใหม่ด้วยโค้ด แล้วให้มันฟังเองจนเสียงดีขึ้น ✅ รันบน CPU ในเครื่อง ต่อ Claude Code ผ่าน MCP ได้ ข้อควรรู้: ครั้งแรกต้องโหลดโมเดลราว 1.1 GB และ README บอกเองว่ามันตัดสินเรื่องรสนิยมหรืออารมณ์ของเสียงไม่ได้ 🔗 https://github.com/Leonxlnx/earshot #AIVideo #SoundDesign #ClaudeCode #OpenSource
ภาพปกแบบ HTML สด
แสดงจาก HTML ต้นฉบับที่ใช้สร้างภาพ ดาวน์โหลดเป็น PNG 1080×1350 ได้ทันที
สไตล์ Easy AI
1080×1350แก้ไข 2026-10-20
สไตล์ easy-app
1080×1350แก้ไข 2026-10-20
สรุป
earshot ทำให้ AI coding agent ฟังและเข้าใจเสียงได้ บอกได้ว่าเสียงคืออะไร ตรงกับคำบรรยายไหม เสียงลงจังหวะภาพหรือเปล่า และสร้างเสียงประกอบด้วยโค้ดจากคลัง 201 เสียง รันบน CPU ในเครื่อง ใช้ได้ทั้ง CLI, Python และ MCP server สำหรับ Claude Code
คืออะไร
Leonxlnx/earshot เป็นชุดเครื่องมือที่ทำให้ AI coding agent ได้ยินงานที่ตัวเองสร้าง เช่น หนัง เดโมสินค้า หรือเกม แล้วแปลงเสียงออกมาเป็นหลักฐานที่ agent อ่านแล้วให้เหตุผลต่อได้ เช่น ไฟล์เสียงนี้ฟังออกมาเป็นอะไร เข้ากับคำบรรยายแค่ไหน ช่วงที่ตรงที่สุดในไฟล์ยาวอยู่ตรงไหน เสียงนี้มาจากการอัดจริงหรือสังเคราะห์ด้วยโค้ด รวมถึง transcript การฟังแบบเรียงเวลา และ scorecard เทียบกับฟิล์มเปิดตัวมืออาชีพ
รันบน CPU ล้วน ไม่ใช้ GPU เลย และเลือกใช้ได้ 3 ทาง คือ CLI, Python API และ MCP server ที่ต่อกับ Claude Code และ agent อื่นได้ ภาษาหลักของโปรเจกต์คือ Python โค้ดเปิดแบบ MIT และใน repo ไม่มีไฟล์เสียงหรือวิดีโออยู่เลย เก็บแค่ตัวเลขผลการวัด
ตัวเลข ณ 20 ต.ค. 2026: ⭐ 1,524 | fork 91 | open issue 3 | license MIT
จุดเด่น
- เปลี่ยนเสียงให้เป็นหลักฐานที่ agent ใช้ได้จริง ครอบคลุมคำบรรยายเสียง (describe), ความเข้ากันของคำบรรยาย (match), หาช่วงเวลาที่ดีที่สุด (find), จัดอันดับไฟล์หลายไฟล์ (rank), เทียบเสียงสองชิ้น (ab) และแยกเสียงจริงออกจากเสียงที่สังเคราะห์ด้วยโค้ด (realness)
- ได้ทั้ง transcript การฟังแบบเรียงเวลา (timeline) และภาพ PNG ที่ annotate เฟรมวิดีโอ เหตุการณ์เสียง spectrogram waveform และจุด sync (sheet) เหมาะกับ agent ที่อ่านภาพเป็น
- ทำเสียงเองด้วยโค้ดได้ (earshot forge) เขียนเสียงเป็น recipe ของการสังเคราะห์เสียง แล้วให้ critic ที่สร้างจาก earshot เองช่วยฟังให้คะแนนและบอกว่าขาดตรงไหน ปรับสูตรซ้ำจนได้เสียงที่ดีขึ้น โดยไม่มีเสียงอัดจริงฝังอยู่ข้างใน
- แปลงเสียงจริงเป็นโค้ดได้ (earshot fit) ได้ module ที่ render ออกมาเป็นเสียงใหม่และปรับ size, damping, pitch, brightness, decay ได้ รวมถึง morph ระหว่างเสียงสองไฟล์
- มีคลังเสียงให้เรนเดอร์ทันที 201 เสียง (ส่วนใหญ่มาจาก forge v2 ใน 34 หมวด) เช่น whoosh, impact, click, riser, sub drop เรนเดอร์เป็นวินาที ไม่ต้องโหลดโมเดลและไม่ต้องต่อเน็ต พร้อม knob ปรับความยาว จุดที่เสียงดังสุด และ pitch
- ตรวจคุณภาพเสียงแบบวัดค่าได้ (
sfx check) เช่น click, cut tail, clipping, comb ring และมีชุดเสียงประจำบทบาทสำหรับฟิล์ม (kit) ที่เรนเดอร์เป็น take พร้อม lock ของจุด sync ที่วัดแล้ว - มี MCP server ให้ Claude Code ใช้ และมี agent skill 2 ตัวในโฟลเดอร์ skills/ (earshot กับ real-sound) ให้คัดลอกหรือทำ symlink ไปวางที่ ~/.claude/skills/ ได้
- ทุกคำสั่งพิมพ์สรุปแบบภาษาคนก่อนเสมอ และมีตัวเลือก --json และ --out ไฟล์ให้ดึงไปใช้ต่อได้
เหมาะกับใคร
- คนที่ให้ AI เขียนโค้ดทำหนัง เดโม หรือเกม แล้วอยากให้ agent ช่วยฟังงานตัวเองว่าจังหวะลงไหม เสียงตรงกับภาพไหม
- สาย game dev, motion design และ sound design ที่อยากทำ SFX แบบเขียนโค้ด ไม่ต้องซื้อไฟล์เสียงเป็นกอง
- นักพัฒนา MCP และ agent ที่อยากได้เครื่องมือวิเคราะห์เสียงที่รันบนเครื่องตัวเอง ไม่ต้องส่งไฟล์เสียงขึ้นคลาวด์
- ทีมที่ทำหนังสั้นหรือคอนเทนต์ และอยากได้ scorecard ของฟิล์มเปิดตัวจริงมาเทียบ (critique)
- คนที่ชอบแกะสูตรเสียง อยากลองแปลงเสียงจริงเป็นโค้ดแล้วปรับต่อเอง
เริ่มต้นใช้งาน
ต้องมี Python 3.10+ และ ffmpeg กับ ffprobe บน PATH ตัวโปรเจกต์ระบุว่ารัน CPU ล้วน ไม่ใช้ GPU
git clone https://github.com/Leonxlnx/earshot && cd earshot
python -m venv .venv
.venv/bin/python -m pip install torch --index-url https://download.pytorch.org/whl/cpu # Windows: .venv/Scripts/python
.venv/bin/python -m pip install -e ".[mcp,llm,dev]"
.venv/bin/python -m earshot doctor --load
ครั้งแรกที่ใช้งานจะดาวน์โหลดโมเดลเปิด 2 ตัว (~1.1 GB) เก็บไว้ในโฟลเดอร์ .cache/hf ในรีโป (หรือโฟลเดอร์ EARSHOT_HOME) ได้แก่ CLAP กับตัว tagger AudioSet หลังจากนั้น earshot โหลดจาก cache นั้นอย่างเดียว ไม่ติดต่อ Hub อีก
ต่อเข้ากับ Claude Code ในรูปแบบ MCP server:
claude mcp add earshot --scope user -e EARSHOT_THREADS=3 -- /path/to/earshot/.venv/bin/python -m earshot mcp
หรือเรียกใช้จาก Python:
import earshot
earshot.describe('whoosh.wav')
earshot.find('typing.ogg', 'a single isolated key press')
earshot.timeline('soundtrack.wav', video='film.mp4')
from earshot import api
หมายเหตุจาก README: แต่ละครั้งที่เรียก CLI จะเป็น process ใหม่และต้องโหลดโมเดลก่อนตอบราว 20-40 วินาที ยกเว้นคำสั่ง measure, sfx และ kit ที่ไม่โหลดโมเดล ถ้าจะเรียกหลายครั้ง แนะนำให้ใช้ MCP server ที่โหลดโมเดลค้างไว้ หรือเขียนเป็นสคริปต์ Python เดียว
ข้อควรรู้
- License: MIT (MIT License) สำหรับโค้ด ส่วนโมเดลมาจากผู้เขียนโมเดลเองแยกไลเซนส์ CLAP เป็น Apache-2.0 และ AST เป็น BSD-3-Clause ไฟล์เสียงตัวอย่างที่ใช้เป็น reference ไม่ได้อยู่ใน repo เพราะมีลิขสิทธิ์ และผลลัพธ์ของ earshot fit เป็นงานดัดแปลงจากเสียงต้นทาง ควรเก็บไลเซนส์ของไฟล์ต้นทางไว้กับ recipe ด้วย ถ้าจะใช้เชิงพาณิชย์ควรเช็กเงื่อนไขของเสียงต้นทางและของโมเดลให้ดีก่อน
- ความสดใหม่: push ล่าสุด 18 ต.ค. 2026 โปรเจกต์ถูกสร้างเมื่อ 15 ต.ค. 2026 อายุราว 5 วัน โตเร็วมาก repo ยังไม่ถูก archive และมี open issue อยู่ 3 รายการ
- ตัวเลขที่ README รายงานเอง (ข้อมูล ณ 20 ต.ค. 2026): การ match คำบรรยายบนคลังเสียงจริง 125 ไฟล์ที่ถือเป็น held-out ตอบถูกชนิดเสียง 98% และตรงแบบย่อย 61% | แยกเสียงจริงออกจากเสียงที่สังเคราะห์ด้วยโค้ดได้ held-out ROC-AUC 0.92 | ตรวจจับเสียงในมิกซ์ฟิล์ม 60 วินาทีได้ 93% (89% ของเสียงเบาที่อยู่ใต้เสียงดนตรี) และฟิล์ม 60-90 วินาทีใช้เวลาราว 1.5 นาทีบน laptop CPU | scorecard ของฟิล์มเปิดตัวอยู่ในเกณฑ์ 86% ของ metric (baseline ไม่ overfit ประมาณ 71%) | earshot fit ทดสอบกับเสียงจริง 12 ไฟล์ ได้ค่ามัธยฐาน CLAP cosine 0.945 (ต่ำสุด 0.881)
- เจ้าของ repo เขียนไว้ตรงๆ ว่า blind test รอบแรกของ forge v1 ผู้ฟังทายถูกว่าเสียงไหนทำด้วยโค้ดแค่ 8 จาก 15 ครั้ง พอ ๆ กับการโยนเหรียญ แต่ก็บอกเองว่าผู้ฟังคนเดียว 15 รอบเป็นการทดสอบเล็ก ๆ ยังไม่ใช่ข้อพิสูจน์ ส่วน forge v2 ยังไม่มีคะแนน blind test ที่ประกาศ
- ข้อจำกัดด้านความสามารถที่ README ระบุเอง: earshot ฟังได้เรื่องความดัง จังหวะ และ sync กับภาพ, เป็นเสียงชนิดที่ขอหรือไม่ และช่วยเลือกจากตัวเลือกได้ แต่แนวเสียงดนตรีและ mood ได้แค่เบาะแส ส่วนรสนิยม อารมณ์ ที่มาและลิขสิทธิ์ รวมถึงเนื้อหาคำพูด โมเดลตัดสินไม่ได้ และโมเดลไม่ได้ยินอะไรที่สูงกว่า 14 kHz
- การค้นหาเสียงใหม่และการ fit ทำเป็น offline step เท่านั้น ส่วนการเรนเดอร์จากคลังเสียงทำได้ในไม่กี่วินาที
- คำสั่ง llm เป็นการวิจารณ์ด้วย audio LLM ของ Gemini ต้องมี GEMINI_API_KEY ของตัวเองและยินยอมอย่างชัดเจนก่อนถึงจะอัปโหลดไฟล์เสียงได้ และ README เตือนว่าอย่าเขียน key ลงในไฟล์
- ในคลังเสียงมี 15 เสียงที่ fit มาจากเสียง CC0 พร้อมเครดิตอยู่ใน docs/CREDITS_FIT.md และ repo แยก reference set เป็นฝั่ง forge ที่ค้นหาใช้ได้ กับฝั่ง bench ที่เก็บไว้ให้ benchmark ฟังเท่านั้น
🔗 https://github.com/Leonxlnx/earshot
ข้อมูลจาก GitHub ณ 20 ต.ค. 2026: ⭐ 1,524 | ภาษา Python | license MIT