import{s as Tt,n as jt,o as dt}from"../chunks/scheduler.f7e1785c.js";import{S as ht,i as Ut,g as p,s as a,r as o,A as wt,h as i,f as e,c as n,j as Jt,u,x as m,k as ft,y as $t,a as l,v as r,d as c,t as y,w as J}from"../chunks/index.9f8f0838.js";import{C as A}from"../chunks/CodeBlock.4baef5d7.js";import{H as bt,E as qt}from"../chunks/getInferenceSnippets.ba5f4cd0.js";function Ct(at){let M,E,W,Z,f,Q,T,nt=`Классификация аудиозаписей предполагает присвоение одной или нескольких меток аудиозаписи в зависимости от ее содержания.
Эти метки могут соответствовать различным категориям звуков, таким как музыка, речь, шум, или более специфическим категориям,
таким как пение птиц или звук автомобильного двигателя.`,G,j,pt=`Прежде чем перейти к подробному описанию работы наиболее популярных аудиотрансформеров, а также к тонкой настройке пользовательской
модели, давайте посмотрим, как с помощью 🤗 Transformers можно использовать готовую предварительно обученную модель для классификации
аудиозаписи, набрав всего несколько строк кода.`,F,d,it=`Воспользуемся тем же набором данных <a href="https://huggingface.co/datasets/PolyAI/minds14" rel="nofollow">MINDS-14</a>, который вы исследовали в предыдущем разделе.
Если вы помните, MINDS-14 содержит записи людей, задающих вопросы системе дистанционного банковского обслуживания на нескольких языках и
диалектах, и для каждой записи имеет значение <code>intent_class</code>. Мы можем классифицировать записи по намерению звонящего.`,B,h,mt=`Как и прежде, загрузим подмножество данных <code>en-AU</code>, чтобы опробовать конвейер, и повысим частоту дискретизации до 16 кГц, что и требуется
для большинства речевых моделей.`,R,U,D,w,Mt=`Для классификации аудиозаписи на множество классов мы можем использовать конвейер <code>audio-classification</code> из 🤗 Transformers.
В нашем случае нам нужна модель, настроенная на классификацию намерений, причем именно на наборе данных MINDS-14.
К счастью для нас, в Хабе есть модель, которая как раз для этого и предназначена! Давайте загрузим ее с помощью функции <code>pipeline()</code>:`,S,$,P,b,ot=`Этот конвейер ожидает на вход аудиоданные в виде массива NumPy. Вся предварительная обработка исходных аудиоданных будет
удобно выполнена конвейером. Давайте рассмотрим пример, чтобы опробовать его в действии:`,V,q,L,C,ut=`Если вспомнить структуру набора данных, то исходные аудиоданные хранятся в массиве NumPy под именем <code>[&quot;audio&quot;][&quot;array&quot;]</code>,
передадим их непосредственно в <code>classifier</code>.`,Y,I,H,g,rt="<strong>Output:</strong>",X,x,O,_,ct="Модель очень уверена, что звонивший хотел узнать об оплате счета. Посмотрим, какова реальная метка для этого примера:",K,k,tt,z,yt=`Ура! Предсказанная метка оказалась верной! Здесь нам повезло найти модель, которая может классифицировать именно те метки,
которые нам нужны. В большинстве случаев при решении задачи классификации набор классов в предварительно обученной модели не совпадает
с теми классами, которые необходимо выделить с помощью модели. В этом случае можно произвести дообучение предварительно обученной
модели, чтобы “откалибровать” ее по точному набору меток классов. Как это сделать, мы узнаем в следующих разделах. Теперь рассмотрим
другую очень распространенную задачу обработки речи - <em>автоматическое распознавание речи</em>.`,st,v,et,N,lt;return f=new bt({props:{title:"Классификация звука с помощью конвейера",local:"классификация-звука-с-помощью-конвейера",headingTag:"h1"}}),U=new A({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwQXVkaW8lMEElMEFtaW5kcyUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJQb2x5QUklMkZtaW5kczE0JTIyJTJDJTIwbmFtZSUzRCUyMmVuLUFVJTIyJTJDJTIwc3BsaXQlM0QlMjJ0cmFpbiUyMiklMEFtaW5kcyUyMCUzRCUyMG1pbmRzLmNhc3RfY29sdW1uKCUyMmF1ZGlvJTIyJTJDJTIwQXVkaW8oc2FtcGxpbmdfcmF0ZSUzRDE2XzAwMCkp",highlighted:`<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>))`,wrap:!1}}),$=new A({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCUyMmF1ZGlvLWNsYXNzaWZpY2F0aW9uJTIyJTJDJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0QlMjJhbnRvbi1sJTJGeHRyZW1lX3NfeGxzcl8zMDBtX21pbmRzMTQlMjIlMkMlMEEp",highlighted:`<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>,
)`,wrap:!1}}),q=new A({props:{code:"ZXhhbXBsZSUyMCUzRCUyMG1pbmRzJTVCMCU1RA==",highlighted:'example = minds[<span class="hljs-number">0</span>]',wrap:!1}}),I=new A({props:{code:"Y2xhc3NpZmllcihleGFtcGxlJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCk=",highlighted:'classifier(example[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>])',wrap:!1}}),x=new A({props:{code:"JTVCJTBBJTIwJTIwJTIwJTIwJTdCJTIyc2NvcmUlMjIlM0ElMjAwLjk2MzE1MjUyNzgwOTE0MzElMkMlMjAlMjJsYWJlbCUyMiUzQSUyMCUyMnBheV9iaWxsJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTIyc2NvcmUlMjIlM0ElMjAwLjAyODE5Njk4MzAzOTM3OTEyJTJDJTIwJTIybGFiZWwlMjIlM0ElMjAlMjJmcmVlemUlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJzY29yZSUyMiUzQSUyMDAuMDAzMjc4NzQ5Mjk2NDQxNjc0MiUyQyUyMCUyMmxhYmVsJTIyJTNBJTIwJTIyY2FyZF9pc3N1ZXMlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJzY29yZSUyMiUzQSUyMDAuMDAxOTQxNDQ0NTg1MDk5ODE2MyUyQyUyMCUyMmxhYmVsJTIyJTNBJTIwJTIyYWJyb2FkJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTIyc2NvcmUlMjIlM0ElMjAwLjAwMDgzNzg2OTM2MDExMTY1MzglMkMlMjAlMjJsYWJlbCUyMiUzQSUyMCUyMmhpZ2hfdmFsdWVfcGF5bWVudCUyMiU3RCUyQyUwQSU1RA==",highlighted:`[
    {<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>},
]`,wrap:!1}}),k=new A({props:{code:"aWQybGFiZWwlMjAlM0QlMjBtaW5kcy5mZWF0dXJlcyU1QiUyMmludGVudF9jbGFzcyUyMiU1RC5pbnQyc3RyJTBBaWQybGFiZWwoZXhhbXBsZSU1QiUyMmludGVudF9jbGFzcyUyMiU1RCk=",highlighted:`id2label = minds.features[<span class="hljs-string">&quot;intent_class&quot;</span>].int2str
id2label(example[<span class="hljs-string">&quot;intent_class&quot;</span>])`,wrap:!1}}),v=new qt({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/ru/chapter2/audio_classification_pipeline.mdx"}}),{c(){M=p("meta"),E=a(),W=p("p"),Z=a(),o(f.$$.fragment),Q=a(),T=p("p"),T.textContent=nt,G=a(),j=p("p"),j.textContent=pt,F=a(),d=p("p"),d.innerHTML=it,B=a(),h=p("p"),h.innerHTML=mt,R=a(),o(U.$$.fragment),D=a(),w=p("p"),w.innerHTML=Mt,S=a(),o($.$$.fragment),P=a(),b=p("p"),b.textContent=ot,V=a(),o(q.$$.fragment),L=a(),C=p("p"),C.innerHTML=ut,Y=a(),o(I.$$.fragment),H=a(),g=p("p"),g.innerHTML=rt,X=a(),o(x.$$.fragment),O=a(),_=p("p"),_.textContent=ct,K=a(),o(k.$$.fragment),tt=a(),z=p("p"),z.innerHTML=yt,st=a(),o(v.$$.fragment),et=a(),N=p("p"),this.h()},l(t){const s=wt("svelte-u9bgzb",document.head);M=i(s,"META",{name:!0,content:!0}),s.forEach(e),E=n(t),W=i(t,"P",{}),Jt(W).forEach(e),Z=n(t),u(f.$$.fragment,t),Q=n(t),T=i(t,"P",{"data-svelte-h":!0}),m(T)!=="svelte-yq1wn8"&&(T.textContent=nt),G=n(t),j=i(t,"P",{"data-svelte-h":!0}),m(j)!=="svelte-1622a1z"&&(j.textContent=pt),F=n(t),d=i(t,"P",{"data-svelte-h":!0}),m(d)!=="svelte-11lxa7c"&&(d.innerHTML=it),B=n(t),h=i(t,"P",{"data-svelte-h":!0}),m(h)!=="svelte-12f99k"&&(h.innerHTML=mt),R=n(t),u(U.$$.fragment,t),D=n(t),w=i(t,"P",{"data-svelte-h":!0}),m(w)!=="svelte-4ymx2p"&&(w.innerHTML=Mt),S=n(t),u($.$$.fragment,t),P=n(t),b=i(t,"P",{"data-svelte-h":!0}),m(b)!=="svelte-zv6wrt"&&(b.textContent=ot),V=n(t),u(q.$$.fragment,t),L=n(t),C=i(t,"P",{"data-svelte-h":!0}),m(C)!=="svelte-1s60bmy"&&(C.innerHTML=ut),Y=n(t),u(I.$$.fragment,t),H=n(t),g=i(t,"P",{"data-svelte-h":!0}),m(g)!=="svelte-1mvdyro"&&(g.innerHTML=rt),X=n(t),u(x.$$.fragment,t),O=n(t),_=i(t,"P",{"data-svelte-h":!0}),m(_)!=="svelte-qd4se9"&&(_.textContent=ct),K=n(t),u(k.$$.fragment,t),tt=n(t),z=i(t,"P",{"data-svelte-h":!0}),m(z)!=="svelte-1xc6qkn"&&(z.innerHTML=yt),st=n(t),u(v.$$.fragment,t),et=n(t),N=i(t,"P",{}),Jt(N).forEach(e),this.h()},h(){ft(M,"name","hf:doc:metadata"),ft(M,"content",It)},m(t,s){$t(document.head,M),l(t,E,s),l(t,W,s),l(t,Z,s),r(f,t,s),l(t,Q,s),l(t,T,s),l(t,G,s),l(t,j,s),l(t,F,s),l(t,d,s),l(t,B,s),l(t,h,s),l(t,R,s),r(U,t,s),l(t,D,s),l(t,w,s),l(t,S,s),r($,t,s),l(t,P,s),l(t,b,s),l(t,V,s),r(q,t,s),l(t,L,s),l(t,C,s),l(t,Y,s),r(I,t,s),l(t,H,s),l(t,g,s),l(t,X,s),r(x,t,s),l(t,O,s),l(t,_,s),l(t,K,s),r(k,t,s),l(t,tt,s),l(t,z,s),l(t,st,s),r(v,t,s),l(t,et,s),l(t,N,s),lt=!0},p:jt,i(t){lt||(c(f.$$.fragment,t),c(U.$$.fragment,t),c($.$$.fragment,t),c(q.$$.fragment,t),c(I.$$.fragment,t),c(x.$$.fragment,t),c(k.$$.fragment,t),c(v.$$.fragment,t),lt=!0)},o(t){y(f.$$.fragment,t),y(U.$$.fragment,t),y($.$$.fragment,t),y(q.$$.fragment,t),y(I.$$.fragment,t),y(x.$$.fragment,t),y(k.$$.fragment,t),y(v.$$.fragment,t),lt=!1},d(t){t&&(e(E),e(W),e(Z),e(Q),e(T),e(G),e(j),e(F),e(d),e(B),e(h),e(R),e(D),e(w),e(S),e(P),e(b),e(V),e(L),e(C),e(Y),e(H),e(g),e(X),e(O),e(_),e(K),e(tt),e(z),e(st),e(et),e(N)),e(M),J(f,t),J(U,t),J($,t),J(q,t),J(I,t),J(x,t),J(k,t),J(v,t)}}}const It='{"title":"Классификация звука с помощью конвейера","local":"классификация-звука-с-помощью-конвейера","sections":[],"depth":1}';function gt(at){return dt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class vt extends ht{constructor(M){super(),Ut(this,M,gt,Ct,Tt,{})}}export{vt as component};
