Buckets:

rtrm's picture
download
raw
11.7 kB
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>[&quot;audio&quot;][&quot;array&quot;]</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">&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}}),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">&quot;audio-classification&quot;</span>,
model=<span class="hljs-string">&quot;anton-l/xtreme_s_xlsr_300m_minds14&quot;</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">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>])',wrap:!1}}),v=new N({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 N({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}}),A=new N({props:{code:"JTIycGF5X2JpbGwlMjI=",highlighted:'<span class="hljs-string">&quot;pay_bill&quot;</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.