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