import{s as ba,o as wa,n as Ys}from"../chunks/scheduler.9bc65507.js";import{S as Ua,i as Ta,g as m,s as n,r as M,A as $a,h as o,f as a,c as p,j as ua,u as h,x as f,k as fa,y as _a,a as l,v as d,d as j,t as y,w as u}from"../chunks/index.707bf1b6.js";import{T as Nt}from"../chunks/Tip.c2ecdbf4.js";import{Y as Ca}from"../chunks/Youtube.e1129c6f.js";import{C as w}from"../chunks/CodeBlock.54a9f38d.js";import{D as Ia}from"../chunks/DocNotebookDropdown.41f65cb5.js";import{F as ga,M as Ja}from"../chunks/Markdown.8ab98a13.js";import{H as Xs,E as va}from"../chunks/EditOnGithub.922df6ba.js";function Ra(I){let e,g='このタスクと互換性のあるすべてのアーキテクチャとチェックポイントを確認するには、<a href="https://huggingface.co/tasks/automatic-speech-recognition" rel="nofollow">タスクページ</a> を確認することをお勧めします。';return{c(){e=m("p"),e.innerHTML=g},l(r){e=o(r,"P",{"data-svelte-h":!0}),f(e)!=="svelte-ktvk2i"&&(e.innerHTML=g)},m(r,J){l(r,e,J)},p:Ys,d(r){r&&a(e)}}}function Za(I){let e,g='<a href="/docs/transformers/pr_31198/ja/main_classes/trainer#transformers.Trainer">Trainer</a> を使用したモデルの微調整に慣れていない場合は、<a href="../training#train-with-pytorch-trainer">ここ</a> の基本的なチュートリアルをご覧ください。';return{c(){e=m("p"),e.innerHTML=g},l(r){e=o(r,"P",{"data-svelte-h":!0}),f(e)!=="svelte-1thc8ys"&&(e.innerHTML=g)},m(r,J){l(r,e,J)},p:Ys,d(r){r&&a(e)}}}function ka(I){let e,g,r,J='これでモデルのトレーニングを開始する準備が整いました。 <a href="/docs/transformers/pr_31198/ja/model_doc/auto#transformers.AutoModelForCTC">AutoModelForCTC</a> で Wav2Vec2 をロードします。 <code>ctc_loss_reduction</code> パラメータで適用する削減を指定します。多くの場合、デフォルトの合計ではなく平均を使用する方が適切です。',U,C,Z,R,v="この時点で残っている手順は次の 3 つだけです。",k,T,X='<li><a href="/docs/transformers/pr_31198/ja/main_classes/trainer#transformers.TrainingArguments">TrainingArguments</a> でトレーニング ハイパーパラメータを定義します。唯一の必須パラメータは、モデルの保存場所を指定する <code>output_dir</code> です。 <code>push_to_hub=True</code>を設定して、このモデルをハブにプッシュします (モデルをアップロードするには、Hugging Face にサインインする必要があります)。各エポックの終了時に、<code>トレーナー</code> は WER を評価し、トレーニング チェックポイントを保存します。</li> <li>トレーニング引数を、モデル、データセット、トークナイザー、データ照合器、および <code>compute_metrics</code> 関数とともに <a href="/docs/transformers/pr_31198/ja/main_classes/trainer#transformers.Trainer">Trainer</a> に渡します。</li> <li><a href="/docs/transformers/pr_31198/ja/main_classes/trainer#transformers.Trainer.train">train()</a> を呼び出してモデルを微調整します。</li>',W,$,G,i,_='トレーニングが完了したら、 <a href="/docs/transformers/pr_31198/ja/main_classes/trainer#transformers.Trainer.push_to_hub">push_to_hub()</a> メソッドを使用してモデルをハブに共有し、誰もがモデルを使用できるようにします。',Q,B,x;return e=new Nt({props:{$$slots:{default:[Za]},$$scope:{ctx:I}}}),C=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNUQyUyQyUyMFRyYWluaW5nQXJndW1lbnRzJTJDJTIwVHJhaW5lciUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yQ1RDLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJmYWNlYm9vayUyRndhdjJ2ZWMyLWJhc2UlMjIlMkMlMEElMjAlMjAlMjAlMjBjdGNfbG9zc19yZWR1Y3Rpb24lM0QlMjJtZWFuJTIyJTJDJTBBJTIwJTIwJTIwJTIwcGFkX3Rva2VuX2lkJTNEcHJvY2Vzc29yLnRva2VuaXplci5wYWRfdG9rZW5faWQlMkMlMEEp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCTC, TrainingArguments, Trainer

<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModelForCTC.from_pretrained(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;facebook/wav2vec2-base&quot;</span>,
<span class="hljs-meta">... </span>    ctc_loss_reduction=<span class="hljs-string">&quot;mean&quot;</span>,
<span class="hljs-meta">... </span>    pad_token_id=processor.tokenizer.pad_token_id,
<span class="hljs-meta">... </span>)`,wrap:!1}}),$=new w({props:{code:"dHJhaW5pbmdfYXJncyUyMCUzRCUyMFRyYWluaW5nQXJndW1lbnRzKCUwQSUyMCUyMCUyMCUyMG91dHB1dF9kaXIlM0QlMjJteV9hd2Vzb21lX2Fzcl9taW5kX21vZGVsJTIyJTJDJTBBJTIwJTIwJTIwJTIwcGVyX2RldmljZV90cmFpbl9iYXRjaF9zaXplJTNEOCUyQyUwQSUyMCUyMCUyMCUyMGdyYWRpZW50X2FjY3VtdWxhdGlvbl9zdGVwcyUzRDIlMkMlMEElMjAlMjAlMjAlMjBsZWFybmluZ19yYXRlJTNEMWUtNSUyQyUwQSUyMCUyMCUyMCUyMHdhcm11cF9zdGVwcyUzRDUwMCUyQyUwQSUyMCUyMCUyMCUyMG1heF9zdGVwcyUzRDIwMDAlMkMlMEElMjAlMjAlMjAlMjBncmFkaWVudF9jaGVja3BvaW50aW5nJTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMGZwMTYlM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwZ3JvdXBfYnlfbGVuZ3RoJTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMGV2YWxfc3RyYXRlZ3klM0QlMjJzdGVwcyUyMiUyQyUwQSUyMCUyMCUyMCUyMHBlcl9kZXZpY2VfZXZhbF9iYXRjaF9zaXplJTNEOCUyQyUwQSUyMCUyMCUyMCUyMHNhdmVfc3RlcHMlM0QxMDAwJTJDJTBBJTIwJTIwJTIwJTIwZXZhbF9zdGVwcyUzRDEwMDAlMkMlMEElMjAlMjAlMjAlMjBsb2dnaW5nX3N0ZXBzJTNEMjUlMkMlMEElMjAlMjAlMjAlMjBsb2FkX2Jlc3RfbW9kZWxfYXRfZW5kJTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMG1ldHJpY19mb3JfYmVzdF9tb2RlbCUzRCUyMndlciUyMiUyQyUwQSUyMCUyMCUyMCUyMGdyZWF0ZXJfaXNfYmV0dGVyJTNERmFsc2UlMkMlMEElMjAlMjAlMjAlMjBwdXNoX3RvX2h1YiUzRFRydWUlMkMlMEEpJTBBJTBBdHJhaW5lciUyMCUzRCUyMFRyYWluZXIoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0Rtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMGFyZ3MlM0R0cmFpbmluZ19hcmdzJTJDJTBBJTIwJTIwJTIwJTIwdHJhaW5fZGF0YXNldCUzRGVuY29kZWRfbWluZHMlNUIlMjJ0cmFpbiUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMGV2YWxfZGF0YXNldCUzRGVuY29kZWRfbWluZHMlNUIlMjJ0ZXN0JTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwdG9rZW5pemVyJTNEcHJvY2Vzc29yJTJDJTBBJTIwJTIwJTIwJTIwZGF0YV9jb2xsYXRvciUzRGRhdGFfY29sbGF0b3IlMkMlMEElMjAlMjAlMjAlMjBjb21wdXRlX21ldHJpY3MlM0Rjb21wdXRlX21ldHJpY3MlMkMlMEEpJTBBJTBBdHJhaW5lci50cmFpbigp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>training_args = TrainingArguments(
<span class="hljs-meta">... </span>    output_dir=<span class="hljs-string">&quot;my_awesome_asr_mind_model&quot;</span>,
<span class="hljs-meta">... </span>    per_device_train_batch_size=<span class="hljs-number">8</span>,
<span class="hljs-meta">... </span>    gradient_accumulation_steps=<span class="hljs-number">2</span>,
<span class="hljs-meta">... </span>    learning_rate=<span class="hljs-number">1e-5</span>,
<span class="hljs-meta">... </span>    warmup_steps=<span class="hljs-number">500</span>,
<span class="hljs-meta">... </span>    max_steps=<span class="hljs-number">2000</span>,
<span class="hljs-meta">... </span>    gradient_checkpointing=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    fp16=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    group_by_length=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    eval_strategy=<span class="hljs-string">&quot;steps&quot;</span>,
<span class="hljs-meta">... </span>    per_device_eval_batch_size=<span class="hljs-number">8</span>,
<span class="hljs-meta">... </span>    save_steps=<span class="hljs-number">1000</span>,
<span class="hljs-meta">... </span>    eval_steps=<span class="hljs-number">1000</span>,
<span class="hljs-meta">... </span>    logging_steps=<span class="hljs-number">25</span>,
<span class="hljs-meta">... </span>    load_best_model_at_end=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    metric_for_best_model=<span class="hljs-string">&quot;wer&quot;</span>,
<span class="hljs-meta">... </span>    greater_is_better=<span class="hljs-literal">False</span>,
<span class="hljs-meta">... </span>    push_to_hub=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>)

<span class="hljs-meta">&gt;&gt;&gt; </span>trainer = Trainer(
<span class="hljs-meta">... </span>    model=model,
<span class="hljs-meta">... </span>    args=training_args,
<span class="hljs-meta">... </span>    train_dataset=encoded_minds[<span class="hljs-string">&quot;train&quot;</span>],
<span class="hljs-meta">... </span>    eval_dataset=encoded_minds[<span class="hljs-string">&quot;test&quot;</span>],
<span class="hljs-meta">... </span>    tokenizer=processor,
<span class="hljs-meta">... </span>    data_collator=data_collator,
<span class="hljs-meta">... </span>    compute_metrics=compute_metrics,
<span class="hljs-meta">... </span>)

<span class="hljs-meta">&gt;&gt;&gt; </span>trainer.train()`,wrap:!1}}),B=new w({props:{code:"dHJhaW5lci5wdXNoX3RvX2h1Yigp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>trainer.push_to_hub()',wrap:!1}}),{c(){M(e.$$.fragment),g=n(),r=m("p"),r.innerHTML=J,U=n(),M(C.$$.fragment),Z=n(),R=m("p"),R.textContent=v,k=n(),T=m("ol"),T.innerHTML=X,W=n(),M($.$$.fragment),G=n(),i=m("p"),i.innerHTML=_,Q=n(),M(B.$$.fragment)},l(c){h(e.$$.fragment,c),g=p(c),r=o(c,"P",{"data-svelte-h":!0}),f(r)!=="svelte-1defo8i"&&(r.innerHTML=J),U=p(c),h(C.$$.fragment,c),Z=p(c),R=o(c,"P",{"data-svelte-h":!0}),f(R)!=="svelte-1j8bgyv"&&(R.textContent=v),k=p(c),T=o(c,"OL",{"data-svelte-h":!0}),f(T)!=="svelte-y8nxex"&&(T.innerHTML=X),W=p(c),h($.$$.fragment,c),G=p(c),i=o(c,"P",{"data-svelte-h":!0}),f(i)!=="svelte-1x0xfsl"&&(i.innerHTML=_),Q=p(c),h(B.$$.fragment,c)},m(c,b){d(e,c,b),l(c,g,b),l(c,r,b),l(c,U,b),d(C,c,b),l(c,Z,b),l(c,R,b),l(c,k,b),l(c,T,b),l(c,W,b),d($,c,b),l(c,G,b),l(c,i,b),l(c,Q,b),d(B,c,b),x=!0},p(c,b){const Vs={};b&2&&(Vs.$$scope={dirty:b,ctx:c}),e.$set(Vs)},i(c){x||(j(e.$$.fragment,c),j(C.$$.fragment,c),j($.$$.fragment,c),j(B.$$.fragment,c),x=!0)},o(c){y(e.$$.fragment,c),y(C.$$.fragment,c),y($.$$.fragment,c),y(B.$$.fragment,c),x=!1},d(c){c&&(a(g),a(r),a(U),a(Z),a(R),a(k),a(T),a(W),a(G),a(i),a(Q)),u(e,c),u(C,c),u($,c),u(B,c)}}}function Wa(I){let e,g;return e=new Ja({props:{$$slots:{default:[ka]},$$scope:{ctx:I}}}),{c(){M(e.$$.fragment)},l(r){h(e.$$.fragment,r)},m(r,J){d(e,r,J),g=!0},p(r,J){const U={};J&2&&(U.$$scope={dirty:J,ctx:r}),e.$set(U)},i(r){g||(j(e.$$.fragment,r),g=!0)},o(r){y(e.$$.fragment,r),g=!1},d(r){u(e,r)}}}function xa(I){let e,g='自動音声認識用にモデルを微調整する方法のより詳細な例については、英語 ASR および英語のこのブログ <a href="https://huggingface.co/blog/fine-tune-wav2vec2-english" rel="nofollow">投稿</a> を参照してください。多言語 ASR については、この <a href="https://huggingface.co/blog/fine-tune-xlsr-wav2vec2" rel="nofollow">投稿</a> を参照してください。';return{c(){e=m("p"),e.innerHTML=g},l(r){e=o(r,"P",{"data-svelte-h":!0}),f(e)!=="svelte-1luj7ds"&&(e.innerHTML=g)},m(r,J){l(r,e,J)},p:Ys,d(r){r&&a(e)}}}function Ga(I){let e,g="転写はまあまあですが、もっと良くなる可能性があります。さらに良い結果を得るには、より多くの例でモデルを微調整してみてください。";return{c(){e=m("p"),e.textContent=g},l(r){e=o(r,"P",{"data-svelte-h":!0}),f(e)!=="svelte-1v18xvo"&&(e.textContent=g)},m(r,J){l(r,e,J)},p:Ys,d(r){r&&a(e)}}}function Ba(I){let e,g="プロセッサをロードしてオーディオ ファイルと文字起こしを前処理し、<code>input</code>を PyTorch テンソルとして返します。",r,J,U,C,Z="Pass your inputs to the model and return the logits:",R,v,k,T,X="最も高い確率で予測された <code>input_ids</code> を取得し、プロセッサを使用して予測された <code>input_ids</code> をデコードしてテキストに戻します。",W,$,G;return J=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Qcm9jZXNzb3IlMEElMEFwcm9jZXNzb3IlMjAlM0QlMjBBdXRvUHJvY2Vzc29yLmZyb21fcHJldHJhaW5lZCglMjJzdGV2aGxpdSUyRm15X2F3ZXNvbWVfYXNyX21pbmRfbW9kZWwlMjIpJTBBaW5wdXRzJTIwJTNEJTIwcHJvY2Vzc29yKGRhdGFzZXQlNUIwJTVEJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCUyQyUyMHNhbXBsaW5nX3JhdGUlM0RzYW1wbGluZ19yYXRlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoProcessor

<span class="hljs-meta">&gt;&gt;&gt; </span>processor = AutoProcessor.from_pretrained(<span class="hljs-string">&quot;stevhliu/my_awesome_asr_mind_model&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = processor(dataset[<span class="hljs-number">0</span>][<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>], sampling_rate=sampling_rate, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)`,wrap:!1}}),v=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNUQyUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yQ1RDLmZyb21fcHJldHJhaW5lZCglMjJzdGV2aGxpdSUyRm15X2F3ZXNvbWVfYXNyX21pbmRfbW9kZWwlMjIpJTBBd2l0aCUyMHRvcmNoLm5vX2dyYWQoKSUzQSUwQSUyMCUyMCUyMCUyMGxvZ2l0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKS5sb2dpdHM=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCTC

<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModelForCTC.from_pretrained(<span class="hljs-string">&quot;stevhliu/my_awesome_asr_mind_model&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">with</span> torch.no_grad():
<span class="hljs-meta">... </span>    logits = model(**inputs).logits`,wrap:!1}}),$=new w({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFwcmVkaWN0ZWRfaWRzJTIwJTNEJTIwdG9yY2guYXJnbWF4KGxvZ2l0cyUyQyUyMGRpbSUzRC0xKSUwQXRyYW5zY3JpcHRpb24lMjAlM0QlMjBwcm9jZXNzb3IuYmF0Y2hfZGVjb2RlKHByZWRpY3RlZF9pZHMpJTBBdHJhbnNjcmlwdGlvbg==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch

<span class="hljs-meta">&gt;&gt;&gt; </span>predicted_ids = torch.argmax(logits, dim=-<span class="hljs-number">1</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>transcription = processor.batch_decode(predicted_ids)
<span class="hljs-meta">&gt;&gt;&gt; </span>transcription
[<span class="hljs-string">&#x27;I WOUL LIKE O SET UP JOINT ACOUNT WTH Y PARTNER&#x27;</span>]`,wrap:!1}}),{c(){e=m("p"),e.innerHTML=g,r=n(),M(J.$$.fragment),U=n(),C=m("p"),C.textContent=Z,R=n(),M(v.$$.fragment),k=n(),T=m("p"),T.innerHTML=X,W=n(),M($.$$.fragment)},l(i){e=o(i,"P",{"data-svelte-h":!0}),f(e)!=="svelte-1baxoat"&&(e.innerHTML=g),r=p(i),h(J.$$.fragment,i),U=p(i),C=o(i,"P",{"data-svelte-h":!0}),f(C)!=="svelte-1at92g"&&(C.textContent=Z),R=p(i),h(v.$$.fragment,i),k=p(i),T=o(i,"P",{"data-svelte-h":!0}),f(T)!=="svelte-n29toq"&&(T.innerHTML=X),W=p(i),h($.$$.fragment,i)},m(i,_){l(i,e,_),l(i,r,_),d(J,i,_),l(i,U,_),l(i,C,_),l(i,R,_),d(v,i,_),l(i,k,_),l(i,T,_),l(i,W,_),d($,i,_),G=!0},p:Ys,i(i){G||(j(J.$$.fragment,i),j(v.$$.fragment,i),j($.$$.fragment,i),G=!0)},o(i){y(J.$$.fragment,i),y(v.$$.fragment,i),y($.$$.fragment,i),G=!1},d(i){i&&(a(e),a(r),a(U),a(C),a(R),a(k),a(T),a(W)),u(J,i),u(v,i),u($,i)}}}function Xa(I){let e,g;return e=new Ja({props:{$$slots:{default:[Ba]},$$scope:{ctx:I}}}),{c(){M(e.$$.fragment)},l(r){h(e.$$.fragment,r)},m(r,J){d(e,r,J),g=!0},p(r,J){const U={};J&2&&(U.$$scope={dirty:J,ctx:r}),e.$set(U)},i(r){g||(j(e.$$.fragment,r),g=!0)},o(r){y(e.$$.fragment,r),g=!1},d(r){u(e,r)}}}function Va(I){let e,g,r,J,U,C,Z,R,v,k,T,X="自動音声認識 (ASR) は音声信号をテキストに変換し、一連の音声入力をテキスト出力にマッピングします。 Siri や Alexa などの仮想アシスタントは ASR モデルを使用してユーザーを日常的に支援しており、ライブキャプションや会議中のメモ取りなど、他にも便利なユーザー向けアプリケーションが数多くあります。",W,$,G="このガイドでは、次の方法を説明します。",i,_,Q='<li><a href="https://huggingface.co/datasets/PolyAI/minds14" rel="nofollow">MInDS-14</a> データセットの <a href="https://huggingface.co/facebook/wav2vec2-base" rel="nofollow">Wav2Vec2</a> を微調整して、音声をテキストに書き起こします。</li> <li>微調整したモデルを推論に使用します。</li>',B,x,c,b,Vs="始める前に、必要なライブラリがすべてインストールされていることを確認してください。",Ns,E,Qs,z,Qt="モデルをアップロードしてコミュニティと共有できるように、Hugging Face アカウントにログインすることをお勧めします。プロンプトが表示されたら、トークンを入力してログインします。",Es,A,zs,F,As,q,Et='まず、🤗 データセット ライブラリから <a href="https://huggingface.co/datasets/PolyAI/minds14" rel="nofollow">MInDS-14</a> データセットの小さいサブセットをロードします。これにより、完全なデータセットのトレーニングにさらに時間を費やす前に、実験してすべてが機能することを確認する機会が得られます。',Fs,S,qs,L,zt="<code>~Dataset.train_test_split</code> メソッドを使用して、データセットの <code>train</code> 分割をトレイン セットとテスト セットに分割します。",Ss,P,Ls,D,At="次に、データセットを見てみましょう。",Ps,K,Ds,O,Ft="データセットには<code>lang_id</code>や<code>english_transcription</code>などの多くの有用な情報が含まれていますが、このガイドでは「<code>audio</code>」と「<code>transciption</code>」に焦点を当てます。 <code>remove_columns</code> メソッドを使用して他の列を削除します。",Ks,ss,Os,ts,qt="もう一度例を見てみましょう。",st,as,tt,ls,St="次の 2 つのフィールドがあります。",at,es,Lt="<li><code>audio</code>: 音声ファイルをロードしてリサンプリングするために呼び出す必要がある音声信号の 1 次元の <code>array</code>。</li> <li><code>transcription</code>: ターゲットテキスト。</li>",lt,ns,et,ps,Pt="次のステップでは、Wav2Vec2 プロセッサをロードしてオーディオ信号を処理します。",nt,rs,pt,cs,Dt='MInDS-14 データセットのサンプリング レートは 8000kHz です (この情報は <a href="https://huggingface.co/datasets/PolyAI/minds14" rel="nofollow">データセット カード</a> で確認できます)。つまり、データセットを再サンプリングする必要があります。事前トレーニングされた Wav2Vec2 モデルを使用するには、16000kHz に設定します。',rt,is,ct,ms,Kt="上の <code>transcription</code> でわかるように、テキストには大文字と小文字が混在しています。 Wav2Vec2 トークナイザーは大文字のみでトレーニングされるため、テキストがトークナイザーの語彙と一致することを確認する必要があります。",it,os,mt,Ms,Ot="次に、次の前処理関数を作成します。",ot,hs,sa="<li><code>audio</code>列を呼び出して、オーディオ ファイルをロードしてリサンプリングします。</li> <li>オーディオ ファイルから <code>input_values</code> を抽出し、プロセッサを使用して <code>transcription</code> 列をトークン化します。</li>",Mt,ds,ht,js,ta="データセット全体に前処理関数を適用するには、🤗 Datasets <code>map</code> 関数を使用します。 <code>num_proc</code> パラメータを使用してプロセスの数を増やすことで、<code>map</code> を高速化できます。 <code>remove_columns</code> メソッドを使用して、不要な列を削除します。",dt,ys,jt,us,aa="🤗 Transformers には ASR 用のデータ照合器がないため、<code>DataCollat​​orWithPadding</code> を調整してサンプルのバッチを作成する必要があります。また、テキストとラベルが (データセット全体ではなく) バッチ内の最も長い要素の長さに合わせて動的に埋め込まれ、均一な長さになります。 <code>padding=True</code> を設定すると、<code>tokenizer</code> 関数でテキストを埋め込むことができますが、動的な埋め込みの方が効率的です。",yt,fs,la="他のデータ照合器とは異なり、この特定のデータ照合器は、<code>input_values</code>と <code>labels</code>」に異なるパディング方法を適用する必要があります。",ut,gs,ft,Js,ea="次に、<code>DataCollat​​orForCTCWithPadding</code> をインスタンス化します。",gt,bs,Jt,ws,bt,Us,na='トレーニング中にメトリクスを含めると、多くの場合、モデルのパフォーマンスを評価するのに役立ちます。 🤗 <a href="https://huggingface.co/docs/evaluate/index" rel="nofollow">Evaluate</a> ライブラリを使用して、評価メソッドをすばやくロードできます。このタスクでは、<a href="https://huggingface.co/spaces/evaluate-metric/wer" rel="nofollow">単語エラー率</a> (WER) メトリクスを読み込みます (🤗 Evaluate <a href="https://huggingface.co/docs/evaluate/a_quick_tour" rel="nofollow">クイック ツアー</a> を参照して、メトリクスをロードして計算する方法の詳細を確認してください)。',wt,Ts,Ut,$s,pa="次に、予測とラベルを <code>compute</code> に渡して WER を計算する関数を作成します。",Tt,_s,$t,Cs,ra="これで<code>compute_metrics</code>関数の準備が整いました。トレーニングをセットアップするときにこの関数に戻ります。",_t,Is,Ct,V,It,H,vt,vs,Rt,Rs,ca="モデルを微調整したので、それを推論に使用できるようになりました。",Zt,Zs,ia="推論を実行したい音声ファイルをロードします。必要に応じて、オーディオ ファイルのサンプリング レートをモデルのサンプリング レートと一致するようにリサンプリングすることを忘れないでください。",kt,ks,Wt,Ws,ma='推論用に微調整されたモデルを試す最も簡単な方法は、それを <a href="/docs/transformers/pr_31198/ja/main_classes/pipelines#transformers.pipeline">pipeline()</a> で使用することです。モデルを使用して自動音声認識用の<code>pipeline</code>をインスタンス化し、オーディオ ファイルをそれに渡します。',xt,xs,Gt,Y,Bt,Gs,oa="必要に応じて、「パイプライン」の結果を手動で複製することもできます。",Xt,N,Vt,Bs,Ht,Hs,Yt;return U=new Xs({props:{title:"Automatic speech recognition",local:"automatic-speech-recognition",headingTag:"h1"}}),Z=new Ia({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Mixed",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/ja/asr.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/ja/pytorch/asr.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/ja/tensorflow/asr.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/ja/asr.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/ja/pytorch/asr.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/ja/tensorflow/asr.ipynb"}]}}),v=new Ca({props:{id:"TksaY_FDgnk"}}),x=new Nt({props:{$$slots:{default:[Ra]},$$scope:{ctx:I}}}),E=new w({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRyYW5zZm9ybWVycyUyMGRhdGFzZXRzJTIwZXZhbHVhdGUlMjBqaXdlcg==",highlighted:"pip install transformers datasets evaluate jiwer",wrap:!1}}),A=new w({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login

<span class="hljs-meta">&gt;&gt;&gt; </span>notebook_login()`,wrap:!1}}),F=new Xs({props:{title:"Load MInDS-14 dataset",local:"load-minds-14-dataset",headingTag:"h2"}}),S=new w({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTJDJTIwQXVkaW8lMEElMEFtaW5kcyUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJQb2x5QUklMkZtaW5kczE0JTIyJTJDJTIwbmFtZSUzRCUyMmVuLVVTJTIyJTJDJTIwc3BsaXQlM0QlMjJ0cmFpbiU1QiUzQTEwMCU1RCUyMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset, Audio

<span class="hljs-meta">&gt;&gt;&gt; </span>minds = load_dataset(<span class="hljs-string">&quot;PolyAI/minds14&quot;</span>, name=<span class="hljs-string">&quot;en-US&quot;</span>, split=<span class="hljs-string">&quot;train[:100]&quot;</span>)`,wrap:!1}}),P=new w({props:{code:"bWluZHMlMjAlM0QlMjBtaW5kcy50cmFpbl90ZXN0X3NwbGl0KHRlc3Rfc2l6ZSUzRDAuMik=",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>minds = minds.train_test_split(test_size=<span class="hljs-number">0.2</span>)',wrap:!1}}),K=new w({props:{code:"bWluZHM=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>minds
DatasetDict({
    train: Dataset({
        features: [<span class="hljs-string">&#x27;path&#x27;</span>, <span class="hljs-string">&#x27;audio&#x27;</span>, <span class="hljs-string">&#x27;transcription&#x27;</span>, <span class="hljs-string">&#x27;english_transcription&#x27;</span>, <span class="hljs-string">&#x27;intent_class&#x27;</span>, <span class="hljs-string">&#x27;lang_id&#x27;</span>],
        num_rows: <span class="hljs-number">16</span>
    })
    test: Dataset({
        features: [<span class="hljs-string">&#x27;path&#x27;</span>, <span class="hljs-string">&#x27;audio&#x27;</span>, <span class="hljs-string">&#x27;transcription&#x27;</span>, <span class="hljs-string">&#x27;english_transcription&#x27;</span>, <span class="hljs-string">&#x27;intent_class&#x27;</span>, <span class="hljs-string">&#x27;lang_id&#x27;</span>],
        num_rows: <span class="hljs-number">4</span>
    })
})`,wrap:!1}}),ss=new w({props:{code:"bWluZHMlMjAlM0QlMjBtaW5kcy5yZW1vdmVfY29sdW1ucyglNUIlMjJlbmdsaXNoX3RyYW5zY3JpcHRpb24lMjIlMkMlMjAlMjJpbnRlbnRfY2xhc3MlMjIlMkMlMjAlMjJsYW5nX2lkJTIyJTVEKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>minds = minds.remove_columns([<span class="hljs-string">&quot;english_transcription&quot;</span>, <span class="hljs-string">&quot;intent_class&quot;</span>, <span class="hljs-string">&quot;lang_id&quot;</span>])',wrap:!1}}),as=new w({props:{code:"bWluZHMlNUIlMjJ0cmFpbiUyMiU1RCU1QjAlNUQ=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>minds[<span class="hljs-string">&quot;train&quot;</span>][<span class="hljs-number">0</span>]
{<span class="hljs-string">&#x27;audio&#x27;</span>: {<span class="hljs-string">&#x27;array&#x27;</span>: array([-<span class="hljs-number">0.00024414</span>,  <span class="hljs-number">0.</span>        ,  <span class="hljs-number">0.</span>        , ...,  <span class="hljs-number">0.00024414</span>,
          <span class="hljs-number">0.00024414</span>,  <span class="hljs-number">0.00024414</span>], dtype=float32),
  <span class="hljs-string">&#x27;path&#x27;</span>: <span class="hljs-string">&#x27;/root/.cache/huggingface/datasets/downloads/extracted/f14948e0e84be638dd7943ac36518a4cf3324e8b7aa331c5ab11541518e9368c/en-US~APP_ERROR/602ba9e2963e11ccd901cd4f.wav&#x27;</span>,
  <span class="hljs-string">&#x27;sampling_rate&#x27;</span>: <span class="hljs-number">8000</span>},
 <span class="hljs-string">&#x27;path&#x27;</span>: <span class="hljs-string">&#x27;/root/.cache/huggingface/datasets/downloads/extracted/f14948e0e84be638dd7943ac36518a4cf3324e8b7aa331c5ab11541518e9368c/en-US~APP_ERROR/602ba9e2963e11ccd901cd4f.wav&#x27;</span>,
 <span class="hljs-string">&#x27;transcription&#x27;</span>: <span class="hljs-string">&quot;hi I&#x27;m trying to use the banking app on my phone and currently my checking and savings account balance is not refreshing&quot;</span>}`,wrap:!1}}),ns=new Xs({props:{title:"Preprocess",local:"preprocess",headingTag:"h2"}}),rs=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Qcm9jZXNzb3IlMEElMEFwcm9jZXNzb3IlMjAlM0QlMjBBdXRvUHJvY2Vzc29yLmZyb21fcHJldHJhaW5lZCglMjJmYWNlYm9vayUyRndhdjJ2ZWMyLWJhc2UlMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoProcessor

<span class="hljs-meta">&gt;&gt;&gt; </span>processor = AutoProcessor.from_pretrained(<span class="hljs-string">&quot;facebook/wav2vec2-base&quot;</span>)`,wrap:!1}}),is=new w({props:{code:"bWluZHMlMjAlM0QlMjBtaW5kcy5jYXN0X2NvbHVtbiglMjJhdWRpbyUyMiUyQyUyMEF1ZGlvKHNhbXBsaW5nX3JhdGUlM0QxNl8wMDApKSUwQW1pbmRzJTVCJTIydHJhaW4lMjIlNUQlNUIwJTVE",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>minds = minds.cast_column(<span class="hljs-string">&quot;audio&quot;</span>, Audio(sampling_rate=<span class="hljs-number">16_000</span>))
<span class="hljs-meta">&gt;&gt;&gt; </span>minds[<span class="hljs-string">&quot;train&quot;</span>][<span class="hljs-number">0</span>]
{<span class="hljs-string">&#x27;audio&#x27;</span>: {<span class="hljs-string">&#x27;array&#x27;</span>: array([-<span class="hljs-number">2.38064706e-04</span>, -<span class="hljs-number">1.58618059e-04</span>, -<span class="hljs-number">5.43987835e-06</span>, ...,
          <span class="hljs-number">2.78103951e-04</span>,  <span class="hljs-number">2.38446111e-04</span>,  <span class="hljs-number">1.18740834e-04</span>], dtype=float32),
  <span class="hljs-string">&#x27;path&#x27;</span>: <span class="hljs-string">&#x27;/root/.cache/huggingface/datasets/downloads/extracted/f14948e0e84be638dd7943ac36518a4cf3324e8b7aa331c5ab11541518e9368c/en-US~APP_ERROR/602ba9e2963e11ccd901cd4f.wav&#x27;</span>,
  <span class="hljs-string">&#x27;sampling_rate&#x27;</span>: <span class="hljs-number">16000</span>},
 <span class="hljs-string">&#x27;path&#x27;</span>: <span class="hljs-string">&#x27;/root/.cache/huggingface/datasets/downloads/extracted/f14948e0e84be638dd7943ac36518a4cf3324e8b7aa331c5ab11541518e9368c/en-US~APP_ERROR/602ba9e2963e11ccd901cd4f.wav&#x27;</span>,
 <span class="hljs-string">&#x27;transcription&#x27;</span>: <span class="hljs-string">&quot;hi I&#x27;m trying to use the banking app on my phone and currently my checking and savings account balance is not refreshing&quot;</span>}`,wrap:!1}}),os=new w({props:{code:"ZGVmJTIwdXBwZXJjYXNlKGV4YW1wbGUpJTNBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTdCJTIydHJhbnNjcmlwdGlvbiUyMiUzQSUyMGV4YW1wbGUlNUIlMjJ0cmFuc2NyaXB0aW9uJTIyJTVELnVwcGVyKCklN0QlMEElMEElMEFtaW5kcyUyMCUzRCUyMG1pbmRzLm1hcCh1cHBlcmNhc2Up",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">def</span> <span class="hljs-title function_">uppercase</span>(<span class="hljs-params">example</span>):
<span class="hljs-meta">... </span>    <span class="hljs-keyword">return</span> {<span class="hljs-string">&quot;transcription&quot;</span>: example[<span class="hljs-string">&quot;transcription&quot;</span>].upper()}


<span class="hljs-meta">&gt;&gt;&gt; </span>minds = minds.<span class="hljs-built_in">map</span>(uppercase)`,wrap:!1}}),ds=new w({props:{code:"ZGVmJTIwcHJlcGFyZV9kYXRhc2V0KGJhdGNoKSUzQSUwQSUyMCUyMCUyMCUyMGF1ZGlvJTIwJTNEJTIwYmF0Y2glNUIlMjJhdWRpbyUyMiU1RCUwQSUyMCUyMCUyMCUyMGJhdGNoJTIwJTNEJTIwcHJvY2Vzc29yKGF1ZGlvJTVCJTIyYXJyYXklMjIlNUQlMkMlMjBzYW1wbGluZ19yYXRlJTNEYXVkaW8lNUIlMjJzYW1wbGluZ19yYXRlJTIyJTVEJTJDJTIwdGV4dCUzRGJhdGNoJTVCJTIydHJhbnNjcmlwdGlvbiUyMiU1RCklMEElMjAlMjAlMjAlMjBiYXRjaCU1QiUyMmlucHV0X2xlbmd0aCUyMiU1RCUyMCUzRCUyMGxlbihiYXRjaCU1QiUyMmlucHV0X3ZhbHVlcyUyMiU1RCU1QjAlNUQpJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwYmF0Y2g=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">def</span> <span class="hljs-title function_">prepare_dataset</span>(<span class="hljs-params">batch</span>):
<span class="hljs-meta">... </span>    audio = batch[<span class="hljs-string">&quot;audio&quot;</span>]
<span class="hljs-meta">... </span>    batch = processor(audio[<span class="hljs-string">&quot;array&quot;</span>], sampling_rate=audio[<span class="hljs-string">&quot;sampling_rate&quot;</span>], text=batch[<span class="hljs-string">&quot;transcription&quot;</span>])
<span class="hljs-meta">... </span>    batch[<span class="hljs-string">&quot;input_length&quot;</span>] = <span class="hljs-built_in">len</span>(batch[<span class="hljs-string">&quot;input_values&quot;</span>][<span class="hljs-number">0</span>])
<span class="hljs-meta">... </span>    <span class="hljs-keyword">return</span> batch`,wrap:!1}}),ys=new w({props:{code:"ZW5jb2RlZF9taW5kcyUyMCUzRCUyMG1pbmRzLm1hcChwcmVwYXJlX2RhdGFzZXQlMkMlMjByZW1vdmVfY29sdW1ucyUzRG1pbmRzLmNvbHVtbl9uYW1lcyU1QiUyMnRyYWluJTIyJTVEJTJDJTIwbnVtX3Byb2MlM0Q0KQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>encoded_minds = minds.<span class="hljs-built_in">map</span>(prepare_dataset, remove_columns=minds.column_names[<span class="hljs-string">&quot;train&quot;</span>], num_proc=<span class="hljs-number">4</span>)',wrap:!1}}),gs=new w({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFmcm9tJTIwZGF0YWNsYXNzZXMlMjBpbXBvcnQlMjBkYXRhY2xhc3MlMkMlMjBmaWVsZCUwQWZyb20lMjB0eXBpbmclMjBpbXBvcnQlMjBBbnklMkMlMjBEaWN0JTJDJTIwTGlzdCUyQyUyME9wdGlvbmFsJTJDJTIwVW5pb24lMEElMEElMEElNDBkYXRhY2xhc3MlMEFjbGFzcyUyMERhdGFDb2xsYXRvckNUQ1dpdGhQYWRkaW5nJTNBJTBBJTIwJTIwJTIwJTIwcHJvY2Vzc29yJTNBJTIwQXV0b1Byb2Nlc3NvciUwQSUyMCUyMCUyMCUyMHBhZGRpbmclM0ElMjBVbmlvbiU1QmJvb2wlMkMlMjBzdHIlNUQlMjAlM0QlMjAlMjJsb25nZXN0JTIyJTBBJTBBJTIwJTIwJTIwJTIwZGVmJTIwX19jYWxsX18oc2VsZiUyQyUyMGZlYXR1cmVzJTNBJTIwTGlzdCU1QkRpY3QlNUJzdHIlMkMlMjBVbmlvbiU1Qkxpc3QlNUJpbnQlNUQlMkMlMjB0b3JjaC5UZW5zb3IlNUQlNUQlNUQpJTIwLSUzRSUyMERpY3QlNUJzdHIlMkMlMjB0b3JjaC5UZW5zb3IlNUQlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBzcGxpdCUyMGlucHV0cyUyMGFuZCUyMGxhYmVscyUyMHNpbmNlJTIwdGhleSUyMGhhdmUlMjB0byUyMGJlJTIwb2YlMjBkaWZmZXJlbnQlMjBsZW5ndGhzJTIwYW5kJTIwbmVlZCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMGRpZmZlcmVudCUyMHBhZGRpbmclMjBtZXRob2RzJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaW5wdXRfZmVhdHVyZXMlMjAlM0QlMjAlNUIlN0IlMjJpbnB1dF92YWx1ZXMlMjIlM0ElMjBmZWF0dXJlJTVCJTIyaW5wdXRfdmFsdWVzJTIyJTVEJTVCMCU1RCU3RCUyMGZvciUyMGZlYXR1cmUlMjBpbiUyMGZlYXR1cmVzJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbGFiZWxfZmVhdHVyZXMlMjAlM0QlMjAlNUIlN0IlMjJpbnB1dF9pZHMlMjIlM0ElMjBmZWF0dXJlJTVCJTIybGFiZWxzJTIyJTVEJTdEJTIwZm9yJTIwZmVhdHVyZSUyMGluJTIwZmVhdHVyZXMlNUQlMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBiYXRjaCUyMCUzRCUyMHNlbGYucHJvY2Vzc29yLnBhZChpbnB1dF9mZWF0dXJlcyUyQyUyMHBhZGRpbmclM0RzZWxmLnBhZGRpbmclMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnB0JTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxhYmVsc19iYXRjaCUyMCUzRCUyMHNlbGYucHJvY2Vzc29yLnBhZChsYWJlbHMlM0RsYWJlbF9mZWF0dXJlcyUyQyUyMHBhZGRpbmclM0RzZWxmLnBhZGRpbmclMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnB0JTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMHJlcGxhY2UlMjBwYWRkaW5nJTIwd2l0aCUyMC0xMDAlMjB0byUyMGlnbm9yZSUyMGxvc3MlMjBjb3JyZWN0bHklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsYWJlbHMlMjAlM0QlMjBsYWJlbHNfYmF0Y2glNUIlMjJpbnB1dF9pZHMlMjIlNUQubWFza2VkX2ZpbGwobGFiZWxzX2JhdGNoLmF0dGVudGlvbl9tYXNrLm5lKDEpJTJDJTIwLTEwMCklMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBiYXRjaCU1QiUyMmxhYmVscyUyMiU1RCUyMCUzRCUyMGxhYmVscyUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMGJhdGNo",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> dataclasses <span class="hljs-keyword">import</span> dataclass, field
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> typing <span class="hljs-keyword">import</span> <span class="hljs-type">Any</span>, <span class="hljs-type">Dict</span>, <span class="hljs-type">List</span>, <span class="hljs-type">Optional</span>, <span class="hljs-type">Union</span>


<span class="hljs-meta">&gt;&gt;&gt; </span>@dataclass
<span class="hljs-meta">... </span><span class="hljs-keyword">class</span> <span class="hljs-title class_">DataCollatorCTCWithPadding</span>:
<span class="hljs-meta">... </span>    processor: AutoProcessor
<span class="hljs-meta">... </span>    padding: <span class="hljs-type">Union</span>[<span class="hljs-built_in">bool</span>, <span class="hljs-built_in">str</span>] = <span class="hljs-string">&quot;longest&quot;</span>

<span class="hljs-meta">... </span>    <span class="hljs-keyword">def</span> <span class="hljs-title function_">__call__</span>(<span class="hljs-params">self, features: <span class="hljs-type">List</span>[<span class="hljs-type">Dict</span>[<span class="hljs-built_in">str</span>, <span class="hljs-type">Union</span>[<span class="hljs-type">List</span>[<span class="hljs-built_in">int</span>], torch.Tensor]]]</span>) -&gt; <span class="hljs-type">Dict</span>[<span class="hljs-built_in">str</span>, torch.Tensor]:
<span class="hljs-meta">... </span>        <span class="hljs-comment"># split inputs and labels since they have to be of different lengths and need</span>
<span class="hljs-meta">... </span>        <span class="hljs-comment"># different padding methods</span>
<span class="hljs-meta">... </span>        input_features = [{<span class="hljs-string">&quot;input_values&quot;</span>: feature[<span class="hljs-string">&quot;input_values&quot;</span>][<span class="hljs-number">0</span>]} <span class="hljs-keyword">for</span> feature <span class="hljs-keyword">in</span> features]
<span class="hljs-meta">... </span>        label_features = [{<span class="hljs-string">&quot;input_ids&quot;</span>: feature[<span class="hljs-string">&quot;labels&quot;</span>]} <span class="hljs-keyword">for</span> feature <span class="hljs-keyword">in</span> features]

<span class="hljs-meta">... </span>        batch = self.processor.pad(input_features, padding=self.padding, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)

<span class="hljs-meta">... </span>        labels_batch = self.processor.pad(labels=label_features, padding=self.padding, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)

<span class="hljs-meta">... </span>        <span class="hljs-comment"># replace padding with -100 to ignore loss correctly</span>
<span class="hljs-meta">... </span>        labels = labels_batch[<span class="hljs-string">&quot;input_ids&quot;</span>].masked_fill(labels_batch.attention_mask.ne(<span class="hljs-number">1</span>), -<span class="hljs-number">100</span>)

<span class="hljs-meta">... </span>        batch[<span class="hljs-string">&quot;labels&quot;</span>] = labels

<span class="hljs-meta">... </span>        <span class="hljs-keyword">return</span> batch`,wrap:!1}}),bs=new w({props:{code:"ZGF0YV9jb2xsYXRvciUyMCUzRCUyMERhdGFDb2xsYXRvckNUQ1dpdGhQYWRkaW5nKHByb2Nlc3NvciUzRHByb2Nlc3NvciUyQyUyMHBhZGRpbmclM0QlMjJsb25nZXN0JTIyKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>data_collator = DataCollatorCTCWithPadding(processor=processor, padding=<span class="hljs-string">&quot;longest&quot;</span>)',wrap:!1}}),ws=new Xs({props:{title:"Evaluate",local:"evaluate",headingTag:"h2"}}),Ts=new w({props:{code:"aW1wb3J0JTIwZXZhbHVhdGUlMEElMEF3ZXIlMjAlM0QlMjBldmFsdWF0ZS5sb2FkKCUyMndlciUyMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> evaluate

<span class="hljs-meta">&gt;&gt;&gt; </span>wer = evaluate.load(<span class="hljs-string">&quot;wer&quot;</span>)`,wrap:!1}}),_s=new w({props:{code:"aW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBJTBBJTBBZGVmJTIwY29tcHV0ZV9tZXRyaWNzKHByZWQpJTNBJTBBJTIwJTIwJTIwJTIwcHJlZF9sb2dpdHMlMjAlM0QlMjBwcmVkLnByZWRpY3Rpb25zJTBBJTIwJTIwJTIwJTIwcHJlZF9pZHMlMjAlM0QlMjBucC5hcmdtYXgocHJlZF9sb2dpdHMlMkMlMjBheGlzJTNELTEpJTBBJTBBJTIwJTIwJTIwJTIwcHJlZC5sYWJlbF9pZHMlNUJwcmVkLmxhYmVsX2lkcyUyMCUzRCUzRCUyMC0xMDAlNUQlMjAlM0QlMjBwcm9jZXNzb3IudG9rZW5pemVyLnBhZF90b2tlbl9pZCUwQSUwQSUyMCUyMCUyMCUyMHByZWRfc3RyJTIwJTNEJTIwcHJvY2Vzc29yLmJhdGNoX2RlY29kZShwcmVkX2lkcyklMEElMjAlMjAlMjAlMjBsYWJlbF9zdHIlMjAlM0QlMjBwcm9jZXNzb3IuYmF0Y2hfZGVjb2RlKHByZWQubGFiZWxfaWRzJTJDJTIwZ3JvdXBfdG9rZW5zJTNERmFsc2UpJTBBJTBBJTIwJTIwJTIwJTIwd2VyJTIwJTNEJTIwd2VyLmNvbXB1dGUocHJlZGljdGlvbnMlM0RwcmVkX3N0ciUyQyUyMHJlZmVyZW5jZXMlM0RsYWJlbF9zdHIpJTBBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTdCJTIyd2VyJTIyJTNBJTIwd2VyJTdE",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np


<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">def</span> <span class="hljs-title function_">compute_metrics</span>(<span class="hljs-params">pred</span>):
<span class="hljs-meta">... </span>    pred_logits = pred.predictions
<span class="hljs-meta">... </span>    pred_ids = np.argmax(pred_logits, axis=-<span class="hljs-number">1</span>)

<span class="hljs-meta">... </span>    pred.label_ids[pred.label_ids == -<span class="hljs-number">100</span>] = processor.tokenizer.pad_token_id

<span class="hljs-meta">... </span>    pred_str = processor.batch_decode(pred_ids)
<span class="hljs-meta">... </span>    label_str = processor.batch_decode(pred.label_ids, group_tokens=<span class="hljs-literal">False</span>)

<span class="hljs-meta">... </span>    wer = wer.compute(predictions=pred_str, references=label_str)

<span class="hljs-meta">... </span>    <span class="hljs-keyword">return</span> {<span class="hljs-string">&quot;wer&quot;</span>: wer}`,wrap:!1}}),Is=new Xs({props:{title:"Train",local:"train",headingTag:"h2"}}),V=new ga({props:{pytorch:!0,tensorflow:!1,jax:!1,$$slots:{pytorch:[Wa]},$$scope:{ctx:I}}}),H=new Nt({props:{$$slots:{default:[xa]},$$scope:{ctx:I}}}),vs=new Xs({props:{title:"Inference",local:"inference",headingTag:"h2"}}),ks=new w({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTJDJTIwQXVkaW8lMEElMEFkYXRhc2V0JTIwJTNEJTIwbG9hZF9kYXRhc2V0KCUyMlBvbHlBSSUyRm1pbmRzMTQlMjIlMkMlMjAlMjJlbi1VUyUyMiUyQyUyMHNwbGl0JTNEJTIydHJhaW4lMjIpJTBBZGF0YXNldCUyMCUzRCUyMGRhdGFzZXQuY2FzdF9jb2x1bW4oJTIyYXVkaW8lMjIlMkMlMjBBdWRpbyhzYW1wbGluZ19yYXRlJTNEMTYwMDApKSUwQXNhbXBsaW5nX3JhdGUlMjAlM0QlMjBkYXRhc2V0LmZlYXR1cmVzJTVCJTIyYXVkaW8lMjIlNUQuc2FtcGxpbmdfcmF0ZSUwQWF1ZGlvX2ZpbGUlMjAlM0QlMjBkYXRhc2V0JTVCMCU1RCU1QiUyMmF1ZGlvJTIyJTVEJTVCJTIycGF0aCUyMiU1RA==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset, Audio

<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;PolyAI/minds14&quot;</span>, <span class="hljs-string">&quot;en-US&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = dataset.cast_column(<span class="hljs-string">&quot;audio&quot;</span>, Audio(sampling_rate=<span class="hljs-number">16000</span>))
<span class="hljs-meta">&gt;&gt;&gt; </span>sampling_rate = dataset.features[<span class="hljs-string">&quot;audio&quot;</span>].sampling_rate
<span class="hljs-meta">&gt;&gt;&gt; </span>audio_file = dataset[<span class="hljs-number">0</span>][<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;path&quot;</span>]`,wrap:!1}}),xs=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBdHJhbnNjcmliZXIlMjAlM0QlMjBwaXBlbGluZSglMjJhdXRvbWF0aWMtc3BlZWNoLXJlY29nbml0aW9uJTIyJTJDJTIwbW9kZWwlM0QlMjJzdGV2aGxpdSUyRm15X2F3ZXNvbWVfYXNyX21pbmRzX21vZGVsJTIyKSUwQXRyYW5zY3JpYmVyKGF1ZGlvX2ZpbGUp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

<span class="hljs-meta">&gt;&gt;&gt; </span>transcriber = pipeline(<span class="hljs-string">&quot;automatic-speech-recognition&quot;</span>, model=<span class="hljs-string">&quot;stevhliu/my_awesome_asr_minds_model&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>transcriber(audio_file)
{<span class="hljs-string">&#x27;text&#x27;</span>: <span class="hljs-string">&#x27;I WOUD LIKE O SET UP JOINT ACOUNT WTH Y PARTNER&#x27;</span>}`,wrap:!1}}),Y=new Nt({props:{$$slots:{default:[Ga]},$$scope:{ctx:I}}}),N=new ga({props:{pytorch:!0,tensorflow:!1,jax:!1,$$slots:{pytorch:[Xa]},$$scope:{ctx:I}}}),Bs=new va({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ja/tasks/asr.md"}}),{c(){e=m("meta"),g=n(),r=m("p"),J=n(),M(U.$$.fragment),C=n(),M(Z.$$.fragment),R=n(),M(v.$$.fragment),k=n(),T=m("p"),T.textContent=X,W=n(),$=m("p"),$.textContent=G,i=n(),_=m("ol"),_.innerHTML=Q,B=n(),M(x.$$.fragment),c=n(),b=m("p"),b.textContent=Vs,Ns=n(),M(E.$$.fragment),Qs=n(),z=m("p"),z.textContent=Qt,Es=n(),M(A.$$.fragment),zs=n(),M(F.$$.fragment),As=n(),q=m("p"),q.innerHTML=Et,Fs=n(),M(S.$$.fragment),qs=n(),L=m("p"),L.innerHTML=zt,Ss=n(),M(P.$$.fragment),Ls=n(),D=m("p"),D.textContent=At,Ps=n(),M(K.$$.fragment),Ds=n(),O=m("p"),O.innerHTML=Ft,Ks=n(),M(ss.$$.fragment),Os=n(),ts=m("p"),ts.textContent=qt,st=n(),M(as.$$.fragment),tt=n(),ls=m("p"),ls.textContent=St,at=n(),es=m("ul"),es.innerHTML=Lt,lt=n(),M(ns.$$.fragment),et=n(),ps=m("p"),ps.textContent=Pt,nt=n(),M(rs.$$.fragment),pt=n(),cs=m("p"),cs.innerHTML=Dt,rt=n(),M(is.$$.fragment),ct=n(),ms=m("p"),ms.innerHTML=Kt,it=n(),M(os.$$.fragment),mt=n(),Ms=m("p"),Ms.textContent=Ot,ot=n(),hs=m("ol"),hs.innerHTML=sa,Mt=n(),M(ds.$$.fragment),ht=n(),js=m("p"),js.innerHTML=ta,dt=n(),M(ys.$$.fragment),jt=n(),us=m("p"),us.innerHTML=aa,yt=n(),fs=m("p"),fs.innerHTML=la,ut=n(),M(gs.$$.fragment),ft=n(),Js=m("p"),Js.innerHTML=ea,gt=n(),M(bs.$$.fragment),Jt=n(),M(ws.$$.fragment),bt=n(),Us=m("p"),Us.innerHTML=na,wt=n(),M(Ts.$$.fragment),Ut=n(),$s=m("p"),$s.innerHTML=pa,Tt=n(),M(_s.$$.fragment),$t=n(),Cs=m("p"),Cs.innerHTML=ra,_t=n(),M(Is.$$.fragment),Ct=n(),M(V.$$.fragment),It=n(),M(H.$$.fragment),vt=n(),M(vs.$$.fragment),Rt=n(),Rs=m("p"),Rs.textContent=ca,Zt=n(),Zs=m("p"),Zs.textContent=ia,kt=n(),M(ks.$$.fragment),Wt=n(),Ws=m("p"),Ws.innerHTML=ma,xt=n(),M(xs.$$.fragment),Gt=n(),M(Y.$$.fragment),Bt=n(),Gs=m("p"),Gs.textContent=oa,Xt=n(),M(N.$$.fragment),Vt=n(),M(Bs.$$.fragment),Ht=n(),Hs=m("p"),this.h()},l(s){const t=$a("svelte-u9bgzb",document.head);e=o(t,"META",{name:!0,content:!0}),t.forEach(a),g=p(s),r=o(s,"P",{}),ua(r).forEach(a),J=p(s),h(U.$$.fragment,s),C=p(s),h(Z.$$.fragment,s),R=p(s),h(v.$$.fragment,s),k=p(s),T=o(s,"P",{"data-svelte-h":!0}),f(T)!=="svelte-1kxkciy"&&(T.textContent=X),W=p(s),$=o(s,"P",{"data-svelte-h":!0}),f($)!=="svelte-w5jzhi"&&($.textContent=G),i=p(s),_=o(s,"OL",{"data-svelte-h":!0}),f(_)!=="svelte-1a5eauk"&&(_.innerHTML=Q),B=p(s),h(x.$$.fragment,s),c=p(s),b=o(s,"P",{"data-svelte-h":!0}),f(b)!=="svelte-1lya3k8"&&(b.textContent=Vs),Ns=p(s),h(E.$$.fragment,s),Qs=p(s),z=o(s,"P",{"data-svelte-h":!0}),f(z)!=="svelte-193zy02"&&(z.textContent=Qt),Es=p(s),h(A.$$.fragment,s),zs=p(s),h(F.$$.fragment,s),As=p(s),q=o(s,"P",{"data-svelte-h":!0}),f(q)!=="svelte-hquw2w"&&(q.innerHTML=Et),Fs=p(s),h(S.$$.fragment,s),qs=p(s),L=o(s,"P",{"data-svelte-h":!0}),f(L)!=="svelte-1lbdsew"&&(L.innerHTML=zt),Ss=p(s),h(P.$$.fragment,s),Ls=p(s),D=o(s,"P",{"data-svelte-h":!0}),f(D)!=="svelte-1px2i3t"&&(D.textContent=At),Ps=p(s),h(K.$$.fragment,s),Ds=p(s),O=o(s,"P",{"data-svelte-h":!0}),f(O)!=="svelte-1ao6613"&&(O.innerHTML=Ft),Ks=p(s),h(ss.$$.fragment,s),Os=p(s),ts=o(s,"P",{"data-svelte-h":!0}),f(ts)!=="svelte-8i31kj"&&(ts.textContent=qt),st=p(s),h(as.$$.fragment,s),tt=p(s),ls=o(s,"P",{"data-svelte-h":!0}),f(ls)!=="svelte-gnvpca"&&(ls.textContent=St),at=p(s),es=o(s,"UL",{"data-svelte-h":!0}),f(es)!=="svelte-1qypy57"&&(es.innerHTML=Lt),lt=p(s),h(ns.$$.fragment,s),et=p(s),ps=o(s,"P",{"data-svelte-h":!0}),f(ps)!=="svelte-4nh2qr"&&(ps.textContent=Pt),nt=p(s),h(rs.$$.fragment,s),pt=p(s),cs=o(s,"P",{"data-svelte-h":!0}),f(cs)!=="svelte-1bb93wu"&&(cs.innerHTML=Dt),rt=p(s),h(is.$$.fragment,s),ct=p(s),ms=o(s,"P",{"data-svelte-h":!0}),f(ms)!=="svelte-s6qe8n"&&(ms.innerHTML=Kt),it=p(s),h(os.$$.fragment,s),mt=p(s),Ms=o(s,"P",{"data-svelte-h":!0}),f(Ms)!=="svelte-16wi3kv"&&(Ms.textContent=Ot),ot=p(s),hs=o(s,"OL",{"data-svelte-h":!0}),f(hs)!=="svelte-1izpmn2"&&(hs.innerHTML=sa),Mt=p(s),h(ds.$$.fragment,s),ht=p(s),js=o(s,"P",{"data-svelte-h":!0}),f(js)!=="svelte-1o2hu6u"&&(js.innerHTML=ta),dt=p(s),h(ys.$$.fragment,s),jt=p(s),us=o(s,"P",{"data-svelte-h":!0}),f(us)!=="svelte-1g3uhk"&&(us.innerHTML=aa),yt=p(s),fs=o(s,"P",{"data-svelte-h":!0}),f(fs)!=="svelte-jse1bt"&&(fs.innerHTML=la),ut=p(s),h(gs.$$.fragment,s),ft=p(s),Js=o(s,"P",{"data-svelte-h":!0}),f(Js)!=="svelte-12ra8g5"&&(Js.innerHTML=ea),gt=p(s),h(bs.$$.fragment,s),Jt=p(s),h(ws.$$.fragment,s),bt=p(s),Us=o(s,"P",{"data-svelte-h":!0}),f(Us)!=="svelte-1is2ofz"&&(Us.innerHTML=na),wt=p(s),h(Ts.$$.fragment,s),Ut=p(s),$s=o(s,"P",{"data-svelte-h":!0}),f($s)!=="svelte-2t2nn0"&&($s.innerHTML=pa),Tt=p(s),h(_s.$$.fragment,s),$t=p(s),Cs=o(s,"P",{"data-svelte-h":!0}),f(Cs)!=="svelte-18cw5xr"&&(Cs.innerHTML=ra),_t=p(s),h(Is.$$.fragment,s),Ct=p(s),h(V.$$.fragment,s),It=p(s),h(H.$$.fragment,s),vt=p(s),h(vs.$$.fragment,s),Rt=p(s),Rs=o(s,"P",{"data-svelte-h":!0}),f(Rs)!=="svelte-cyrfc8"&&(Rs.textContent=ca),Zt=p(s),Zs=o(s,"P",{"data-svelte-h":!0}),f(Zs)!=="svelte-frlt8d"&&(Zs.textContent=ia),kt=p(s),h(ks.$$.fragment,s),Wt=p(s),Ws=o(s,"P",{"data-svelte-h":!0}),f(Ws)!=="svelte-gicpys"&&(Ws.innerHTML=ma),xt=p(s),h(xs.$$.fragment,s),Gt=p(s),h(Y.$$.fragment,s),Bt=p(s),Gs=o(s,"P",{"data-svelte-h":!0}),f(Gs)!=="svelte-1pll7p2"&&(Gs.textContent=oa),Xt=p(s),h(N.$$.fragment,s),Vt=p(s),h(Bs.$$.fragment,s),Ht=p(s),Hs=o(s,"P",{}),ua(Hs).forEach(a),this.h()},h(){fa(e,"name","hf:doc:metadata"),fa(e,"content",Ha)},m(s,t){_a(document.head,e),l(s,g,t),l(s,r,t),l(s,J,t),d(U,s,t),l(s,C,t),d(Z,s,t),l(s,R,t),d(v,s,t),l(s,k,t),l(s,T,t),l(s,W,t),l(s,$,t),l(s,i,t),l(s,_,t),l(s,B,t),d(x,s,t),l(s,c,t),l(s,b,t),l(s,Ns,t),d(E,s,t),l(s,Qs,t),l(s,z,t),l(s,Es,t),d(A,s,t),l(s,zs,t),d(F,s,t),l(s,As,t),l(s,q,t),l(s,Fs,t),d(S,s,t),l(s,qs,t),l(s,L,t),l(s,Ss,t),d(P,s,t),l(s,Ls,t),l(s,D,t),l(s,Ps,t),d(K,s,t),l(s,Ds,t),l(s,O,t),l(s,Ks,t),d(ss,s,t),l(s,Os,t),l(s,ts,t),l(s,st,t),d(as,s,t),l(s,tt,t),l(s,ls,t),l(s,at,t),l(s,es,t),l(s,lt,t),d(ns,s,t),l(s,et,t),l(s,ps,t),l(s,nt,t),d(rs,s,t),l(s,pt,t),l(s,cs,t),l(s,rt,t),d(is,s,t),l(s,ct,t),l(s,ms,t),l(s,it,t),d(os,s,t),l(s,mt,t),l(s,Ms,t),l(s,ot,t),l(s,hs,t),l(s,Mt,t),d(ds,s,t),l(s,ht,t),l(s,js,t),l(s,dt,t),d(ys,s,t),l(s,jt,t),l(s,us,t),l(s,yt,t),l(s,fs,t),l(s,ut,t),d(gs,s,t),l(s,ft,t),l(s,Js,t),l(s,gt,t),d(bs,s,t),l(s,Jt,t),d(ws,s,t),l(s,bt,t),l(s,Us,t),l(s,wt,t),d(Ts,s,t),l(s,Ut,t),l(s,$s,t),l(s,Tt,t),d(_s,s,t),l(s,$t,t),l(s,Cs,t),l(s,_t,t),d(Is,s,t),l(s,Ct,t),d(V,s,t),l(s,It,t),d(H,s,t),l(s,vt,t),d(vs,s,t),l(s,Rt,t),l(s,Rs,t),l(s,Zt,t),l(s,Zs,t),l(s,kt,t),d(ks,s,t),l(s,Wt,t),l(s,Ws,t),l(s,xt,t),d(xs,s,t),l(s,Gt,t),d(Y,s,t),l(s,Bt,t),l(s,Gs,t),l(s,Xt,t),d(N,s,t),l(s,Vt,t),d(Bs,s,t),l(s,Ht,t),l(s,Hs,t),Yt=!0},p(s,[t]){const Ma={};t&2&&(Ma.$$scope={dirty:t,ctx:s}),x.$set(Ma);const ha={};t&2&&(ha.$$scope={dirty:t,ctx:s}),V.$set(ha);const da={};t&2&&(da.$$scope={dirty:t,ctx:s}),H.$set(da);const ja={};t&2&&(ja.$$scope={dirty:t,ctx:s}),Y.$set(ja);const ya={};t&2&&(ya.$$scope={dirty:t,ctx:s}),N.$set(ya)},i(s){Yt||(j(U.$$.fragment,s),j(Z.$$.fragment,s),j(v.$$.fragment,s),j(x.$$.fragment,s),j(E.$$.fragment,s),j(A.$$.fragment,s),j(F.$$.fragment,s),j(S.$$.fragment,s),j(P.$$.fragment,s),j(K.$$.fragment,s),j(ss.$$.fragment,s),j(as.$$.fragment,s),j(ns.$$.fragment,s),j(rs.$$.fragment,s),j(is.$$.fragment,s),j(os.$$.fragment,s),j(ds.$$.fragment,s),j(ys.$$.fragment,s),j(gs.$$.fragment,s),j(bs.$$.fragment,s),j(ws.$$.fragment,s),j(Ts.$$.fragment,s),j(_s.$$.fragment,s),j(Is.$$.fragment,s),j(V.$$.fragment,s),j(H.$$.fragment,s),j(vs.$$.fragment,s),j(ks.$$.fragment,s),j(xs.$$.fragment,s),j(Y.$$.fragment,s),j(N.$$.fragment,s),j(Bs.$$.fragment,s),Yt=!0)},o(s){y(U.$$.fragment,s),y(Z.$$.fragment,s),y(v.$$.fragment,s),y(x.$$.fragment,s),y(E.$$.fragment,s),y(A.$$.fragment,s),y(F.$$.fragment,s),y(S.$$.fragment,s),y(P.$$.fragment,s),y(K.$$.fragment,s),y(ss.$$.fragment,s),y(as.$$.fragment,s),y(ns.$$.fragment,s),y(rs.$$.fragment,s),y(is.$$.fragment,s),y(os.$$.fragment,s),y(ds.$$.fragment,s),y(ys.$$.fragment,s),y(gs.$$.fragment,s),y(bs.$$.fragment,s),y(ws.$$.fragment,s),y(Ts.$$.fragment,s),y(_s.$$.fragment,s),y(Is.$$.fragment,s),y(V.$$.fragment,s),y(H.$$.fragment,s),y(vs.$$.fragment,s),y(ks.$$.fragment,s),y(xs.$$.fragment,s),y(Y.$$.fragment,s),y(N.$$.fragment,s),y(Bs.$$.fragment,s),Yt=!1},d(s){s&&(a(g),a(r),a(J),a(C),a(R),a(k),a(T),a(W),a($),a(i),a(_),a(B),a(c),a(b),a(Ns),a(Qs),a(z),a(Es),a(zs),a(As),a(q),a(Fs),a(qs),a(L),a(Ss),a(Ls),a(D),a(Ps),a(Ds),a(O),a(Ks),a(Os),a(ts),a(st),a(tt),a(ls),a(at),a(es),a(lt),a(et),a(ps),a(nt),a(pt),a(cs),a(rt),a(ct),a(ms),a(it),a(mt),a(Ms),a(ot),a(hs),a(Mt),a(ht),a(js),a(dt),a(jt),a(us),a(yt),a(fs),a(ut),a(ft),a(Js),a(gt),a(Jt),a(bt),a(Us),a(wt),a(Ut),a($s),a(Tt),a($t),a(Cs),a(_t),a(Ct),a(It),a(vt),a(Rt),a(Rs),a(Zt),a(Zs),a(kt),a(Wt),a(Ws),a(xt),a(Gt),a(Bt),a(Gs),a(Xt),a(Vt),a(Ht),a(Hs)),a(e),u(U,s),u(Z,s),u(v,s),u(x,s),u(E,s),u(A,s),u(F,s),u(S,s),u(P,s),u(K,s),u(ss,s),u(as,s),u(ns,s),u(rs,s),u(is,s),u(os,s),u(ds,s),u(ys,s),u(gs,s),u(bs,s),u(ws,s),u(Ts,s),u(_s,s),u(Is,s),u(V,s),u(H,s),u(vs,s),u(ks,s),u(xs,s),u(Y,s),u(N,s),u(Bs,s)}}}const Ha='{"title":"Automatic speech recognition","local":"automatic-speech-recognition","sections":[{"title":"Load MInDS-14 dataset","local":"load-minds-14-dataset","sections":[],"depth":2},{"title":"Preprocess","local":"preprocess","sections":[],"depth":2},{"title":"Evaluate","local":"evaluate","sections":[],"depth":2},{"title":"Train","local":"train","sections":[],"depth":2},{"title":"Inference","local":"inference","sections":[],"depth":2}],"depth":1}';function Ya(I){return wa(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class La extends Ua{constructor(e){super(),Ta(this,e,Ya,Va,ba,{})}}export{La as component};
