import{s as bt,n as qt,o as Ct}from"../chunks/scheduler.cd324960.js";import{S as It,i as gt,e as p,s as a,c as o,h as xt,a as i,d as e,b as n,f as Ut,g as M,j as m,k as wt,l as _t,m as l,n as u,t as r,o as c,p as y}from"../chunks/index.b5b48820.js";import{C as kt,H as zt,E as vt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.2c5f90f5.js";import{C as G}from"../chunks/CodeBlock.0e863a84.js";function Wt(Mt){let f,Q,Z,F,J,B,T,R,j,ut="오디오 분류는 녹음된 오디오 내용에 기반하여 하나 혹은 여러개의 레이블을 할당하는 작업입니다. 이 레이블은 음악, 음성, 노이즈 같은 카테고리에 해당할 수도 있고, 새소리나 차 엔진 소리처럼 더 구체적인 카테고리일 수도 있습니다.",D,$,rt="인기 있는 오디오 트랜스포머 모델들이 세부적으로 어떻게 작동하는지, 커스텀 모델을 어떻게 파인튜닝하는지 등을 알아보기 전에 🤗 Transformers를 이용하여 단 몇줄의 코드만으로 사전학습된 모델을 오디오 분류에 쓰는 법을 알아봅시다.",L,d,ct='이전 단원에서 사용했던 <a href="https://huggingface.co/datasets/PolyAI/minds14" rel="nofollow">MINDS-14</a> 데이터셋을 쓰겠습니다. 기억하시다시피, MINDS-14는 사람들이 인터넷뱅킹 시스템에 대해 전화로 여러 언어와 방언으로 묻는 것이 녹음돼있습니다. 각 녹음에는 <code>intent_class</code>가 있으며 이를 이용해 녹음들을 전화의 의도에 따라 분류할 수 있습니다.',S,h,yt="파이프라인을 써보기 위해 이전과 마찬가지로 데이터의 <code>en-AU</code> 부분을 가져와 모델이 요구하는 16 kHz 샘플링 속도를 가지도록 업샘플링 해봅시다.",H,U,V,w,ft=`🤗 Transformers의 <code>audio-classification</code> 파이프라인을 사용하면 녹음된 오디오를 클래스 집합으로 분류할 수 있습니다.
우리의 경우, MINDS-14 데이터셋의 의도 분류를 위해 파인튜닝된 모델이 필요합니다. 운좋게도, 바로 그럴때 쓰이는 모델이 허브에 있습니다! <code>pipeline()</code> 함수를 써서 이를 불러보겠습니다:`,P,b,X,q,Jt="이 파이프라인은 오디오 데이터로 넘파이 배열을 요구합니다. 원시 오디오 데이터의 모든 전처리는 편리하게도 파이프라인이 해결해줍니다. 한 예를 봅시다:",Y,C,O,I,Tt="데이터셋의 구조를 기억하신다면, 원시 오디오 데이터가 <code>[&quot;audio&quot;][&quot;array&quot;]</code> 아래에 넘파이 배열로 저장돼있는걸 기억하실겁니다. 그대로 <code>classifier</code>에 넘겨봅시다:",K,g,tt,x,jt="<strong>Output:</strong>",st,_,et,k,$t="모델은 전화하는 사람이 청구서의 지불 방법에 대해 묻고 있다고 매우 확신하고 있습니다. 실제 레이블은 어떤지 확인해봅시다:",lt,z,at,v,dt="<strong>Output:</strong>",nt,W,pt,A,ht="만세! 예측값이 맞았습니다! 운 좋게도 우리는 필요한 레이블을 정확하게 분류할 수 있는 모델을 찾을 수 있었습니다. 그러나 분류 작업을 다루는 많은 경우에는 사전학습된 모델의 클래스가 우리가 바라는 분류 클래스와 일치하지 않습니다. 이와 같은 경우, 여러분은 사전학습된 모델을 “보정(calibrate)“하여 여러분의 클래스 레이블에 맞출 수 있습니다. 이후 단원에서 이를 어떻게 하는지 배우게 됩니다. 이제 음성 처리에서 매우 일반적인 작업인 <em>자동 음성 인식</em>에 대해 살펴봅시다.",it,E,mt,N,ot;return J=new kt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new zt({props:{title:"파이프라인을 이용한 오디오 분류",local:"audio-classification-with-a-pipeline",headingTag:"h1"}}),U=new G({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 G({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}}),C=new G({props:{code:"ZXhhbXBsZSUyMCUzRCUyMG1pbmRzJTVCMCU1RA==",highlighted:'example = minds[<span class="hljs-number">0</span>]',wrap:!1}}),g=new G({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 G({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}}),z=new G({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 G({props:{code:"JTIycGF5X2JpbGwlMjI=",highlighted:'<span class="hljs-string">&quot;pay_bill&quot;</span>',wrap:!1}}),E=new vt({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/ko/chapter2/audio_classification_pipeline.mdx"}}),{c(){f=p("meta"),Q=a(),Z=p("p"),F=a(),o(J.$$.fragment),B=a(),o(T.$$.fragment),R=a(),j=p("p"),j.textContent=ut,D=a(),$=p("p"),$.textContent=rt,L=a(),d=p("p"),d.innerHTML=ct,S=a(),h=p("p"),h.innerHTML=yt,H=a(),o(U.$$.fragment),V=a(),w=p("p"),w.innerHTML=ft,P=a(),o(b.$$.fragment),X=a(),q=p("p"),q.textContent=Jt,Y=a(),o(C.$$.fragment),O=a(),I=p("p"),I.innerHTML=Tt,K=a(),o(g.$$.fragment),tt=a(),x=p("p"),x.innerHTML=jt,st=a(),o(_.$$.fragment),et=a(),k=p("p"),k.textContent=$t,lt=a(),o(z.$$.fragment),at=a(),v=p("p"),v.innerHTML=dt,nt=a(),o(W.$$.fragment),pt=a(),A=p("p"),A.innerHTML=ht,it=a(),o(E.$$.fragment),mt=a(),N=p("p"),this.h()},l(t){const s=xt("svelte-u9bgzb",document.head);f=i(s,"META",{name:!0,content:!0}),s.forEach(e),Q=n(t),Z=i(t,"P",{}),Ut(Z).forEach(e),F=n(t),M(J.$$.fragment,t),B=n(t),M(T.$$.fragment,t),R=n(t),j=i(t,"P",{"data-svelte-h":!0}),m(j)!=="svelte-1f5hdt5"&&(j.textContent=ut),D=n(t),$=i(t,"P",{"data-svelte-h":!0}),m($)!=="svelte-1pbyuyc"&&($.textContent=rt),L=n(t),d=i(t,"P",{"data-svelte-h":!0}),m(d)!=="svelte-1oiet0d"&&(d.innerHTML=ct),S=n(t),h=i(t,"P",{"data-svelte-h":!0}),m(h)!=="svelte-n7qc2f"&&(h.innerHTML=yt),H=n(t),M(U.$$.fragment,t),V=n(t),w=i(t,"P",{"data-svelte-h":!0}),m(w)!=="svelte-oztqy5"&&(w.innerHTML=ft),P=n(t),M(b.$$.fragment,t),X=n(t),q=i(t,"P",{"data-svelte-h":!0}),m(q)!=="svelte-qdshyx"&&(q.textContent=Jt),Y=n(t),M(C.$$.fragment,t),O=n(t),I=i(t,"P",{"data-svelte-h":!0}),m(I)!=="svelte-c5buei"&&(I.innerHTML=Tt),K=n(t),M(g.$$.fragment,t),tt=n(t),x=i(t,"P",{"data-svelte-h":!0}),m(x)!=="svelte-1mvdyro"&&(x.innerHTML=jt),st=n(t),M(_.$$.fragment,t),et=n(t),k=i(t,"P",{"data-svelte-h":!0}),m(k)!=="svelte-iw7pnk"&&(k.textContent=$t),lt=n(t),M(z.$$.fragment,t),at=n(t),v=i(t,"P",{"data-svelte-h":!0}),m(v)!=="svelte-1mvdyro"&&(v.innerHTML=dt),nt=n(t),M(W.$$.fragment,t),pt=n(t),A=i(t,"P",{"data-svelte-h":!0}),m(A)!=="svelte-115np59"&&(A.innerHTML=ht),it=n(t),M(E.$$.fragment,t),mt=n(t),N=i(t,"P",{}),Ut(N).forEach(e),this.h()},h(){wt(f,"name","hf:doc:metadata"),wt(f,"content",At)},m(t,s){_t(document.head,f),l(t,Q,s),l(t,Z,s),l(t,F,s),u(J,t,s),l(t,B,s),u(T,t,s),l(t,R,s),l(t,j,s),l(t,D,s),l(t,$,s),l(t,L,s),l(t,d,s),l(t,S,s),l(t,h,s),l(t,H,s),u(U,t,s),l(t,V,s),l(t,w,s),l(t,P,s),u(b,t,s),l(t,X,s),l(t,q,s),l(t,Y,s),u(C,t,s),l(t,O,s),l(t,I,s),l(t,K,s),u(g,t,s),l(t,tt,s),l(t,x,s),l(t,st,s),u(_,t,s),l(t,et,s),l(t,k,s),l(t,lt,s),u(z,t,s),l(t,at,s),l(t,v,s),l(t,nt,s),u(W,t,s),l(t,pt,s),l(t,A,s),l(t,it,s),u(E,t,s),l(t,mt,s),l(t,N,s),ot=!0},p:qt,i(t){ot||(r(J.$$.fragment,t),r(T.$$.fragment,t),r(U.$$.fragment,t),r(b.$$.fragment,t),r(C.$$.fragment,t),r(g.$$.fragment,t),r(_.$$.fragment,t),r(z.$$.fragment,t),r(W.$$.fragment,t),r(E.$$.fragment,t),ot=!0)},o(t){c(J.$$.fragment,t),c(T.$$.fragment,t),c(U.$$.fragment,t),c(b.$$.fragment,t),c(C.$$.fragment,t),c(g.$$.fragment,t),c(_.$$.fragment,t),c(z.$$.fragment,t),c(W.$$.fragment,t),c(E.$$.fragment,t),ot=!1},d(t){t&&(e(Q),e(Z),e(F),e(B),e(R),e(j),e(D),e($),e(L),e(d),e(S),e(h),e(H),e(V),e(w),e(P),e(X),e(q),e(Y),e(O),e(I),e(K),e(tt),e(x),e(st),e(et),e(k),e(lt),e(at),e(v),e(nt),e(pt),e(A),e(it),e(mt),e(N)),e(f),y(J,t),y(T,t),y(U,t),y(b,t),y(C,t),y(g,t),y(_,t),y(z,t),y(W,t),y(E,t)}}}const At='{"title":"파이프라인을 이용한 오디오 분류","local":"audio-classification-with-a-pipeline","sections":[],"depth":1}';function Et(Mt){return Ct(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ft extends It{constructor(f){super(),gt(this,f,Et,Wt,bt,{})}}export{Ft as component};
