Buckets:

hf-doc-build/doc-dev / audio-course /pr_201 /bn /chapter2 /audio_classification_pipeline.html
rtrm's picture
download
raw
21.5 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Pipeline এর মাদ্ধমে Audio classification&quot;,&quot;local&quot;:&quot;pipeline-এর-মদধম-audio-classification&quot;,&quot;sections&quot;:[],&quot;depth&quot;:1}">
<link href="/docs/audio-course/pr_201/bn/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/entry/start.a9264147.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/chunks/scheduler.f6b352c8.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/chunks/singletons.acf8ba2c.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/chunks/index.26cf6c5a.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/chunks/paths.d474bd39.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/entry/app.377b9518.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/chunks/index.7f38e934.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/nodes/0.0b5ab188.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/chunks/each.e59479a4.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/nodes/13.6fd052fc.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/chunks/CodeBlock.2a338b68.js">
<link rel="modulepreload" href="/docs/audio-course/pr_201/bn/_app/immutable/chunks/EditOnGithub.8311d278.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Pipeline এর মাদ্ধমে Audio classification&quot;,&quot;local&quot;:&quot;pipeline-এর-মদধম-audio-classification&quot;,&quot;sections&quot;:[],&quot;depth&quot;:1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="pipeline-এর-মদধম-audio-classification" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#pipeline-এর-মদধম-audio-classification"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Pipeline এর মাদ্ধমে Audio classification</span></h1> <p data-svelte-h="svelte-1e0hx99">audio classification হলো, একটি অডিও রেকর্ডিং-এর বিষয়বস্তুর উপর ভিত্তি করে অডিওর সাথে এক বা একাধিক label জড়িত করা।
এই label গুলো বিভিন্ন শব্দ বিভাগের সাথে মিল থাকতে পারে, যেমন সঙ্গীত, বক্তৃতা, বা শব্দ, বা আরও নির্দিষ্ট বিভাগ যেমন
পাখির গান বা গাড়ির ইঞ্জিনের শব্দ।</p> <p data-svelte-h="svelte-1tjrphl">সর্বাধিক জনপ্রিয় audio transformers গুলো কীভাবে কাজ করে সে সম্পর্কে বিস্তারিত জানার আগে এবং একটি কাস্টম মডেল fine-tune করার আগে, আসুন দেখুন
কিভাবে আপনি 🤗 transformers সহ মাত্র কয়েক লাইন কোড সহ audio classification এর জন্য একটি অফ-দ্য-শেল্ফ pre-trained মডেল ব্যবহার করতে পারেন।</p> <p data-svelte-h="svelte-1r42yru">চলুন এগিয়ে যাই এবং <a href="https://huggingface.co/datasets/PolyAI/minds14" rel="nofollow">MINDS-14</a> ডেটাসেট ব্যবহার করি যা আপনি আগের অধ্যায়ে অন্বেষণ করেছেন।
আপনি যদি মনে করেন, MINDS-14-এ কিছু লোকের ই-ব্যাঙ্কিং সিস্টেমের প্রশ্ন জিজ্ঞাসা করার রেকর্ডিং রয়েছে। তাছাড়াও এই ডাটাসেট এ ভাষা, উপভাষা, এবং প্রতিটি
রেকর্ডিংয়ের জন্য <code>intent_class</code> আছে। আমরা কলের উদ্দেশ্য দ্বারা রেকর্ডিংগুলোকে শ্রেণীবদ্ধ করতে পারি।</p> <p data-svelte-h="svelte-yf8s9x">ঠিক আগের মতোই, আসুন pipeline টি চেষ্টা করার জন্য ডেটার <code>en-AU</code> উপসেট লোড করে শুরু করি এবং এটিকে 16kHz sampling rate-এ উন্নীত করি যা
বেশিরভাগ স্পিচ মডেলের প্রয়োজন।</p> <div class="code-block relative"><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START --><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset
<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> Audio
minds = load_dataset(<span class="hljs-string">&quot;PolyAI/minds14&quot;</span>, name=<span class="hljs-string">&quot;en-AU&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>)
minds = minds.cast_column(<span class="hljs-string">&quot;audio&quot;</span>, Audio(sampling_rate=<span class="hljs-number">16_000</span>))<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-61nem2">একটি অডিও রেকর্ডিংকে ক্লাসের একটি সেটে শ্রেণীবদ্ধ করতে, আমরা 🤗 transformers থেকে <code>audio-classification</code> pipeline ব্যবহার করতে পারি। আমাদের
ক্ষেত্রে, আমাদের এমন একটি মডেল দরকার যা audio classification এর জন্য MINDS-14 ডেটাসেট এ train করা হয়েছে। সৌভাগ্যবশত আমাদের জন্য,
🤗 Hub এর এমন একটি মডেল রয়েছে যা ঠিক তাই করে! চলুন এটি লোড করি <code>pipeline()</code> ফাংশন ব্যবহার করে:</p> <div class="code-block relative"><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START --><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline
classifier = pipeline(
<span class="hljs-string">&quot;audio-classification&quot;</span>,
model=<span class="hljs-string">&quot;anton-l/xtreme_s_xlsr_300m_minds14&quot;</span>,
)<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-v5g5qh">এই pipeline টি একটি NumPy অ্যারে হিসাবে অডিও ডেটাকে আশা করে ৷ আমাদের দ্বারা পরিচালিত pipeline দ্বারা কাঁচা অডিও ডেটার সমস্ত প্রিপ্রসেসিং সুবিধামত হবে ।
আসুন এটি চেষ্টা করার জন্য একটি উদাহরণ বেছে নেওয়া যাক:</p> <div class="code-block relative"><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START -->example = minds[<span class="hljs-number">0</span>]<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-893pom">কাঁচা অডিও ডেটা একটি NumPy অ্যারেতে <code>[&quot;audio&quot;][&quot;array&quot;]</code> এর অধীনে সংরক্ষিত হয়, আসুন এটিকে <code>classifier</code>-এ সরাসরি ব্যবহার করা যাক :</p> <div class="code-block relative"><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START -->classifier(example[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>])<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-1mvdyro"><strong>Output:</strong></p> <div class="code-block relative"><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START -->[
{<span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.9631525278091431</span>, <span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;pay_bill&quot;</span>},
{<span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.02819698303937912</span>, <span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;freeze&quot;</span>},
{<span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.0032787492964416742</span>, <span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;card_issues&quot;</span>},
{<span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.0019414445850998163</span>, <span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;abroad&quot;</span>},
{<span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.0008378693601116538</span>, <span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;high_value_payment&quot;</span>},
]<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-1jujkm">মডেলটি খুব আত্মবিশ্বাসী, যে যিনি কল করেছেন তিনি তাদের বিল পরিশোধের বিষয়ে জানতে চেয়েছিলেন। এর প্রকৃত লেবেল কি জন্য দেখা যাক। এই উদাহরণ হল:</p> <div class="code-block relative"><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START -->id2label = minds.features[<span class="hljs-string">&quot;intent_class&quot;</span>].int2str
id2label(example[<span class="hljs-string">&quot;intent_class&quot;</span>])<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-1mvdyro"><strong>Output:</strong></p> <div class="code-block relative"><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START --><span class="hljs-string">&quot;pay_bill&quot;</span><!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-sniz3s">হুররে! মডেল দ্বারা পূর্বাভাসিত লেবেল সঠিক ছিল! এখানে আমরা এমন একটি মডেল খুঁজে পেয়ে ভাগ্যবান ছিলাম যা আমাদের প্রয়োজনীয় লেবেলগুলিকে শ্রেণীবদ্ধ করতে পারে।
অনেক সময়, একটি classification এর কাজ করার সময়, একটি pre-trained মডেলের ক্লাসের সেট ঠিক একই রকম হয় না।
সেই ক্ষেত্রে, আপনি একটি pre-trained মডেলকে “calibrate” করতে আপনার ক্লাস লেবেলের সঠিক সেট এ fine-tune করতে পারেন।
আমরা আসন্ন অধ্যায়গুলোতে এটি কীভাবে করতে হয় তা শিখব। এখন, এর আরেকটি খুব গুরুত্বপূর্ন টাস্ক, <em>automatic speech recognition</em> কি করে করবো তা দেখা যাক ।</p> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/audio-transformers-course/blob/main/chapters/bn/chapter2/audio_classification_pipeline.mdx" target="_blank"><span data-svelte-h="svelte-1kd6by1">&lt;</span> <span data-svelte-h="svelte-x0xyl0">&gt;</span> <span data-svelte-h="svelte-1dajgef"><span class="underline ml-1.5">Update</span> on GitHub</span></a> <p></p>
<script>
{
__sveltekit_1lc1p9a = {
assets: "/docs/audio-course/pr_201/bn",
base: "/docs/audio-course/pr_201/bn",
env: {}
};
const element = document.currentScript.parentElement;
const data = [null,null];
Promise.all([
import("/docs/audio-course/pr_201/bn/_app/immutable/entry/start.a9264147.js"),
import("/docs/audio-course/pr_201/bn/_app/immutable/entry/app.377b9518.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 13],
data,
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
21.5 kB
·
Xet hash:
cfe37ab5b4d58b0cdfc71a05e10a91b5badce7f1230624a7891219c2eea92edc

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.