
Earshot যা করে
Earshot হলো AI কোডিং এজেন্টদের জন্য তৈরি একটি স্থানীয় অডিও-বিশ্লেষণ ও শব্দ-সংশ্লেষণ টুলকিট। এটি শব্দকে কাঠামোবদ্ধ প্রমাণে রূপান্তর করে: সহজ ভাষার বর্ণনা, ক্যালিব্রেটেড মিলের স্কোর, সময়-নির্ধারিত ইভেন্ট, নিরপেক্ষ পরিমাপ, ভিজ্যুয়াল সাউন্ড শিট এবং লঞ্চ-ফিল্মের সমালোচনা।
এটি এমন প্রশ্নের উত্তর দিতে পারে, যেমন কোনো ইফেক্ট গভীর যান্ত্রিক কী চাপার মতো শোনায় কি না, দীর্ঘ রেকর্ডিংয়ে নির্দিষ্ট ইভেন্টটি কোথায় ঘটে, দুটি সম্ভাব্য শব্দের পার্থক্য কী, অথবা কোনো সাউন্ডট্র্যাক ছবির কাটের সঙ্গে সামঞ্জস্যপূর্ণ কি না। এটি earshot forge-এর মাধ্যমে কোড থেকেও ইফেক্ট সংশ্লেষণ করতে পারে।
Earshot CPU-তে স্থানীয়ভাবে চলে এবং কমান্ড-লাইন ইন্টারফেস, Python API ও Claude Code-এর মতো টুলের জন্য MCP সার্ভারের মাধ্যমে ব্যবহার করা যায়। প্রাথমিক মডেল ডাউনলোডের পর এর সাধারণ বিশ্লেষণ বৈশিষ্ট্যগুলো অফলাইনে কাজ করতে পারে।
প্রধান সক্ষমতা
- শব্দের বর্ণনা:
describeক্যালিব্রেটেড ট্যাগ, বিকল্প ব্যাখ্যা, AudioSet লেবেল ও পরিমাপ ফেরত দেয়। - প্রার্থীদের মিলিয়ে র্যাঙ্ক করা:
matchএকটি ফাইল কোনো বর্ণনার সঙ্গে কতটা মেলে তা মূল্যায়ন করে, আরrankকোনো কুয়েরির ভিত্তিতে একাধিক ফাইল সাজায়। - ইভেন্ট খোঁজা:
findদীর্ঘ রেকর্ডিংয়ের মধ্যে সবচেয়ে বেশি মেলা মুহূর্তগুলো শনাক্ত করে এবং ট্রিমের উপযোগী শুরু ও শেষের সময় জানায়। - অডিও তুলনা:
compareরেফারেন্স রেকর্ডিং খোঁজে, আরabদুটি শব্দ বা ট্রিমের পার্থক্য ব্যাখ্যা করে। - বাস্তবতা যাচাই:
realnessঅনুমান করে অডিওটি বাস্তব বা পেশাদারভাবে তৈরি রেকর্ডিংয়ের মতো কি না, নাকি কোডে সংশ্লেষিত শব্দের মতো। - সাউন্ডট্র্যাক বিশ্লেষণ:
timelineভিডিও কাট বা কিউ ফ্রেমের সঙ্গে ইভেন্ট, বিভাগ, লেভেল, বিট এবং সিঙ্ক্রোনাইজেশন শনাক্ত করে। - ভিজ্যুয়াল রিপোর্ট তৈরি:
sheetভিডিও ফ্রেম, ইভেন্ট, বিভাগ, ওয়েভফর্ম, স্পেকট্রোগ্রাম, লাউডনেস ও সিঙ্ক্রোনাইজেশন মার্কারসহ একটি টীকা-যুক্ত PNG তৈরি করে। - লঞ্চ ফিল্মের সমালোচনা:
critiqueএকটি ফিল্মকে সাতটি পেশাদার লঞ্চ ফিল্ম থেকে তৈরি প্রোফাইলের সঙ্গে তুলনা করে এবং টাইমস্ট্যাম্পসহ সংশোধনের পরামর্শ দেয়। - নিরপেক্ষভাবে পরিমাপ:
measureমডেল ব্যবহার না করে LUFS, true peak, loudness range, envelope, spectrum, tempo ও key-এর মতো বৈশিষ্ট্য জানায়। - ইফেক্ট সংশ্লেষণ:
forgeকোড থেকে শব্দ রেন্ডার করে এবং Earshot-এর সমালোচক ও মডেল-বিহীন পরিমাপ ব্যবহার করে রেসিপির প্যারামিটার খোঁজে।
Earshot ইনস্টল করুন
পূর্বশর্ত
আপনার Python 3.10 বা তার পরের সংস্করণ এবং সিস্টেম পাথে ffmpeg ও ffprobe—দুটিই উপলভ্য থাকতে হবে। Earshot শুধুমাত্র 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
.venv/bin/python -m pip install -e ".[mcp,llm,dev]"
.venv/bin/python -m earshot doctor --load
Windows-এ .venv/bin/python-এর পরিবর্তে .venv/Scripts/python ব্যবহার করুন।
মডেল-নির্ভর প্রথম অপারেশনটি রিপোজিটরির ভেতরে .cache/hf-এ প্রায় 1.4 GB ডাউনলোড করে, যদি না আপনি EARSHOT_HOME কনফিগার করেন। টেক্সট-অডিও এমবেডিংয়ের জন্য Earshot laion/larger_clap_general CLAP মডেল এবং AudioSet ট্যাগিংয়ের জন্য MIT/ast-finetuned-audioset-10-10-0.4593 ব্যবহার করে।
নির্ভরতা, ডেটা ফাইল, মডেল, precision বা CPU সেটিং যাচাই করতে যখনই প্রয়োজন ডায়াগনস্টিক কমান্ডটি চালান:
.venv/bin/python -m earshot doctor --load
CPU ও ক্যাশ সেটিং কনফিগার করুন
EARSHOT_THREADSTorch-এর CPU থ্রেডের সংখ্যা নিয়ন্ত্রণ করে।EARSHOT_HOMEক্যাশের মূল অবস্থান পরিবর্তন করে।EARSHOT_PRECISION=fp32FP32 বাধ্যতামূলক করে। ডিফল্ট হিসেবে native support থাকা CPU-তে BF16 এবং অন্যত্র FP32 ব্যবহৃত হয়।EARSHOT_OFFLINE=1মডেল ডাউনলোডের পর অফলাইন অপারেশন চালু করে।
কমান্ড-লাইন ব্যবহারের প্রাথমিক নির্দেশনা
একটি শব্দের বর্ণনা দিন
অপরিচিত কোনো ফাইলের সংক্ষিপ্ত ব্যাখ্যা চাইলে describe দিয়ে শুরু করুন:
earshot describe enter.ogg
সারাংশে duration, transient shape, সম্ভাব্য শব্দের শ্রেণি, ক্যালিব্রেটেড z-score, peak level, brightness এবং বিকল্প ব্যাখ্যা থাকতে পারে। সম্পূর্ণ কাঠামোবদ্ধ ফলাফলের জন্য --json, অথবা সংরক্ষণের জন্য --out result.json যোগ করুন।
নির্দিষ্ট একটি বর্ণনা পরীক্ষা করুন
আপনি যে শব্দটি চান তা আগে থেকেই জানা থাকলে match ব্যবহার করুন। সম্ভাব্য বিভ্রান্তিকর শব্দ থেকে লক্ষ্যটিকে আলাদা করতে বিকল্প বর্ণনা সহায়ক:
earshot match key.ogg "a deep thocky mechanical keyboard press" --alts "a clicky blue switch keyboard" "a mouse click"
ফলাফলে cosine similarity, vocabulary-ক্যালিব্রেটেড z-score এবং strong, plausible, weak বা no match-এর মতো verdict থাকে।
একাধিক সম্ভাব্য ফাইল র্যাঙ্ক করুন
কোনো সংগ্রহ থেকে সেরা প্রার্থী বাছতে, পাথগুলোর পরে বর্ণনাটি দিন:
earshot rank "a fast crisp air whoosh" sounds/one.wav sounds/two.wav sounds/three.wav
কোনো এজেন্ট একাধিক সম্ভাব্য ইফেক্ট ডাউনলোড বা রেন্ডার করে সেগুলোকে প্রমাণ-ভিত্তিক ক্রমে সাজাতে চাইলে এটি উপযোগী।
দীর্ঘ রেকর্ডিংয়ের ভেতরে একটি ইভেন্ট খুঁজুন
find কমান্ড কোনো রেকর্ডিংয়ের মধ্যে খুঁজে sample-trim সময় ফেরত দেয়:
earshot find keys.ogg "a single mechanical key press" --top 4
প্রতিটি ফলে শুরুর সময়, শেষের সময়, স্থায়িত্ব, স্কোর এবং রায় থাকে। এই টাইমস্ট্যাম্পগুলো পরে বড় কোনো উৎস থেকে একটি পরিষ্কার ইভেন্ট বের করতে ব্যবহার করা যায়।
মডেলের ব্যাখ্যা ছাড়াই পরিমাপ করুন
সেমান্টিক সিদ্ধান্তের বদলে পুনরুৎপাদনযোগ্য অডিও বৈশিষ্ট্য প্রয়োজন হলে measure ব্যবহার করুন:
earshot measure soundtrack.wav --json
এটি লাউডনেস, ট্রু পিক, লাউডনেস রেঞ্জ, এনভেলপ, স্পেকট্রাম, টেম্পো এবং কীসহ বস্তুনিষ্ঠ তথ্য জানায়।
একটি চলচ্চিত্রের সাউন্ডট্র্যাক বিশ্লেষণ করুন
শোনার টাইমলাইন তৈরি করুন
সেকেন্ডভিত্তিক শোনার ট্রান্সক্রিপ্ট তৈরি করতে timeline ব্যবহার করুন। একটি ভিডিও দিলে Earshot ছবির কাট এবং কিউ ফ্রেমের সঙ্গে সিঙ্ক্রোনাইজেশন মূল্যায়ন করতে পারে:
earshot timeline soundtrack.wav --video film.mp4 --json
ফলে শনাক্ত করা ইভেন্ট, সেকশন, লেভেল, লাউডনেস, বিট গ্রিড এবং অডিওভিজ্যুয়াল সিঙ্ক্রোনাইজেশনের প্রমাণ থাকতে পারে।
অ্যানোটেটেড সাউন্ড শিট তৈরি করুন
সাউন্ড শিট প্রধান বিশ্লেষণ স্তরগুলোকে একটি ছবিতে সাজায়, যা একটি ভিজ্যুয়াল এজেন্ট পরিদর্শন করতে পারে:
earshot sheet soundtrack.wav --video film.mp4 -o out.png
তৈরি করা PNG-তে প্রতিনিধিত্বমূলক ফ্রেম, লেবেলযুক্ত ইভেন্ট, সেকশন, ওয়েভফর্ম, স্পেকট্রোগ্রাম, লাউডনেস, বিট এবং সিঙ্ক্রোনাইজেশন মার্কার একত্রিত থাকতে পারে।
একটি লঞ্চ-ফিল্ম সমালোচনা তৈরি করুন
Earshot-এর অন্তর্ভুক্ত সাতটি পেশাদার লঞ্চ-ফিল্মের প্রোফাইলের সঙ্গে একটি ফিল্ম তুলনা করতে critique চালান:
earshot critique film.mp4
প্রতিবেদনটি একটি রায় দেয়, কোন মেট্রিকগুলো প্রোফাইলের সীমার মধ্যে বা বাইরে আছে তা শনাক্ত করে এবং টাইমস্ট্যাম্পযুক্ত সংশোধনগুলোকে অগ্রাধিকার দেয়। এটিকে গুণমানের সার্বজনীন মাপকাঠি হিসেবে নয়, বরং একটি নির্দিষ্ট লঞ্চ-ফিল্ম শৈলীর সঙ্গে তুলনা হিসেবে বিবেচনা করুন।
আপনার পছন্দের ফিল্মগুলো থেকেও একটি প্রোফাইল তৈরি করতে পারেন:
earshot profile reference-one.mp4 reference-two.mp4 reference-three.mp4 -o custom-profile.json
Python থেকে Earshot ব্যবহার করুন
Python ইন্টারফেস প্রতিটি অপারেশনের জন্য নতুন প্রসেস চালু করার প্রয়োজন দূর করে। এটি কার্যকর, কারণ পৃথক CLI কলগুলো মডেল লোড করে এবং ফল ফেরাতে প্রায় ২০ থেকে ৪০ সেকেন্ড সময় নিতে পারে।
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
api.rank("a crisp UI click", ["click-a.wav", "click-b.wav"])
api.critique("film.mp4")
earshot.api নেমস্পেসে র্যাঙ্কিং, সমালোচনা এবং একাধিক ফাইলের বাস্তবতা বিশ্লেষণসহ বিভিন্ন অপারেশন রয়েছে। একই Python প্রসেসে এসব কল রাখলে লোড করা মডেলগুলো পুনরায় ব্যবহার করা যায়।
MCP সার্ভার হিসেবে Earshot চালান
যে এজেন্ট বারবার অনুরোধ করবে, তার জন্য পৃথক CLI কলের চেয়ে MCP সার্ভার ভালো, কারণ প্রথম অনুরোধের পরও মডেলগুলো সক্রিয় থাকে।
claude mcp add earshot --scope user -e EARSHOT_THREADS=3 -- /path/to/earshot/.venv/bin/python -m earshot mcp
অন্য কোনো MCP-সামঞ্জস্যপূর্ণ ক্লায়েন্টের জন্য তার .mcp.json-এ সমতুল্য সেটিংস যোগ করুন:
{"mcpServers":{"earshot":{"command":"/path/to/earshot/.venv/bin/python","args":["-m","earshot","mcp"],"env":{"EARSHOT_THREADS":"3"}}}}
ধীরগতির কম্পিউটারে MCP_TIMEOUT=60000 দিয়ে Claude Code চালু করুন। ঐচ্ছিক llm_critique টুলটি পরিবেশ থেকে GEMINI_API_KEY পড়ে। কনফিগারেশন ফাইলে সরাসরি API কী রাখবেন না।
Earshot Forge দিয়ে সাউন্ড তৈরি করুন
Forge রেকর্ড করা অডিও এম্বেড না করেই সাউন্ড তৈরি করে। এর রেসিপিগুলো মডাল রেজোনেটর, কনট্যাক্ট এক্সাইটেশন, ফিল্টার করা নয়েজ, গণনাকৃত রুম এবং মাইক্রোফোন মডেলের মতো ফিজিক্যাল সিন্থেসিস উপাদান ব্যবহার করে।
প্রথমে অন্তর্ভুক্ত রেসিপিগুলোর তালিকা দেখুন:
earshot forge
রিপোজিটরিতে ক্লিক, ইমপ্যাক্ট, কী প্রেস, পপ এবং হুশের রেসিপি রয়েছে। বাস্তব রেকর্ডিংকে রেফারেন্স হিসেবে ব্যবহার করে কী-প্রেসের সাউন্ড খুঁজতে চালান:
earshot forge keypress --refs path/to/real/keypresses/ --budget 144 --reps 2 --tone 1.5 --keep 4 --robust 8 --dir made/keypress
সম্ভাব্য বিভ্রান্তির নাম উল্লেখ করে নির্দিষ্ট একটি বর্ণনাকে লক্ষ্য করতে:
earshot forge whoosh --target "a fast crisp air whoosh" --alts "a wind gust" "a sword swing" --refs path/to/real/whooshes/ --tone 1.5 --dir made/whoosh
Forge প্যারামিটারযুক্ত প্রার্থী রেন্ডার করে, একটি সমালোচক দিয়ে তাদের স্কোর দেয়, শক্তিশালী ফল সংরক্ষণ করে এবং বিবর্তনীয় অনুসন্ধানের মাধ্যমে সেগুলো পরিবর্তন করে। এর স্কোরিংয়ে বর্ণনার সঙ্গে মিল, নামযুক্ত বিকল্প, আনুমানিক বাস্তবতা, রেফারেন্সের নৈকট্য, পরিমাপ করা আকৃতি, টোনাল ভারসাম্য, টেইল আচরণ এবং দৈর্ঘ্য বিবেচনা করা হয়।
আউটপুটে বিভিন্ন WAV ফাইল এবং প্রার্থীদের প্যারামিটার ও স্কোরসহ একটি report.json থাকে। --robust N ব্যবহার করলে নির্বাচিত প্রার্থীগুলো নতুন র্যান্ডম সিড দিয়ে আবার রেন্ডার হয়, যাতে রেসিপিটি একবারই সফল না হয়ে নির্ভরযোগ্যভাবে কাজ করে কি না যাচাই করতে পারেন।
Forge-এর ফলাফল সতর্কতার সঙ্গে বিচার করুন
Forge Earshot-এর নিজস্ব মডেল অনুযায়ী অপ্টিমাইজ করে, তাই মডেলের উচ্চ স্কোর কোনো সাউন্ডের শ্রুতিগতভাবে উন্নত হওয়ার নিশ্চয়তা দেয় না।
উৎপন্ন সাউন্ডের এক-তৃতীয়াংশ-অক্টেভ ভারসাম্য, টেইল এবং দৈর্ঘ্য রেফারেন্স রেকর্ডিংয়ের সঙ্গে তুলনা করুন। রেফারেন্সের পাশে এর স্পেকট্রোগ্রাম পরিদর্শন করুন, শক্তিশালী পুনঃরেন্ডার পরীক্ষা করুন এবং গুণমান গুরুত্বপূর্ণ হলে মানুষের অন্ধ পরীক্ষা পরিচালনা করুন। README-তে নির্দিষ্টভাবে সতর্ক করা হয়েছে যে মডাল রেজোনেটর, রুম রেসপন্স এবং নয়েজ ফ্লোর একত্র করার মতো কৌশলে বাস্তবতা মডেলকে বিভ্রান্ত করা যেতে পারে।
উন্নত ওয়ার্কফ্লো টিপস
- কাজের ধরন অনুযায়ী সঠিক ইন্টারফেস ব্যবহার করুন। কয়েকটি অনুসন্ধানের জন্য CLI সুবিধাজনক। বারবার বিশ্লেষণের ক্ষেত্রে একটি Python প্রসেস বা MCP সার্ভার ব্যবহার করুন, যাতে মডেলগুলো লোড অবস্থায় থাকে।
- প্রথমে বিস্তৃতভাবে শুরু করুন, তারপর অনুমান যাচাই করুন।
describeচালিয়ে একটি লক্ষ্য-বিবরণ তৈরি করুন, তারপর স্পষ্ট বিকল্পসহmatchব্যবহার করুন। - অর্থভিত্তিক ও বস্তুনিষ্ঠ প্রমাণ আলাদা রাখুন। মডেলভিত্তিক বিচারকে
measure, টোনাল-ব্যালান্স পরীক্ষা, ওয়েভফর্ম পরিদর্শন এবং স্পেকট্রোগ্রামের সঙ্গে মিলিয়ে দেখুন। - কাঠামোবদ্ধ আউটপুট সংরক্ষণ করুন। অন্য কোনো প্রোগ্রাম বা এজেন্টের যদি সাধারণ ভাষার সারাংশের বদলে সব ফিল্ড পরিদর্শন করার প্রয়োজন হয়, তাহলে
--jsonবা--outব্যবহার করুন। - বাস্তব রেফারেন্স রেকর্ডিং ব্যবহার করুন। রেফারেন্স ডিরেক্টরি তুলনা ও Forge মূল্যায়ন উন্নত করে, তবে এসব রেকর্ডিংয়ের উৎস ও লাইসেন্সের দায়িত্ব আপনার।
- অন্তর্ভুক্ত এজেন্ট স্কিলগুলো ইনস্টল করুন।
skills/earshotএবংskills/real-soundকপি করুন বা সিমলিংক হিসেবে~/.claude/skills/অথবা কোনো প্রকল্পের.claude/skills/-এ রাখুন। এগুলো কমান্ড নির্বাচন, রায়ের ব্যাখ্যা, সাউন্ডট্র্যাক তৈরি, মিক্সিং, QA এবং লাইসেন্স যাচাই নথিবদ্ধ করে।
সীমাবদ্ধতাগুলো বুঝুন
লাউডনেস, সময়, ছবির সঙ্গে সিঙ্ক্রোনাইজেশন, স্পষ্টভাবে একক শব্দ শনাক্তকরণ, প্রার্থীদের ক্রম নির্ধারণ এবং কোড দিয়ে সংশ্লেষিত উৎস শনাক্ত করার ক্ষেত্রে Earshot সবচেয়ে কার্যকর। ব্যস্ত মিক্স থেকে বের করা ট্যাগ এবং মিউজিকের ধরন ও মুড-সংক্রান্ত বিচারকে ইঙ্গিত হিসেবে বিবেচনা করা উচিত।
এটি রুচি, আবেগ, উৎস, লাইসেন্স বা কথার বিষয়বস্তু নির্ধারণ করতে পারে না। এর মডেলগুলো ১৪ kHz-এর বেশি ফ্রিকোয়েন্সি মূল্যায়ন করে না। বাস্তবতার রায় প্রমাণ, চূড়ান্ত নিশ্চয়তা নয়; আর অন্তর্নির্মিত লঞ্চ প্রোফাইলটি এটি তৈরিতে ব্যবহৃত মাত্র সাতটি চলচ্চিত্রের প্রতিনিধিত্ব করে।
উৎপাদনমূলক কর্মপ্রবাহে স্কোরের ওপর নির্ভর করার আগে পরিমাপ করা ফলাফলের জন্য রিপোজিটরির যাচাইকরণ-সংক্রান্ত নথি এবং এর সীমাবদ্ধতা-সংক্রান্ত নথি দেখুন।
উপসংহার
Earshot কোডিং এজেন্টদের স্থানীয় CPU টুল ব্যবহার করে শব্দ পরিদর্শন ও তৈরি করার একটি ব্যবহারিক উপায় দেয়। describe, match এবং find দিয়ে শুরু করুন; সম্পূর্ণ চলচ্চিত্রের জন্য timeline, sheet এবং critique-এ এগিয়ে যান; আর সম্পূর্ণ কোডে প্যারামিটার-নির্ভর ইফেক্ট তৈরি করতে হলে Forge ব্যবহার করুন। নির্ভরযোগ্য সিদ্ধান্তের জন্য মডেলের রায়কে পরিমাপ, রেফারেন্স তুলনা, ভিজ্যুয়াল পরিদর্শন এবং মানুষের শ্রবণের সঙ্গে মিলিয়ে নিন।
