import{S as qa,i as Ta,s as Ua,e as i,k as u,w as b,t as l,M as Ea,c as r,d as a,m as p,a as c,x as q,h as t,b as T,G as s,g as n,y as U,L as wa,q as E,o as w,B as $,v as $a}from"../../chunks/vendor-hf-doc-builder.js";import{I as ga}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{C as x}from"../../chunks/CodeBlock-hf-doc-builder.js";function Ia(aa){let y,oe,M,h,P,g,$e,O,ge,ne,S,Ie,le,G,ve,te,d,_e,I,Ce,ke,V,ze,Ae,ie,j,Ne,X,xe,Se,re,v,ce,m,Ge,Y,Re,We,L,De,Ze,ue,_,pe,R,Qe,de,C,me,f,Fe,H,Be,Pe,K,Oe,Ve,fe,k,ye,W,ee,Xe,Me,z,he,D,Ye,je,A,Je,Z,ae,Le,be,N,qe,J,He,se,Ke,ea,Te;return g=new ga({}),v=new x({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>))`}}),_=new x({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>,
)`}}),C=new x({props:{code:"ZXhhbXBsZSUyMCUzRCUyMG1pbmRzJTVCMCU1RA==",highlighted:'example = minds[<span class="hljs-number">0</span>]'}}),k=new x({props:{code:"Y2xhc3NpZmllcihleGFtcGxlJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCk=",highlighted:'classifier(example[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>])'}}),z=new x({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>},
]`}}),A=new x({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>])`}}),N=new x({props:{code:"JTIycGF5X2JpbGwlMjI=",highlighted:'<span class="hljs-string">&quot;pay_bill&quot;</span>'}}),{c(){y=i("meta"),oe=u(),M=i("h1"),h=i("a"),P=i("span"),b(g.$$.fragment),$e=u(),O=i("span"),ge=l("Clasificaci\xF3n de audio con una pipeline"),ne=u(),S=i("p"),Ie=l(`La clasificaci\xF3n de audio consiste en asignar o m\xE1s etiquetas a una grabaci\xF3n de audio basado en su contenido. Las etiquetas
pueden corresponder a diferentes categorias del sonido, como m\xFAsica, voz o ruido, o etiquetas m\xE1s especificas como canto de ave o
sonido de motor de carro.`),le=u(),G=i("p"),ve=l(`Antes de entrar en los detalles sobre el funcionamiento de los transformers m\xE1s populares para audio, y antes de hacer fine-tunning
de un modelo personalizado. Revisemos como se puede usar un modelo pre-entrenado para clasificaci\xF3n de audio con solo una lineas de
c\xF3digo de  \u{1F917} Transformers.`),te=u(),d=i("p"),_e=l("Usemos el mismo conjunto de "),I=i("a"),Ce=l("MINDS-14"),ke=l(` que hemos estado explorando en la
unidad anterior. Como recordar\xE1s, MINDS-14 contiene grabaciones de personas haciendo preguntas a un sistema de banca electr\xF3nica
en diferentes idiomas y dialectos, y tiene la etiqueta de `),V=i("code"),ze=l("intent_class"),Ae=l(` para cada grabaci\xF3n. Podemos clasificar las grabaciones por
la intenci\xF3n de la llamada.`),ie=u(),j=i("p"),Ne=l("Tal como hemos hecho antes, carguemos el subset de "),X=i("code"),xe=l("en-AU"),Se=l(` probar esta pipeline, y hagamos un upsampling a 16kHz que es
la frecuencia de muestreo que el modelo espera.`),re=u(),b(v.$$.fragment),ce=u(),m=i("p"),Ge=l("Para clasificar una grabaci\xF3n de audio en alguna de las clases, podemos usar la pipeline de "),Y=i("code"),Re=l("audio-classification"),We=l(` que tiene \u{1F917} Transformers.
En nuestro caso, necesitamos un modelo que ha sido entrenado para clasificar la intenci\xF3n en donde especificamente hayan la base de datos de
MINDS-14. Afortunadamente para nosotros, el Hub tiene un modelo que hace justamente esto. Carguemoslo usando la funci\xF3n `),L=i("code"),De=l("pipeline()"),Ze=l(":"),ue=u(),b(_.$$.fragment),pe=u(),R=i("p"),Qe=l(`Esta pipeline espera los datos de audio como un array de Numpy. Todo el preprocesamiento de los datos de audio ser\xE1 hecha por
la pipeline. Seleccionemos un ejemplo para probarlo:`),de=u(),b(C.$$.fragment),me=u(),f=i("p"),Fe=l(`Si recuerdas la estructura del conjunto de datos, los datos en bruto de audio se almacenan en un array de Numpy en
la columna `),H=i("code"),Be=l('["audio"]["array"]'),Pe=l(", que podemos pasar directamente al  "),K=i("code"),Oe=l("classifier"),Ve=l(":"),fe=u(),b(k.$$.fragment),ye=u(),W=i("p"),ee=i("strong"),Xe=l("Output:"),Me=u(),b(z.$$.fragment),he=u(),D=i("p"),Ye=l(`Este modelo esta bastante seguro que la intenci\xF3n al llamar fue preguntar sobre el pago de una cuenta. Revisemos que la
etiqueta original para este ejemplo es:`),je=u(),b(A.$$.fragment),Je=u(),Z=i("p"),ae=i("strong"),Le=l("Output:"),be=u(),b(N.$$.fragment),qe=u(),J=i("p"),He=l(`\xA1Hurra! la etiqueta predecida por el modelo \xA1era la correcta! Aqui tuvimos suerte de encontrar un modelo que tenia exactamente
las etiquetas que necesitabamos. La mayoria de las veces, cuando estamos tratando con una tarea de clasificaci\xF3n, el conjunto de clases
de un modelo pre-entrenado no son exactamente las que necesitamos. En este caso, puedes hacer un fine-tunning del modelo pre entrenado
para \u201Ccalibralo\u201D a tu conjunto de clases. Aprenderemos como se puede hacer este proceso en las pr\xF3ximas unidad. Por ahora, echemos un
vistazo a otra tarea muy com\xFAn en el procesamiento del habla, `),se=i("em"),Ke=l("automatic speech recognition"),ea=l("."),this.h()},l(e){const o=Ea('[data-svelte="svelte-1phssyn"]',document.head);y=r(o,"META",{name:!0,content:!0}),o.forEach(a),oe=p(e),M=r(e,"H1",{class:!0});var Ue=c(M);h=r(Ue,"A",{id:!0,class:!0,href:!0});var sa=c(h);P=r(sa,"SPAN",{});var oa=c(P);q(g.$$.fragment,oa),oa.forEach(a),sa.forEach(a),$e=p(Ue),O=r(Ue,"SPAN",{});var na=c(O);ge=t(na,"Clasificaci\xF3n de audio con una pipeline"),na.forEach(a),Ue.forEach(a),ne=p(e),S=r(e,"P",{});var la=c(S);Ie=t(la,`La clasificaci\xF3n de audio consiste en asignar o m\xE1s etiquetas a una grabaci\xF3n de audio basado en su contenido. Las etiquetas
pueden corresponder a diferentes categorias del sonido, como m\xFAsica, voz o ruido, o etiquetas m\xE1s especificas como canto de ave o
sonido de motor de carro.`),la.forEach(a),le=p(e),G=r(e,"P",{});var ta=c(G);ve=t(ta,`Antes de entrar en los detalles sobre el funcionamiento de los transformers m\xE1s populares para audio, y antes de hacer fine-tunning
de un modelo personalizado. Revisemos como se puede usar un modelo pre-entrenado para clasificaci\xF3n de audio con solo una lineas de
c\xF3digo de  \u{1F917} Transformers.`),ta.forEach(a),te=p(e),d=r(e,"P",{});var Q=c(d);_e=t(Q,"Usemos el mismo conjunto de "),I=r(Q,"A",{href:!0,rel:!0});var ia=c(I);Ce=t(ia,"MINDS-14"),ia.forEach(a),ke=t(Q,` que hemos estado explorando en la
unidad anterior. Como recordar\xE1s, MINDS-14 contiene grabaciones de personas haciendo preguntas a un sistema de banca electr\xF3nica
en diferentes idiomas y dialectos, y tiene la etiqueta de `),V=r(Q,"CODE",{});var ra=c(V);ze=t(ra,"intent_class"),ra.forEach(a),Ae=t(Q,` para cada grabaci\xF3n. Podemos clasificar las grabaciones por
la intenci\xF3n de la llamada.`),Q.forEach(a),ie=p(e),j=r(e,"P",{});var Ee=c(j);Ne=t(Ee,"Tal como hemos hecho antes, carguemos el subset de "),X=r(Ee,"CODE",{});var ca=c(X);xe=t(ca,"en-AU"),ca.forEach(a),Se=t(Ee,` probar esta pipeline, y hagamos un upsampling a 16kHz que es
la frecuencia de muestreo que el modelo espera.`),Ee.forEach(a),re=p(e),q(v.$$.fragment,e),ce=p(e),m=r(e,"P",{});var F=c(m);Ge=t(F,"Para clasificar una grabaci\xF3n de audio en alguna de las clases, podemos usar la pipeline de "),Y=r(F,"CODE",{});var ua=c(Y);Re=t(ua,"audio-classification"),ua.forEach(a),We=t(F,` que tiene \u{1F917} Transformers.
En nuestro caso, necesitamos un modelo que ha sido entrenado para clasificar la intenci\xF3n en donde especificamente hayan la base de datos de
MINDS-14. Afortunadamente para nosotros, el Hub tiene un modelo que hace justamente esto. Carguemoslo usando la funci\xF3n `),L=r(F,"CODE",{});var pa=c(L);De=t(pa,"pipeline()"),pa.forEach(a),Ze=t(F,":"),F.forEach(a),ue=p(e),q(_.$$.fragment,e),pe=p(e),R=r(e,"P",{});var da=c(R);Qe=t(da,`Esta pipeline espera los datos de audio como un array de Numpy. Todo el preprocesamiento de los datos de audio ser\xE1 hecha por
la pipeline. Seleccionemos un ejemplo para probarlo:`),da.forEach(a),de=p(e),q(C.$$.fragment,e),me=p(e),f=r(e,"P",{});var B=c(f);Fe=t(B,`Si recuerdas la estructura del conjunto de datos, los datos en bruto de audio se almacenan en un array de Numpy en
la columna `),H=r(B,"CODE",{});var ma=c(H);Be=t(ma,'["audio"]["array"]'),ma.forEach(a),Pe=t(B,", que podemos pasar directamente al  "),K=r(B,"CODE",{});var fa=c(K);Oe=t(fa,"classifier"),fa.forEach(a),Ve=t(B,":"),B.forEach(a),fe=p(e),q(k.$$.fragment,e),ye=p(e),W=r(e,"P",{});var ya=c(W);ee=r(ya,"STRONG",{});var Ma=c(ee);Xe=t(Ma,"Output:"),Ma.forEach(a),ya.forEach(a),Me=p(e),q(z.$$.fragment,e),he=p(e),D=r(e,"P",{});var ha=c(D);Ye=t(ha,`Este modelo esta bastante seguro que la intenci\xF3n al llamar fue preguntar sobre el pago de una cuenta. Revisemos que la
etiqueta original para este ejemplo es:`),ha.forEach(a),je=p(e),q(A.$$.fragment,e),Je=p(e),Z=r(e,"P",{});var ja=c(Z);ae=r(ja,"STRONG",{});var Ja=c(ae);Le=t(Ja,"Output:"),Ja.forEach(a),ja.forEach(a),be=p(e),q(N.$$.fragment,e),qe=p(e),J=r(e,"P",{});var we=c(J);He=t(we,`\xA1Hurra! la etiqueta predecida por el modelo \xA1era la correcta! Aqui tuvimos suerte de encontrar un modelo que tenia exactamente
las etiquetas que necesitabamos. La mayoria de las veces, cuando estamos tratando con una tarea de clasificaci\xF3n, el conjunto de clases
de un modelo pre-entrenado no son exactamente las que necesitamos. En este caso, puedes hacer un fine-tunning del modelo pre entrenado
para \u201Ccalibralo\u201D a tu conjunto de clases. Aprenderemos como se puede hacer este proceso en las pr\xF3ximas unidad. Por ahora, echemos un
vistazo a otra tarea muy com\xFAn en el procesamiento del habla, `),se=r(we,"EM",{});var ba=c(se);Ke=t(ba,"automatic speech recognition"),ba.forEach(a),ea=t(we,"."),we.forEach(a),this.h()},h(){T(y,"name","hf:doc:metadata"),T(y,"content",JSON.stringify(va)),T(h,"id","clasificacin-de-audio-con-una-pipeline"),T(h,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),T(h,"href","#clasificacin-de-audio-con-una-pipeline"),T(M,"class","relative group"),T(I,"href","https://huggingface.co/datasets/PolyAI/minds14"),T(I,"rel","nofollow")},m(e,o){s(document.head,y),n(e,oe,o),n(e,M,o),s(M,h),s(h,P),U(g,P,null),s(M,$e),s(M,O),s(O,ge),n(e,ne,o),n(e,S,o),s(S,Ie),n(e,le,o),n(e,G,o),s(G,ve),n(e,te,o),n(e,d,o),s(d,_e),s(d,I),s(I,Ce),s(d,ke),s(d,V),s(V,ze),s(d,Ae),n(e,ie,o),n(e,j,o),s(j,Ne),s(j,X),s(X,xe),s(j,Se),n(e,re,o),U(v,e,o),n(e,ce,o),n(e,m,o),s(m,Ge),s(m,Y),s(Y,Re),s(m,We),s(m,L),s(L,De),s(m,Ze),n(e,ue,o),U(_,e,o),n(e,pe,o),n(e,R,o),s(R,Qe),n(e,de,o),U(C,e,o),n(e,me,o),n(e,f,o),s(f,Fe),s(f,H),s(H,Be),s(f,Pe),s(f,K),s(K,Oe),s(f,Ve),n(e,fe,o),U(k,e,o),n(e,ye,o),n(e,W,o),s(W,ee),s(ee,Xe),n(e,Me,o),U(z,e,o),n(e,he,o),n(e,D,o),s(D,Ye),n(e,je,o),U(A,e,o),n(e,Je,o),n(e,Z,o),s(Z,ae),s(ae,Le),n(e,be,o),U(N,e,o),n(e,qe,o),n(e,J,o),s(J,He),s(J,se),s(se,Ke),s(J,ea),Te=!0},p:wa,i(e){Te||(E(g.$$.fragment,e),E(v.$$.fragment,e),E(_.$$.fragment,e),E(C.$$.fragment,e),E(k.$$.fragment,e),E(z.$$.fragment,e),E(A.$$.fragment,e),E(N.$$.fragment,e),Te=!0)},o(e){w(g.$$.fragment,e),w(v.$$.fragment,e),w(_.$$.fragment,e),w(C.$$.fragment,e),w(k.$$.fragment,e),w(z.$$.fragment,e),w(A.$$.fragment,e),w(N.$$.fragment,e),Te=!1},d(e){a(y),e&&a(oe),e&&a(M),$(g),e&&a(ne),e&&a(S),e&&a(le),e&&a(G),e&&a(te),e&&a(d),e&&a(ie),e&&a(j),e&&a(re),$(v,e),e&&a(ce),e&&a(m),e&&a(ue),$(_,e),e&&a(pe),e&&a(R),e&&a(de),$(C,e),e&&a(me),e&&a(f),e&&a(fe),$(k,e),e&&a(ye),e&&a(W),e&&a(Me),$(z,e),e&&a(he),e&&a(D),e&&a(je),$(A,e),e&&a(Je),e&&a(Z),e&&a(be),$(N,e),e&&a(qe),e&&a(J)}}}const va={local:"clasificacin-de-audio-con-una-pipeline",title:"Clasificaci\xF3n de audio con una pipeline"};function _a(aa){return $a(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Aa extends qa{constructor(y){super();Ta(this,y,_a,Ia,Ua,{})}}export{Aa as default,va as metadata};
