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