import{s as Te,n as je,o as he}from"../chunks/scheduler.a045fce0.js";import{S as be,i as qe,e as i,s as l,c as u,h as $e,a as o,d as t,b as a,f as ye,g as p,j as f,k as Je,l as ge,m as n,n as r,t as m,o as c,p as d}from"../chunks/index.5135b896.js";import{C as Ue,H as ve,E as we}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.c28af3fb.js";import{C as A}from"../chunks/CodeBlock.5fa142b8.js";function Ce(ie){let M,G,W,Z,y,Q,J,F,T,oe=`La classification audio consiste à attribuer une ou plusieurs étiquettes à un enregistrement audio en fonction de son contenu.
Les étiquettes peuvent correspondre à différentes catégories sonores, telles que la musique, la parole ou le bruit, ou à des catégories plus spécifiques telles que le chant d’oiseaux ou les sons de moteur de voiture.
Avant de plonger dans les détails du fonctionnement des <em>transformers</em> audio les plus populaires, et avant de finetuner un modèle personnalisé, voyons comment vous pouvez utiliser un modèle pré-entraîné standard pour la classification audio avec seulement quelques lignes de code avec 🤗 <em>Transformers</em>.
Utilisons le même jeu de données <a href="https://huggingface.co/datasets/PolyAI/minds14" rel="nofollow">MINDS-14</a> que vous avez exploré dans l’unité précédente.
Si vous vous souvenez, MINDS-14 contient des enregistrements de personnes posant des questions à un système bancaire électronique dans plusieurs langues et dialectes, et a le <code>intent_class</code> pour chaque enregistrement. Nous pouvons classer les enregistrements par intention de l’appel.`,S,j,ue="Comme précédemment, commençons par charger le sous-ensemble <code>en-AU</code> pour essayer le pipeline, et suréchantillonnons-le à un taux d’échantillonnage de 16 kHz, ce qui est ce que la plupart des modèles vocaux exigent.",B,h,R,b,pe=`Pour classer un enregistrement audio dans un ensemble de classes, nous pouvons utiliser le pipeline <code>audio-classification</code> de 🤗 <em>Transformers</em>.
Dans notre cas, nous avons besoin d’un modèle qui a été finetuné pour la classification des intentions, et en particulier sur le jeu de données MINDS-14. Heureusement pour nous, le <em>Hub</em> a un modèle qui fait exactement cela ! Chargeons-le en utilisant la fonction <code>pipeline()</code> :`,D,q,L,$,re="Ce pipeline attend les données audio sous forme de tableau NumPy. Tout le prétraitement des données audio brutes sera commodément géré pour nous par le pipeline. Choisissons un exemple pour l’essayer :",H,g,V,U,me="Si vous vous souvenez de la structure du jeu de données, les données audio brutes sont stockées dans un tableau NumPy sous <code>[&quot;audio&quot;][&quot;array&quot;]</code>, passons-les directement au <code>classifier</code> :",P,v,X,w,ce="<strong>Sortie :</strong>",Y,C,O,I,de="Le modèle est très confiant que l’appelant avait l’intention d’apprendre à payer sa facture. Voyons quelle est l’étiquette réelle pour cet exemple:",K,x,ee,z,Me="<strong>Sortie :</strong>",se,k,te,_,fe=`L’étiquette prédite est correcte ! Ici, nous avons eu la chance de trouver un modèle capable de classer les étiquettes exactes dont nous avons besoin.
Souvent, lorsqu’il s’agit d’une tâche de classification, l’ensemble de classes d’un modèle pré-entraîné n’est pas exactement le même que les classes que vous devez distinguer par le modèle.
Dans ce cas, vous pouvez finetuner un modèle pré-entraîné pour le « calibrer » en fonction de votre ensemble exact d’étiquettes de classe. Nous apprendrons comment le faire dans les prochaines unités.`,ne,N,le,E,ae;return y=new Ue({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),J=new ve({props:{title:"Classification audio avec un pipeline",local:"classification-audio-avec-un-pipeline",headingTag:"h1"}}),h=new A({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}}),q=new A({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}}),g=new A({props:{code:"ZXhhbXBsZSUyMCUzRCUyMG1pbmRzJTVCMCU1RA==",highlighted:'example = minds[<span class="hljs-number">0</span>]',wrap:!1}}),v=new A({props:{code:"Y2xhc3NpZmllcihleGFtcGxlJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCk=",highlighted:'classifier(example[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>])',wrap:!1}}),C=new A({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}}),x=new A({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}}),k=new A({props:{code:"JTIycGF5X2JpbGwlMjI=",highlighted:'<span class="hljs-string">&quot;pay_bill&quot;</span>',wrap:!1}}),N=new we({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/fr/chapter2/audio_classification_pipeline.mdx"}}),{c(){M=i("meta"),G=l(),W=i("p"),Z=l(),u(y.$$.fragment),Q=l(),u(J.$$.fragment),F=l(),T=i("p"),T.innerHTML=oe,S=l(),j=i("p"),j.innerHTML=ue,B=l(),u(h.$$.fragment),R=l(),b=i("p"),b.innerHTML=pe,D=l(),u(q.$$.fragment),L=l(),$=i("p"),$.textContent=re,H=l(),u(g.$$.fragment),V=l(),U=i("p"),U.innerHTML=me,P=l(),u(v.$$.fragment),X=l(),w=i("p"),w.innerHTML=ce,Y=l(),u(C.$$.fragment),O=l(),I=i("p"),I.textContent=de,K=l(),u(x.$$.fragment),ee=l(),z=i("p"),z.innerHTML=Me,se=l(),u(k.$$.fragment),te=l(),_=i("p"),_.textContent=fe,ne=l(),u(N.$$.fragment),le=l(),E=i("p"),this.h()},l(e){const s=$e("svelte-u9bgzb",document.head);M=o(s,"META",{name:!0,content:!0}),s.forEach(t),G=a(e),W=o(e,"P",{}),ye(W).forEach(t),Z=a(e),p(y.$$.fragment,e),Q=a(e),p(J.$$.fragment,e),F=a(e),T=o(e,"P",{"data-svelte-h":!0}),f(T)!=="svelte-rvzziw"&&(T.innerHTML=oe),S=a(e),j=o(e,"P",{"data-svelte-h":!0}),f(j)!=="svelte-wbkria"&&(j.innerHTML=ue),B=a(e),p(h.$$.fragment,e),R=a(e),b=o(e,"P",{"data-svelte-h":!0}),f(b)!=="svelte-12hj9jn"&&(b.innerHTML=pe),D=a(e),p(q.$$.fragment,e),L=a(e),$=o(e,"P",{"data-svelte-h":!0}),f($)!=="svelte-b3mk4t"&&($.textContent=re),H=a(e),p(g.$$.fragment,e),V=a(e),U=o(e,"P",{"data-svelte-h":!0}),f(U)!=="svelte-1tkv2"&&(U.innerHTML=me),P=a(e),p(v.$$.fragment,e),X=a(e),w=o(e,"P",{"data-svelte-h":!0}),f(w)!=="svelte-dbzevp"&&(w.innerHTML=ce),Y=a(e),p(C.$$.fragment,e),O=a(e),I=o(e,"P",{"data-svelte-h":!0}),f(I)!=="svelte-w8dulx"&&(I.textContent=de),K=a(e),p(x.$$.fragment,e),ee=a(e),z=o(e,"P",{"data-svelte-h":!0}),f(z)!=="svelte-dbzevp"&&(z.innerHTML=Me),se=a(e),p(k.$$.fragment,e),te=a(e),_=o(e,"P",{"data-svelte-h":!0}),f(_)!=="svelte-134o58x"&&(_.textContent=fe),ne=a(e),p(N.$$.fragment,e),le=a(e),E=o(e,"P",{}),ye(E).forEach(t),this.h()},h(){Je(M,"name","hf:doc:metadata"),Je(M,"content",Ie)},m(e,s){ge(document.head,M),n(e,G,s),n(e,W,s),n(e,Z,s),r(y,e,s),n(e,Q,s),r(J,e,s),n(e,F,s),n(e,T,s),n(e,S,s),n(e,j,s),n(e,B,s),r(h,e,s),n(e,R,s),n(e,b,s),n(e,D,s),r(q,e,s),n(e,L,s),n(e,$,s),n(e,H,s),r(g,e,s),n(e,V,s),n(e,U,s),n(e,P,s),r(v,e,s),n(e,X,s),n(e,w,s),n(e,Y,s),r(C,e,s),n(e,O,s),n(e,I,s),n(e,K,s),r(x,e,s),n(e,ee,s),n(e,z,s),n(e,se,s),r(k,e,s),n(e,te,s),n(e,_,s),n(e,ne,s),r(N,e,s),n(e,le,s),n(e,E,s),ae=!0},p:je,i(e){ae||(m(y.$$.fragment,e),m(J.$$.fragment,e),m(h.$$.fragment,e),m(q.$$.fragment,e),m(g.$$.fragment,e),m(v.$$.fragment,e),m(C.$$.fragment,e),m(x.$$.fragment,e),m(k.$$.fragment,e),m(N.$$.fragment,e),ae=!0)},o(e){c(y.$$.fragment,e),c(J.$$.fragment,e),c(h.$$.fragment,e),c(q.$$.fragment,e),c(g.$$.fragment,e),c(v.$$.fragment,e),c(C.$$.fragment,e),c(x.$$.fragment,e),c(k.$$.fragment,e),c(N.$$.fragment,e),ae=!1},d(e){e&&(t(G),t(W),t(Z),t(Q),t(F),t(T),t(S),t(j),t(B),t(R),t(b),t(D),t(L),t($),t(H),t(V),t(U),t(P),t(X),t(w),t(Y),t(O),t(I),t(K),t(ee),t(z),t(se),t(te),t(_),t(ne),t(le),t(E)),t(M),d(y,e),d(J,e),d(h,e),d(q,e),d(g,e),d(v,e),d(C,e),d(x,e),d(k,e),d(N,e)}}}const Ie='{"title":"Classification audio avec un pipeline","local":"classification-audio-avec-un-pipeline","sections":[],"depth":1}';function xe(ie){return he(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ae extends be{constructor(M){super(),qe(this,M,xe,Ce,Te,{})}}export{Ae as component};
