Coding agent viết được code render một đoạn film, một demo sản phẩm, một con game. Nhưng nó không nghe được thứ mình vừa làm. Không phân biệt được tiếng phím bấm xịn với tiếng rẻ tiền, không nhận ra cú đánh đáp xuống muộn 80 ms so với nhịp cắt, không biết đoạn nhạc swell sai chỗ. Đó là khoảng trống mà Leonxlnx/earshot cố lấp vào.
Repo tự mô tả ngắn gọn: “Ears for coding agents: let AI hear, review and make sound. CPU-only, open source.” Nghe thì đơn giản, nhưng bên trong là một bộ tool khá dày: describe, match, find, compare, timeline, critique, forge, fit. Viết bằng Python, license MIT, 535 sao tính đến thời điểm này.
Vấn đề nó giải quyết, nói thẳng
Agent bây giờ làm việc với âm thanh gần như mù. Chúng có thể gọi một sound library, gắn file wav vào timeline, render ra mp4. Nhưng bước kiểm tra thì không có. Con người phải ngồi nghe rồi sửa, và đó là bottleneck cứng khi bạn muốn agent tự lặp.
earshot biến âm thanh thành dữ liệu mà agent đọc được. Đầu ra là mô tả bằng chữ, không phải waveform: file này nghe như cái gì, độ khớp với một mô tả cho trước ra sao, khoảnh khắc hay nhất trong một bản ghi dài nằm ở đâu, đây là bản ghi thật hay do code tổng hợp, transcript từng giây của cả một đoạn film, và một bảng điểm so với phim launch chuyên nghiệp.
$ earshot describe enter.ogg
0.56 s short transient (attack 3 ms, decays in 190 ms). Sounds most like: a single mechanical keyboard key press
(z +5.4), a soft key release click (z +3.6) ... [clear reading]. peak -0.1 dBFS, brightness 1.5 kHz ...
Điểm mấu chốt là chữ “evidence”. Agent không nhận một câu khen chung chung kiểu “nghe ổn”, mà nhận tag đã calibrate với z-score, kèm alternative readings gần nhất, kèm số đo cụ thể. Từ đó nó có cái để lý luận và sửa.
Vì sao nó đang được chú ý
Repo tạo ngày 2026-10-15, cập nhật 2026-10-16, và đã có 535 sao. Tốc độ đó nói lên nhu cầu thật: dân làm agent đang thiếu đúng mảnh ghép này. MCP server có sẵn, chạy được với Claude Code và các agent khác, nên tích hợp không cần viết glue code.
Điểm khác biệt lớn nhất nằm ở chỗ nó chạy local trên CPU. Không GPU, không API call, không upload file lên đâu cả. Với người làm việc trên máy cá nhân hoặc trong môi trường không tiện gửi asset ra ngoài, đây là lựa chọn hợp lý. Có một command llm để gọi Gemini nếu bạn muốn, nhưng phải tự cắm key và bật --yes-upload rõ ràng.
Và cái demo launch film 22 giây trong README cũng đáng nhắc: toàn bộ âm thanh trong đó do earshot forge tạo bằng code, không có bản ghi nào, không có music track. Đây là bằng chứng sống cho luận điểm của repo, không phải lời quảng cáo.
Cài đặt và dùng thử nhanh
Đây là công cụ CLI, nên flow cơ bản là cài package rồi gọi command. Một vài lệnh đáng thử trước:
# kiểm tra install, model, data file và cấu hình CPU
earshot doctor --load
# xem file nghe như thế nào
earshot describe enter.ogg
# so khớp với một mô tả, kèm alternative
earshot match key.ogg "a deep thocky mechanical keyboard press" --alts "a clicky blue switch keyboard" "a mouse click"
# tìm khoảnh khắc hay nhất trong một bản ghi dài
earshot find keys.ogg "a single mechanical key press" --top 4
# chấm điểm một launch film
earshot critique film.mp4
# xem toàn bộ recipe có sẵn cho forge
earshot forge --list
Muốn dùng như MCP server cho Claude Code:
earshot mcp
Còn nếu bạn viết script Python, có thể import thẳng API:
from earshot import api
Một lưu ý vận hành quan trọng, README nói rõ: mỗi lần gọi CLI là một process mới, load model mất khoảng 20 đến 40 giây trước khi trả kết quả. Gọi vài lệnh thì không sao, nhưng nếu định gọi hàng chục lần thì nên dùng MCP server (model giữ sẵn trong bộ nhớ) hoặc gói tất cả vào một script Python. Đây là kiểu chi tiết mà chỉ người viết thật mới để vào README.
Dùng trong trường hợp nào, ai nên dùng
Rõ nhất là mấy cảnh này:
- Agent tự làm sound design. Viết recipe bằng code (modal resonator, contact excitation, filtered noise, room tính toán, microphone, không có audio thu sẵn bên trong), render ra nhiều candidate, một critic chấm điểm, rồi agent đọc nhận xét bằng chữ và sửa recipe. Vòng lặp khép kín, không cần tai người ở mỗi bước.
- Kiểm tra trước khi ship. Chạy
earshot critiquetrên launch video, nhận scorecard so với profile của 7 phim launch chuyên nghiệp, kèm fix có timestamp. Ví dụ README đưa ra: “nothing reaches body level until 0:01.01”. - Chọn asset từ đống download.
earshot rankxếp nhiều file theo một mô tả, chọn cái khớp nhất thay vì nghe thủ công từng cái. - Dịch ngược bản ghi thành code.
earshot fitbiến một recording thành module recipe có knob và morph, để agent chỉnh biến thể sau đó. - Kiểm tra tính thật.
earshot realnessphân biệt bản ghi thật hoặc do chuyên nghiệp sản xuất với âm thanh do code tổng hợp, kèm score từng window.
Người hợp với tool này: dev đang build agent có xử lý media, team làm game cần iterate SFX nhanh, ai làm pipeline video tự động, hoặc đơn giản là người tò mò muốn xem máy “nghe” một file âm thanh ra sao. Người chỉ cần một cái EQ để master nhạc thì không cần.
So với lựa chọn khác
Mảng phân tích âm thanh có nhiều thư viện, nhưng phần lớn dừng ở mức trích feature hoặc classification thuần. Cái làm earshot khác là lớp “reasoning”: nó không chỉ nói file là gì, mà nói file khớp với mô tả bao nhiêu, xếp hạng ra sao trong một vocabulary, và đưa ra verdict strong/plausible/weak/no match. Cộng thêm forge, tức là vòng lặp tạo và tự đánh giá, thì đây là combo khá hiếm. Tôi không thấy một repo open source nào khác làm đúng cả hai phía nghe và tạo trong cùng một package, nên so sánh chi tiết thì xin phép dừng ở đây.
Ưu điểm, hạn chế, lưu ý
Ưu: chạy CPU-only nên không cần GPU; license MIT thoáng; có cả CLI, Python API và MCP server nên tích hợp nhiều kiểu; mỗi command in summary dạng plain language trước, --json cho kết quả đầy đủ, tiện cho agent parse; lỗi in một dòng ra stderr với exit code 1, dễ xử lý tự động.
Hạn chế: thời gian load model 20 đến 40 giây mỗi process là điểm trừ thật nếu bạn dùng CLI kiểu gõ tay liên tục. Bộ model và data file cũng chiếm chỗ, chưa kể lần đầu cài sẽ phải tải về. Các command như critique phụ thuộc vào profile tham chiếu (mặc định 7 phim launch), nên kết quả sẽ lệch nếu gu của bạn khác gu của bộ profile đó. README có command profile để tự build profile từ film bạn thích, nhưng phải làm thêm một bước.
Về độ trưởng thành: repo mới tạo, cập nhật liên tục, API có thể còn đổi. Tài liệu trong README khá chi tiết và có ví dụ output thật, nhưng đây là loại tool bạn nên thử trên nhánh riêng trước khi nhúng vào pipeline production. License MIT thì yên tâm dùng thương mại, chỉ cần giữ copyright notice.
Kết
535 sao trong khoảng một ngày là tín hiệu rõ: cộng đồng agent đang chờ đúng mảnh ghép “tai” này. Nếu bạn đang viết agent có render media và chán cảnh phải ngồi nghe từng output, thử earshot doctor --load trước xem máy có nuốt nổi model không, rồi chạy describe trên một file quen thuộc. Xem output có đúng cái bạn nghe không, đó là phép thử nhanh nhất. Repo ở đây: Leonxlnx/earshot.
