import{S as Cu,i as zu,s as Su,e as a,k as d,w as f,t as n,M as Iu,c as o,d as l,m as c,a as i,x as h,h as t,b as p,N as ft,G as s,g as u,y as v,L as Au,q as b,o as y,B as M,v as ku}from"../../chunks/vendor-hf-doc-builder.js";import{I as B}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{C as E}from"../../chunks/CodeBlock-hf-doc-builder.js";function Qu(_i){let Q,Pl,W,F,ys,be,ht,Ms,vt,Rl,m,bt,qs,yt,Mt,ye,qt,jt,js,gt,Et,gs,Ut,Jt,Es,xt,_t,Us,$t,Nt,Js,Tt,wt,xs,Ct,zt,_s,St,It,$s,At,kt,Ns,Qt,Wt,Gl,Z,H,Ts,Me,Zt,ws,Pt,Ll,X,Rt,Cs,Gt,Lt,Dl,qe,Yl,P,O,zs,je,Dt,Ss,Yt,Vl,K,Vt,Is,Bt,Ft,Bl,R,ee,As,ge,Ht,ks,Xt,Fl,se,Ot,Ee,Kt,ea,Hl,Ue,Xl,$,sa,Qs,la,na,Je,Ws,ta,aa,Zs,oa,ia,Ol,xe,Kl,ts,ra,en,_e,sn,as,Ps,ua,ln,$e,nn,os,da,tn,G,le,Rs,Ne,ca,Gs,pa,an,U,ma,Ls,fa,ha,Ds,va,ba,Te,ya,Ma,Ys,qa,ja,on,we,is,$i,rn,ne,ga,Vs,Ea,Ua,un,Ce,dn,N,Ja,Bs,xa,_a,te,Fs,$a,Na,Ta,Hs,wa,Ca,cn,ze,pn,rs,Xs,za,mn,Se,fn,ae,Sa,Os,Ia,Aa,hn,Ie,vn,J,ka,Ks,Qa,Wa,el,Za,Pa,Ae,Ra,Ga,sl,La,Da,bn,ke,ll,Ni,yn,us,Ya,Mn,Qe,nl,Ti,qn,C,Va,tl,Ba,Fa,al,Ha,Xa,jn,We,ol,wi,gn,oe,Oa,il,Ka,eo,En,L,ie,rl,Ze,so,ul,lo,Un,ds,no,Jn,D,re,dl,Pe,to,cl,ao,xn,T,oo,pl,io,ro,ml,uo,co,Re,po,mo,_n,Ge,$n,z,fo,Le,ho,vo,fl,bo,yo,Nn,De,Tn,cs,Mo,wn,Ye,Cn,ps,hl,qo,zn,Ve,Sn,x,jo,Be,go,Eo,vl,Uo,Jo,bl,xo,_o,yl,$o,No,In,Y,ue,Ml,Fe,To,ql,wo,An,_,Co,jl,zo,So,He,Io,Ao,gl,ko,Qo,El,Wo,Zo,kn,de,Po,Xe,Ro,Go,Qn,Oe,Wn,ce,Lo,Ul,Do,Yo,Zn,Ke,Pn,ms,Vo,Rn,es,Gn,fs,Jl,Bo,Ln,ss,Dn,hs,Fo,Yn,ls,Vn,w,Ho,xl,Xo,Oo,_l,Ko,ei,$l,si,li,Bn,V,pe,Nl,ns,ni,Tl,ti,Fn,q,ai,wl,oi,ii,Cl,ri,ui,zl,di,ci,Sl,pi,mi,Il,fi,hi,Al,vi,bi,kl,yi,Mi,Ql,qi,ji,Wl,gi,Ei,Zl,Ui,Ji,Hn;return be=new B({}),Me=new B({}),qe=new E({props:{code:"cGlwJTIwaW5zdGFsbCUyMGdpdCUyQmh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmh1Z2dpbmdmYWNlJTJGdHJhbnNmb3JtZXJz",highlighted:'pip install git+https:<span class="hljs-regexp">//gi</span>thub.com<span class="hljs-regexp">/huggingface/</span>transformers'}}),je=new B({}),ge=new B({}),Ue=new E({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBJTBBbWluZHMlMjAlM0QlMjBsb2FkX2RhdGFzZXQoJTIyUG9seUFJJTJGbWluZHMxNCUyMiUyQyUyMG5hbWUlM0QlMjJlbi1BVSUyMiUyQyUyMHNwbGl0JTNEJTIydHJhaW4lMjIp",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset

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>)`}}),xe=new E({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>,
)`}}),_e=new E({props:{code:"Y2xhc3NpZmllcihtaW5kcyU1QjAlNUQlNUIlMjJwYXRoJTIyJTVEKQ==",highlighted:'classifier(minds[<span class="hljs-number">0</span>][<span class="hljs-string">&quot;path&quot;</span>])'}}),$e=new E({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>},
]`}}),Ne=new B({}),Ce=new E({props:{code:"c3BlZWNoX2NvbW1hbmRzJTIwJTNEJTIwbG9hZF9kYXRhc2V0KCUwQSUyMCUyMCUyMCUyMCUyMnNwZWVjaF9jb21tYW5kcyUyMiUyQyUyMCUyMnYwLjAyJTIyJTJDJTIwc3BsaXQlM0QlMjJ2YWxpZGF0aW9uJTIyJTJDJTIwc3RyZWFtaW5nJTNEVHJ1ZSUwQSklMEFzYW1wbGUlMjAlM0QlMjBuZXh0KGl0ZXIoc3BlZWNoX2NvbW1hbmRzKSk=",highlighted:`speech_commands = load_dataset(
    <span class="hljs-string">&quot;speech_commands&quot;</span>, <span class="hljs-string">&quot;v0.02&quot;</span>, split=<span class="hljs-string">&quot;validation&quot;</span>, streaming=<span class="hljs-literal">True</span>
)
sample = <span class="hljs-built_in">next</span>(<span class="hljs-built_in">iter</span>(speech_commands))`}}),ze=new E({props:{code:"Y2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCUyMmF1ZGlvLWNsYXNzaWZpY2F0aW9uJTIyJTJDJTIwbW9kZWwlM0QlMjJNSVQlMkZhc3QtZmluZXR1bmVkLXNwZWVjaC1jb21tYW5kcy12MiUyMiUwQSklMEFjbGFzc2lmaWVyKHNhbXBsZSU1QiUyMmF1ZGlvJTIyJTVEKQ==",highlighted:`classifier = pipeline(
    <span class="hljs-string">&quot;audio-classification&quot;</span>, model=<span class="hljs-string">&quot;MIT/ast-finetuned-speech-commands-v2&quot;</span>
)
classifier(sample[<span class="hljs-string">&quot;audio&quot;</span>])`}}),Se=new E({props:{code:"JTVCJTdCJ3Njb3JlJyUzQSUyMDAuOTk5OTg5MjcxMTYzOTQwNCUyQyUyMCdsYWJlbCclM0ElMjAnYmFja3dhcmQnJTdEJTJDJTBBJTIwJTdCJ3Njb3JlJyUzQSUyMDEuNzUwNDg4ODc3NDA1NTg3MWUtMDYlMkMlMjAnbGFiZWwnJTNBJTIwJ2hhcHB5JyU3RCUyQyUwQSUyMCU3QidzY29yZSclM0ElMjA2LjcwMzA0MDE4NTEyOTc5NGUtMDclMkMlMjAnbGFiZWwnJTNBJTIwJ2ZvbGxvdyclN0QlMkMlMEElMjAlN0Inc2NvcmUnJTNBJTIwNS44MDU4ODQ0ODQyODg5ODFlLTA3JTJDJTIwJ2xhYmVsJyUzQSUyMCdzdG9wJyU3RCUyQyUwQSUyMCU3QidzY29yZSclM0ElMjA1LjYxNDU0NjY5NDIzMjU1OGUtMDclMkMlMjAnbGFiZWwnJTNBJTIwJ3VwJyU3RCU1RA==",highlighted:`[{<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">0.9999892711639404</span>, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;backward</span>&#x27;},
 {<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">1.7504888774055871</span>e-06, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;happy</span>&#x27;},
 {<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">6.703040185129794</span>e-07, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;follow</span>&#x27;},
 {<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">5.805884484288981</span>e-07, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;stop</span>&#x27;},
 {<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">5.614546694232558</span>e-07, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;up</span>&#x27;}]`}}),Ie=new E({props:{code:"ZnJvbSUyMElQeXRob24uZGlzcGxheSUyMGltcG9ydCUyMEF1ZGlvJTBBJTBBQXVkaW8oc2FtcGxlJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCUyQyUyMHJhdGUlM0RzYW1wbGUlNUIlMjJhdWRpbyUyMiU1RCU1QiUyMnNhbXBsaW5nX3JhdGUlMjIlNUQp",highlighted:`from <span class="hljs-module-access"><span class="hljs-module"><span class="hljs-identifier">IPython</span>.</span></span>display import Audio

<span class="hljs-constructor">Audio(<span class="hljs-params">sample</span>[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>], <span class="hljs-params">rate</span>=<span class="hljs-params">sample</span>[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;sampling_rate&quot;</span>])</span>`}}),Ze=new B({}),Pe=new B({}),Ge=new E({props:{code:"ZmxldXJzJTIwJTNEJTIwbG9hZF9kYXRhc2V0KCUyMmdvb2dsZSUyRmZsZXVycyUyMiUyQyUyMCUyMmFsbCUyMiUyQyUyMHNwbGl0JTNEJTIydmFsaWRhdGlvbiUyMiUyQyUyMHN0cmVhbWluZyUzRFRydWUpJTBBc2FtcGxlJTIwJTNEJTIwbmV4dChpdGVyKGZsZXVycykp",highlighted:`fleurs = load_dataset(<span class="hljs-string">&quot;google/fleurs&quot;</span>, <span class="hljs-string">&quot;all&quot;</span>, split=<span class="hljs-string">&quot;validation&quot;</span>, streaming=<span class="hljs-literal">True</span>)
sample = <span class="hljs-built_in">next</span>(<span class="hljs-built_in">iter</span>(fleurs))`}}),De=new E({props:{code:"Y2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCUyMmF1ZGlvLWNsYXNzaWZpY2F0aW9uJTIyJTJDJTIwbW9kZWwlM0QlMjJzYW5jaGl0LWdhbmRoaSUyRndoaXNwZXItbWVkaXVtLWZsZXVycy1sYW5nLWlkJTIyJTBBKQ==",highlighted:`classifier = pipeline(
    <span class="hljs-string">&quot;audio-classification&quot;</span>, model=<span class="hljs-string">&quot;sanchit-gandhi/whisper-medium-fleurs-lang-id&quot;</span>
)`}}),Ye=new E({props:{code:"Y2xhc3NpZmllcihzYW1wbGUlNUIlMjJhdWRpbyUyMiU1RCk=",highlighted:'classifier(sample[<span class="hljs-string">&quot;audio&quot;</span>])'}}),Ve=new E({props:{code:"JTVCJTdCJ3Njb3JlJyUzQSUyMDAuOTk5OTMzMDA0Mzc5MjcyNSUyQyUyMCdsYWJlbCclM0ElMjAnQWZyaWthYW5zJyU3RCUyQyUwQSUyMCU3QidzY29yZSclM0ElMjA3LjA5MzAyMzY2ODg1ODIyM2UtMDYlMkMlMjAnbGFiZWwnJTNBJTIwJ05vcnRoZXJuLVNvdGhvJyU3RCUyQyUwQSUyMCU3QidzY29yZSclM0ElMjA0LjI2OTE0OTQ4NTQ4MDczOWUtMDYlMkMlMjAnbGFiZWwnJTNBJTIwJ0ljZWxhbmRpYyclN0QlMkMlMEElMjAlN0Inc2NvcmUnJTNBJTIwMy4yNjYxMTQxNjMxMjUxNjY3ZS0wNiUyQyUyMCdsYWJlbCclM0ElMjAnRGFuaXNoJyU3RCUyQyUwQSUyMCU3QidzY29yZSclM0ElMjAzLjI1ODA3MjQxMDk3MjA5MDRlLTA2JTJDJTIwJ2xhYmVsJyUzQSUyMCdDYW50b25lc2UlMjBDaGluZXNlJyU3RCU1RA==",highlighted:`[{<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">0.9999330043792725</span>, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;Afrikaans</span>&#x27;},
 {<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">7.093023668858223</span>e-06, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;Northern-Sotho</span>&#x27;},
 {<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">4.269149485480739</span>e-06, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;Icelandic</span>&#x27;},
 {<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">3.2661141631251667</span>e-06, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;Danish</span>&#x27;},
 {<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">3.2580724109720904</span>e-06, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;Cantonese</span> Chinese&#x27;}]`}}),Fe=new B({}),Oe=new E({props:{code:"ZGF0YXNldCUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJhc2hyYXElMkZlc2M1MCUyMiUyQyUyMHNwbGl0JTNEJTIydHJhaW4lMjIlMkMlMjBzdHJlYW1pbmclM0RUcnVlKSUwQWF1ZGlvX3NhbXBsZSUyMCUzRCUyMG5leHQoaXRlcihkYXRhc2V0KSklNUIlMjJhdWRpbyUyMiU1RCU1QiUyMmFycmF5JTIyJTVE",highlighted:`dataset = load_dataset(<span class="hljs-string">&quot;ashraq/esc50&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>, streaming=<span class="hljs-literal">True</span>)
audio_sample = <span class="hljs-built_in">next</span>(<span class="hljs-built_in">iter</span>(dataset))[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>]`}}),Ke=new E({props:{code:"Y2FuZGlkYXRlX2xhYmVscyUyMCUzRCUyMCU1QiUyMlNvdW5kJTIwb2YlMjBhJTIwZG9nJTIyJTJDJTIwJTIyU291bmQlMjBvZiUyMHZhY3V1bSUyMGNsZWFuZXIlMjIlNUQ=",highlighted:'candidate_labels = [<span class="hljs-string">&quot;Sound of a dog&quot;</span>, <span class="hljs-string">&quot;Sound of vacuum cleaner&quot;</span>]'}}),es=new E({props:{code:"Y2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMHRhc2slM0QlMjJ6ZXJvLXNob3QtYXVkaW8tY2xhc3NpZmljYXRpb24lMjIlMkMlMjBtb2RlbCUzRCUyMmxhaW9uJTJGY2xhcC1odHNhdC11bmZ1c2VkJTIyJTBBKSUwQWNsYXNzaWZpZXIoYXVkaW9fc2FtcGxlJTJDJTIwY2FuZGlkYXRlX2xhYmVscyUzRGNhbmRpZGF0ZV9sYWJlbHMp",highlighted:`classifier = pipeline(
    task=<span class="hljs-string">&quot;zero-shot-audio-classification&quot;</span>, model=<span class="hljs-string">&quot;laion/clap-htsat-unfused&quot;</span>
)
classifier(audio_sample, candidate_labels=candidate_labels)`}}),ss=new E({props:{code:"JTVCJTdCJ3Njb3JlJyUzQSUyMDAuOTk5NzI0MjA5MzA4NjI0MyUyQyUyMCdsYWJlbCclM0ElMjAnU291bmQlMjBvZiUyMGElMjBkb2cnJTdEJTJDJTIwJTdCJ3Njb3JlJyUzQSUyMDAuMDAwMjc1ODMyMzk3MTY0Nzc2OSUyQyUyMCdsYWJlbCclM0ElMjAnU291bmQlMjBvZiUyMHZhY3V1bSUyMGNsZWFuZXInJTdEJTVE",highlighted:'[{<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">0.9997242093086243</span>, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;Sound</span> of a dog&#x27;}, {<span class="hljs-symbol">&#x27;score</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-number">0.0002758323971647769</span>, <span class="hljs-symbol">&#x27;label</span><span class="hljs-symbol">&#x27;:</span> <span class="hljs-symbol">&#x27;Sound</span> of vacuum cleaner&#x27;}]'}}),ls=new E({props:{code:"QXVkaW8oYXVkaW8lMkMlMjByYXRlJTNEMTYwMDAp",highlighted:'Audio(audio, rate=<span class="hljs-number">16000</span>)'}}),ns=new B({}),{c(){Q=a("meta"),Pl=d(),W=a("h1"),F=a("a"),ys=a("span"),f(be.$$.fragment),ht=d(),Ms=a("span"),vt=n("Mod\xE8les et jeux de donn\xE9es pr\xE9-entra\xEEn\xE9s pour la classification d\u2019audio"),Rl=d(),m=a("p"),bt=n("Le "),qs=a("em"),yt=n("Hub"),Mt=n(" abrite "),ye=a("a"),qt=n("plusieurs centaines de mod\xE8les pr\xE9-entra\xEEn\xE9s pour la classification d\u2019audio"),jt=n(". Dans cette section, nous passerons en revue certaines des t\xE2ches de classification d\u2019audio les plus courantes et sugg\xE9rerons des mod\xE8les pr\xE9-entra\xEEn\xE9s appropri\xE9s pour chacune. En utilisant la classe "),js=a("code"),gt=n("pipeline()"),Et=n(", la commutation entre les mod\xE8les et les t\xE2ches est simple : une fois que vous savez comment utiliser "),gs=a("code"),Ut=n("pipeline()"),Jt=n(" pour un mod\xE8le, vous pourrez l\u2019utiliser pour n\u2019importe quel mod\xE8le sur le "),Es=a("em"),xt=n("Hub"),_t=n(", sans modification du code ! Cela rend l\u2019exp\xE9rimentation de la classe "),Us=a("code"),$t=n("pipeline()"),Nt=n(` extr\xEAmement rapide, ce qui vous permet de s\xE9lectionner rapidement le meilleur mod\xE8le pr\xE9-entra\xEEn\xE9 pour vos besoins.
Avant de passer aux diff\xE9rents probl\xE8mes de classification d\u2019audio, r\xE9capitulons rapidement les architectures de `),Js=a("em"),Tt=n("transformers"),wt=n(" g\xE9n\xE9ralement utilis\xE9es. L\u2019architecture standard de classification d\u2019audio est motiv\xE9e par la nature de la t\xE2che. Nous voulons transformer une s\xE9quence d\u2019entr\xE9es audio (c\u2019est-\xE0-dire notre r\xE9seau audio d\u2019entr\xE9e) en une pr\xE9diction d\u2019\xE9tiquette de classe unique. Les mod\xE8les d\u2019encodeur associent d\u2019abord la s\xE9quence audio d\u2019entr\xE9e dans une s\xE9quence de repr\xE9sentations \xE0 l\u2019\xE9tat cach\xE9 en faisant passer les entr\xE9es \xE0 travers un bloc "),xs=a("em"),Ct=n("transformer"),zt=n(". La s\xE9quence de repr\xE9sentations d\u2019\xE9tats masqu\xE9s est ensuite associ\xE9e \xE0 une sortie d\u2019\xE9tiquette de classe en prenant la moyenne sur les \xE9tats masqu\xE9s et en faisant passer le vecteur r\xE9sultant \xE0 travers une couche de classification lin\xE9aire. Par cons\xE9quent, il y a une pr\xE9f\xE9rence pour les mod\xE8les "),_s=a("em"),St=n("encodeur"),It=n(` pour la classification d\u2019audio.
Les mod\xE8les de d\xE9codeur introduisent une complexit\xE9 inutile \xE0 la t\xE2che car ils supposent que les sorties peuvent \xE9galement \xEAtre une `),$s=a("em"),At=n("s\xE9quence"),kt=n(` de pr\xE9dictions (plut\xF4t qu\u2019une pr\xE9diction d\u2019\xE9tiquette de classe unique), et g\xE9n\xE8rent ainsi plusieurs sorties. Par cons\xE9quent, ils ont une vitesse d\u2019inf\xE9rence plus lente et ont tendance \xE0 ne pas \xEAtre utilis\xE9s. Les mod\xE8les encodeur-d\xE9codeur sont largement omis pour la m\xEAme raison. Ces choix d\u2019architecture sont analogues \xE0 ceux de NLP, o\xF9 les mod\xE8les d\u2019encodeur tels que BERT sont privil\xE9gi\xE9s pour les t\xE2ches de classification de s\xE9quences, et les mod\xE8les de d\xE9codeur tels que GPT r\xE9serv\xE9s aux t\xE2ches de g\xE9n\xE9ration de s\xE9quences.
Maintenant que nous avons r\xE9capitul\xE9 l\u2019architecture du `),Ns=a("em"),Qt=n("transformer"),Wt=n(" standard pour la classification d\u2019audio, passons aux diff\xE9rents sous-ensembles de la classification d\u2019audio et couvrons les mod\xE8les les plus populaires !"),Gl=d(),Z=a("h2"),H=a("a"),Ts=a("span"),f(Me.$$.fragment),Zt=d(),ws=a("span"),Pt=n("\u{1F917} Installation de Transformers"),Ll=d(),X=a("p"),Rt=n("Au moment de la r\xE9daction de cette section, les derni\xE8res mises \xE0 jour requises pour le pipeline de classification d\u2019audio se trouvent uniquement sur la version \xAB principale \xBB du d\xE9p\xF4t \u{1F917} Transformers, plut\xF4t que sur la derni\xE8re version de PyPi. Pour nous assurer que nous avons ces mises \xE0 jour localement, nous allons installer Transformers \xE0 partir de la branche "),Cs=a("code"),Gt=n("main"),Lt=n(" avec la commande suivante :"),Dl=d(),f(qe.$$.fragment),Yl=d(),P=a("h2"),O=a("a"),zs=a("span"),f(je.$$.fragment),Dt=d(),Ss=a("span"),Yt=n("Rep\xE9rage de mots-cl\xE9s"),Vl=d(),K=a("p"),Vt=n("Le rep\xE9rage de mots cl\xE9s (KWS pour "),Is=a("em"),Bt=n("Keyword spotting"),Ft=n(") est la t\xE2che d\u2019identifier un mot-cl\xE9 dans un discours. L\u2019ensemble des mots-cl\xE9s possibles forme l\u2019ensemble des \xE9tiquettes de classe pr\xE9dites. Par cons\xE9quent, pour utiliser un mod\xE8le de rep\xE9rage de mots cl\xE9s pr\xE9-entra\xEEn\xE9, vous devez vous assurer que vos mots-cl\xE9s correspondent \xE0 ceux sur lesquels le mod\xE8le a \xE9t\xE9 pr\xE9-entra\xEEn\xE9. Ci-dessous, nous pr\xE9senterons deux jeux de donn\xE9es et mod\xE8les pour la d\xE9tection de mots cl\xE9s."),Bl=d(),R=a("h3"),ee=a("a"),As=a("span"),f(ge.$$.fragment),Ht=d(),ks=a("span"),Xt=n("MINDS-14"),Fl=d(),se=a("p"),Ot=n("Commen\xE7ons en utilisant le m\xEAme jeu de donn\xE9es "),Ee=a("a"),Kt=n("MINDS-14"),ea=n(" explor\xE9 dans l\u2019unit\xE9 pr\xE9c\xE9dente. Si vous vous souvenez, MINDS-14 contient des enregistrements de personnes posant des questions \xE0 un syst\xE8me bancaire \xE9lectronique dans plusieurs langues et dialectes, et a indique une classe d\u2019intention pour chaque enregistrement. Nous pouvons donc classer les enregistrements par intention de l\u2019appel."),Hl=d(),f(Ue.$$.fragment),Xl=d(),$=a("p"),sa=n("Nous allons charger le "),Qs=a("em"),la=n("checkpoint"),na=d(),Je=a("a"),Ws=a("code"),ta=n('"anton-l/xtreme_s_xlsr_300m_minds14"'),aa=n(", qui est un mod\xE8le XLS-R "),Zs=a("em"),oa=n("finetun\xE9"),ia=n(" sur MINDS-14 pendant environ 50 \xE9poques. Il atteint une pr\xE9cision de 90% sur toutes les langues de MINDS-14 sur l\u2019ensemble d\u2019\xE9valuation."),Ol=d(),f(xe.$$.fragment),Kl=d(),ts=a("p"),ra=n("Enfin, nous pouvons passer un \xE9chantillon au pipeline de classification pour faire une pr\xE9diction :"),en=d(),f(_e.$$.fragment),sn=d(),as=a("p"),Ps=a("strong"),ua=n("Sortie :"),ln=d(),f($e.$$.fragment),nn=d(),os=a("p"),da=n("Nous avons identifi\xE9 que l\u2019intention de l\u2019appel \xE9tait de payer une facture, avec une probabilit\xE9 de 96%. Vous pouvez imaginer que ce type de syst\xE8me de rep\xE9rage de mots-cl\xE9s soit utilis\xE9 comme premi\xE8re \xE9tape d\u2019un centre d\u2019appels automatis\xE9, o\xF9 nous voulons cat\xE9goriser les appels entrants des clients en fonction de leur requ\xEAte et leur offrir un support contextualis\xE9 en cons\xE9quence."),tn=d(),G=a("h3"),le=a("a"),Rs=a("span"),f(Ne.$$.fragment),ca=d(),Gs=a("span"),pa=n("Speech Commands"),an=d(),U=a("p"),ma=n(`Speech Commands est un jeu de donn\xE9es de mots parl\xE9s con\xE7u pour \xE9valuer les mod\xE8les de classification d\u2019audio sur des mots de commande simples.
Le jeu de donn\xE9es se compose de 15 classes de mots-cl\xE9s, d\u2019une classe pour le silence et d\u2019une classe inconnue pour inclure le faux positif.
Les 15 mots-cl\xE9s sont des mots uniques qui seraient g\xE9n\xE9ralement utilis\xE9s dans les param\xE8tres sur l\u2019appareil pour contr\xF4ler les t\xE2ches de base ou lancer d\u2019autres processus.
Un mod\xE8le similaire fonctionne en continu sur votre t\xE9l\xE9phone mobile. Ici, au lieu d\u2019avoir des mots de commande uniques, nous avons des mots de r\xE9veil sp\xE9cifiques \xE0 votre appareil, tels que \xAB Hey Google \xBB ou \xAB Hey Siri \xBB. Lorsque le mod\xE8le de classification d\u2019audio d\xE9tecte ces mots de r\xE9veil, il d\xE9clenche votre t\xE9l\xE9phone pour commencer \xE0 \xE9couter le microphone et transcrire votre discours \xE0 l\u2019aide d\u2019un mod\xE8le de reconnaissance vocale.
Le mod\xE8le de classification d\u2019audio est beaucoup plus petit et plus l\xE9ger que le mod\xE8le de reconnaissance vocale, souvent seulement quelques millions de param\xE8tres contre plusieurs centaines de millions pour la reconnaissance vocale. Ainsi, il peut fonctionner en continu sur votre appareil sans vider votre batterie ! Ce n\u2019est que lorsque le mot de r\xE9veil est d\xE9tect\xE9 que le mod\xE8le de reconnaissance vocale plus large est lanc\xE9, puis qu\u2019il est \xE0 nouveau arr\xEAt\xE9. Nous couvrirons les mod\xE8les de `),Ls=a("em"),fa=n("transformers"),ha=n(` pour la reconnaissance vocale dans la prochaine unit\xE9, donc \xE0 la fin du cours, vous devriez avoir les outils dont vous avez besoin pour construire votre propre assistant \xE0 commande vocale !
Comme pour tout jeu de donn\xE9es sur le `),Ds=a("em"),va=n("Hub"),ba=n(", nous pouvons avoir une id\xE9e de la t\xEAte des donn\xE9es sans avoir \xE0 les t\xE9l\xE9charger ou les avoir en m\xE9moire. Apr\xE8s avoir acc\xE9d\xE9 \xE0 la "),Te=a("a"),ya=n("carte du jeu de donn\xE9es Speech Commands"),Ma=n(" sur le "),Ys=a("em"),qa=n("Hub"),ja=n(", nous pouvons utiliser la visionneuse de donn\xE9es pour faire d\xE9filer les 100 premiers \xE9chantillons du jeu de donn\xE9es, \xE9couter les fichiers audio et v\xE9rifier toute autre information de m\xE9tadonn\xE9es :"),on=d(),we=a("div"),is=a("img"),rn=d(),ne=a("p"),ga=n("L\u2019aper\xE7u du jeu de donn\xE9es est un moyen de d\xE9couvrir les jeux de donn\xE9es audio avant de s\u2019engager \xE0 les utiliser. Vous pouvez choisir n\u2019importe quel jeu de donn\xE9es sur le "),Vs=a("em"),Ea=n("Hub"),Ua=n(`, faire d\xE9filer les \xE9chantillons et \xE9couter l\u2019audio pour les diff\xE9rents sous-ensembles et \xE9chantillons, en \xE9valuant s\u2019il s\u2019agit du bon jeu de donn\xE9es pour vos besoins. Une fois que vous avez s\xE9lectionn\xE9 un jeu de donn\xE9es, il est trivial de t\xE9l\xE9charger les donn\xE9es afin de pouvoir commencer \xE0 les utiliser.
Faisons cela et chargeons un \xE9chantillon du jeu de donn\xE9es Speech Commands en utilisant le mode streaming :`),un=d(),f(Ce.$$.fragment),dn=d(),N=a("p"),Ja=n("Nous allons charger un "),Bs=a("em"),xa=n("checkpoint"),_a=n(" d\u2019un "),te=a("a"),Fs=a("em"),$a=n("transformer"),Na=n(" d\u2019audio sous la forme de spectrogramme"),Ta=d(),Hs=a("em"),wa=n("finetun\xE9"),Ca=n(" sur le jeu de donn\xE9es Speech Commands :"),cn=d(),f(ze.$$.fragment),pn=d(),rs=a("p"),Xs=a("strong"),za=n("Sortie :"),mn=d(),f(Se.$$.fragment),fn=d(),ae=a("p"),Sa=n("On dirait que l\u2019exemple contient le mot "),Os=a("code"),Ia=n("backward"),Aa=n(" avec une forte probabilit\xE9. Nous pouvons \xE9couter l\u2019\xE9chantillon et v\xE9rifier qu\u2019il est correct:"),hn=d(),f(Ie.$$.fragment),vn=d(),J=a("p"),ka=n(`Vous vous demandez peut-\xEAtre comment nous avons s\xE9lectionn\xE9 les mod\xE8les pr\xE9-entra\xEEn\xE9s montr\xE9s dans ces exemples de classification d\u2019audio.
C\u2019est tr\xE8s simple ! La premi\xE8re chose que nous devons faire est de nous diriger sur le `),Ks=a("em"),Qa=n("Hub"),Wa=n(" et de cliquer sur l\u2019onglet \xAB "),el=a("em"),Za=n("Models"),Pa=n(" \xBB: "),Ae=a("a"),Ra=n("https://huggingface.co/models"),Ga=n(`
Cela va faire appara\xEEtre tous les mod\xE8les sur le `),sl=a("em"),La=n("Hub"),Da=n(" :"),bn=d(),ke=a("div"),ll=a("img"),yn=d(),us=a("p"),Ya=n("Vous remarquerez sur le c\xF4t\xE9 gauche que nous avons plusieurs onglets que nous pouvons s\xE9lectionner pour filtrer les mod\xE8les par t\xE2che, biblioth\xE8que, jeu de donn\xE9es, etc. Faites d\xE9filer vers le bas et s\xE9lectionnez la t\xE2che \xAB Classification d\u2019audio \xBB dans la liste des t\xE2ches audio:"),Mn=d(),Qe=a("div"),nl=a("img"),qn=d(),C=a("p"),Va=n("Nous voyons alors le sous-ensemble de mod\xE8les de classification d\u2019audio pr\xE9sent sur le "),tl=a("em"),Ba=n("Hub"),Fa=n(". Pour affiner davantage cette s\xE9lection, nous pouvons filtrer les mod\xE8les par jeu de donn\xE9es. Cliquez sur l\u2019onglet \xAB Jeux de donn\xE9es \xBB, et dans la zone de recherche, tapez \xAB speech_commands \xBB. Lorsque vous commencez \xE0 taper, vous verrez la s\xE9lection pour \u2018speech_commands\u2019 appara\xEEtre sous l\u2019onglet de recherche. Vous pouvez cliquer sur ce bouton pour filtrer tous les mod\xE8les de classification d\u2019audio "),al=a("em"),Ha=n("finetun\xE9"),Xa=n(" sur le jeu de donn\xE9es Speech Commands :"),jn=d(),We=a("div"),ol=a("img"),gn=d(),oe=a("p"),Oa=n("Bien, nous voyons que nous avons 6 mod\xE8les pr\xE9-entra\xEEn\xE9s \xE0 notre disposition pour ce jeu de donn\xE9es et cette t\xE2che sp\xE9cifiques. Le premier list\xE9 est celui que nous avons utilis\xE9 dans l\u2019exemple pr\xE9c\xE9dent. Ce processus de filtrage des mod\xE8les du "),il=a("em"),Ka=n("Hub"),eo=n(" est exactement la fa\xE7on dont nous avons proc\xE9d\xE9 pour choisir ce mod\xE8le."),En=d(),L=a("h2"),ie=a("a"),rl=a("span"),f(Ze.$$.fragment),so=d(),ul=a("span"),lo=n("Identification de la langue"),Un=d(),ds=a("p"),no=n("L\u2019identification de la langue est la t\xE2che d\u2019identifier la langue parl\xE9e dans un \xE9chantillon audio \xE0 partir d\u2019une liste de langues candidates. Cette t\xE2che peut jouer un r\xF4le important dans de nombreux pipelines de parole. Par exemple, \xE9tant donn\xE9 un \xE9chantillon audio dans une langue inconnue, un mod\xE8le d\u2019identification de langue peut \xEAtre utilis\xE9 pour cat\xE9goriser la ou les langues parl\xE9es dans l\u2019\xE9chantillon audio, puis s\xE9lectionner un mod\xE8le de reconnaissance vocale appropri\xE9 entra\xEEn\xE9 sur cette langue pour transcrire l\u2019audio."),Jn=d(),D=a("h3"),re=a("a"),dl=a("span"),f(Pe.$$.fragment),to=d(),cl=a("span"),ao=n("FLEURS"),xn=d(),T=a("p"),oo=n("FLEURS ("),pl=a("em"),io=n("Few-shot Learning Evaluation of Universal Representations of Speech"),ro=n(") est un jeu de donn\xE9es permettant d\u2019\xE9valuer les syst\xE8mes de reconnaissance vocale dans 102 langues, dont beaucoup sont class\xE9es comme \xE0 faibles ressources. Jetez un coup d\u2019\u0153il \xE0 la carte de FLEURS sur le "),ml=a("em"),uo=n("Hub"),co=n(" et explorez les diff\xE9rentes langues pr\xE9sentes : "),Re=a("a"),po=n("google/fleurs"),mo=n(`.
Pouvez-vous trouver votre langue maternelle ici ? Si ce n\u2019est pas le cas, quelle est la langue la plus proche ?
Chargeons un \xE9chantillon \xE0 partir de l\u2019\xE9chantillon de validation de FLEURS en utilisant le mode streaming :`),_n=d(),f(Ge.$$.fragment),$n=d(),z=a("p"),fo=n("G\xE9nial ! Nous pouvons maintenant charger notre mod\xE8le de classification d\u2019audio. Pour cela, nous utiliserons une version de "),Le=a("a"),ho=n("Whisper"),vo=d(),fl=a("em"),bo=n("finetun\xE9"),yo=n(" sur FLEURS, qui est actuellement le mod\xE8le de d\xE9tection de langue le plus performant sur le Hub:"),Nn=d(),f(De.$$.fragment),Tn=d(),cs=a("p"),Mo=n("Nous pouvons ensuite passer l\u2019audio \xE0 travers notre classifieur et g\xE9n\xE9rer une pr\xE9diction :"),wn=d(),f(Ye.$$.fragment),Cn=d(),ps=a("p"),hl=a("strong"),qo=n("Sortie :"),zn=d(),f(Ve.$$.fragment),Sn=d(),x=a("p"),jo=n("Nous pouvons voir que le mod\xE8le a pr\xE9dit que l\u2019audio \xE9tait en Afrikaans avec une probabilit\xE9 extr\xEAmement \xE9lev\xE9e. FLEURS contient des donn\xE9es audio provenant d\u2019un large \xE9ventail de langues : nous pouvons voir que les \xE9tiquettes de classe possibles incluent le sotho du Nord, l\u2019islandais, le danois et le cantonais, entre autres. Vous pouvez trouver la liste compl\xE8te des langues ici : "),Be=a("a"),go=n("google/fleurs"),Eo=n(`.
\xC0 vous de jouer ! Quels autres `),vl=a("em"),Uo=n("checkpoints"),Jo=n(" pouvez-vous trouver sur le "),bl=a("em"),xo=n("Hub"),_o=n("  afin de d\xE9tecter les langues pr\xE9sentes dans FLEURS ? Quels mod\xE8les de "),yl=a("em"),$o=n("transformers"),No=n(" utilisent-ils sous le capot ?"),In=d(),Y=a("h2"),ue=a("a"),Ml=a("span"),f(Fe.$$.fragment),To=d(),ql=a("span"),wo=n("Classification d\u2019audio en z\xE9ro-shot"),An=d(),_=a("p"),Co=n(`Dans le paradigme traditionnel de la classification d\u2019audio, le mod\xE8le pr\xE9dit une \xE9tiquette de classe \xE0 partir d\u2019un ensemble de classes pr\xE9d\xE9finies possibles. Cela constitue un obstacle \xE0 l\u2019utilisation de mod\xE8les pr\xE9-entra\xEEn\xE9s pour la classification d\u2019audio, car les \xE9tiquettes du mod\xE8le pr\xE9-entra\xEEn\xE9 doit correspondre \xE0 celui de la t\xE2che en aval. Pour l\u2019exemple pr\xE9c\xE9dent de d\xE9tection de langues, le mod\xE8le doit pr\xE9dire l\u2019une des 102 classes de langue sur lesquelles il a \xE9t\xE9 entra\xEEn\xE9. Si la t\xE2che en aval n\xE9cessite en fait 110 langues, le mod\xE8le ne serait pas en mesure de pr\xE9dire 8 des 110 langues, et n\xE9cessiterait donc un nouvel entra\xEEnement pour atteindre une couverture compl\xE8te. Cela limite l\u2019efficacit\xE9 de l\u2019apprentissage par transfert pour les t\xE2ches de classification d\u2019audio.
La classification d\u2019audio z\xE9ro-shot est une m\xE9thode permettant de prendre un mod\xE8le de classification d\u2019audio pr\xE9-entra\xEEn\xE9 entra\xEEn\xE9 sur un ensemble d\u2019exemples \xE9tiquet\xE9s et de lui permettre de classer de nouveaux exemples de classes in\xE9dites. Voyons comment nous pouvons y parvenir.
Actuellement, \u{1F917} `),jl=a("em"),zo=n("Transformers"),So=n(" prend en charge un type de mod\xE8le pour la classification d\u2019audio en z\xE9ro-shot : le "),He=a("a"),Io=n("mod\xE8le CLAP"),Ao=n(`.
CLAP est un mod\xE8le bas\xE9 sur un `),gl=a("em"),ko=n("transformer"),Qo=n(" qui prend \xE0 la fois l\u2019audio et le texte comme entr\xE9es, et calcule la "),El=a("em"),Wo=n("similitude"),Zo=n(` entre les deux.
Si nous passons une entr\xE9e de texte fortement corr\xE9l\xE9e \xE0 une entr\xE9e audio, nous obtiendrons un score de similarit\xE9 \xE9lev\xE9. Inversement, passer une entr\xE9e de texte qui n\u2019a aucun rapport avec l\u2019entr\xE9e audio renverra une faible similitude.
Nous pouvons utiliser cette pr\xE9diction de similarit\xE9 pour la classification d\u2019audio en z\xE9ro-shot en passant une entr\xE9e audio au mod\xE8le et plusieurs \xE9tiquettes candidates. Le mod\xE8le renverra un score de similarit\xE9 pour chacune des \xE9tiquettes candidates, et nous pouvons choisir celle qui a le score le plus \xE9lev\xE9 comme pr\xE9diction.`),kn=d(),de=a("p"),Po=n("Prenons un exemple o\xF9 nous utilisons une entr\xE9e audio du jeu de donn\xE9es "),Xe=a("a"),Ro=n("Environmental Speech Challenge (ESC)"),Go=n(" :"),Qn=d(),f(Oe.$$.fragment),Wn=d(),ce=a("p"),Lo=n("Nous d\xE9finissons ensuite nos \xE9tiquettes candidates, qui forment l\u2019ensemble des \xE9tiquettes de classification possibles. Le mod\xE8le renverra une probabilit\xE9 de classification pour chacune des \xE9tiquettes que nous d\xE9finissons. Cela signifie que nous devons conna\xEEtre "),Ul=a("em"),Do=n("a-priori"),Yo=n(" l\u2019ensemble des \xE9tiquettes possibles dans notre probl\xE8me de classification, de sorte que l\u2019\xE9tiquette correcte soit contenue dans l\u2019ensemble et se voie donc attribuer un score de probabilit\xE9 valide. Notez que nous pouvons soit transmettre l\u2019ensemble complet des \xE9tiquettes au mod\xE8le, soit un sous-ensemble s\xE9lectionn\xE9 \xE0 la main qui, selon nous, contient l\u2019\xE9tiquette correcte. Passer l\u2019ensemble complet des \xE9tiquettes sera plus exhaustif, mais se fait au d\xE9triment d\u2019une pr\xE9cision de classification plus faible puisque l\u2019espace de classification est plus grand (\xE0 condition que l\u2019\xE9tiquette correcte soit notre sous-ensemble d\u2019\xE9tiquettes choisi):"),Zn=d(),f(Ke.$$.fragment),Pn=d(),ms=a("p"),Vo=n("Nous pouvons parcourir les deux mod\xE8les pour trouver l\u2019\xE9tiquette candidate qui est la plus similaire \xE0 l\u2019entr\xE9e audio:"),Rn=d(),f(es.$$.fragment),Gn=d(),fs=a("p"),Jl=a("strong"),Bo=n("Sortie :"),Ln=d(),f(ss.$$.fragment),Dn=d(),hs=a("p"),Fo=n("Le mod\xE8le semble assez confiant (probabilit\xE9 de 99,97%) que nous ayons le son d\u2019un chien .Nous allons donc prendre cela comme notre pr\xE9diction. Confirmons si nous avions raison en \xE9coutant l\u2019\xE9chantillon audio (n\u2019augmentez pas trop le volume, sinon vous risquez de sursauter !):"),Yn=d(),f(ls.$$.fragment),Vn=d(),w=a("p"),Ho=n(`Parfait ! Nous avons le son d\u2019un chien qui aboie \u{1F415}, ce qui correspond \xE0 la pr\xE9diction du mod\xE8le. Jouez avec diff\xE9rents \xE9chantillons audio et diff\xE9rentes \xE9tiquettes candidates. Pouvez-vous d\xE9finir un ensemble d\u2019\xE9tiquettes qui donnent une bonne g\xE9n\xE9ralisation \xE0 travers le jeu de donn\xE9es ESC ? Astuce : pensez \xE0 l\u2019endroit o\xF9 vous pourriez trouver des informations sur les sons possibles dans ESC et construisez vos \xE9tiquettes en cons\xE9quence.
Vous vous demandez peut-\xEAtre pourquoi nous n\u2019utilisons pas le pipeline de classification d\u2019audio zero-shot pour `),xl=a("strong"),Xo=n("toutes"),Oo=n(` les t\xE2ches de classification d\u2019audio ?
Il semble que nous puissions faire des pr\xE9dictions pour n\u2019importe quel probl\xE8me de classification d\u2019audio en d\xE9finissant des \xE9tiquettes de classe appropri\xE9es `),_l=a("em"),Ko=n("\xE0 priori"),ei=n(`, contournant ainsi la contrainte dont notre t\xE2che de classification a besoin pour correspondre aux \xE9tiquettes sur lesquelles le mod\xE8le a \xE9t\xE9 pr\xE9-entra\xEEn\xE9.
Cela se r\xE9sume \xE0 la nature du mod\xE8le CLAP utilis\xE9 dans le pipeline z\xE9ro-shot. CLAP est pr\xE9-entra\xEEn\xE9 sur des donn\xE9es de classification d\u2019audio `),$l=a("em"),si=n("g\xE9n\xE9riques"),li=n(", similaires aux sons environnementaux dans le jeu de donn\xE9es ESC, plut\xF4t que sur des donn\xE9es vocales sp\xE9cifiques, comme nous l\u2019avions dans la t\xE2che de d\xE9tection de langue. Si vous lui donnez un discours en anglais et un discours en espagnol, CLAP saurait que les deux exemples \xE9taient des donn\xE9es vocales.  Mais il ne serait pas capable de diff\xE9rencier les langues de la m\xEAme mani\xE8re qu\u2019un mod\xE8le de d\xE9tection de langue d\xE9di\xE9 \xE0 cette t\xE2che."),Bn=d(),V=a("h2"),pe=a("a"),Nl=a("span"),f(ns.$$.fragment),ni=d(),Tl=a("span"),ti=n("Et ensuite ?"),Fn=d(),q=a("p"),ai=n("Nous avons couvert un certain nombre de t\xE2ches de classification d\u2019audio, pr\xE9sent\xE9 les jeux de donn\xE9es et les mod\xE8les les plus pertinents que vous pouvez t\xE9l\xE9charger \xE0 partir du "),wl=a("em"),oi=n("Hub"),ii=n(" et comment les utiliser en quelques lignes de code \xE0 l\u2019aide de la classe "),Cl=a("code"),ri=n("pipeline()"),ui=n(`. Ces t\xE2ches comprenent la d\xE9tection de mots-cl\xE9s, l\u2019identification de la langue et la classification d\u2019audio en z\xE9ro-shot.
Mais que se passe-t-il si nous voulons faire quelque chose de `),zl=a("strong"),di=n("nouveau"),ci=n(" ? Nous avons beaucoup travaill\xE9 sur les t\xE2ches de traitement de la parole, mais ce n\u2019est qu\u2019un aspect de la classification d\u2019audio. Un autre domaine populaire du traitement d\u2019audio est la "),Sl=a("strong"),pi=n("musique"),mi=n(`. Bien que la musique ait des caract\xE9ristiques intrins\xE8quement diff\xE9rentes \xE0 la parole, bon nombre des m\xEAmes principes que nous avons d\xE9j\xE0 appris peuvent \xEAtre appliqu\xE9s.
Dans la section suivante, nous allons passer en revue un guide \xE9tape par \xE9tape sur la fa\xE7on dont vous pouvez `),Il=a("em"),fi=n("finetuner"),hi=n(" un "),Al=a("em"),vi=n("transformer"),bi=n(" avec \u{1F917} "),kl=a("em"),yi=n("Transformers"),Mi=n(" sur la t\xE2che de classification de la musique. \xC0 la fin, vous aurez un "),Ql=a("em"),qi=n("checkpoint"),ji=d(),Wl=a("em"),gi=n("finetun\xE9"),Ei=n(" que vous pourrez brancher dans la classe "),Zl=a("code"),Ui=n("pipeline()"),Ji=n(", vous permettant de classer les chansons exactement de la m\xEAme mani\xE8re que nous avons class\xE9 la parole ici."),this.h()},l(e){const r=Iu('[data-svelte="svelte-1phssyn"]',document.head);Q=o(r,"META",{name:!0,content:!0}),r.forEach(l),Pl=c(e),W=o(e,"H1",{class:!0});var Xn=i(W);F=o(Xn,"A",{id:!0,class:!0,href:!0});var Ci=i(F);ys=o(Ci,"SPAN",{});var zi=i(ys);h(be.$$.fragment,zi),zi.forEach(l),Ci.forEach(l),ht=c(Xn),Ms=o(Xn,"SPAN",{});var Si=i(Ms);vt=t(Si,"Mod\xE8les et jeux de donn\xE9es pr\xE9-entra\xEEn\xE9s pour la classification d\u2019audio"),Si.forEach(l),Xn.forEach(l),Rl=c(e),m=o(e,"P",{});var j=i(m);bt=t(j,"Le "),qs=o(j,"EM",{});var Ii=i(qs);yt=t(Ii,"Hub"),Ii.forEach(l),Mt=t(j," abrite "),ye=o(j,"A",{href:!0,rel:!0});var Ai=i(ye);qt=t(Ai,"plusieurs centaines de mod\xE8les pr\xE9-entra\xEEn\xE9s pour la classification d\u2019audio"),Ai.forEach(l),jt=t(j,". Dans cette section, nous passerons en revue certaines des t\xE2ches de classification d\u2019audio les plus courantes et sugg\xE9rerons des mod\xE8les pr\xE9-entra\xEEn\xE9s appropri\xE9s pour chacune. En utilisant la classe "),js=o(j,"CODE",{});var ki=i(js);gt=t(ki,"pipeline()"),ki.forEach(l),Et=t(j,", la commutation entre les mod\xE8les et les t\xE2ches est simple : une fois que vous savez comment utiliser "),gs=o(j,"CODE",{});var Qi=i(gs);Ut=t(Qi,"pipeline()"),Qi.forEach(l),Jt=t(j," pour un mod\xE8le, vous pourrez l\u2019utiliser pour n\u2019importe quel mod\xE8le sur le "),Es=o(j,"EM",{});var Wi=i(Es);xt=t(Wi,"Hub"),Wi.forEach(l),_t=t(j,", sans modification du code ! Cela rend l\u2019exp\xE9rimentation de la classe "),Us=o(j,"CODE",{});var Zi=i(Us);$t=t(Zi,"pipeline()"),Zi.forEach(l),Nt=t(j,` extr\xEAmement rapide, ce qui vous permet de s\xE9lectionner rapidement le meilleur mod\xE8le pr\xE9-entra\xEEn\xE9 pour vos besoins.
Avant de passer aux diff\xE9rents probl\xE8mes de classification d\u2019audio, r\xE9capitulons rapidement les architectures de `),Js=o(j,"EM",{});var Pi=i(Js);Tt=t(Pi,"transformers"),Pi.forEach(l),wt=t(j," g\xE9n\xE9ralement utilis\xE9es. L\u2019architecture standard de classification d\u2019audio est motiv\xE9e par la nature de la t\xE2che. Nous voulons transformer une s\xE9quence d\u2019entr\xE9es audio (c\u2019est-\xE0-dire notre r\xE9seau audio d\u2019entr\xE9e) en une pr\xE9diction d\u2019\xE9tiquette de classe unique. Les mod\xE8les d\u2019encodeur associent d\u2019abord la s\xE9quence audio d\u2019entr\xE9e dans une s\xE9quence de repr\xE9sentations \xE0 l\u2019\xE9tat cach\xE9 en faisant passer les entr\xE9es \xE0 travers un bloc "),xs=o(j,"EM",{});var Ri=i(xs);Ct=t(Ri,"transformer"),Ri.forEach(l),zt=t(j,". La s\xE9quence de repr\xE9sentations d\u2019\xE9tats masqu\xE9s est ensuite associ\xE9e \xE0 une sortie d\u2019\xE9tiquette de classe en prenant la moyenne sur les \xE9tats masqu\xE9s et en faisant passer le vecteur r\xE9sultant \xE0 travers une couche de classification lin\xE9aire. Par cons\xE9quent, il y a une pr\xE9f\xE9rence pour les mod\xE8les "),_s=o(j,"EM",{});var Gi=i(_s);St=t(Gi,"encodeur"),Gi.forEach(l),It=t(j,` pour la classification d\u2019audio.
Les mod\xE8les de d\xE9codeur introduisent une complexit\xE9 inutile \xE0 la t\xE2che car ils supposent que les sorties peuvent \xE9galement \xEAtre une `),$s=o(j,"EM",{});var Li=i($s);At=t(Li,"s\xE9quence"),Li.forEach(l),kt=t(j,` de pr\xE9dictions (plut\xF4t qu\u2019une pr\xE9diction d\u2019\xE9tiquette de classe unique), et g\xE9n\xE8rent ainsi plusieurs sorties. Par cons\xE9quent, ils ont une vitesse d\u2019inf\xE9rence plus lente et ont tendance \xE0 ne pas \xEAtre utilis\xE9s. Les mod\xE8les encodeur-d\xE9codeur sont largement omis pour la m\xEAme raison. Ces choix d\u2019architecture sont analogues \xE0 ceux de NLP, o\xF9 les mod\xE8les d\u2019encodeur tels que BERT sont privil\xE9gi\xE9s pour les t\xE2ches de classification de s\xE9quences, et les mod\xE8les de d\xE9codeur tels que GPT r\xE9serv\xE9s aux t\xE2ches de g\xE9n\xE9ration de s\xE9quences.
Maintenant que nous avons r\xE9capitul\xE9 l\u2019architecture du `),Ns=o(j,"EM",{});var Di=i(Ns);Qt=t(Di,"transformer"),Di.forEach(l),Wt=t(j," standard pour la classification d\u2019audio, passons aux diff\xE9rents sous-ensembles de la classification d\u2019audio et couvrons les mod\xE8les les plus populaires !"),j.forEach(l),Gl=c(e),Z=o(e,"H2",{class:!0});var On=i(Z);H=o(On,"A",{id:!0,class:!0,href:!0});var Yi=i(H);Ts=o(Yi,"SPAN",{});var Vi=i(Ts);h(Me.$$.fragment,Vi),Vi.forEach(l),Yi.forEach(l),Zt=c(On),ws=o(On,"SPAN",{});var Bi=i(ws);Pt=t(Bi,"\u{1F917} Installation de Transformers"),Bi.forEach(l),On.forEach(l),Ll=c(e),X=o(e,"P",{});var Kn=i(X);Rt=t(Kn,"Au moment de la r\xE9daction de cette section, les derni\xE8res mises \xE0 jour requises pour le pipeline de classification d\u2019audio se trouvent uniquement sur la version \xAB principale \xBB du d\xE9p\xF4t \u{1F917} Transformers, plut\xF4t que sur la derni\xE8re version de PyPi. Pour nous assurer que nous avons ces mises \xE0 jour localement, nous allons installer Transformers \xE0 partir de la branche "),Cs=o(Kn,"CODE",{});var Fi=i(Cs);Gt=t(Fi,"main"),Fi.forEach(l),Lt=t(Kn," avec la commande suivante :"),Kn.forEach(l),Dl=c(e),h(qe.$$.fragment,e),Yl=c(e),P=o(e,"H2",{class:!0});var et=i(P);O=o(et,"A",{id:!0,class:!0,href:!0});var Hi=i(O);zs=o(Hi,"SPAN",{});var Xi=i(zs);h(je.$$.fragment,Xi),Xi.forEach(l),Hi.forEach(l),Dt=c(et),Ss=o(et,"SPAN",{});var Oi=i(Ss);Yt=t(Oi,"Rep\xE9rage de mots-cl\xE9s"),Oi.forEach(l),et.forEach(l),Vl=c(e),K=o(e,"P",{});var st=i(K);Vt=t(st,"Le rep\xE9rage de mots cl\xE9s (KWS pour "),Is=o(st,"EM",{});var Ki=i(Is);Bt=t(Ki,"Keyword spotting"),Ki.forEach(l),Ft=t(st,") est la t\xE2che d\u2019identifier un mot-cl\xE9 dans un discours. L\u2019ensemble des mots-cl\xE9s possibles forme l\u2019ensemble des \xE9tiquettes de classe pr\xE9dites. Par cons\xE9quent, pour utiliser un mod\xE8le de rep\xE9rage de mots cl\xE9s pr\xE9-entra\xEEn\xE9, vous devez vous assurer que vos mots-cl\xE9s correspondent \xE0 ceux sur lesquels le mod\xE8le a \xE9t\xE9 pr\xE9-entra\xEEn\xE9. Ci-dessous, nous pr\xE9senterons deux jeux de donn\xE9es et mod\xE8les pour la d\xE9tection de mots cl\xE9s."),st.forEach(l),Bl=c(e),R=o(e,"H3",{class:!0});var lt=i(R);ee=o(lt,"A",{id:!0,class:!0,href:!0});var er=i(ee);As=o(er,"SPAN",{});var sr=i(As);h(ge.$$.fragment,sr),sr.forEach(l),er.forEach(l),Ht=c(lt),ks=o(lt,"SPAN",{});var lr=i(ks);Xt=t(lr,"MINDS-14"),lr.forEach(l),lt.forEach(l),Fl=c(e),se=o(e,"P",{});var nt=i(se);Ot=t(nt,"Commen\xE7ons en utilisant le m\xEAme jeu de donn\xE9es "),Ee=o(nt,"A",{href:!0,rel:!0});var nr=i(Ee);Kt=t(nr,"MINDS-14"),nr.forEach(l),ea=t(nt," explor\xE9 dans l\u2019unit\xE9 pr\xE9c\xE9dente. Si vous vous souvenez, MINDS-14 contient des enregistrements de personnes posant des questions \xE0 un syst\xE8me bancaire \xE9lectronique dans plusieurs langues et dialectes, et a indique une classe d\u2019intention pour chaque enregistrement. Nous pouvons donc classer les enregistrements par intention de l\u2019appel."),nt.forEach(l),Hl=c(e),h(Ue.$$.fragment,e),Xl=c(e),$=o(e,"P",{});var me=i($);sa=t(me,"Nous allons charger le "),Qs=o(me,"EM",{});var tr=i(Qs);la=t(tr,"checkpoint"),tr.forEach(l),na=c(me),Je=o(me,"A",{href:!0,rel:!0});var ar=i(Je);Ws=o(ar,"CODE",{});var or=i(Ws);ta=t(or,'"anton-l/xtreme_s_xlsr_300m_minds14"'),or.forEach(l),ar.forEach(l),aa=t(me,", qui est un mod\xE8le XLS-R "),Zs=o(me,"EM",{});var ir=i(Zs);oa=t(ir,"finetun\xE9"),ir.forEach(l),ia=t(me," sur MINDS-14 pendant environ 50 \xE9poques. Il atteint une pr\xE9cision de 90% sur toutes les langues de MINDS-14 sur l\u2019ensemble d\u2019\xE9valuation."),me.forEach(l),Ol=c(e),h(xe.$$.fragment,e),Kl=c(e),ts=o(e,"P",{});var rr=i(ts);ra=t(rr,"Enfin, nous pouvons passer un \xE9chantillon au pipeline de classification pour faire une pr\xE9diction :"),rr.forEach(l),en=c(e),h(_e.$$.fragment,e),sn=c(e),as=o(e,"P",{});var ur=i(as);Ps=o(ur,"STRONG",{});var dr=i(Ps);ua=t(dr,"Sortie :"),dr.forEach(l),ur.forEach(l),ln=c(e),h($e.$$.fragment,e),nn=c(e),os=o(e,"P",{});var cr=i(os);da=t(cr,"Nous avons identifi\xE9 que l\u2019intention de l\u2019appel \xE9tait de payer une facture, avec une probabilit\xE9 de 96%. Vous pouvez imaginer que ce type de syst\xE8me de rep\xE9rage de mots-cl\xE9s soit utilis\xE9 comme premi\xE8re \xE9tape d\u2019un centre d\u2019appels automatis\xE9, o\xF9 nous voulons cat\xE9goriser les appels entrants des clients en fonction de leur requ\xEAte et leur offrir un support contextualis\xE9 en cons\xE9quence."),cr.forEach(l),tn=c(e),G=o(e,"H3",{class:!0});var tt=i(G);le=o(tt,"A",{id:!0,class:!0,href:!0});var pr=i(le);Rs=o(pr,"SPAN",{});var mr=i(Rs);h(Ne.$$.fragment,mr),mr.forEach(l),pr.forEach(l),ca=c(tt),Gs=o(tt,"SPAN",{});var fr=i(Gs);pa=t(fr,"Speech Commands"),fr.forEach(l),tt.forEach(l),an=c(e),U=o(e,"P",{});var S=i(U);ma=t(S,`Speech Commands est un jeu de donn\xE9es de mots parl\xE9s con\xE7u pour \xE9valuer les mod\xE8les de classification d\u2019audio sur des mots de commande simples.
Le jeu de donn\xE9es se compose de 15 classes de mots-cl\xE9s, d\u2019une classe pour le silence et d\u2019une classe inconnue pour inclure le faux positif.
Les 15 mots-cl\xE9s sont des mots uniques qui seraient g\xE9n\xE9ralement utilis\xE9s dans les param\xE8tres sur l\u2019appareil pour contr\xF4ler les t\xE2ches de base ou lancer d\u2019autres processus.
Un mod\xE8le similaire fonctionne en continu sur votre t\xE9l\xE9phone mobile. Ici, au lieu d\u2019avoir des mots de commande uniques, nous avons des mots de r\xE9veil sp\xE9cifiques \xE0 votre appareil, tels que \xAB Hey Google \xBB ou \xAB Hey Siri \xBB. Lorsque le mod\xE8le de classification d\u2019audio d\xE9tecte ces mots de r\xE9veil, il d\xE9clenche votre t\xE9l\xE9phone pour commencer \xE0 \xE9couter le microphone et transcrire votre discours \xE0 l\u2019aide d\u2019un mod\xE8le de reconnaissance vocale.
Le mod\xE8le de classification d\u2019audio est beaucoup plus petit et plus l\xE9ger que le mod\xE8le de reconnaissance vocale, souvent seulement quelques millions de param\xE8tres contre plusieurs centaines de millions pour la reconnaissance vocale. Ainsi, il peut fonctionner en continu sur votre appareil sans vider votre batterie ! Ce n\u2019est que lorsque le mot de r\xE9veil est d\xE9tect\xE9 que le mod\xE8le de reconnaissance vocale plus large est lanc\xE9, puis qu\u2019il est \xE0 nouveau arr\xEAt\xE9. Nous couvrirons les mod\xE8les de `),Ls=o(S,"EM",{});var hr=i(Ls);fa=t(hr,"transformers"),hr.forEach(l),ha=t(S,` pour la reconnaissance vocale dans la prochaine unit\xE9, donc \xE0 la fin du cours, vous devriez avoir les outils dont vous avez besoin pour construire votre propre assistant \xE0 commande vocale !
Comme pour tout jeu de donn\xE9es sur le `),Ds=o(S,"EM",{});var vr=i(Ds);va=t(vr,"Hub"),vr.forEach(l),ba=t(S,", nous pouvons avoir une id\xE9e de la t\xEAte des donn\xE9es sans avoir \xE0 les t\xE9l\xE9charger ou les avoir en m\xE9moire. Apr\xE8s avoir acc\xE9d\xE9 \xE0 la "),Te=o(S,"A",{href:!0,rel:!0});var br=i(Te);ya=t(br,"carte du jeu de donn\xE9es Speech Commands"),br.forEach(l),Ma=t(S," sur le "),Ys=o(S,"EM",{});var yr=i(Ys);qa=t(yr,"Hub"),yr.forEach(l),ja=t(S,", nous pouvons utiliser la visionneuse de donn\xE9es pour faire d\xE9filer les 100 premiers \xE9chantillons du jeu de donn\xE9es, \xE9couter les fichiers audio et v\xE9rifier toute autre information de m\xE9tadonn\xE9es :"),S.forEach(l),on=c(e),we=o(e,"DIV",{class:!0});var Mr=i(we);is=o(Mr,"IMG",{src:!0,alt:!0}),Mr.forEach(l),rn=c(e),ne=o(e,"P",{});var at=i(ne);ga=t(at,"L\u2019aper\xE7u du jeu de donn\xE9es est un moyen de d\xE9couvrir les jeux de donn\xE9es audio avant de s\u2019engager \xE0 les utiliser. Vous pouvez choisir n\u2019importe quel jeu de donn\xE9es sur le "),Vs=o(at,"EM",{});var qr=i(Vs);Ea=t(qr,"Hub"),qr.forEach(l),Ua=t(at,`, faire d\xE9filer les \xE9chantillons et \xE9couter l\u2019audio pour les diff\xE9rents sous-ensembles et \xE9chantillons, en \xE9valuant s\u2019il s\u2019agit du bon jeu de donn\xE9es pour vos besoins. Une fois que vous avez s\xE9lectionn\xE9 un jeu de donn\xE9es, il est trivial de t\xE9l\xE9charger les donn\xE9es afin de pouvoir commencer \xE0 les utiliser.
Faisons cela et chargeons un \xE9chantillon du jeu de donn\xE9es Speech Commands en utilisant le mode streaming :`),at.forEach(l),un=c(e),h(Ce.$$.fragment,e),dn=c(e),N=o(e,"P",{});var fe=i(N);Ja=t(fe,"Nous allons charger un "),Bs=o(fe,"EM",{});var jr=i(Bs);xa=t(jr,"checkpoint"),jr.forEach(l),_a=t(fe," d\u2019un "),te=o(fe,"A",{href:!0,rel:!0});var xi=i(te);Fs=o(xi,"EM",{});var gr=i(Fs);$a=t(gr,"transformer"),gr.forEach(l),Na=t(xi," d\u2019audio sous la forme de spectrogramme"),xi.forEach(l),Ta=c(fe),Hs=o(fe,"EM",{});var Er=i(Hs);wa=t(Er,"finetun\xE9"),Er.forEach(l),Ca=t(fe," sur le jeu de donn\xE9es Speech Commands :"),fe.forEach(l),cn=c(e),h(ze.$$.fragment,e),pn=c(e),rs=o(e,"P",{});var Ur=i(rs);Xs=o(Ur,"STRONG",{});var Jr=i(Xs);za=t(Jr,"Sortie :"),Jr.forEach(l),Ur.forEach(l),mn=c(e),h(Se.$$.fragment,e),fn=c(e),ae=o(e,"P",{});var ot=i(ae);Sa=t(ot,"On dirait que l\u2019exemple contient le mot "),Os=o(ot,"CODE",{});var xr=i(Os);Ia=t(xr,"backward"),xr.forEach(l),Aa=t(ot," avec une forte probabilit\xE9. Nous pouvons \xE9couter l\u2019\xE9chantillon et v\xE9rifier qu\u2019il est correct:"),ot.forEach(l),hn=c(e),h(Ie.$$.fragment,e),vn=c(e),J=o(e,"P",{});var I=i(J);ka=t(I,`Vous vous demandez peut-\xEAtre comment nous avons s\xE9lectionn\xE9 les mod\xE8les pr\xE9-entra\xEEn\xE9s montr\xE9s dans ces exemples de classification d\u2019audio.
C\u2019est tr\xE8s simple ! La premi\xE8re chose que nous devons faire est de nous diriger sur le `),Ks=o(I,"EM",{});var _r=i(Ks);Qa=t(_r,"Hub"),_r.forEach(l),Wa=t(I," et de cliquer sur l\u2019onglet \xAB "),el=o(I,"EM",{});var $r=i(el);Za=t($r,"Models"),$r.forEach(l),Pa=t(I," \xBB: "),Ae=o(I,"A",{href:!0,rel:!0});var Nr=i(Ae);Ra=t(Nr,"https://huggingface.co/models"),Nr.forEach(l),Ga=t(I,`
Cela va faire appara\xEEtre tous les mod\xE8les sur le `),sl=o(I,"EM",{});var Tr=i(sl);La=t(Tr,"Hub"),Tr.forEach(l),Da=t(I," :"),I.forEach(l),bn=c(e),ke=o(e,"DIV",{class:!0});var wr=i(ke);ll=o(wr,"IMG",{src:!0}),wr.forEach(l),yn=c(e),us=o(e,"P",{});var Cr=i(us);Ya=t(Cr,"Vous remarquerez sur le c\xF4t\xE9 gauche que nous avons plusieurs onglets que nous pouvons s\xE9lectionner pour filtrer les mod\xE8les par t\xE2che, biblioth\xE8que, jeu de donn\xE9es, etc. Faites d\xE9filer vers le bas et s\xE9lectionnez la t\xE2che \xAB Classification d\u2019audio \xBB dans la liste des t\xE2ches audio:"),Cr.forEach(l),Mn=c(e),Qe=o(e,"DIV",{class:!0});var zr=i(Qe);nl=o(zr,"IMG",{src:!0}),zr.forEach(l),qn=c(e),C=o(e,"P",{});var vs=i(C);Va=t(vs,"Nous voyons alors le sous-ensemble de mod\xE8les de classification d\u2019audio pr\xE9sent sur le "),tl=o(vs,"EM",{});var Sr=i(tl);Ba=t(Sr,"Hub"),Sr.forEach(l),Fa=t(vs,". Pour affiner davantage cette s\xE9lection, nous pouvons filtrer les mod\xE8les par jeu de donn\xE9es. Cliquez sur l\u2019onglet \xAB Jeux de donn\xE9es \xBB, et dans la zone de recherche, tapez \xAB speech_commands \xBB. Lorsque vous commencez \xE0 taper, vous verrez la s\xE9lection pour \u2018speech_commands\u2019 appara\xEEtre sous l\u2019onglet de recherche. Vous pouvez cliquer sur ce bouton pour filtrer tous les mod\xE8les de classification d\u2019audio "),al=o(vs,"EM",{});var Ir=i(al);Ha=t(Ir,"finetun\xE9"),Ir.forEach(l),Xa=t(vs," sur le jeu de donn\xE9es Speech Commands :"),vs.forEach(l),jn=c(e),We=o(e,"DIV",{class:!0});var Ar=i(We);ol=o(Ar,"IMG",{src:!0}),Ar.forEach(l),gn=c(e),oe=o(e,"P",{});var it=i(oe);Oa=t(it,"Bien, nous voyons que nous avons 6 mod\xE8les pr\xE9-entra\xEEn\xE9s \xE0 notre disposition pour ce jeu de donn\xE9es et cette t\xE2che sp\xE9cifiques. Le premier list\xE9 est celui que nous avons utilis\xE9 dans l\u2019exemple pr\xE9c\xE9dent. Ce processus de filtrage des mod\xE8les du "),il=o(it,"EM",{});var kr=i(il);Ka=t(kr,"Hub"),kr.forEach(l),eo=t(it," est exactement la fa\xE7on dont nous avons proc\xE9d\xE9 pour choisir ce mod\xE8le."),it.forEach(l),En=c(e),L=o(e,"H2",{class:!0});var rt=i(L);ie=o(rt,"A",{id:!0,class:!0,href:!0});var Qr=i(ie);rl=o(Qr,"SPAN",{});var Wr=i(rl);h(Ze.$$.fragment,Wr),Wr.forEach(l),Qr.forEach(l),so=c(rt),ul=o(rt,"SPAN",{});var Zr=i(ul);lo=t(Zr,"Identification de la langue"),Zr.forEach(l),rt.forEach(l),Un=c(e),ds=o(e,"P",{});var Pr=i(ds);no=t(Pr,"L\u2019identification de la langue est la t\xE2che d\u2019identifier la langue parl\xE9e dans un \xE9chantillon audio \xE0 partir d\u2019une liste de langues candidates. Cette t\xE2che peut jouer un r\xF4le important dans de nombreux pipelines de parole. Par exemple, \xE9tant donn\xE9 un \xE9chantillon audio dans une langue inconnue, un mod\xE8le d\u2019identification de langue peut \xEAtre utilis\xE9 pour cat\xE9goriser la ou les langues parl\xE9es dans l\u2019\xE9chantillon audio, puis s\xE9lectionner un mod\xE8le de reconnaissance vocale appropri\xE9 entra\xEEn\xE9 sur cette langue pour transcrire l\u2019audio."),Pr.forEach(l),Jn=c(e),D=o(e,"H3",{class:!0});var ut=i(D);re=o(ut,"A",{id:!0,class:!0,href:!0});var Rr=i(re);dl=o(Rr,"SPAN",{});var Gr=i(dl);h(Pe.$$.fragment,Gr),Gr.forEach(l),Rr.forEach(l),to=c(ut),cl=o(ut,"SPAN",{});var Lr=i(cl);ao=t(Lr,"FLEURS"),Lr.forEach(l),ut.forEach(l),xn=c(e),T=o(e,"P",{});var he=i(T);oo=t(he,"FLEURS ("),pl=o(he,"EM",{});var Dr=i(pl);io=t(Dr,"Few-shot Learning Evaluation of Universal Representations of Speech"),Dr.forEach(l),ro=t(he,") est un jeu de donn\xE9es permettant d\u2019\xE9valuer les syst\xE8mes de reconnaissance vocale dans 102 langues, dont beaucoup sont class\xE9es comme \xE0 faibles ressources. Jetez un coup d\u2019\u0153il \xE0 la carte de FLEURS sur le "),ml=o(he,"EM",{});var Yr=i(ml);uo=t(Yr,"Hub"),Yr.forEach(l),co=t(he," et explorez les diff\xE9rentes langues pr\xE9sentes : "),Re=o(he,"A",{href:!0,rel:!0});var Vr=i(Re);po=t(Vr,"google/fleurs"),Vr.forEach(l),mo=t(he,`.
Pouvez-vous trouver votre langue maternelle ici ? Si ce n\u2019est pas le cas, quelle est la langue la plus proche ?
Chargeons un \xE9chantillon \xE0 partir de l\u2019\xE9chantillon de validation de FLEURS en utilisant le mode streaming :`),he.forEach(l),_n=c(e),h(Ge.$$.fragment,e),$n=c(e),z=o(e,"P",{});var bs=i(z);fo=t(bs,"G\xE9nial ! Nous pouvons maintenant charger notre mod\xE8le de classification d\u2019audio. Pour cela, nous utiliserons une version de "),Le=o(bs,"A",{href:!0,rel:!0});var Br=i(Le);ho=t(Br,"Whisper"),Br.forEach(l),vo=c(bs),fl=o(bs,"EM",{});var Fr=i(fl);bo=t(Fr,"finetun\xE9"),Fr.forEach(l),yo=t(bs," sur FLEURS, qui est actuellement le mod\xE8le de d\xE9tection de langue le plus performant sur le Hub:"),bs.forEach(l),Nn=c(e),h(De.$$.fragment,e),Tn=c(e),cs=o(e,"P",{});var Hr=i(cs);Mo=t(Hr,"Nous pouvons ensuite passer l\u2019audio \xE0 travers notre classifieur et g\xE9n\xE9rer une pr\xE9diction :"),Hr.forEach(l),wn=c(e),h(Ye.$$.fragment,e),Cn=c(e),ps=o(e,"P",{});var Xr=i(ps);hl=o(Xr,"STRONG",{});var Or=i(hl);qo=t(Or,"Sortie :"),Or.forEach(l),Xr.forEach(l),zn=c(e),h(Ve.$$.fragment,e),Sn=c(e),x=o(e,"P",{});var A=i(x);jo=t(A,"Nous pouvons voir que le mod\xE8le a pr\xE9dit que l\u2019audio \xE9tait en Afrikaans avec une probabilit\xE9 extr\xEAmement \xE9lev\xE9e. FLEURS contient des donn\xE9es audio provenant d\u2019un large \xE9ventail de langues : nous pouvons voir que les \xE9tiquettes de classe possibles incluent le sotho du Nord, l\u2019islandais, le danois et le cantonais, entre autres. Vous pouvez trouver la liste compl\xE8te des langues ici : "),Be=o(A,"A",{href:!0,rel:!0});var Kr=i(Be);go=t(Kr,"google/fleurs"),Kr.forEach(l),Eo=t(A,`.
\xC0 vous de jouer ! Quels autres `),vl=o(A,"EM",{});var eu=i(vl);Uo=t(eu,"checkpoints"),eu.forEach(l),Jo=t(A," pouvez-vous trouver sur le "),bl=o(A,"EM",{});var su=i(bl);xo=t(su,"Hub"),su.forEach(l),_o=t(A,"  afin de d\xE9tecter les langues pr\xE9sentes dans FLEURS ? Quels mod\xE8les de "),yl=o(A,"EM",{});var lu=i(yl);$o=t(lu,"transformers"),lu.forEach(l),No=t(A," utilisent-ils sous le capot ?"),A.forEach(l),In=c(e),Y=o(e,"H2",{class:!0});var dt=i(Y);ue=o(dt,"A",{id:!0,class:!0,href:!0});var nu=i(ue);Ml=o(nu,"SPAN",{});var tu=i(Ml);h(Fe.$$.fragment,tu),tu.forEach(l),nu.forEach(l),To=c(dt),ql=o(dt,"SPAN",{});var au=i(ql);wo=t(au,"Classification d\u2019audio en z\xE9ro-shot"),au.forEach(l),dt.forEach(l),An=c(e),_=o(e,"P",{});var k=i(_);Co=t(k,`Dans le paradigme traditionnel de la classification d\u2019audio, le mod\xE8le pr\xE9dit une \xE9tiquette de classe \xE0 partir d\u2019un ensemble de classes pr\xE9d\xE9finies possibles. Cela constitue un obstacle \xE0 l\u2019utilisation de mod\xE8les pr\xE9-entra\xEEn\xE9s pour la classification d\u2019audio, car les \xE9tiquettes du mod\xE8le pr\xE9-entra\xEEn\xE9 doit correspondre \xE0 celui de la t\xE2che en aval. Pour l\u2019exemple pr\xE9c\xE9dent de d\xE9tection de langues, le mod\xE8le doit pr\xE9dire l\u2019une des 102 classes de langue sur lesquelles il a \xE9t\xE9 entra\xEEn\xE9. Si la t\xE2che en aval n\xE9cessite en fait 110 langues, le mod\xE8le ne serait pas en mesure de pr\xE9dire 8 des 110 langues, et n\xE9cessiterait donc un nouvel entra\xEEnement pour atteindre une couverture compl\xE8te. Cela limite l\u2019efficacit\xE9 de l\u2019apprentissage par transfert pour les t\xE2ches de classification d\u2019audio.
La classification d\u2019audio z\xE9ro-shot est une m\xE9thode permettant de prendre un mod\xE8le de classification d\u2019audio pr\xE9-entra\xEEn\xE9 entra\xEEn\xE9 sur un ensemble d\u2019exemples \xE9tiquet\xE9s et de lui permettre de classer de nouveaux exemples de classes in\xE9dites. Voyons comment nous pouvons y parvenir.
Actuellement, \u{1F917} `),jl=o(k,"EM",{});var ou=i(jl);zo=t(ou,"Transformers"),ou.forEach(l),So=t(k," prend en charge un type de mod\xE8le pour la classification d\u2019audio en z\xE9ro-shot : le "),He=o(k,"A",{href:!0,rel:!0});var iu=i(He);Io=t(iu,"mod\xE8le CLAP"),iu.forEach(l),Ao=t(k,`.
CLAP est un mod\xE8le bas\xE9 sur un `),gl=o(k,"EM",{});var ru=i(gl);ko=t(ru,"transformer"),ru.forEach(l),Qo=t(k," qui prend \xE0 la fois l\u2019audio et le texte comme entr\xE9es, et calcule la "),El=o(k,"EM",{});var uu=i(El);Wo=t(uu,"similitude"),uu.forEach(l),Zo=t(k,` entre les deux.
Si nous passons une entr\xE9e de texte fortement corr\xE9l\xE9e \xE0 une entr\xE9e audio, nous obtiendrons un score de similarit\xE9 \xE9lev\xE9. Inversement, passer une entr\xE9e de texte qui n\u2019a aucun rapport avec l\u2019entr\xE9e audio renverra une faible similitude.
Nous pouvons utiliser cette pr\xE9diction de similarit\xE9 pour la classification d\u2019audio en z\xE9ro-shot en passant une entr\xE9e audio au mod\xE8le et plusieurs \xE9tiquettes candidates. Le mod\xE8le renverra un score de similarit\xE9 pour chacune des \xE9tiquettes candidates, et nous pouvons choisir celle qui a le score le plus \xE9lev\xE9 comme pr\xE9diction.`),k.forEach(l),kn=c(e),de=o(e,"P",{});var ct=i(de);Po=t(ct,"Prenons un exemple o\xF9 nous utilisons une entr\xE9e audio du jeu de donn\xE9es "),Xe=o(ct,"A",{href:!0,rel:!0});var du=i(Xe);Ro=t(du,"Environmental Speech Challenge (ESC)"),du.forEach(l),Go=t(ct," :"),ct.forEach(l),Qn=c(e),h(Oe.$$.fragment,e),Wn=c(e),ce=o(e,"P",{});var pt=i(ce);Lo=t(pt,"Nous d\xE9finissons ensuite nos \xE9tiquettes candidates, qui forment l\u2019ensemble des \xE9tiquettes de classification possibles. Le mod\xE8le renverra une probabilit\xE9 de classification pour chacune des \xE9tiquettes que nous d\xE9finissons. Cela signifie que nous devons conna\xEEtre "),Ul=o(pt,"EM",{});var cu=i(Ul);Do=t(cu,"a-priori"),cu.forEach(l),Yo=t(pt," l\u2019ensemble des \xE9tiquettes possibles dans notre probl\xE8me de classification, de sorte que l\u2019\xE9tiquette correcte soit contenue dans l\u2019ensemble et se voie donc attribuer un score de probabilit\xE9 valide. Notez que nous pouvons soit transmettre l\u2019ensemble complet des \xE9tiquettes au mod\xE8le, soit un sous-ensemble s\xE9lectionn\xE9 \xE0 la main qui, selon nous, contient l\u2019\xE9tiquette correcte. Passer l\u2019ensemble complet des \xE9tiquettes sera plus exhaustif, mais se fait au d\xE9triment d\u2019une pr\xE9cision de classification plus faible puisque l\u2019espace de classification est plus grand (\xE0 condition que l\u2019\xE9tiquette correcte soit notre sous-ensemble d\u2019\xE9tiquettes choisi):"),pt.forEach(l),Zn=c(e),h(Ke.$$.fragment,e),Pn=c(e),ms=o(e,"P",{});var pu=i(ms);Vo=t(pu,"Nous pouvons parcourir les deux mod\xE8les pour trouver l\u2019\xE9tiquette candidate qui est la plus similaire \xE0 l\u2019entr\xE9e audio:"),pu.forEach(l),Rn=c(e),h(es.$$.fragment,e),Gn=c(e),fs=o(e,"P",{});var mu=i(fs);Jl=o(mu,"STRONG",{});var fu=i(Jl);Bo=t(fu,"Sortie :"),fu.forEach(l),mu.forEach(l),Ln=c(e),h(ss.$$.fragment,e),Dn=c(e),hs=o(e,"P",{});var hu=i(hs);Fo=t(hu,"Le mod\xE8le semble assez confiant (probabilit\xE9 de 99,97%) que nous ayons le son d\u2019un chien .Nous allons donc prendre cela comme notre pr\xE9diction. Confirmons si nous avions raison en \xE9coutant l\u2019\xE9chantillon audio (n\u2019augmentez pas trop le volume, sinon vous risquez de sursauter !):"),hu.forEach(l),Yn=c(e),h(ls.$$.fragment,e),Vn=c(e),w=o(e,"P",{});var ve=i(w);Ho=t(ve,`Parfait ! Nous avons le son d\u2019un chien qui aboie \u{1F415}, ce qui correspond \xE0 la pr\xE9diction du mod\xE8le. Jouez avec diff\xE9rents \xE9chantillons audio et diff\xE9rentes \xE9tiquettes candidates. Pouvez-vous d\xE9finir un ensemble d\u2019\xE9tiquettes qui donnent une bonne g\xE9n\xE9ralisation \xE0 travers le jeu de donn\xE9es ESC ? Astuce : pensez \xE0 l\u2019endroit o\xF9 vous pourriez trouver des informations sur les sons possibles dans ESC et construisez vos \xE9tiquettes en cons\xE9quence.
Vous vous demandez peut-\xEAtre pourquoi nous n\u2019utilisons pas le pipeline de classification d\u2019audio zero-shot pour `),xl=o(ve,"STRONG",{});var vu=i(xl);Xo=t(vu,"toutes"),vu.forEach(l),Oo=t(ve,` les t\xE2ches de classification d\u2019audio ?
Il semble que nous puissions faire des pr\xE9dictions pour n\u2019importe quel probl\xE8me de classification d\u2019audio en d\xE9finissant des \xE9tiquettes de classe appropri\xE9es `),_l=o(ve,"EM",{});var bu=i(_l);Ko=t(bu,"\xE0 priori"),bu.forEach(l),ei=t(ve,`, contournant ainsi la contrainte dont notre t\xE2che de classification a besoin pour correspondre aux \xE9tiquettes sur lesquelles le mod\xE8le a \xE9t\xE9 pr\xE9-entra\xEEn\xE9.
Cela se r\xE9sume \xE0 la nature du mod\xE8le CLAP utilis\xE9 dans le pipeline z\xE9ro-shot. CLAP est pr\xE9-entra\xEEn\xE9 sur des donn\xE9es de classification d\u2019audio `),$l=o(ve,"EM",{});var yu=i($l);si=t(yu,"g\xE9n\xE9riques"),yu.forEach(l),li=t(ve,", similaires aux sons environnementaux dans le jeu de donn\xE9es ESC, plut\xF4t que sur des donn\xE9es vocales sp\xE9cifiques, comme nous l\u2019avions dans la t\xE2che de d\xE9tection de langue. Si vous lui donnez un discours en anglais et un discours en espagnol, CLAP saurait que les deux exemples \xE9taient des donn\xE9es vocales.  Mais il ne serait pas capable de diff\xE9rencier les langues de la m\xEAme mani\xE8re qu\u2019un mod\xE8le de d\xE9tection de langue d\xE9di\xE9 \xE0 cette t\xE2che."),ve.forEach(l),Bn=c(e),V=o(e,"H2",{class:!0});var mt=i(V);pe=o(mt,"A",{id:!0,class:!0,href:!0});var Mu=i(pe);Nl=o(Mu,"SPAN",{});var qu=i(Nl);h(ns.$$.fragment,qu),qu.forEach(l),Mu.forEach(l),ni=c(mt),Tl=o(mt,"SPAN",{});var ju=i(Tl);ti=t(ju,"Et ensuite ?"),ju.forEach(l),mt.forEach(l),Fn=c(e),q=o(e,"P",{});var g=i(q);ai=t(g,"Nous avons couvert un certain nombre de t\xE2ches de classification d\u2019audio, pr\xE9sent\xE9 les jeux de donn\xE9es et les mod\xE8les les plus pertinents que vous pouvez t\xE9l\xE9charger \xE0 partir du "),wl=o(g,"EM",{});var gu=i(wl);oi=t(gu,"Hub"),gu.forEach(l),ii=t(g," et comment les utiliser en quelques lignes de code \xE0 l\u2019aide de la classe "),Cl=o(g,"CODE",{});var Eu=i(Cl);ri=t(Eu,"pipeline()"),Eu.forEach(l),ui=t(g,`. Ces t\xE2ches comprenent la d\xE9tection de mots-cl\xE9s, l\u2019identification de la langue et la classification d\u2019audio en z\xE9ro-shot.
Mais que se passe-t-il si nous voulons faire quelque chose de `),zl=o(g,"STRONG",{});var Uu=i(zl);di=t(Uu,"nouveau"),Uu.forEach(l),ci=t(g," ? Nous avons beaucoup travaill\xE9 sur les t\xE2ches de traitement de la parole, mais ce n\u2019est qu\u2019un aspect de la classification d\u2019audio. Un autre domaine populaire du traitement d\u2019audio est la "),Sl=o(g,"STRONG",{});var Ju=i(Sl);pi=t(Ju,"musique"),Ju.forEach(l),mi=t(g,`. Bien que la musique ait des caract\xE9ristiques intrins\xE8quement diff\xE9rentes \xE0 la parole, bon nombre des m\xEAmes principes que nous avons d\xE9j\xE0 appris peuvent \xEAtre appliqu\xE9s.
Dans la section suivante, nous allons passer en revue un guide \xE9tape par \xE9tape sur la fa\xE7on dont vous pouvez `),Il=o(g,"EM",{});var xu=i(Il);fi=t(xu,"finetuner"),xu.forEach(l),hi=t(g," un "),Al=o(g,"EM",{});var _u=i(Al);vi=t(_u,"transformer"),_u.forEach(l),bi=t(g," avec \u{1F917} "),kl=o(g,"EM",{});var $u=i(kl);yi=t($u,"Transformers"),$u.forEach(l),Mi=t(g," sur la t\xE2che de classification de la musique. \xC0 la fin, vous aurez un "),Ql=o(g,"EM",{});var Nu=i(Ql);qi=t(Nu,"checkpoint"),Nu.forEach(l),ji=c(g),Wl=o(g,"EM",{});var Tu=i(Wl);gi=t(Tu,"finetun\xE9"),Tu.forEach(l),Ei=t(g," que vous pourrez brancher dans la classe "),Zl=o(g,"CODE",{});var wu=i(Zl);Ui=t(wu,"pipeline()"),wu.forEach(l),Ji=t(g,", vous permettant de classer les chansons exactement de la m\xEAme mani\xE8re que nous avons class\xE9 la parole ici."),g.forEach(l),this.h()},h(){p(Q,"name","hf:doc:metadata"),p(Q,"content",JSON.stringify(Wu)),p(F,"id","modles-et-jeux-de-donnes-prentrans-pour-la-classification-daudio"),p(F,"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"),p(F,"href","#modles-et-jeux-de-donnes-prentrans-pour-la-classification-daudio"),p(W,"class","relative group"),p(ye,"href","https://huggingface.co/models?pipeline_tag=audio-classification"),p(ye,"rel","nofollow"),p(H,"id","installation-de-transformers"),p(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"),p(H,"href","#installation-de-transformers"),p(Z,"class","relative group"),p(O,"id","reprage-de-motscls"),p(O,"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"),p(O,"href","#reprage-de-motscls"),p(P,"class","relative group"),p(ee,"id","minds14"),p(ee,"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"),p(ee,"href","#minds14"),p(R,"class","relative group"),p(Ee,"href","https://huggingface.co/datasets/PolyAI/minds14"),p(Ee,"rel","nofollow"),p(Je,"href","https://huggingface.co/anton-l/xtreme_s_xlsr_300m_minds14"),p(Je,"rel","nofollow"),p(le,"id","speech-commands"),p(le,"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"),p(le,"href","#speech-commands"),p(G,"class","relative group"),p(Te,"href","https://huggingface.co/datasets/speech_commands"),p(Te,"rel","nofollow"),ft(is.src,$i="https://huggingface.co/datasets/huggingface-course/audio-course-images/resolve/main/speech_commands.png")||p(is,"src",$i),p(is,"alt","Diagram of datasets viewer."),p(we,"class","flex justify-center"),p(te,"href","https://huggingface.co/docs/transformers/model_doc/audio-spectrogramme-transformer"),p(te,"rel","nofollow"),p(Ae,"href","https://huggingface.co/models"),p(Ae,"rel","nofollow"),ft(ll.src,Ni="https://huggingface.co/datasets/huggingface-course/audio-course-images/resolve/main/all_models.png")||p(ll,"src",Ni),p(ke,"class","flex justify-center"),ft(nl.src,Ti="https://huggingface.co/datasets/huggingface-course/audio-course-images/resolve/main/by_audio_classification.png")||p(nl,"src",Ti),p(Qe,"class","flex justify-center"),ft(ol.src,wi="https://huggingface.co/datasets/huggingface-course/audio-course-images/resolve/main/by_speech_commands.png")||p(ol,"src",wi),p(We,"class","flex justify-center"),p(ie,"id","identification-de-la-langue"),p(ie,"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"),p(ie,"href","#identification-de-la-langue"),p(L,"class","relative group"),p(re,"id","fleurs"),p(re,"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"),p(re,"href","#fleurs"),p(D,"class","relative group"),p(Re,"href","https://huggingface.co/datasets/google/fleurs"),p(Re,"rel","nofollow"),p(Le,"href","https://arxiv.org/pdf/2212.04356.pdf"),p(Le,"rel","nofollow"),p(Be,"href","https://huggingface.co/datasets/google/fleurs"),p(Be,"rel","nofollow"),p(ue,"id","classification-daudio-en-zroshot"),p(ue,"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"),p(ue,"href","#classification-daudio-en-zroshot"),p(Y,"class","relative group"),p(He,"href","https://huggingface.co/docs/transformers/model_doc/clap"),p(He,"rel","nofollow"),p(Xe,"href","https://huggingface.co/datasets/ashraq/esc50"),p(Xe,"rel","nofollow"),p(pe,"id","et-ensuite"),p(pe,"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"),p(pe,"href","#et-ensuite"),p(V,"class","relative group")},m(e,r){s(document.head,Q),u(e,Pl,r),u(e,W,r),s(W,F),s(F,ys),v(be,ys,null),s(W,ht),s(W,Ms),s(Ms,vt),u(e,Rl,r),u(e,m,r),s(m,bt),s(m,qs),s(qs,yt),s(m,Mt),s(m,ye),s(ye,qt),s(m,jt),s(m,js),s(js,gt),s(m,Et),s(m,gs),s(gs,Ut),s(m,Jt),s(m,Es),s(Es,xt),s(m,_t),s(m,Us),s(Us,$t),s(m,Nt),s(m,Js),s(Js,Tt),s(m,wt),s(m,xs),s(xs,Ct),s(m,zt),s(m,_s),s(_s,St),s(m,It),s(m,$s),s($s,At),s(m,kt),s(m,Ns),s(Ns,Qt),s(m,Wt),u(e,Gl,r),u(e,Z,r),s(Z,H),s(H,Ts),v(Me,Ts,null),s(Z,Zt),s(Z,ws),s(ws,Pt),u(e,Ll,r),u(e,X,r),s(X,Rt),s(X,Cs),s(Cs,Gt),s(X,Lt),u(e,Dl,r),v(qe,e,r),u(e,Yl,r),u(e,P,r),s(P,O),s(O,zs),v(je,zs,null),s(P,Dt),s(P,Ss),s(Ss,Yt),u(e,Vl,r),u(e,K,r),s(K,Vt),s(K,Is),s(Is,Bt),s(K,Ft),u(e,Bl,r),u(e,R,r),s(R,ee),s(ee,As),v(ge,As,null),s(R,Ht),s(R,ks),s(ks,Xt),u(e,Fl,r),u(e,se,r),s(se,Ot),s(se,Ee),s(Ee,Kt),s(se,ea),u(e,Hl,r),v(Ue,e,r),u(e,Xl,r),u(e,$,r),s($,sa),s($,Qs),s(Qs,la),s($,na),s($,Je),s(Je,Ws),s(Ws,ta),s($,aa),s($,Zs),s(Zs,oa),s($,ia),u(e,Ol,r),v(xe,e,r),u(e,Kl,r),u(e,ts,r),s(ts,ra),u(e,en,r),v(_e,e,r),u(e,sn,r),u(e,as,r),s(as,Ps),s(Ps,ua),u(e,ln,r),v($e,e,r),u(e,nn,r),u(e,os,r),s(os,da),u(e,tn,r),u(e,G,r),s(G,le),s(le,Rs),v(Ne,Rs,null),s(G,ca),s(G,Gs),s(Gs,pa),u(e,an,r),u(e,U,r),s(U,ma),s(U,Ls),s(Ls,fa),s(U,ha),s(U,Ds),s(Ds,va),s(U,ba),s(U,Te),s(Te,ya),s(U,Ma),s(U,Ys),s(Ys,qa),s(U,ja),u(e,on,r),u(e,we,r),s(we,is),u(e,rn,r),u(e,ne,r),s(ne,ga),s(ne,Vs),s(Vs,Ea),s(ne,Ua),u(e,un,r),v(Ce,e,r),u(e,dn,r),u(e,N,r),s(N,Ja),s(N,Bs),s(Bs,xa),s(N,_a),s(N,te),s(te,Fs),s(Fs,$a),s(te,Na),s(N,Ta),s(N,Hs),s(Hs,wa),s(N,Ca),u(e,cn,r),v(ze,e,r),u(e,pn,r),u(e,rs,r),s(rs,Xs),s(Xs,za),u(e,mn,r),v(Se,e,r),u(e,fn,r),u(e,ae,r),s(ae,Sa),s(ae,Os),s(Os,Ia),s(ae,Aa),u(e,hn,r),v(Ie,e,r),u(e,vn,r),u(e,J,r),s(J,ka),s(J,Ks),s(Ks,Qa),s(J,Wa),s(J,el),s(el,Za),s(J,Pa),s(J,Ae),s(Ae,Ra),s(J,Ga),s(J,sl),s(sl,La),s(J,Da),u(e,bn,r),u(e,ke,r),s(ke,ll),u(e,yn,r),u(e,us,r),s(us,Ya),u(e,Mn,r),u(e,Qe,r),s(Qe,nl),u(e,qn,r),u(e,C,r),s(C,Va),s(C,tl),s(tl,Ba),s(C,Fa),s(C,al),s(al,Ha),s(C,Xa),u(e,jn,r),u(e,We,r),s(We,ol),u(e,gn,r),u(e,oe,r),s(oe,Oa),s(oe,il),s(il,Ka),s(oe,eo),u(e,En,r),u(e,L,r),s(L,ie),s(ie,rl),v(Ze,rl,null),s(L,so),s(L,ul),s(ul,lo),u(e,Un,r),u(e,ds,r),s(ds,no),u(e,Jn,r),u(e,D,r),s(D,re),s(re,dl),v(Pe,dl,null),s(D,to),s(D,cl),s(cl,ao),u(e,xn,r),u(e,T,r),s(T,oo),s(T,pl),s(pl,io),s(T,ro),s(T,ml),s(ml,uo),s(T,co),s(T,Re),s(Re,po),s(T,mo),u(e,_n,r),v(Ge,e,r),u(e,$n,r),u(e,z,r),s(z,fo),s(z,Le),s(Le,ho),s(z,vo),s(z,fl),s(fl,bo),s(z,yo),u(e,Nn,r),v(De,e,r),u(e,Tn,r),u(e,cs,r),s(cs,Mo),u(e,wn,r),v(Ye,e,r),u(e,Cn,r),u(e,ps,r),s(ps,hl),s(hl,qo),u(e,zn,r),v(Ve,e,r),u(e,Sn,r),u(e,x,r),s(x,jo),s(x,Be),s(Be,go),s(x,Eo),s(x,vl),s(vl,Uo),s(x,Jo),s(x,bl),s(bl,xo),s(x,_o),s(x,yl),s(yl,$o),s(x,No),u(e,In,r),u(e,Y,r),s(Y,ue),s(ue,Ml),v(Fe,Ml,null),s(Y,To),s(Y,ql),s(ql,wo),u(e,An,r),u(e,_,r),s(_,Co),s(_,jl),s(jl,zo),s(_,So),s(_,He),s(He,Io),s(_,Ao),s(_,gl),s(gl,ko),s(_,Qo),s(_,El),s(El,Wo),s(_,Zo),u(e,kn,r),u(e,de,r),s(de,Po),s(de,Xe),s(Xe,Ro),s(de,Go),u(e,Qn,r),v(Oe,e,r),u(e,Wn,r),u(e,ce,r),s(ce,Lo),s(ce,Ul),s(Ul,Do),s(ce,Yo),u(e,Zn,r),v(Ke,e,r),u(e,Pn,r),u(e,ms,r),s(ms,Vo),u(e,Rn,r),v(es,e,r),u(e,Gn,r),u(e,fs,r),s(fs,Jl),s(Jl,Bo),u(e,Ln,r),v(ss,e,r),u(e,Dn,r),u(e,hs,r),s(hs,Fo),u(e,Yn,r),v(ls,e,r),u(e,Vn,r),u(e,w,r),s(w,Ho),s(w,xl),s(xl,Xo),s(w,Oo),s(w,_l),s(_l,Ko),s(w,ei),s(w,$l),s($l,si),s(w,li),u(e,Bn,r),u(e,V,r),s(V,pe),s(pe,Nl),v(ns,Nl,null),s(V,ni),s(V,Tl),s(Tl,ti),u(e,Fn,r),u(e,q,r),s(q,ai),s(q,wl),s(wl,oi),s(q,ii),s(q,Cl),s(Cl,ri),s(q,ui),s(q,zl),s(zl,di),s(q,ci),s(q,Sl),s(Sl,pi),s(q,mi),s(q,Il),s(Il,fi),s(q,hi),s(q,Al),s(Al,vi),s(q,bi),s(q,kl),s(kl,yi),s(q,Mi),s(q,Ql),s(Ql,qi),s(q,ji),s(q,Wl),s(Wl,gi),s(q,Ei),s(q,Zl),s(Zl,Ui),s(q,Ji),Hn=!0},p:Au,i(e){Hn||(b(be.$$.fragment,e),b(Me.$$.fragment,e),b(qe.$$.fragment,e),b(je.$$.fragment,e),b(ge.$$.fragment,e),b(Ue.$$.fragment,e),b(xe.$$.fragment,e),b(_e.$$.fragment,e),b($e.$$.fragment,e),b(Ne.$$.fragment,e),b(Ce.$$.fragment,e),b(ze.$$.fragment,e),b(Se.$$.fragment,e),b(Ie.$$.fragment,e),b(Ze.$$.fragment,e),b(Pe.$$.fragment,e),b(Ge.$$.fragment,e),b(De.$$.fragment,e),b(Ye.$$.fragment,e),b(Ve.$$.fragment,e),b(Fe.$$.fragment,e),b(Oe.$$.fragment,e),b(Ke.$$.fragment,e),b(es.$$.fragment,e),b(ss.$$.fragment,e),b(ls.$$.fragment,e),b(ns.$$.fragment,e),Hn=!0)},o(e){y(be.$$.fragment,e),y(Me.$$.fragment,e),y(qe.$$.fragment,e),y(je.$$.fragment,e),y(ge.$$.fragment,e),y(Ue.$$.fragment,e),y(xe.$$.fragment,e),y(_e.$$.fragment,e),y($e.$$.fragment,e),y(Ne.$$.fragment,e),y(Ce.$$.fragment,e),y(ze.$$.fragment,e),y(Se.$$.fragment,e),y(Ie.$$.fragment,e),y(Ze.$$.fragment,e),y(Pe.$$.fragment,e),y(Ge.$$.fragment,e),y(De.$$.fragment,e),y(Ye.$$.fragment,e),y(Ve.$$.fragment,e),y(Fe.$$.fragment,e),y(Oe.$$.fragment,e),y(Ke.$$.fragment,e),y(es.$$.fragment,e),y(ss.$$.fragment,e),y(ls.$$.fragment,e),y(ns.$$.fragment,e),Hn=!1},d(e){l(Q),e&&l(Pl),e&&l(W),M(be),e&&l(Rl),e&&l(m),e&&l(Gl),e&&l(Z),M(Me),e&&l(Ll),e&&l(X),e&&l(Dl),M(qe,e),e&&l(Yl),e&&l(P),M(je),e&&l(Vl),e&&l(K),e&&l(Bl),e&&l(R),M(ge),e&&l(Fl),e&&l(se),e&&l(Hl),M(Ue,e),e&&l(Xl),e&&l($),e&&l(Ol),M(xe,e),e&&l(Kl),e&&l(ts),e&&l(en),M(_e,e),e&&l(sn),e&&l(as),e&&l(ln),M($e,e),e&&l(nn),e&&l(os),e&&l(tn),e&&l(G),M(Ne),e&&l(an),e&&l(U),e&&l(on),e&&l(we),e&&l(rn),e&&l(ne),e&&l(un),M(Ce,e),e&&l(dn),e&&l(N),e&&l(cn),M(ze,e),e&&l(pn),e&&l(rs),e&&l(mn),M(Se,e),e&&l(fn),e&&l(ae),e&&l(hn),M(Ie,e),e&&l(vn),e&&l(J),e&&l(bn),e&&l(ke),e&&l(yn),e&&l(us),e&&l(Mn),e&&l(Qe),e&&l(qn),e&&l(C),e&&l(jn),e&&l(We),e&&l(gn),e&&l(oe),e&&l(En),e&&l(L),M(Ze),e&&l(Un),e&&l(ds),e&&l(Jn),e&&l(D),M(Pe),e&&l(xn),e&&l(T),e&&l(_n),M(Ge,e),e&&l($n),e&&l(z),e&&l(Nn),M(De,e),e&&l(Tn),e&&l(cs),e&&l(wn),M(Ye,e),e&&l(Cn),e&&l(ps),e&&l(zn),M(Ve,e),e&&l(Sn),e&&l(x),e&&l(In),e&&l(Y),M(Fe),e&&l(An),e&&l(_),e&&l(kn),e&&l(de),e&&l(Qn),M(Oe,e),e&&l(Wn),e&&l(ce),e&&l(Zn),M(Ke,e),e&&l(Pn),e&&l(ms),e&&l(Rn),M(es,e),e&&l(Gn),e&&l(fs),e&&l(Ln),M(ss,e),e&&l(Dn),e&&l(hs),e&&l(Yn),M(ls,e),e&&l(Vn),e&&l(w),e&&l(Bn),e&&l(V),M(ns),e&&l(Fn),e&&l(q)}}}const Wu={local:"modles-et-jeux-de-donnes-prentrans-pour-la-classification-daudio",sections:[{local:"installation-de-transformers",title:"\u{1F917} Installation de Transformers"},{local:"reprage-de-motscls",sections:[{local:"minds14",title:"MINDS-14"},{local:"speech-commands",title:"Speech Commands"}],title:"Rep\xE9rage de mots-cl\xE9s"},{local:"identification-de-la-langue",sections:[{local:"fleurs",title:"FLEURS"}],title:"Identification de la langue"},{local:"classification-daudio-en-zroshot",title:"Classification d\u2019audio en z\xE9ro-shot"},{local:"et-ensuite",title:"Et ensuite ?"}],title:"Mod\xE8les et jeux de donn\xE9es pr\xE9-entra\xEEn\xE9s pour la classification d\u2019audio"};function Zu(_i){return ku(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Lu extends Cu{constructor(Q){super();zu(this,Q,Zu,Qu,Su,{})}}export{Lu as default,Wu as metadata};
