Buckets:
| import{s as ge,n as Ue,o as we}from"../chunks/scheduler.a045fce0.js";import{S as Ce,i as Ie,e as o,s as n,c as r,h as xe,a as i,d as a,b as l,f as $e,g as u,j as p,k as qe,l as ve,m as t,n as c,t as m,o as d,p as M}from"../chunks/index.bc14ef44.js";import{C as _e,H as ze,E as ke}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.411edb81.js";import{C as N}from"../chunks/CodeBlock.4b065942.js";function Ae(ue){let f,Q,G,F,y,R,T,B,J,ce=`La clasificación de audio consiste en asignar o más etiquetas a una grabación de audio basado en su contenido. Las etiquetas | |
| pueden corresponder a diferentes categorias del sonido, como música, voz o ruido, o etiquetas más especificas como canto de ave o | |
| sonido de motor de carro.`,L,h,me=`Antes de entrar en los detalles sobre el funcionamiento de los transformers más populares para audio, y antes de hacer fine-tunning | |
| de un modelo personalizado. Revisemos como se puede usar un modelo pre-entrenado para clasificación de audio con solo una lineas de | |
| código de 🤗 Transformers.`,S,j,de=`Usemos el mismo conjunto de <a href="https://huggingface.co/datasets/PolyAI/minds14" rel="nofollow">MINDS-14</a> que hemos estado explorando en la | |
| unidad anterior. Como recordarás, MINDS-14 contiene grabaciones de personas haciendo preguntas a un sistema de banca electrónica | |
| en diferentes idiomas y dialectos, y tiene la etiqueta de <code>intent_class</code> para cada grabación. Podemos clasificar las grabaciones por | |
| la intención de la llamada.`,D,b,Me=`Tal como hemos hecho antes, carguemos el subset de <code>en-AU</code> probar esta pipeline, y hagamos un upsampling a 16kHz que es | |
| la frecuencia de muestreo que el modelo espera.`,H,$,P,q,fe=`Para clasificar una grabación de audio en alguna de las clases, podemos usar la pipeline de <code>audio-classification</code> que tiene 🤗 Transformers. | |
| En nuestro caso, necesitamos un modelo que ha sido entrenado para clasificar la intención 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ón <code>pipeline()</code>:`,V,g,X,U,ye=`Esta pipeline espera los datos de audio como un array de Numpy. Todo el preprocesamiento de los datos de audio será hecha por | |
| la pipeline. Seleccionemos un ejemplo para probarlo:`,Y,w,O,C,Te=`Si recuerdas la estructura del conjunto de datos, los datos en bruto de audio se almacenan en un array de Numpy en | |
| la columna <code>["audio"]["array"]</code>, que podemos pasar directamente al <code>classifier</code>:`,K,I,ee,x,Je="<strong>Output:</strong>",se,v,ae,_,he=`Este modelo esta bastante seguro que la intención al llamar fue preguntar sobre el pago de una cuenta. Revisemos que la | |
| etiqueta original para este ejemplo es:`,te,z,ne,k,je="<strong>Output:</strong>",le,A,oe,E,be=`¡Hurra! la etiqueta predecida por el modelo ¡era 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ón, 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 “calibralo” a tu conjunto de clases. Aprenderemos como se puede hacer este proceso en las próximas unidad. Por ahora, echemos un | |
| vistazo a otra tarea muy común en el procesamiento del habla, <em>automatic speech recognition</em>.`,ie,W,pe,Z,re;return y=new _e({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new ze({props:{title:"Clasificación de audio con una pipeline",local:"clasificación-de-audio-con-una-pipeline",headingTag:"h1"}}),$=new N({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">"PolyAI/minds14"</span>, name=<span class="hljs-string">"en-AU"</span>, split=<span class="hljs-string">"train"</span>) | |
| minds = minds.cast_column(<span class="hljs-string">"audio"</span>, Audio(sampling_rate=<span class="hljs-number">16_000</span>))`,wrap:!1}}),g=new N({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCUyMmF1ZGlvLWNsYXNzaWZpY2F0aW9uJTIyJTJDJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0QlMjJhbnRvbi1sJTJGeHRyZW1lX3NfeGxzcl8zMDBtX21pbmRzMTQlMjIlMkMlMEEp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline | |
| classifier = pipeline( | |
| <span class="hljs-string">"audio-classification"</span>, | |
| model=<span class="hljs-string">"anton-l/xtreme_s_xlsr_300m_minds14"</span>, | |
| )`,wrap:!1}}),w=new N({props:{code:"ZXhhbXBsZSUyMCUzRCUyMG1pbmRzJTVCMCU1RA==",highlighted:'example = minds[<span class="hljs-number">0</span>]',wrap:!1}}),I=new N({props:{code:"Y2xhc3NpZmllcihleGFtcGxlJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCk=",highlighted:'classifier(example[<span class="hljs-string">"audio"</span>][<span class="hljs-string">"array"</span>])',wrap:!1}}),v=new N({props:{code:"JTVCJTBBJTIwJTIwJTIwJTIwJTdCJTIyc2NvcmUlMjIlM0ElMjAwLjk2MzE1MjUyNzgwOTE0MzElMkMlMjAlMjJsYWJlbCUyMiUzQSUyMCUyMnBheV9iaWxsJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTIyc2NvcmUlMjIlM0ElMjAwLjAyODE5Njk4MzAzOTM3OTEyJTJDJTIwJTIybGFiZWwlMjIlM0ElMjAlMjJmcmVlemUlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJzY29yZSUyMiUzQSUyMDAuMDAzMjc4NzQ5Mjk2NDQxNjc0MiUyQyUyMCUyMmxhYmVsJTIyJTNBJTIwJTIyY2FyZF9pc3N1ZXMlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJzY29yZSUyMiUzQSUyMDAuMDAxOTQxNDQ0NTg1MDk5ODE2MyUyQyUyMCUyMmxhYmVsJTIyJTNBJTIwJTIyYWJyb2FkJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTIyc2NvcmUlMjIlM0ElMjAwLjAwMDgzNzg2OTM2MDExMTY1MzglMkMlMjAlMjJsYWJlbCUyMiUzQSUyMCUyMmhpZ2hfdmFsdWVfcGF5bWVudCUyMiU3RCUyQyUwQSU1RA==",highlighted:`[ | |
| {<span class="hljs-string">"score"</span>: <span class="hljs-number">0.9631525278091431</span>, <span class="hljs-string">"label"</span>: <span class="hljs-string">"pay_bill"</span>}, | |
| {<span class="hljs-string">"score"</span>: <span class="hljs-number">0.02819698303937912</span>, <span class="hljs-string">"label"</span>: <span class="hljs-string">"freeze"</span>}, | |
| {<span class="hljs-string">"score"</span>: <span class="hljs-number">0.0032787492964416742</span>, <span class="hljs-string">"label"</span>: <span class="hljs-string">"card_issues"</span>}, | |
| {<span class="hljs-string">"score"</span>: <span class="hljs-number">0.0019414445850998163</span>, <span class="hljs-string">"label"</span>: <span class="hljs-string">"abroad"</span>}, | |
| {<span class="hljs-string">"score"</span>: <span class="hljs-number">0.0008378693601116538</span>, <span class="hljs-string">"label"</span>: <span class="hljs-string">"high_value_payment"</span>}, | |
| ]`,wrap:!1}}),z=new N({props:{code:"aWQybGFiZWwlMjAlM0QlMjBtaW5kcy5mZWF0dXJlcyU1QiUyMmludGVudF9jbGFzcyUyMiU1RC5pbnQyc3RyJTBBaWQybGFiZWwoZXhhbXBsZSU1QiUyMmludGVudF9jbGFzcyUyMiU1RCk=",highlighted:`id2label = minds.features[<span class="hljs-string">"intent_class"</span>].int2str | |
| id2label(example[<span class="hljs-string">"intent_class"</span>])`,wrap:!1}}),A=new N({props:{code:"JTIycGF5X2JpbGwlMjI=",highlighted:'<span class="hljs-string">"pay_bill"</span>',wrap:!1}}),W=new ke({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/es/chapter2/audio_classification_pipeline.mdx"}}),{c(){f=o("meta"),Q=n(),G=o("p"),F=n(),r(y.$$.fragment),R=n(),r(T.$$.fragment),B=n(),J=o("p"),J.textContent=ce,L=n(),h=o("p"),h.textContent=me,S=n(),j=o("p"),j.innerHTML=de,D=n(),b=o("p"),b.innerHTML=Me,H=n(),r($.$$.fragment),P=n(),q=o("p"),q.innerHTML=fe,V=n(),r(g.$$.fragment),X=n(),U=o("p"),U.textContent=ye,Y=n(),r(w.$$.fragment),O=n(),C=o("p"),C.innerHTML=Te,K=n(),r(I.$$.fragment),ee=n(),x=o("p"),x.innerHTML=Je,se=n(),r(v.$$.fragment),ae=n(),_=o("p"),_.textContent=he,te=n(),r(z.$$.fragment),ne=n(),k=o("p"),k.innerHTML=je,le=n(),r(A.$$.fragment),oe=n(),E=o("p"),E.innerHTML=be,ie=n(),r(W.$$.fragment),pe=n(),Z=o("p"),this.h()},l(e){const s=xe("svelte-u9bgzb",document.head);f=i(s,"META",{name:!0,content:!0}),s.forEach(a),Q=l(e),G=i(e,"P",{}),$e(G).forEach(a),F=l(e),u(y.$$.fragment,e),R=l(e),u(T.$$.fragment,e),B=l(e),J=i(e,"P",{"data-svelte-h":!0}),p(J)!=="svelte-k8g6jh"&&(J.textContent=ce),L=l(e),h=i(e,"P",{"data-svelte-h":!0}),p(h)!=="svelte-opfu3e"&&(h.textContent=me),S=l(e),j=i(e,"P",{"data-svelte-h":!0}),p(j)!=="svelte-1jrbmi0"&&(j.innerHTML=de),D=l(e),b=i(e,"P",{"data-svelte-h":!0}),p(b)!=="svelte-yr0mpi"&&(b.innerHTML=Me),H=l(e),u($.$$.fragment,e),P=l(e),q=i(e,"P",{"data-svelte-h":!0}),p(q)!=="svelte-6lqry8"&&(q.innerHTML=fe),V=l(e),u(g.$$.fragment,e),X=l(e),U=i(e,"P",{"data-svelte-h":!0}),p(U)!=="svelte-72hnuq"&&(U.textContent=ye),Y=l(e),u(w.$$.fragment,e),O=l(e),C=i(e,"P",{"data-svelte-h":!0}),p(C)!=="svelte-fv4joi"&&(C.innerHTML=Te),K=l(e),u(I.$$.fragment,e),ee=l(e),x=i(e,"P",{"data-svelte-h":!0}),p(x)!=="svelte-1mvdyro"&&(x.innerHTML=Je),se=l(e),u(v.$$.fragment,e),ae=l(e),_=i(e,"P",{"data-svelte-h":!0}),p(_)!=="svelte-50kvxb"&&(_.textContent=he),te=l(e),u(z.$$.fragment,e),ne=l(e),k=i(e,"P",{"data-svelte-h":!0}),p(k)!=="svelte-1mvdyro"&&(k.innerHTML=je),le=l(e),u(A.$$.fragment,e),oe=l(e),E=i(e,"P",{"data-svelte-h":!0}),p(E)!=="svelte-1lqv2vm"&&(E.innerHTML=be),ie=l(e),u(W.$$.fragment,e),pe=l(e),Z=i(e,"P",{}),$e(Z).forEach(a),this.h()},h(){qe(f,"name","hf:doc:metadata"),qe(f,"content",Ee)},m(e,s){ve(document.head,f),t(e,Q,s),t(e,G,s),t(e,F,s),c(y,e,s),t(e,R,s),c(T,e,s),t(e,B,s),t(e,J,s),t(e,L,s),t(e,h,s),t(e,S,s),t(e,j,s),t(e,D,s),t(e,b,s),t(e,H,s),c($,e,s),t(e,P,s),t(e,q,s),t(e,V,s),c(g,e,s),t(e,X,s),t(e,U,s),t(e,Y,s),c(w,e,s),t(e,O,s),t(e,C,s),t(e,K,s),c(I,e,s),t(e,ee,s),t(e,x,s),t(e,se,s),c(v,e,s),t(e,ae,s),t(e,_,s),t(e,te,s),c(z,e,s),t(e,ne,s),t(e,k,s),t(e,le,s),c(A,e,s),t(e,oe,s),t(e,E,s),t(e,ie,s),c(W,e,s),t(e,pe,s),t(e,Z,s),re=!0},p:Ue,i(e){re||(m(y.$$.fragment,e),m(T.$$.fragment,e),m($.$$.fragment,e),m(g.$$.fragment,e),m(w.$$.fragment,e),m(I.$$.fragment,e),m(v.$$.fragment,e),m(z.$$.fragment,e),m(A.$$.fragment,e),m(W.$$.fragment,e),re=!0)},o(e){d(y.$$.fragment,e),d(T.$$.fragment,e),d($.$$.fragment,e),d(g.$$.fragment,e),d(w.$$.fragment,e),d(I.$$.fragment,e),d(v.$$.fragment,e),d(z.$$.fragment,e),d(A.$$.fragment,e),d(W.$$.fragment,e),re=!1},d(e){e&&(a(Q),a(G),a(F),a(R),a(B),a(J),a(L),a(h),a(S),a(j),a(D),a(b),a(H),a(P),a(q),a(V),a(X),a(U),a(Y),a(O),a(C),a(K),a(ee),a(x),a(se),a(ae),a(_),a(te),a(ne),a(k),a(le),a(oe),a(E),a(ie),a(pe),a(Z)),a(f),M(y,e),M(T,e),M($,e),M(g,e),M(w,e),M(I,e),M(v,e),M(z,e),M(A,e),M(W,e)}}}const Ee='{"title":"Clasificación de audio con una pipeline","local":"clasificación-de-audio-con-una-pipeline","sections":[],"depth":1}';function We(ue){return we(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Fe extends Ce{constructor(f){super(),Ie(this,f,We,Ae,ge,{})}}export{Fe as component}; | |
Xet Storage Details
- Size:
- 11.7 kB
- Xet hash:
- 909db360e064e6a053a216e24ca92cbdb8cfc32673556a7dd2f735362ca54fdf
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.