import{s as Dt,n as Ot,o as Kt}from"../chunks/scheduler.cd324960.js";import{S as te,i as ee,e as p,s as n,c as o,h as le,a,d as l,b as i,f as Qt,g as u,j as m,k as At,l as se,m as s,n as r,t as y,o as f,p as M}from"../chunks/index.b5b48820.js";import{C as ne,H as ie,E as pe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.05687996.js";import{C as $}from"../chunks/CodeBlock.30a502e6.js";function ae(Gt){let U,A,Y,D,c,O,T,K,d,kt="자동 음성 인식(ASR)은 음성 오디오 녹음을 텍스트로 변환하는 작업입니다. 이 작업은 매우 다양하게 실용적으로 쓰일 수가 있습니다. 비디오 자막 생성부터 Siri나 Alexa같은 가상 비서의 음성명령에 이르기까지요.",tt,C,Zt="이번 섹션에선 이전의 MINDS-14 데이터셋의 청구서 지불 방법에 대해 묻는 사람의 음성 녹음을 <code>automatic-speech-recognition</code> 파이프라인을 이용해 텍스트로 변환하는 방법을 알아보겠습니다.",et,J,St='시작을 위해 데이터를 준비해야 합니다. 아직 준비하지 않았다면, <a href="introduction.mdx">Audio classification with a pipeline</a>에서 했던것처럼 데이터셋을 불러오고 16 kHz로 업샘플링을 해주세요.',lt,w,Wt="오디오 녹음을 텍스트로 바꾸기 위해 🤗 Transformers의 <code>automatic-speech-recognition</code> 파이프라인을 이용합니다. 파이프라인을 인스턴스화(instantiate) 해보겠습니다:",st,h,nt,x,Rt="다음으로, 데이터셋에서 원시 데이터를 불러와 파이프라인에 넘겨봅시다:",it,b,pt,v,_t="<strong>Output:</strong>",at,j,mt,g,qt="이 출력과 실제값을 비교해보겠습니다:",ot,I,ut,G,Bt="<strong>Output:</strong>",rt,k,yt,Z,Vt="모델이 오디오를 텍스트로 바꾸는 일을 꽤 잘 해낸것 같습니다! 실제 텍스트와 비교했을때 한 단어(“card”)만을 틀렸을 뿐입니다. 화자가 호주식 억양인 것을 고려할 때 꽤 괜찮은 결과로 볼 수 있습니다(호주식 억양에선 “r”이 종종 묵음입니다). 그렇긴 하지만, 전기요금을 물고기(“cod”는 영어로 대구를 뜻합니다)로 낼 것을 권장하지는 않습니다!",ft,S,Ht=`기본적으로 이 파이프라인은 영어의 자동 음성 인식을 위해 학습된 모델을 씁니다. 이 예제에서는 괜찮지만 여러분이 만약 MINDS-14의 다른 언어에 대해 텍스트 변환을 시도해보고 싶으시다면 <a href="https://huggingface.co/models?pipeline_tag=automatic-speech-recognition&amp;language=fr&amp;sort=downloads" rel="nofollow">🤗 Hub</a>에서 사전학습된 ASR 모델을 찾아보실 수 있습니다.
모델 리스트에서 작업순으로 필터링을 먼저하고 언어에 대해 필터링을 할 수 있습니다. 마음에 드는 모델을 찾으셨다면, 파이프라인의 <code>model</code> 인수(argument)로 넘겨 쓰면 됩니다.`,Mt,W,zt="이를 이용해 MINDS-14의 독일어 부분을 다뤄 보겠습니다. “de-DE” 부분을 불러봅시다:",$t,R,Ut,_,Ft="예제를 하나 선택해 텍스트가 어떻게 나와야하는지 확인해봅시다:",ct,q,Tt,B,Lt="<strong>Output:</strong>",dt,V,Ct,H,Nt="🤗 Hub에서 독일어를 위해 사전학습된 ASR 모델을 찾아 파이프라인을 인스턴스화한 후 이 예제에 적용시켜봅시다:",Jt,z,wt,F,Et="<strong>Output:</strong>",ht,L,xt,N,Pt="역시나, stimmt’s!",bt,E,Xt="여러분이 작업을 시작할 때, 이번 단원에서 보신것처럼 간단한 파이프라인으로 시작해보는것은 여러 장점이 있습니다:",vt,P,Yt="<li>여러분의 문제를 해결할 사전학습된 모델이 이미 있을 수 있습니다. 많은 시간을 아끼실 수 있을겁니다.</li> <li><code>pipeline()</code>은 여러분을 위해 전처리 및 후처리를 대신 해줍니다. 따라서 여러분은 데이터 형식을 모델에 맞추는것에 대해 걱정하지 않으셔도 됩니다.</li> <li>결과가 이상적이지 않더라도 하나의 기준점을 빠르게 제시해줍니다.</li> <li>여러분이 커스텀 데이터에 맞춰 모델을 파인튜닝하고 허브에 올린다면 <code>pipeline()</code> 메소드를 이용해 모든 커뮤니티가 이를 쉽게 쓸 수 있어 AI를 더욱 사용하기 쉽게 만듭니다.</li>",jt,X,gt,Q,It;return c=new ne({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new ie({props:{title:"파이프라인을 이용한 자동 음성 인식",local:"automatic-speech-recognition-with-a-pipeline",headingTag:"h1"}}),h=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBYXNyJTIwJTNEJTIwcGlwZWxpbmUoJTIyYXV0b21hdGljLXNwZWVjaC1yZWNvZ25pdGlvbiUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

asr = pipeline(<span class="hljs-string">&quot;automatic-speech-recognition&quot;</span>)`,wrap:!1}}),b=new $({props:{code:"ZXhhbXBsZSUyMCUzRCUyMG1pbmRzJTVCMCU1RCUwQWFzcihleGFtcGxlJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCk=",highlighted:`example = minds[<span class="hljs-number">0</span>]
asr(example[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>])`,wrap:!1}}),j=new $({props:{code:"JTdCJTIydGV4dCUyMiUzQSUyMCUyMkklMjBXT1VMRCUyMExJS0UlMjBUTyUyMFBBWSUyME1ZJTIwRUxFQ1RSSUNJVFklMjBCSUxMJTIwVVNJTkclMjBNWSUyMENPRCUyMENBTiUyMFlPVSUyMFBMRUFTRSUyMEFTU0lTVCUyMiU3RA==",highlighted:'<span class="hljs-comment">{&quot;text&quot;: &quot;I WOULD LIKE TO PAY MY ELECTRICITY BILL USING MY COD CAN YOU PLEASE ASSIST&quot;}</span>',wrap:!1}}),I=new $({props:{code:"ZXhhbXBsZSU1QiUyMmVuZ2xpc2hfdHJhbnNjcmlwdGlvbiUyMiU1RA==",highlighted:'example[<span class="hljs-string">&quot;english_transcription&quot;</span>]',wrap:!1}}),k=new $({props:{code:"JTIySSUyMHdvdWxkJTIwbGlrZSUyMHRvJTIwcGF5JTIwbXklMjBlbGVjdHJpY2l0eSUyMGJpbGwlMjB1c2luZyUyMG15JTIwY2FyZCUyMGNhbiUyMHlvdSUyMHBsZWFzZSUyMGFzc2lzdCUyMg==",highlighted:'<span class="hljs-comment">&quot;I would like to pay my electricity bill using my card can you please assist&quot;</span>',wrap:!1}}),R=new $({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwQXVkaW8lMEElMEFtaW5kcyUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJQb2x5QUklMkZtaW5kczE0JTIyJTJDJTIwbmFtZSUzRCUyMmRlLURFJTIyJTJDJTIwc3BsaXQlM0QlMjJ0cmFpbiUyMiklMEFtaW5kcyUyMCUzRCUyMG1pbmRzLmNhc3RfY29sdW1uKCUyMmF1ZGlvJTIyJTJDJTIwQXVkaW8oc2FtcGxpbmdfcmF0ZSUzRDE2XzAwMCkp",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;de-DE&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}}),q=new $({props:{code:"ZXhhbXBsZSUyMCUzRCUyMG1pbmRzJTVCMCU1RCUwQWV4YW1wbGUlNUIlMjJ0cmFuc2NyaXB0aW9uJTIyJTVE",highlighted:`example = minds[<span class="hljs-number">0</span>]
example[<span class="hljs-string">&quot;transcription&quot;</span>]`,wrap:!1}}),V=new $({props:{code:"JTIyaWNoJTIwbSVDMyVCNmNodGUlMjBnZXJuZSUyMEdlbGQlMjBhdWYlMjBtZWluJTIwS29udG8lMjBlaW56YWhsZW4lMjI=",highlighted:'<span class="hljs-comment">&quot;ich möchte gerne Geld auf mein Konto einzahlen&quot;</span>',wrap:!1}}),z=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBYXNyJTIwJTNEJTIwcGlwZWxpbmUoJTIyYXV0b21hdGljLXNwZWVjaC1yZWNvZ25pdGlvbiUyMiUyQyUyMG1vZGVsJTNEJTIybWF4aWRsJTJGd2F2MnZlYzItbGFyZ2UteGxzci1nZXJtYW4lMjIpJTBBYXNyKGV4YW1wbGUlNUIlMjJhdWRpbyUyMiU1RCU1QiUyMmFycmF5JTIyJTVEKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

asr = pipeline(<span class="hljs-string">&quot;automatic-speech-recognition&quot;</span>, model=<span class="hljs-string">&quot;maxidl/wav2vec2-large-xlsr-german&quot;</span>)
asr(example[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>])`,wrap:!1}}),L=new $({props:{code:"JTdCJTIydGV4dCUyMiUzQSUyMCUyMmljaCUyMG0lQzMlQjZjaHRlJTIwZ2VybmUlMjBnZWxkJTIwYXVmJTIwbWVpbiUyMGtvbnRvJTIwZWluemFsbGVuJTIyJTdE",highlighted:'{<span class="hljs-comment">&quot;text&quot;</span>: <span class="hljs-comment">&quot;ich möchte gerne geld auf mein konto einzallen&quot;</span>}',wrap:!1}}),X=new pe({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/ko/chapter2/asr_pipeline.mdx"}}),{c(){U=p("meta"),A=n(),Y=p("p"),D=n(),o(c.$$.fragment),O=n(),o(T.$$.fragment),K=n(),d=p("p"),d.textContent=kt,tt=n(),C=p("p"),C.innerHTML=Zt,et=n(),J=p("p"),J.innerHTML=St,lt=n(),w=p("p"),w.innerHTML=Wt,st=n(),o(h.$$.fragment),nt=n(),x=p("p"),x.textContent=Rt,it=n(),o(b.$$.fragment),pt=n(),v=p("p"),v.innerHTML=_t,at=n(),o(j.$$.fragment),mt=n(),g=p("p"),g.textContent=qt,ot=n(),o(I.$$.fragment),ut=n(),G=p("p"),G.innerHTML=Bt,rt=n(),o(k.$$.fragment),yt=n(),Z=p("p"),Z.textContent=Vt,ft=n(),S=p("p"),S.innerHTML=Ht,Mt=n(),W=p("p"),W.textContent=zt,$t=n(),o(R.$$.fragment),Ut=n(),_=p("p"),_.textContent=Ft,ct=n(),o(q.$$.fragment),Tt=n(),B=p("p"),B.innerHTML=Lt,dt=n(),o(V.$$.fragment),Ct=n(),H=p("p"),H.textContent=Nt,Jt=n(),o(z.$$.fragment),wt=n(),F=p("p"),F.innerHTML=Et,ht=n(),o(L.$$.fragment),xt=n(),N=p("p"),N.textContent=Pt,bt=n(),E=p("p"),E.textContent=Xt,vt=n(),P=p("ul"),P.innerHTML=Yt,jt=n(),o(X.$$.fragment),gt=n(),Q=p("p"),this.h()},l(t){const e=le("svelte-u9bgzb",document.head);U=a(e,"META",{name:!0,content:!0}),e.forEach(l),A=i(t),Y=a(t,"P",{}),Qt(Y).forEach(l),D=i(t),u(c.$$.fragment,t),O=i(t),u(T.$$.fragment,t),K=i(t),d=a(t,"P",{"data-svelte-h":!0}),m(d)!=="svelte-ttx9m"&&(d.textContent=kt),tt=i(t),C=a(t,"P",{"data-svelte-h":!0}),m(C)!=="svelte-1ep7y6r"&&(C.innerHTML=Zt),et=i(t),J=a(t,"P",{"data-svelte-h":!0}),m(J)!=="svelte-x0sey8"&&(J.innerHTML=St),lt=i(t),w=a(t,"P",{"data-svelte-h":!0}),m(w)!=="svelte-1uw1d6w"&&(w.innerHTML=Wt),st=i(t),u(h.$$.fragment,t),nt=i(t),x=a(t,"P",{"data-svelte-h":!0}),m(x)!=="svelte-11pkrkq"&&(x.textContent=Rt),it=i(t),u(b.$$.fragment,t),pt=i(t),v=a(t,"P",{"data-svelte-h":!0}),m(v)!=="svelte-1mvdyro"&&(v.innerHTML=_t),at=i(t),u(j.$$.fragment,t),mt=i(t),g=a(t,"P",{"data-svelte-h":!0}),m(g)!=="svelte-wahbru"&&(g.textContent=qt),ot=i(t),u(I.$$.fragment,t),ut=i(t),G=a(t,"P",{"data-svelte-h":!0}),m(G)!=="svelte-1mvdyro"&&(G.innerHTML=Bt),rt=i(t),u(k.$$.fragment,t),yt=i(t),Z=a(t,"P",{"data-svelte-h":!0}),m(Z)!=="svelte-z7ijfr"&&(Z.textContent=Vt),ft=i(t),S=a(t,"P",{"data-svelte-h":!0}),m(S)!=="svelte-1jxn1m7"&&(S.innerHTML=Ht),Mt=i(t),W=a(t,"P",{"data-svelte-h":!0}),m(W)!=="svelte-1e9hx8l"&&(W.textContent=zt),$t=i(t),u(R.$$.fragment,t),Ut=i(t),_=a(t,"P",{"data-svelte-h":!0}),m(_)!=="svelte-1s6ci2p"&&(_.textContent=Ft),ct=i(t),u(q.$$.fragment,t),Tt=i(t),B=a(t,"P",{"data-svelte-h":!0}),m(B)!=="svelte-1mvdyro"&&(B.innerHTML=Lt),dt=i(t),u(V.$$.fragment,t),Ct=i(t),H=a(t,"P",{"data-svelte-h":!0}),m(H)!=="svelte-1qoyk0g"&&(H.textContent=Nt),Jt=i(t),u(z.$$.fragment,t),wt=i(t),F=a(t,"P",{"data-svelte-h":!0}),m(F)!=="svelte-1mvdyro"&&(F.innerHTML=Et),ht=i(t),u(L.$$.fragment,t),xt=i(t),N=a(t,"P",{"data-svelte-h":!0}),m(N)!=="svelte-13vb6ta"&&(N.textContent=Pt),bt=i(t),E=a(t,"P",{"data-svelte-h":!0}),m(E)!=="svelte-1958hb6"&&(E.textContent=Xt),vt=i(t),P=a(t,"UL",{"data-svelte-h":!0}),m(P)!=="svelte-1396100"&&(P.innerHTML=Yt),jt=i(t),u(X.$$.fragment,t),gt=i(t),Q=a(t,"P",{}),Qt(Q).forEach(l),this.h()},h(){At(U,"name","hf:doc:metadata"),At(U,"content",me)},m(t,e){se(document.head,U),s(t,A,e),s(t,Y,e),s(t,D,e),r(c,t,e),s(t,O,e),r(T,t,e),s(t,K,e),s(t,d,e),s(t,tt,e),s(t,C,e),s(t,et,e),s(t,J,e),s(t,lt,e),s(t,w,e),s(t,st,e),r(h,t,e),s(t,nt,e),s(t,x,e),s(t,it,e),r(b,t,e),s(t,pt,e),s(t,v,e),s(t,at,e),r(j,t,e),s(t,mt,e),s(t,g,e),s(t,ot,e),r(I,t,e),s(t,ut,e),s(t,G,e),s(t,rt,e),r(k,t,e),s(t,yt,e),s(t,Z,e),s(t,ft,e),s(t,S,e),s(t,Mt,e),s(t,W,e),s(t,$t,e),r(R,t,e),s(t,Ut,e),s(t,_,e),s(t,ct,e),r(q,t,e),s(t,Tt,e),s(t,B,e),s(t,dt,e),r(V,t,e),s(t,Ct,e),s(t,H,e),s(t,Jt,e),r(z,t,e),s(t,wt,e),s(t,F,e),s(t,ht,e),r(L,t,e),s(t,xt,e),s(t,N,e),s(t,bt,e),s(t,E,e),s(t,vt,e),s(t,P,e),s(t,jt,e),r(X,t,e),s(t,gt,e),s(t,Q,e),It=!0},p:Ot,i(t){It||(y(c.$$.fragment,t),y(T.$$.fragment,t),y(h.$$.fragment,t),y(b.$$.fragment,t),y(j.$$.fragment,t),y(I.$$.fragment,t),y(k.$$.fragment,t),y(R.$$.fragment,t),y(q.$$.fragment,t),y(V.$$.fragment,t),y(z.$$.fragment,t),y(L.$$.fragment,t),y(X.$$.fragment,t),It=!0)},o(t){f(c.$$.fragment,t),f(T.$$.fragment,t),f(h.$$.fragment,t),f(b.$$.fragment,t),f(j.$$.fragment,t),f(I.$$.fragment,t),f(k.$$.fragment,t),f(R.$$.fragment,t),f(q.$$.fragment,t),f(V.$$.fragment,t),f(z.$$.fragment,t),f(L.$$.fragment,t),f(X.$$.fragment,t),It=!1},d(t){t&&(l(A),l(Y),l(D),l(O),l(K),l(d),l(tt),l(C),l(et),l(J),l(lt),l(w),l(st),l(nt),l(x),l(it),l(pt),l(v),l(at),l(mt),l(g),l(ot),l(ut),l(G),l(rt),l(yt),l(Z),l(ft),l(S),l(Mt),l(W),l($t),l(Ut),l(_),l(ct),l(Tt),l(B),l(dt),l(Ct),l(H),l(Jt),l(wt),l(F),l(ht),l(xt),l(N),l(bt),l(E),l(vt),l(P),l(jt),l(gt),l(Q)),l(U),M(c,t),M(T,t),M(h,t),M(b,t),M(j,t),M(I,t),M(k,t),M(R,t),M(q,t),M(V,t),M(z,t),M(L,t),M(X,t)}}}const me='{"title":"파이프라인을 이용한 자동 음성 인식","local":"automatic-speech-recognition-with-a-pipeline","sections":[],"depth":1}';function oe(Gt){return Kt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Me extends te{constructor(U){super(),ee(this,U,oe,ae,Dt,{})}}export{Me as component};
