import{S as xs,i as Es,s as js,e as r,k as m,w as v,t as s,M as zs,c as n,d as o,m as h,a,x as b,h as l,b as c,G as e,g as u,y as M,q as y,o as w,B as $,v as Fs,L as va}from"../../chunks/vendor-hf-doc-builder.js";import{T as tr}from"../../chunks/Tip-hf-doc-builder.js";import{D as q}from"../../chunks/Docstring-hf-doc-builder.js";import{C as ba}from"../../chunks/CodeBlock-hf-doc-builder.js";import{I as Fe}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{E as Ca}from"../../chunks/ExampleCodeBlock-hf-doc-builder.js";function Js(z){let d,C,f,g,T;return g=new ba({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyME1DVENUQ29uZmlnJTJDJTIwTUNUQ1RNb2RlbCUwQSUwQSUyMyUyMEluaXRpYWxpemluZyUyMGElMjBNLUNUQy1UJTIwbWN0Y3QtbGFyZ2UlMjBzdHlsZSUyMGNvbmZpZ3VyYXRpb24lMEFjb25maWd1cmF0aW9uJTIwJTNEJTIwTUNUQ1RDb25maWcoKSUwQSUwQSUyMyUyMEluaXRpYWxpemluZyUyMGElMjBtb2RlbCUyMCh3aXRoJTIwcmFuZG9tJTIwd2VpZ2h0cyklMjBmcm9tJTIwdGhlJTIwbWN0Y3QtbGFyZ2UlMjBzdHlsZSUyMGNvbmZpZ3VyYXRpb24lMEFtb2RlbCUyMCUzRCUyME1DVENUTW9kZWwoY29uZmlndXJhdGlvbiklMEElMEElMjMlMjBBY2Nlc3NpbmclMjB0aGUlMjBtb2RlbCUyMGNvbmZpZ3VyYXRpb24lMEFjb25maWd1cmF0aW9uJTIwJTNEJTIwbW9kZWwuY29uZmln",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> MCTCTConfig, MCTCTModel

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a M-CTC-T mctct-large style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>configuration = MCTCTConfig()

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a model (with random weights) from the mctct-large style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>model = MCTCTModel(configuration)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Accessing the model configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>configuration = model.config`}}),{c(){d=r("p"),C=s("Example:"),f=m(),v(g.$$.fragment)},l(i){d=n(i,"P",{});var _=a(d);C=l(_,"Example:"),_.forEach(o),f=h(i),b(g.$$.fragment,i)},m(i,_){u(i,d,_),e(d,C),u(i,f,_),M(g,i,_),T=!0},p:va,i(i){T||(y(g.$$.fragment,i),T=!0)},o(i){w(g.$$.fragment,i),T=!1},d(i){i&&o(d),i&&o(f),$(g,i)}}}function Us(z){let d,C,f,g,T,i,_,x,N,E,F;return{c(){d=r("p"),C=s(`This class method is simply calling the feature extractor
`),f=r("a"),g=s("from_pretrained()"),T=s(`, image processor
`),i=r("a"),_=s("ImageProcessingMixin"),x=s(` and the tokenizer
`),N=r("code"),E=s("~tokenization_utils_base.PreTrainedTokenizer.from_pretrained"),F=s(` methods. Please refer to the docstrings of the
methods above for more information.`),this.h()},l(j){d=n(j,"P",{});var J=a(d);C=l(J,`This class method is simply calling the feature extractor
`),f=n(J,"A",{href:!0});var S=a(f);g=l(S,"from_pretrained()"),S.forEach(o),T=l(J,`, image processor
`),i=n(J,"A",{href:!0});var ht=a(i);_=l(ht,"ImageProcessingMixin"),ht.forEach(o),x=l(J,` and the tokenizer
`),N=n(J,"CODE",{});var le=a(N);E=l(le,"~tokenization_utils_base.PreTrainedTokenizer.from_pretrained"),le.forEach(o),F=l(J,` methods. Please refer to the docstrings of the
methods above for more information.`),J.forEach(o),this.h()},h(){c(f,"href","/docs/transformers/v4.30.0/en/main_classes/feature_extractor#transformers.FeatureExtractionMixin.from_pretrained"),c(i,"href","/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin")},m(j,J){u(j,d,J),e(d,C),e(d,f),e(f,g),e(d,T),e(d,i),e(i,_),e(d,x),e(d,N),e(N,E),e(d,F)},d(j){j&&o(d)}}}function Ns(z){let d,C,f,g,T,i,_,x;return{c(){d=r("p"),C=s("This class method is simply calling "),f=r("a"),g=s("save_pretrained()"),T=s(` and
`),i=r("a"),_=s("save_pretrained()"),x=s(`. Please refer to the docstrings of the
methods above for more information.`),this.h()},l(N){d=n(N,"P",{});var E=a(d);C=l(E,"This class method is simply calling "),f=n(E,"A",{href:!0});var F=a(f);g=l(F,"save_pretrained()"),F.forEach(o),T=l(E,` and
`),i=n(E,"A",{href:!0});var j=a(i);_=l(j,"save_pretrained()"),j.forEach(o),x=l(E,`. Please refer to the docstrings of the
methods above for more information.`),E.forEach(o),this.h()},h(){c(f,"href","/docs/transformers/v4.30.0/en/main_classes/feature_extractor#transformers.FeatureExtractionMixin.save_pretrained"),c(i,"href","/docs/transformers/v4.30.0/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.save_pretrained")},m(N,E){u(N,d,E),e(d,C),e(d,f),e(f,g),e(d,T),e(d,i),e(i,_),e(d,x)},d(N){N&&o(d)}}}function Is(z){let d,C,f,g,T;return{c(){d=r("p"),C=s("Although the recipe for forward pass needs to be defined within this function, one should call the "),f=r("code"),g=s("Module"),T=s(`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`)},l(i){d=n(i,"P",{});var _=a(d);C=l(_,"Although the recipe for forward pass needs to be defined within this function, one should call the "),f=n(_,"CODE",{});var x=a(f);g=l(x,"Module"),x.forEach(o),T=l(_,`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`),_.forEach(o)},m(i,_){u(i,d,_),e(d,C),e(d,f),e(f,g),e(d,T)},d(i){i&&o(d)}}}function Ps(z){let d,C,f,g,T;return g=new ba({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Qcm9jZXNzb3IlMkMlMjBNQ1RDVE1vZGVsJTBBZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBaW1wb3J0JTIwdG9yY2glMEElMEFkYXRhc2V0JTIwJTNEJTIwbG9hZF9kYXRhc2V0KCUyMmhmLWludGVybmFsLXRlc3RpbmclMkZsaWJyaXNwZWVjaF9hc3JfZGVtbyUyMiUyQyUyMCUyMmNsZWFuJTIyJTJDJTIwc3BsaXQlM0QlMjJ2YWxpZGF0aW9uJTIyKSUwQWRhdGFzZXQlMjAlM0QlMjBkYXRhc2V0LnNvcnQoJTIyaWQlMjIpJTBBc2FtcGxpbmdfcmF0ZSUyMCUzRCUyMGRhdGFzZXQuZmVhdHVyZXMlNUIlMjJhdWRpbyUyMiU1RC5zYW1wbGluZ19yYXRlJTBBJTBBcHJvY2Vzc29yJTIwJTNEJTIwQXV0b1Byb2Nlc3Nvci5mcm9tX3ByZXRyYWluZWQoJTIyc3BlZWNoYnJhaW4lMkZtLWN0Yy10LWxhcmdlJTIyKSUwQW1vZGVsJTIwJTNEJTIwTUNUQ1RNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTIyc3BlZWNoYnJhaW4lMkZtLWN0Yy10LWxhcmdlJTIyKSUwQSUwQSUyMyUyMGF1ZGlvJTIwZmlsZSUyMGlzJTIwZGVjb2RlZCUyMG9uJTIwdGhlJTIwZmx5JTBBaW5wdXRzJTIwJTNEJTIwcHJvY2Vzc29yKGRhdGFzZXQlNUIwJTVEJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCUyQyUyMHNhbXBsaW5nX3JhdGUlM0RzYW1wbGluZ19yYXRlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEF3aXRoJTIwdG9yY2gubm9fZ3JhZCgpJTNBJTBBJTIwJTIwJTIwJTIwbG9naXRzJTIwJTNEJTIwbW9kZWwoKippbnB1dHMpLmxvZ2l0cyUwQXByZWRpY3RlZF9pZHMlMjAlM0QlMjB0b3JjaC5hcmdtYXgobG9naXRzJTJDJTIwZGltJTNELTEpJTBBJTBBJTIzJTIwdHJhbnNjcmliZSUyMHNwZWVjaCUwQXRyYW5zY3JpcHRpb24lMjAlM0QlMjBwcm9jZXNzb3IuYmF0Y2hfZGVjb2RlKHByZWRpY3RlZF9pZHMpJTBBdHJhbnNjcmlwdGlvbiU1QjAlNUQlMEElMEFpbnB1dHMlNUIlMjJsYWJlbHMlMjIlNUQlMjAlM0QlMjBwcm9jZXNzb3IodGV4dCUzRGRhdGFzZXQlNUIwJTVEJTVCJTIydGV4dCUyMiU1RCUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIycHQlMjIpLmlucHV0X2lkcyUwQSUwQSUyMyUyMGNvbXB1dGUlMjBsb3NzJTBBbG9zcyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKS5sb3Nz",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoProcessor, MCTCTModel
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch

<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;hf-internal-testing/librispeech_asr_demo&quot;</span>, <span class="hljs-string">&quot;clean&quot;</span>, split=<span class="hljs-string">&quot;validation&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = dataset.sort(<span class="hljs-string">&quot;id&quot;</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>processor = AutoProcessor.from_pretrained(<span class="hljs-string">&quot;speechbrain/m-ctc-t-large&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>model = MCTCTModel.from_pretrained(<span class="hljs-string">&quot;speechbrain/m-ctc-t-large&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># audio file is decoded on the fly</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>)
<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
<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><span class="hljs-comment"># transcribe speech</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-number">0</span>]
[<span class="hljs-number">1</span>, <span class="hljs-number">195</span>, <span class="hljs-number">1536</span>]

<span class="hljs-meta">&gt;&gt;&gt; </span>inputs[<span class="hljs-string">&quot;labels&quot;</span>] = processor(text=dataset[<span class="hljs-number">0</span>][<span class="hljs-string">&quot;text&quot;</span>], return_tensors=<span class="hljs-string">&quot;pt&quot;</span>).input_ids

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># compute loss</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>loss = model(**inputs).loss`}}),{c(){d=r("p"),C=s("Example:"),f=m(),v(g.$$.fragment)},l(i){d=n(i,"P",{});var _=a(d);C=l(_,"Example:"),_.forEach(o),f=h(i),b(g.$$.fragment,i)},m(i,_){u(i,d,_),e(d,C),u(i,f,_),M(g,i,_),T=!0},p:va,i(i){T||(y(g.$$.fragment,i),T=!0)},o(i){w(g.$$.fragment,i),T=!1},d(i){i&&o(d),i&&o(f),$(g,i)}}}function Zs(z){let d,C,f,g,T;return{c(){d=r("p"),C=s("Although the recipe for forward pass needs to be defined within this function, one should call the "),f=r("code"),g=s("Module"),T=s(`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`)},l(i){d=n(i,"P",{});var _=a(d);C=l(_,"Although the recipe for forward pass needs to be defined within this function, one should call the "),f=n(_,"CODE",{});var x=a(f);g=l(x,"Module"),x.forEach(o),T=l(_,`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`),_.forEach(o)},m(i,_){u(i,d,_),e(d,C),e(d,f),e(f,g),e(d,T)},d(i){i&&o(d)}}}function qs(z){let d,C,f,g,T;return g=new ba({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Qcm9jZXNzb3IlMkMlMjBNQ1RDVEZvckNUQyUwQWZyb20lMjBkYXRhc2V0cyUyMGltcG9ydCUyMGxvYWRfZGF0YXNldCUwQWltcG9ydCUyMHRvcmNoJTBBJTBBZGF0YXNldCUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJoZi1pbnRlcm5hbC10ZXN0aW5nJTJGbGlicmlzcGVlY2hfYXNyX2RlbW8lMjIlMkMlMjAlMjJjbGVhbiUyMiUyQyUyMHNwbGl0JTNEJTIydmFsaWRhdGlvbiUyMiklMEFkYXRhc2V0JTIwJTNEJTIwZGF0YXNldC5zb3J0KCUyMmlkJTIyKSUwQXNhbXBsaW5nX3JhdGUlMjAlM0QlMjBkYXRhc2V0LmZlYXR1cmVzJTVCJTIyYXVkaW8lMjIlNUQuc2FtcGxpbmdfcmF0ZSUwQSUwQXByb2Nlc3NvciUyMCUzRCUyMEF1dG9Qcm9jZXNzb3IuZnJvbV9wcmV0cmFpbmVkKCUyMnNwZWVjaGJyYWluJTJGbS1jdGMtdC1sYXJnZSUyMiklMEFtb2RlbCUyMCUzRCUyME1DVENURm9yQ1RDLmZyb21fcHJldHJhaW5lZCglMjJzcGVlY2hicmFpbiUyRm0tY3RjLXQtbGFyZ2UlMjIpJTBBJTBBJTIzJTIwYXVkaW8lMjBmaWxlJTIwaXMlMjBkZWNvZGVkJTIwb24lMjB0aGUlMjBmbHklMEFpbnB1dHMlMjAlM0QlMjBwcm9jZXNzb3IoZGF0YXNldCU1QjAlNUQlNUIlMjJhdWRpbyUyMiU1RCU1QiUyMmFycmF5JTIyJTVEJTJDJTIwc2FtcGxpbmdfcmF0ZSUzRHNhbXBsaW5nX3JhdGUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnB0JTIyKSUwQXdpdGglMjB0b3JjaC5ub19ncmFkKCklM0ElMEElMjAlMjAlMjAlMjBsb2dpdHMlMjAlM0QlMjBtb2RlbCgqKmlucHV0cykubG9naXRzJTBBcHJlZGljdGVkX2lkcyUyMCUzRCUyMHRvcmNoLmFyZ21heChsb2dpdHMlMkMlMjBkaW0lM0QtMSklMEElMEElMjMlMjB0cmFuc2NyaWJlJTIwc3BlZWNoJTBBdHJhbnNjcmlwdGlvbiUyMCUzRCUyMHByb2Nlc3Nvci5iYXRjaF9kZWNvZGUocHJlZGljdGVkX2lkcyklMEF0cmFuc2NyaXB0aW9uJTVCMCU1RCUwQSUwQWlucHV0cyU1QiUyMmxhYmVscyUyMiU1RCUyMCUzRCUyMHByb2Nlc3Nvcih0ZXh0JTNEZGF0YXNldCU1QjAlNUQlNUIlMjJ0ZXh0JTIyJTVEJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMikuaW5wdXRfaWRzJTBBJTBBJTIzJTIwY29tcHV0ZSUyMGxvc3MlMEFsb3NzJTIwJTNEJTIwbW9kZWwoKippbnB1dHMpLmxvc3MlMEFyb3VuZChsb3NzLml0ZW0oKSUyQyUyMDIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoProcessor, MCTCTForCTC
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch

<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;hf-internal-testing/librispeech_asr_demo&quot;</span>, <span class="hljs-string">&quot;clean&quot;</span>, split=<span class="hljs-string">&quot;validation&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = dataset.sort(<span class="hljs-string">&quot;id&quot;</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>processor = AutoProcessor.from_pretrained(<span class="hljs-string">&quot;speechbrain/m-ctc-t-large&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>model = MCTCTForCTC.from_pretrained(<span class="hljs-string">&quot;speechbrain/m-ctc-t-large&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># audio file is decoded on the fly</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>)
<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
<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><span class="hljs-comment"># transcribe speech</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-number">0</span>]
<span class="hljs-string">&quot;Mr. Quilter is the apostle of the middle classes, and we&#x27;re glad to welcome his gospel.&quot;</span>

<span class="hljs-meta">&gt;&gt;&gt; </span>inputs[<span class="hljs-string">&quot;labels&quot;</span>] = processor(text=dataset[<span class="hljs-number">0</span>][<span class="hljs-string">&quot;text&quot;</span>], return_tensors=<span class="hljs-string">&quot;pt&quot;</span>).input_ids

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># compute loss</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>loss = model(**inputs).loss
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">round</span>(loss.item(), <span class="hljs-number">2</span>)
<span class="hljs-number">1885.65</span>`}}),{c(){d=r("p"),C=s("Example:"),f=m(),v(g.$$.fragment)},l(i){d=n(i,"P",{});var _=a(d);C=l(_,"Example:"),_.forEach(o),f=h(i),b(g.$$.fragment,i)},m(i,_){u(i,d,_),e(d,C),u(i,f,_),M(g,i,_),T=!0},p:va,i(i){T||(y(g.$$.fragment,i),T=!0)},o(i){w(g.$$.fragment,i),T=!1},d(i){i&&o(d),i&&o(f),$(g,i)}}}function Ws(z){let d,C,f,g,T,i,_,x,N,E,F,j,J,S,ht,le,or,bo,ie,rr,Je,nr,ar,Mo,pt,sr,yo,ft,Vt,lr,wo,X,ir,Ue,cr,dr,Ne,mr,hr,$o,D,ce,Bt,Ie,pr,St,fr,ko,ut,Xt,gt,ur,xo,_t,gr,Eo,Tt,Lt,_r,jo,Y,de,Qt,Pe,Tr,Dt,Cr,zo,P,Ze,vr,H,br,Ct,Mr,yr,qe,wr,$r,kr,O,xr,vt,Er,jr,bt,zr,Fr,Jr,me,Fo,K,he,Yt,We,Ur,Ht,Nr,Jo,Z,Ge,Ir,Ot,Pr,Zr,ee,qr,Mt,Wr,Gr,Re,Rr,Ar,Vr,pe,Ae,Br,Kt,Sr,Uo,te,fe,eo,Ve,Xr,to,Lr,No,k,Be,Qr,oo,Dr,Yr,I,yt,Hr,Or,wt,Kr,en,$t,tn,on,Se,ro,rn,nn,an,kt,sn,ln,cn,ue,Xe,dn,R,mn,Le,no,hn,pn,fn,ao,un,gn,so,_n,Tn,Cn,L,Qe,vn,lo,bn,Mn,ge,yn,Q,De,wn,Ye,$n,xt,kn,xn,En,_e,jn,Te,He,zn,Oe,Fn,Et,Jn,Un,Nn,Ce,Ke,In,et,Pn,jt,Zn,qn,Io,oe,ve,io,tt,Wn,co,Gn,Po,A,ot,Rn,rt,An,nt,Vn,Bn,Sn,W,at,Xn,re,Ln,zt,Qn,Dn,mo,Yn,Hn,On,be,Kn,Me,Zo,ne,ye,ho,st,ea,po,ta,qo,V,lt,oa,ae,ra,fo,na,aa,it,sa,la,ia,G,ct,ca,se,da,Ft,ma,ha,uo,pa,fa,ua,we,ga,$e,Wo;return i=new Fe({}),S=new Fe({}),Ie=new Fe({}),Pe=new Fe({}),Ze=new q({props:{name:"class transformers.MCTCTConfig",anchor:"transformers.MCTCTConfig",parameters:[{name:"vocab_size",val:" = 8065"},{name:"hidden_size",val:" = 1536"},{name:"num_hidden_layers",val:" = 36"},{name:"intermediate_size",val:" = 6144"},{name:"num_attention_heads",val:" = 4"},{name:"attention_head_dim",val:" = 384"},{name:"max_position_embeddings",val:" = 920"},{name:"layer_norm_eps",val:" = 1e-05"},{name:"layerdrop",val:" = 0.3"},{name:"hidden_act",val:" = 'relu'"},{name:"initializer_range",val:" = 0.02"},{name:"hidden_dropout_prob",val:" = 0.3"},{name:"attention_probs_dropout_prob",val:" = 0.3"},{name:"pad_token_id",val:" = 1"},{name:"bos_token_id",val:" = 0"},{name:"eos_token_id",val:" = 2"},{name:"conv_glu_dim",val:" = 1"},{name:"conv_dropout",val:" = 0.3"},{name:"num_conv_layers",val:" = 1"},{name:"conv_kernel",val:" = (7,)"},{name:"conv_stride",val:" = (3,)"},{name:"input_feat_per_channel",val:" = 80"},{name:"input_channels",val:" = 1"},{name:"conv_channels",val:" = None"},{name:"ctc_loss_reduction",val:" = 'sum'"},{name:"ctc_zero_infinity",val:" = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.MCTCTConfig.vocab_size",description:`<strong>vocab_size</strong> (<code>int</code>, <em>optional</em>, defaults to 8065) &#x2014;
Vocabulary size of the M-CTC-T model. Defines the number of different tokens that can be represented by the
<code>inputs_ids</code> passed when calling <a href="/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTModel">MCTCTModel</a>.`,name:"vocab_size"},{anchor:"transformers.MCTCTConfig.hidden_size",description:`<strong>hidden_size</strong> (<code>int</code>, <em>optional</em>, defaults to 1536) &#x2014;
Dimension of the encoder layers and the pooler layer.`,name:"hidden_size"},{anchor:"transformers.MCTCTConfig.num_hidden_layers",description:`<strong>num_hidden_layers</strong> (<code>int</code>, <em>optional</em>, defaults to 36) &#x2014;
Number of hidden layers in the Transformer encoder.`,name:"num_hidden_layers"},{anchor:"transformers.MCTCTConfig.intermediate_size",description:`<strong>intermediate_size</strong> (<code>int</code>, <em>optional</em>, defaults to 6144) &#x2014;
Dimension of the &#x201C;intermediate&#x201D; (i.e., feed-forward) layer in the Transformer encoder.`,name:"intermediate_size"},{anchor:"transformers.MCTCTConfig.num_attention_heads",description:`<strong>num_attention_heads</strong> (<code>int</code>, <em>optional</em>, defaults to 4) &#x2014;
Number of attention heads for each attention layer in the Transformer encoder.`,name:"num_attention_heads"},{anchor:"transformers.MCTCTConfig.attention_head_dim",description:`<strong>attention_head_dim</strong> (<code>int</code>, <em>optional</em>, defaults to 384) &#x2014;
Dimensions of each attention head for each attention layer in the Transformer encoder.`,name:"attention_head_dim"},{anchor:"transformers.MCTCTConfig.max_position_embeddings",description:`<strong>max_position_embeddings</strong> (<code>int</code>, <em>optional</em>, defaults to 920) &#x2014;
The maximum sequence length that this model might ever be used with (after log-mel spectrogram extraction).`,name:"max_position_embeddings"},{anchor:"transformers.MCTCTConfig.layer_norm_eps",description:`<strong>layer_norm_eps</strong> (<code>float</code>, <em>optional</em>, defaults to 1e-5) &#x2014;
The epsilon used by the layer normalization layers.`,name:"layer_norm_eps"},{anchor:"transformers.MCTCTConfig.layerdrop",description:`<strong>layerdrop</strong> (<code>float</code>, <em>optional</em>, defaults to 0.3) &#x2014;
The probability of dropping an encoder layer during training. The default 0.3 value is used in the original
implementation.`,name:"layerdrop"},{anchor:"transformers.MCTCTConfig.hidden_act",description:`<strong>hidden_act</strong> (<code>str</code> or <code>function</code>, <em>optional</em>, defaults to <code>&quot;relu&quot;</code>) &#x2014;
The non-linear activation function (function or string) in the encoder and pooler. If string, <code>&quot;gelu&quot;</code>,
<code>&quot;relu&quot;</code>, <code>&quot;selu&quot;</code> and <code>&quot;gelu_new&quot;</code> are supported.`,name:"hidden_act"},{anchor:"transformers.MCTCTConfig.initializer_range",description:`<strong>initializer_range</strong> (<code>float</code>, <em>optional</em>, defaults to 0.02) &#x2014;
The standard deviation of the truncated_normal_initializer for initializing all weight matrices.`,name:"initializer_range"},{anchor:"transformers.MCTCTConfig.hidden_dropout_prob",description:`<strong>hidden_dropout_prob</strong> (<code>float</code>, <em>optional</em>, defaults to 0.1) &#x2014;
The dropout probabilitiy for all fully connected layers in the embeddings, encoder, and pooler.`,name:"hidden_dropout_prob"},{anchor:"transformers.MCTCTConfig.attention_probs_dropout_prob",description:`<strong>attention_probs_dropout_prob</strong> (<code>float</code>, <em>optional</em>, defaults to 0.1) &#x2014;
The dropout ratio for the attention probabilities.`,name:"attention_probs_dropout_prob"},{anchor:"transformers.MCTCTConfig.pad_token_id",description:`<strong>pad_token_id</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The tokenizer index of the pad token.`,name:"pad_token_id"},{anchor:"transformers.MCTCTConfig.bos_token_id",description:`<strong>bos_token_id</strong> (<code>int</code>, <em>optional</em>, defaults to 0) &#x2014;
The tokenizer index of the bos token.`,name:"bos_token_id"},{anchor:"transformers.MCTCTConfig.eos_token_id",description:`<strong>eos_token_id</strong> (<code>int</code>, <em>optional</em>, defaults to 2) &#x2014;
The tokenizer index of the eos token.`,name:"eos_token_id"},{anchor:"transformers.MCTCTConfig.conv_glu_dim",description:`<strong>conv_glu_dim</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The dimension of the output of the <code>Conv1dSubsampler</code> layer in which GLU is applied on. Though the original
Flashlight code uses the value of 2, here it&#x2019;s adapted to 1 due to transposition differences.`,name:"conv_glu_dim"},{anchor:"transformers.MCTCTConfig.conv_dropout",description:`<strong>conv_dropout</strong> (<code>int</code>, <em>optional</em>, defaults to 0.3) &#x2014;
The probability of randomly dropping the <code>Conv1dSubsampler</code> layer during training.`,name:"conv_dropout"},{anchor:"transformers.MCTCTConfig.num_conv_layers",description:`<strong>num_conv_layers</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
Number of convolution layers before applying transformer encoder layers.`,name:"num_conv_layers"},{anchor:"transformers.MCTCTConfig.conv_kernel",description:`<strong>conv_kernel</strong> (<code>List[int]</code>, <em>optional</em>, defaults to <code>[7]</code>) &#x2014;
The kernel size of the 1D convolution applied before transformer layers. <code>len(conv_kernel)</code> must be equal
to <code>num_conv_layers</code>.`,name:"conv_kernel"},{anchor:"transformers.MCTCTConfig.conv_stride",description:`<strong>conv_stride</strong> (<code>List[int]</code>, <em>optional</em>, defaults to <code>[3]</code>) &#x2014;
The stride length of the 1D convolution applied before transformer layers. <code>len(conv_stride)</code> must be equal
to <code>num_conv_layers</code>.`,name:"conv_stride"},{anchor:"transformers.MCTCTConfig.input_feat_per_channel",description:`<strong>input_feat_per_channel</strong> (<code>int</code>, <em>optional</em>, defaults to 80) &#x2014;
Feature dimensions of the channels of the input to the Conv1D layer.`,name:"input_feat_per_channel"},{anchor:"transformers.MCTCTConfig.input_channels",description:`<strong>input_channels</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
Number of input channels of the input to the Conv1D layer.`,name:"input_channels"},{anchor:"transformers.MCTCTConfig.conv_channels",description:`<strong>conv_channels</strong> (<code>List[int]</code>, <em>optional</em>, defaults to None) &#x2014;
Channel sizes of intermediate Conv1D layers.`,name:"conv_channels"},{anchor:"transformers.MCTCTConfig.ctc_loss_reduction",description:`<strong>ctc_loss_reduction</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;sum&quot;</code>) &#x2014;
Specifies the reduction to apply to the output of <code>torch.nn.CTCLoss</code>. Only relevant when training an
instance of <a href="/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTForCTC">MCTCTForCTC</a>.`,name:"ctc_loss_reduction"},{anchor:"transformers.MCTCTConfig.ctc_zero_infinity",description:`<strong>ctc_zero_infinity</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to zero infinite losses and the associated gradients of <code>torch.nn.CTCLoss</code>. Infinite losses mainly
occur when the inputs are too short to be aligned to the targets. Only relevant when training an instance
of <a href="/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTForCTC">MCTCTForCTC</a>.`,name:"ctc_zero_infinity"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/configuration_mctct.py#L29"}}),me=new Ca({props:{anchor:"transformers.MCTCTConfig.example",$$slots:{default:[Js]},$$scope:{ctx:z}}}),We=new Fe({}),Ge=new q({props:{name:"class transformers.MCTCTFeatureExtractor",anchor:"transformers.MCTCTFeatureExtractor",parameters:[{name:"feature_size",val:" = 80"},{name:"sampling_rate",val:" = 16000"},{name:"padding_value",val:" = 0.0"},{name:"hop_length",val:" = 10"},{name:"win_length",val:" = 25"},{name:"win_function",val:" = 'hamming_window'"},{name:"frame_signal_scale",val:" = 32768.0"},{name:"preemphasis_coeff",val:" = 0.97"},{name:"mel_floor",val:" = 1.0"},{name:"normalize_means",val:" = True"},{name:"normalize_vars",val:" = True"},{name:"return_attention_mask",val:" = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.MCTCTFeatureExtractor.feature_size",description:`<strong>feature_size</strong> (<code>int</code>, defaults to 80) &#x2014;
The feature dimension of the extracted features. This is the number of mel_frequency`,name:"feature_size"},{anchor:"transformers.MCTCTFeatureExtractor.sampling_rate",description:`<strong>sampling_rate</strong> (<code>int</code>, defaults to 16000) &#x2014;
The sampling rate at which the audio files should be digitalized expressed in hertz (Hz).`,name:"sampling_rate"},{anchor:"transformers.MCTCTFeatureExtractor.padding_value",description:`<strong>padding_value</strong> (<code>float</code>, defaults to 0.0) &#x2014;
The value that is used to fill the padding values.`,name:"padding_value"},{anchor:"transformers.MCTCTFeatureExtractor.hop_length",description:`<strong>hop_length</strong> (<code>int</code>, defaults to 10) &#x2014;
Number of audio samples between windows. Otherwise referred to as &#x201C;shift&#x201D; in many papers.`,name:"hop_length"},{anchor:"transformers.MCTCTFeatureExtractor.win_length",description:`<strong>win_length</strong> (<code>int</code>, defaults to 25) &#x2014;
Number of ms per window`,name:"win_length"},{anchor:"transformers.MCTCTFeatureExtractor.win_function",description:`<strong>win_function</strong> (<code>str</code>, defaults to <code>&quot;hamming_window&quot;</code>) &#x2014;
Name for the window function used for windowing, must be accessible via <code>torch.{win_function}</code>`,name:"win_function"},{anchor:"transformers.MCTCTFeatureExtractor.frame_signal_scale",description:`<strong>frame_signal_scale</strong> (<code>float</code>, defaults to 32768.0) &#x2014;
Constant multiplied in creating the frames before applying DFT.`,name:"frame_signal_scale"},{anchor:"transformers.MCTCTFeatureExtractor.preemphasis_coeff",description:`<strong>preemphasis_coeff</strong> (<code>float</code>, defaults to 0.97) &#x2014;
Constant multiplied in applying Pre-emphasis before DFT.`,name:"preemphasis_coeff"},{anchor:"transformers.MCTCTFeatureExtractor.mel_floor",description:`<strong>mel_floor</strong> (<code>float</code> defaults to 1.0) &#x2014;
Minimum value of mel frequency banks.`,name:"mel_floor"},{anchor:"transformers.MCTCTFeatureExtractor.normalize_means",description:`<strong>normalize_means</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to zero-mean normalize the extracted features.`,name:"normalize_means"},{anchor:"transformers.MCTCTFeatureExtractor.normalize_vars",description:`<strong>normalize_vars</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to unit-variance normalize the extracted features.`,name:"normalize_vars"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/feature_extraction_mctct.py#L34"}}),Ae=new q({props:{name:"__call__",anchor:"transformers.MCTCTFeatureExtractor.__call__",parameters:[{name:"raw_speech",val:": typing.Union[numpy.ndarray, typing.List[float], typing.List[numpy.ndarray], typing.List[typing.List[float]]]"},{name:"padding",val:": typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False"},{name:"max_length",val:": typing.Optional[int] = None"},{name:"truncation",val:": bool = False"},{name:"pad_to_multiple_of",val:": typing.Optional[int] = None"},{name:"return_attention_mask",val:": typing.Optional[bool] = None"},{name:"return_tensors",val:": typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None"},{name:"sampling_rate",val:": typing.Optional[int] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.MCTCTFeatureExtractor.__call__.raw_speech",description:`<strong>raw_speech</strong> (<code>torch.Tensor</code>, <code>np.ndarray</code>, <code>List[float]</code>, <code>List[torch.Tensor]</code>, <code>List[np.ndarray]</code>, <code>List[List[float]]</code>) &#x2014;
The sequence or batch of sequences to be padded. Each sequence can be a tensor, a numpy array, a list
of float values, a list of tensors, a list of numpy arrays or a list of list of float values. Must be
mono channel audio, not stereo, i.e. single float per timestep.`,name:"raw_speech"},{anchor:"transformers.MCTCTFeatureExtractor.__call__.padding",description:`<strong>padding</strong> (<code>bool</code>, <code>str</code> or <a href="/docs/transformers/v4.30.0/en/internal/file_utils#transformers.utils.PaddingStrategy">PaddingStrategy</a>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Select a strategy to pad the returned sequences (according to the model&#x2019;s padding side and padding
index) among:</p>
<ul>
<li><code>True</code> or <code>&apos;longest&apos;</code>: Pad to the longest sequence in the batch (or no padding if only a single
sequence if provided).</li>
<li><code>&apos;max_length&apos;</code>: Pad to a maximum length specified with the argument <code>max_length</code> or to the maximum
acceptable input length for the model if that argument is not provided.</li>
<li><code>False</code> or <code>&apos;do_not_pad&apos;</code> (default): No padding (i.e., can output a batch with sequences of different
lengths).</li>
</ul>`,name:"padding"},{anchor:"transformers.MCTCTFeatureExtractor.__call__.max_length",description:`<strong>max_length</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Maximum length of the returned list and optionally padding length (see above).`,name:"max_length"},{anchor:"transformers.MCTCTFeatureExtractor.__call__.truncation",description:`<strong>truncation</strong> (<code>bool</code>) &#x2014;
Activates truncation to cut input sequences longer than <em>max_length</em> to <em>max_length</em>.`,name:"truncation"},{anchor:"transformers.MCTCTFeatureExtractor.__call__.pad_to_multiple_of",description:`<strong>pad_to_multiple_of</strong> (<code>int</code>, <em>optional</em>) &#x2014;
If set will pad the sequence to a multiple of the provided value.</p>
<p>This is especially useful to enable the use of Tensor Cores on NVIDIA hardware with compute capability
<code>&gt;= 7.5</code> (Volta), or on TPUs which benefit from having sequence lengths be a multiple of 128.`,name:"pad_to_multiple_of"},{anchor:"transformers.MCTCTFeatureExtractor.__call__.return_attention_mask",description:`<strong>return_attention_mask</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether to return the attention mask. If left to the default, will return the attention mask according
to the specific feature_extractor&#x2019;s default.</p>
<p><a href="../glossary#attention-mask">What are attention masks?</a>`,name:"return_attention_mask"},{anchor:"transformers.MCTCTFeatureExtractor.__call__.return_tensors",description:`<strong>return_tensors</strong> (<code>str</code> or <a href="/docs/transformers/v4.30.0/en/internal/file_utils#transformers.TensorType">TensorType</a>, <em>optional</em>) &#x2014;
If set, will return tensors instead of list of python integers. Acceptable values are:</p>
<ul>
<li><code>&apos;tf&apos;</code>: Return TensorFlow <code>tf.constant</code> objects.</li>
<li><code>&apos;pt&apos;</code>: Return PyTorch <code>torch.Tensor</code> objects.</li>
<li><code>&apos;np&apos;</code>: Return Numpy <code>np.ndarray</code> objects.</li>
</ul>`,name:"return_tensors"},{anchor:"transformers.MCTCTFeatureExtractor.__call__.sampling_rate",description:`<strong>sampling_rate</strong> (<code>int</code>, <em>optional</em>) &#x2014;
The sampling rate at which the <code>raw_speech</code> input was sampled. It is strongly recommended to pass
<code>sampling_rate</code> at the forward call to prevent silent errors.`,name:"sampling_rate"},{anchor:"transformers.MCTCTFeatureExtractor.__call__.padding_value",description:"<strong>padding_value</strong> (<code>float</code>, defaults to 0.0) &#x2014;",name:"padding_value"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/feature_extraction_mctct.py#L164"}}),Ve=new Fe({}),Be=new q({props:{name:"class transformers.MCTCTProcessor",anchor:"transformers.MCTCTProcessor",parameters:[{name:"feature_extractor",val:""},{name:"tokenizer",val:""}],parametersDescription:[{anchor:"transformers.MCTCTProcessor.feature_extractor",description:`<strong>feature_extractor</strong> (<code>MCTCTFeatureExtractor</code>) &#x2014;
An instance of <a href="/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTFeatureExtractor">MCTCTFeatureExtractor</a>. The feature extractor is a required input.`,name:"feature_extractor"},{anchor:"transformers.MCTCTProcessor.tokenizer",description:`<strong>tokenizer</strong> (<code>AutoTokenizer</code>) &#x2014;
An instance of <a href="/docs/transformers/v4.30.0/en/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>. The tokenizer is a required input.`,name:"tokenizer"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/processing_mctct.py#L24"}}),Xe=new q({props:{name:"__call__",anchor:"transformers.MCTCTProcessor.__call__",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/processing_mctct.py#L45"}}),Qe=new q({props:{name:"from_pretrained",anchor:"transformers.MCTCTProcessor.from_pretrained",parameters:[{name:"pretrained_model_name_or_path",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.MCTCTProcessor.from_pretrained.pretrained_model_name_or_path",description:`<strong>pretrained_model_name_or_path</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
This can be either:</p>
<ul>
<li>a string, the <em>model id</em> of a pretrained feature_extractor hosted inside a model repo on
huggingface.co. Valid model ids can be located at the root-level, like <code>bert-base-uncased</code>, or
namespaced under a user or organization name, like <code>dbmdz/bert-base-german-cased</code>.</li>
<li>a path to a <em>directory</em> containing a feature extractor file saved using the
<a href="/docs/transformers/v4.30.0/en/main_classes/feature_extractor#transformers.FeatureExtractionMixin.save_pretrained">save_pretrained()</a> method, e.g., <code>./my_model_directory/</code>.</li>
<li>a path or url to a saved feature extractor JSON <em>file</em>, e.g.,
<code>./my_model_directory/preprocessor_config.json</code>.
**kwargs &#x2014;
Additional keyword arguments passed along to both
<a href="/docs/transformers/v4.30.0/en/main_classes/feature_extractor#transformers.FeatureExtractionMixin.from_pretrained">from_pretrained()</a> and
<code>~tokenization_utils_base.PreTrainedTokenizer.from_pretrained</code>.</li>
</ul>`,name:"pretrained_model_name_or_path"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/processing_utils.py#L153"}}),ge=new tr({props:{$$slots:{default:[Us]},$$scope:{ctx:z}}}),De=new q({props:{name:"save_pretrained",anchor:"transformers.MCTCTProcessor.save_pretrained",parameters:[{name:"save_directory",val:""},{name:"push_to_hub",val:": bool = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.MCTCTProcessor.save_pretrained.save_directory",description:`<strong>save_directory</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
Directory where the feature extractor JSON file and the tokenizer files will be saved (directory will
be created if it does not exist).`,name:"save_directory"},{anchor:"transformers.MCTCTProcessor.save_pretrained.push_to_hub",description:`<strong>push_to_hub</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to push your model to the Hugging Face model hub after saving it. You can specify the
repository you want to push to with <code>repo_id</code> (will default to the name of <code>save_directory</code> in your
namespace).
kwargs &#x2014;
Additional key word arguments passed along to the <a href="/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin.push_to_hub">push_to_hub()</a> method.`,name:"push_to_hub"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/processing_utils.py#L91"}}),_e=new tr({props:{$$slots:{default:[Ns]},$$scope:{ctx:z}}}),He=new q({props:{name:"batch_decode",anchor:"transformers.MCTCTProcessor.batch_decode",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/processing_mctct.py#L83"}}),Ke=new q({props:{name:"decode",anchor:"transformers.MCTCTProcessor.decode",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/processing_mctct.py#L120"}}),tt=new Fe({}),ot=new q({props:{name:"class transformers.MCTCTModel",anchor:"transformers.MCTCTModel",parameters:[{name:"config",val:""}],parametersDescription:[{anchor:"transformers.MCTCTModel.config",description:`<strong>config</strong> (<a href="/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTConfig">MCTCTConfig</a>) &#x2014; Model configuration class with all the parameters of the model.
Initializing with a config file does not load the weights associated with the model, only the
configuration. Check out the <a href="/docs/transformers/v4.30.0/en/main_classes/model#transformers.PreTrainedModel.from_pretrained">from_pretrained()</a> method to load the model weights.`,name:"config"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/modeling_mctct.py#L661"}}),at=new q({props:{name:"forward",anchor:"transformers.MCTCTModel.forward",parameters:[{name:"input_features",val:": Tensor"},{name:"attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"head_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"output_attentions",val:": typing.Optional[bool] = None"},{name:"output_hidden_states",val:": typing.Optional[bool] = None"},{name:"return_dict",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"transformers.MCTCTModel.forward.input_features",description:`<strong>input_features</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size, sequence_length)</code>) &#x2014;
Indices of input sequence tokens in the vocabulary.</p>
<p>Indices can be obtained using <a href="/docs/transformers/v4.30.0/en/model_doc/wav2vec2#transformers.Wav2Vec2CTCTokenizer">Wav2Vec2CTCTokenizer</a>. See <a href="/docs/transformers/v4.30.0/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.__call__">PreTrainedTokenizer.<strong>call</strong>()</a> for details.</p>
<p><a href="../glossary#input-ids">What are input IDs?</a>`,name:"input_features"},{anchor:"transformers.MCTCTModel.forward.attention_mask",description:`<strong>attention_mask</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>) &#x2014;
Mask to avoid performing attention on padding token indices. Mask values selected in <code>[0, 1]</code>:</p>
<ul>
<li>1 for tokens that are <strong>not masked</strong>,</li>
<li>0 for tokens that are <strong>masked</strong>.</li>
</ul>
<p><a href="../glossary#attention-mask">What are attention masks?</a>`,name:"attention_mask"},{anchor:"transformers.MCTCTModel.forward.head_mask",description:`<strong>head_mask</strong> (<code>torch.FloatTensor</code> of shape <code>(num_heads,)</code> or <code>(num_layers, num_heads)</code>, <em>optional</em>) &#x2014;
Mask to nullify selected heads of the self-attention modules. Mask values selected in <code>[0, 1]</code>:</p>
<ul>
<li>1 indicates the head is <strong>not masked</strong>,</li>
<li>0 indicates the head is <strong>masked</strong>.</li>
</ul>`,name:"head_mask"},{anchor:"transformers.MCTCTModel.forward.output_attentions",description:`<strong>output_attentions</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the attentions tensors of all attention layers. See <code>attentions</code> under returned
tensors for more detail.`,name:"output_attentions"},{anchor:"transformers.MCTCTModel.forward.output_hidden_states",description:`<strong>output_hidden_states</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the hidden states of all layers. See <code>hidden_states</code> under returned tensors for
more detail.`,name:"output_hidden_states"},{anchor:"transformers.MCTCTModel.forward.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return a <a href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.`,name:"return_dict"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/modeling_mctct.py#L671",returnDescription:`
<p>A <a
  href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.modeling_outputs.BaseModelOutput"
>transformers.modeling_outputs.BaseModelOutput</a> or a tuple of
<code>torch.FloatTensor</code> (if <code>return_dict=False</code> is passed or when <code>config.return_dict=False</code>) comprising various
elements depending on the configuration (<a
  href="/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTConfig"
>MCTCTConfig</a>) and inputs.</p>
<ul>
<li>
<p><strong>last_hidden_state</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, sequence_length, hidden_size)</code>) \u2014 Sequence of hidden-states at the output of the last layer of the model.</p>
</li>
<li>
<p><strong>hidden_states</strong> (<code>tuple(torch.FloatTensor)</code>, <em>optional</em>, returned when <code>output_hidden_states=True</code> is passed or when <code>config.output_hidden_states=True</code>) \u2014 Tuple of <code>torch.FloatTensor</code> (one for the output of the embeddings, if the model has an embedding layer, +
one for the output of each layer) of shape <code>(batch_size, sequence_length, hidden_size)</code>.</p>
<p>Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.</p>
</li>
<li>
<p><strong>attentions</strong> (<code>tuple(torch.FloatTensor)</code>, <em>optional</em>, returned when <code>output_attentions=True</code> is passed or when <code>config.output_attentions=True</code>) \u2014 Tuple of <code>torch.FloatTensor</code> (one for each layer) of shape <code>(batch_size, num_heads, sequence_length, sequence_length)</code>.</p>
<p>Attentions weights after the attention softmax, used to compute the weighted average in the self-attention
heads.</p>
</li>
</ul>
`,returnType:`
<p><a
  href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.modeling_outputs.BaseModelOutput"
>transformers.modeling_outputs.BaseModelOutput</a> or <code>tuple(torch.FloatTensor)</code></p>
`}}),be=new tr({props:{$$slots:{default:[Is]},$$scope:{ctx:z}}}),Me=new Ca({props:{anchor:"transformers.MCTCTModel.forward.example",$$slots:{default:[Ps]},$$scope:{ctx:z}}}),st=new Fe({}),lt=new q({props:{name:"class transformers.MCTCTForCTC",anchor:"transformers.MCTCTForCTC",parameters:[{name:"config",val:""}],parametersDescription:[{anchor:"transformers.MCTCTForCTC.config",description:`<strong>config</strong> (<a href="/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTConfig">MCTCTConfig</a>) &#x2014; Model configuration class with all the parameters of the model.
Initializing with a config file does not load the weights associated with the model, only the
configuration. Check out the <a href="/docs/transformers/v4.30.0/en/main_classes/model#transformers.PreTrainedModel.from_pretrained">from_pretrained()</a> method to load the model weights.`,name:"config"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/modeling_mctct.py#L721"}}),ct=new q({props:{name:"forward",anchor:"transformers.MCTCTForCTC.forward",parameters:[{name:"input_features",val:": Tensor"},{name:"attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"head_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"output_attentions",val:": typing.Optional[bool] = None"},{name:"output_hidden_states",val:": typing.Optional[bool] = None"},{name:"return_dict",val:": typing.Optional[bool] = None"},{name:"labels",val:": typing.Optional[torch.LongTensor] = None"}],parametersDescription:[{anchor:"transformers.MCTCTForCTC.forward.input_features",description:`<strong>input_features</strong> (<code>torch.LongTensor</code> of shape <code>({0})</code>) &#x2014;
Indices of input sequence tokens in the vocabulary.</p>
<p>Indices can be obtained using <a href="/docs/transformers/v4.30.0/en/model_doc/wav2vec2#transformers.Wav2Vec2CTCTokenizer">Wav2Vec2CTCTokenizer</a>. See <a href="/docs/transformers/v4.30.0/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.__call__">PreTrainedTokenizer.<strong>call</strong>()</a> for details.</p>
<p><a href="../glossary#input-ids">What are input IDs?</a>`,name:"input_features"},{anchor:"transformers.MCTCTForCTC.forward.attention_mask",description:`<strong>attention_mask</strong> (<code>torch.FloatTensor</code> of shape <code>({0})</code>, <em>optional</em>) &#x2014;
Mask to avoid performing attention on padding token indices. Mask values selected in <code>[0, 1]</code>:</p>
<ul>
<li>1 for tokens that are <strong>not masked</strong>,</li>
<li>0 for tokens that are <strong>masked</strong>.</li>
</ul>
<p><a href="../glossary#attention-mask">What are attention masks?</a>`,name:"attention_mask"},{anchor:"transformers.MCTCTForCTC.forward.head_mask",description:`<strong>head_mask</strong> (<code>torch.FloatTensor</code> of shape <code>(num_heads,)</code> or <code>(num_layers, num_heads)</code>, <em>optional</em>) &#x2014;
Mask to nullify selected heads of the self-attention modules. Mask values selected in <code>[0, 1]</code>:</p>
<ul>
<li>1 indicates the head is <strong>not masked</strong>,</li>
<li>0 indicates the head is <strong>masked</strong>.</li>
</ul>`,name:"head_mask"},{anchor:"transformers.MCTCTForCTC.forward.output_attentions",description:`<strong>output_attentions</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the attentions tensors of all attention layers. See <code>attentions</code> under returned
tensors for more detail.`,name:"output_attentions"},{anchor:"transformers.MCTCTForCTC.forward.output_hidden_states",description:`<strong>output_hidden_states</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the hidden states of all layers. See <code>hidden_states</code> under returned tensors for
more detail.`,name:"output_hidden_states"},{anchor:"transformers.MCTCTForCTC.forward.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return a <a href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.`,name:"return_dict"},{anchor:"transformers.MCTCTForCTC.forward.labels",description:`<strong>labels</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size, target_length)</code>, <em>optional</em>) &#x2014;
Labels for connectionist temporal classification. Note that <code>target_length</code> has to be smaller or equal to
the sequence length of the output logits. Indices are selected in <code>[-100, 0, ..., config.vocab_size - 1]</code>.
All labels set to <code>-100</code> are ignored (masked), the loss is only computed for labels in <code>[0, ..., config.vocab_size - 1]</code>.`,name:"labels"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/mctct/modeling_mctct.py#L741",returnDescription:`
<p>A <a
  href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.modeling_outputs.CausalLMOutput"
>transformers.modeling_outputs.CausalLMOutput</a> or a tuple of
<code>torch.FloatTensor</code> (if <code>return_dict=False</code> is passed or when <code>config.return_dict=False</code>) comprising various
elements depending on the configuration (<a
  href="/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTConfig"
>MCTCTConfig</a>) and inputs.</p>
<ul>
<li>
<p><strong>loss</strong> (<code>torch.FloatTensor</code> of shape <code>(1,)</code>, <em>optional</em>, returned when <code>labels</code> is provided) \u2014 Language modeling loss (for next-token prediction).</p>
</li>
<li>
<p><strong>logits</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, sequence_length, config.vocab_size)</code>) \u2014 Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax).</p>
</li>
<li>
<p><strong>hidden_states</strong> (<code>tuple(torch.FloatTensor)</code>, <em>optional</em>, returned when <code>output_hidden_states=True</code> is passed or when <code>config.output_hidden_states=True</code>) \u2014 Tuple of <code>torch.FloatTensor</code> (one for the output of the embeddings, if the model has an embedding layer, +
one for the output of each layer) of shape <code>(batch_size, sequence_length, hidden_size)</code>.</p>
<p>Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.</p>
</li>
<li>
<p><strong>attentions</strong> (<code>tuple(torch.FloatTensor)</code>, <em>optional</em>, returned when <code>output_attentions=True</code> is passed or when <code>config.output_attentions=True</code>) \u2014 Tuple of <code>torch.FloatTensor</code> (one for each layer) of shape <code>(batch_size, num_heads, sequence_length, sequence_length)</code>.</p>
<p>Attentions weights after the attention softmax, used to compute the weighted average in the self-attention
heads.</p>
</li>
</ul>
`,returnType:`
<p><a
  href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.modeling_outputs.CausalLMOutput"
>transformers.modeling_outputs.CausalLMOutput</a> or <code>tuple(torch.FloatTensor)</code></p>
`}}),we=new tr({props:{$$slots:{default:[Zs]},$$scope:{ctx:z}}}),$e=new Ca({props:{anchor:"transformers.MCTCTForCTC.forward.example",$$slots:{default:[qs]},$$scope:{ctx:z}}}),{c(){d=r("meta"),C=m(),f=r("h1"),g=r("a"),T=r("span"),v(i.$$.fragment),_=m(),x=r("span"),N=s("M-CTC-T"),E=m(),F=r("h2"),j=r("a"),J=r("span"),v(S.$$.fragment),ht=m(),le=r("span"),or=s("Overview"),bo=m(),ie=r("p"),rr=s("The M-CTC-T model was proposed in "),Je=r("a"),nr=s("Pseudo-Labeling For Massively Multilingual Speech Recognition"),ar=s(" by Loren Lugosch, Tatiana Likhomanenko, Gabriel Synnaeve, and Ronan Collobert. The model is a 1B-param transformer encoder, with a CTC head over 8065 character labels and a language identification head over 60 language ID labels. It is trained on Common Voice (version 6.1, December 2020 release) and VoxPopuli. After training on Common Voice and VoxPopuli, the model is trained on Common Voice only. The labels are unnormalized character-level transcripts (punctuation and capitalization are not removed). The model takes as input Mel filterbank features from a 16Khz audio signal."),Mo=m(),pt=r("p"),sr=s("The abstract from the paper is the following:"),yo=m(),ft=r("p"),Vt=r("em"),lr=s(`Semi-supervised learning through pseudo-labeling has become a staple of state-of-the-art monolingual
speech recognition systems. In this work, we extend pseudo-labeling to massively multilingual speech
recognition with 60 languages. We propose a simple pseudo-labeling recipe that works well even
with low-resource languages: train a supervised multilingual model, fine-tune it with semi-supervised
learning on a target language, generate pseudo-labels for that language, and train a final model using
pseudo-labels for all languages, either from scratch or by fine-tuning. Experiments on the labeled
Common Voice and unlabeled VoxPopuli datasets show that our recipe can yield a model with better
performance for many languages that also transfers well to LibriSpeech.`),wo=m(),X=r("p"),ir=s("This model was contributed by "),Ue=r("a"),cr=s("cwkeam"),dr=s(". The original code can be found "),Ne=r("a"),mr=s("here"),hr=s("."),$o=m(),D=r("h2"),ce=r("a"),Bt=r("span"),v(Ie.$$.fragment),pr=m(),St=r("span"),fr=s("Documentation resources"),ko=m(),ut=r("ul"),Xt=r("li"),gt=r("a"),ur=s("Automatic speech recognition task guide"),xo=m(),_t=r("p"),gr=s("Tips:"),Eo=m(),Tt=r("ul"),Lt=r("li"),_r=s("The PyTorch version of this model is only available in torch 1.9 and higher."),jo=m(),Y=r("h2"),de=r("a"),Qt=r("span"),v(Pe.$$.fragment),Tr=m(),Dt=r("span"),Cr=s("MCTCTConfig"),zo=m(),P=r("div"),v(Ze.$$.fragment),vr=m(),H=r("p"),br=s("This is the configuration class to store the configuration of a "),Ct=r("a"),Mr=s("MCTCTModel"),yr=s(`. It is used to instantiate an
M-CTC-T model according to the specified arguments, defining the model architecture. Instantiating a configuration
with the defaults will yield a similar configuration to that of the M-CTC-T
`),qe=r("a"),wr=s("speechbrain/m-ctc-t-large"),$r=s(" architecture."),kr=m(),O=r("p"),xr=s("Configuration objects inherit from "),vt=r("a"),Er=s("PretrainedConfig"),jr=s(` and can be used to control the model outputs. Read the
documentation from `),bt=r("a"),zr=s("PretrainedConfig"),Fr=s(" for more information."),Jr=m(),v(me.$$.fragment),Fo=m(),K=r("h2"),he=r("a"),Yt=r("span"),v(We.$$.fragment),Ur=m(),Ht=r("span"),Nr=s("MCTCTFeatureExtractor"),Jo=m(),Z=r("div"),v(Ge.$$.fragment),Ir=m(),Ot=r("p"),Pr=s("Constructs a M-CTC-T feature extractor."),Zr=m(),ee=r("p"),qr=s("This feature extractor inherits from "),Mt=r("a"),Wr=s("SequenceFeatureExtractor"),Gr=s(` which contains
most of the main methods. Users should refer to this superclass for more information regarding those methods. This
code has been adapted from Flashlight\u2019s C++ code. For more information about the implementation, one can refer to
this `),Re=r("a"),Rr=s("notebook"),Ar=s(`
that takes the user step-by-step in the implementation.`),Vr=m(),pe=r("div"),v(Ae.$$.fragment),Br=m(),Kt=r("p"),Sr=s(`Main method to featurize and prepare for the model one or several sequence(s). sequences. It returns the
log-mel spectrogram of the input audio, as implemented in the original Flashlight MFSC feature extraction code.`),Uo=m(),te=r("h2"),fe=r("a"),eo=r("span"),v(Ve.$$.fragment),Xr=m(),to=r("span"),Lr=s("MCTCTProcessor"),No=m(),k=r("div"),v(Be.$$.fragment),Qr=m(),oo=r("p"),Dr=s("Constructs a MCTCT processor which wraps a MCTCT feature extractor and a MCTCT tokenizer into a single processor."),Yr=m(),I=r("p"),yt=r("a"),Hr=s("MCTCTProcessor"),Or=s(" offers all the functionalities of "),wt=r("a"),Kr=s("MCTCTFeatureExtractor"),en=s(" and "),$t=r("a"),tn=s("AutoTokenizer"),on=s(`. See the
`),Se=r("a"),ro=r("strong"),rn=s("call"),nn=s("()"),an=s(" and "),kt=r("a"),sn=s("decode()"),ln=s(" for more information."),cn=m(),ue=r("div"),v(Xe.$$.fragment),dn=m(),R=r("p"),mn=s(`When used in normal mode, this method forwards all its arguments to MCTCTFeatureExtractor\u2019s
`),Le=r("a"),no=r("strong"),hn=s("call"),pn=s("()"),fn=s(` and returns its output. If used in the context
`),ao=r("code"),un=s("as_target_processor()"),gn=s(` this method forwards all its arguments to AutoTokenizer\u2019s
`),so=r("code"),_n=s("__call__()"),Tn=s(". Please refer to the doctsring of the above two methods for more information."),Cn=m(),L=r("div"),v(Qe.$$.fragment),vn=m(),lo=r("p"),bn=s("Instantiate a processor associated with a pretrained model."),Mn=m(),v(ge.$$.fragment),yn=m(),Q=r("div"),v(De.$$.fragment),wn=m(),Ye=r("p"),$n=s(`Saves the attributes of this processor (feature extractor, tokenizer\u2026) in the specified directory so that it
can be reloaded using the `),xt=r("a"),kn=s("from_pretrained()"),xn=s(" method."),En=m(),v(_e.$$.fragment),jn=m(),Te=r("div"),v(He.$$.fragment),zn=m(),Oe=r("p"),Fn=s("This method forwards all its arguments to AutoTokenizer\u2019s "),Et=r("a"),Jn=s("batch_decode()"),Un=s(`. Please refer
to the docstring of this method for more information.`),Nn=m(),Ce=r("div"),v(Ke.$$.fragment),In=m(),et=r("p"),Pn=s("This method forwards all its arguments to AutoTokenizer\u2019s "),jt=r("a"),Zn=s("decode()"),qn=s(`. Please refer to the
docstring of this method for more information.`),Io=m(),oe=r("h2"),ve=r("a"),io=r("span"),v(tt.$$.fragment),Wn=m(),co=r("span"),Gn=s("MCTCTModel"),Po=m(),A=r("div"),v(ot.$$.fragment),Rn=m(),rt=r("p"),An=s(`The bare M-CTC-T Model transformer outputting raw hidden-states without any specific head on top.
This model is a PyTorch `),nt=r("a"),Vn=s("torch.nn.Module"),Bn=s(` sub-class. Use
it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),Sn=m(),W=r("div"),v(at.$$.fragment),Xn=m(),re=r("p"),Ln=s("The "),zt=r("a"),Qn=s("MCTCTModel"),Dn=s(" forward method, overrides the "),mo=r("code"),Yn=s("__call__"),Hn=s(" special method."),On=m(),v(be.$$.fragment),Kn=m(),v(Me.$$.fragment),Zo=m(),ne=r("h2"),ye=r("a"),ho=r("span"),v(st.$$.fragment),ea=m(),po=r("span"),ta=s("MCTCTForCTC"),qo=m(),V=r("div"),v(lt.$$.fragment),oa=m(),ae=r("p"),ra=s("MCTCT Model with a "),fo=r("code"),na=s("language modeling"),aa=s(` head on top for Connectionist Temporal Classification (CTC).
This model is a PyTorch `),it=r("a"),sa=s("torch.nn.Module"),la=s(` sub-class. Use
it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),ia=m(),G=r("div"),v(ct.$$.fragment),ca=m(),se=r("p"),da=s("The "),Ft=r("a"),ma=s("MCTCTForCTC"),ha=s(" forward method, overrides the "),uo=r("code"),pa=s("__call__"),fa=s(" special method."),ua=m(),v(we.$$.fragment),ga=m(),v($e.$$.fragment),this.h()},l(t){const p=zs('[data-svelte="svelte-1phssyn"]',document.head);d=n(p,"META",{name:!0,content:!0}),p.forEach(o),C=h(t),f=n(t,"H1",{class:!0});var dt=a(f);g=n(dt,"A",{id:!0,class:!0,href:!0});var go=a(g);T=n(go,"SPAN",{});var _o=a(T);b(i.$$.fragment,_o),_o.forEach(o),go.forEach(o),_=h(dt),x=n(dt,"SPAN",{});var To=a(x);N=l(To,"M-CTC-T"),To.forEach(o),dt.forEach(o),E=h(t),F=n(t,"H2",{class:!0});var mt=a(F);j=n(mt,"A",{id:!0,class:!0,href:!0});var Co=a(j);J=n(Co,"SPAN",{});var vo=a(J);b(S.$$.fragment,vo),vo.forEach(o),Co.forEach(o),ht=h(mt),le=n(mt,"SPAN",{});var Ma=a(le);or=l(Ma,"Overview"),Ma.forEach(o),mt.forEach(o),bo=h(t),ie=n(t,"P",{});var Go=a(ie);rr=l(Go,"The M-CTC-T model was proposed in "),Je=n(Go,"A",{href:!0,rel:!0});var ya=a(Je);nr=l(ya,"Pseudo-Labeling For Massively Multilingual Speech Recognition"),ya.forEach(o),ar=l(Go," by Loren Lugosch, Tatiana Likhomanenko, Gabriel Synnaeve, and Ronan Collobert. The model is a 1B-param transformer encoder, with a CTC head over 8065 character labels and a language identification head over 60 language ID labels. It is trained on Common Voice (version 6.1, December 2020 release) and VoxPopuli. After training on Common Voice and VoxPopuli, the model is trained on Common Voice only. The labels are unnormalized character-level transcripts (punctuation and capitalization are not removed). The model takes as input Mel filterbank features from a 16Khz audio signal."),Go.forEach(o),Mo=h(t),pt=n(t,"P",{});var wa=a(pt);sr=l(wa,"The abstract from the paper is the following:"),wa.forEach(o),yo=h(t),ft=n(t,"P",{});var $a=a(ft);Vt=n($a,"EM",{});var ka=a(Vt);lr=l(ka,`Semi-supervised learning through pseudo-labeling has become a staple of state-of-the-art monolingual
speech recognition systems. In this work, we extend pseudo-labeling to massively multilingual speech
recognition with 60 languages. We propose a simple pseudo-labeling recipe that works well even
with low-resource languages: train a supervised multilingual model, fine-tune it with semi-supervised
learning on a target language, generate pseudo-labels for that language, and train a final model using
pseudo-labels for all languages, either from scratch or by fine-tuning. Experiments on the labeled
Common Voice and unlabeled VoxPopuli datasets show that our recipe can yield a model with better
performance for many languages that also transfers well to LibriSpeech.`),ka.forEach(o),$a.forEach(o),wo=h(t),X=n(t,"P",{});var Jt=a(X);ir=l(Jt,"This model was contributed by "),Ue=n(Jt,"A",{href:!0,rel:!0});var xa=a(Ue);cr=l(xa,"cwkeam"),xa.forEach(o),dr=l(Jt,". The original code can be found "),Ne=n(Jt,"A",{href:!0,rel:!0});var Ea=a(Ne);mr=l(Ea,"here"),Ea.forEach(o),hr=l(Jt,"."),Jt.forEach(o),$o=h(t),D=n(t,"H2",{class:!0});var Ro=a(D);ce=n(Ro,"A",{id:!0,class:!0,href:!0});var ja=a(ce);Bt=n(ja,"SPAN",{});var za=a(Bt);b(Ie.$$.fragment,za),za.forEach(o),ja.forEach(o),pr=h(Ro),St=n(Ro,"SPAN",{});var Fa=a(St);fr=l(Fa,"Documentation resources"),Fa.forEach(o),Ro.forEach(o),ko=h(t),ut=n(t,"UL",{});var Ja=a(ut);Xt=n(Ja,"LI",{});var Ua=a(Xt);gt=n(Ua,"A",{href:!0});var Na=a(gt);ur=l(Na,"Automatic speech recognition task guide"),Na.forEach(o),Ua.forEach(o),Ja.forEach(o),xo=h(t),_t=n(t,"P",{});var Ia=a(_t);gr=l(Ia,"Tips:"),Ia.forEach(o),Eo=h(t),Tt=n(t,"UL",{});var Pa=a(Tt);Lt=n(Pa,"LI",{});var Za=a(Lt);_r=l(Za,"The PyTorch version of this model is only available in torch 1.9 and higher."),Za.forEach(o),Pa.forEach(o),jo=h(t),Y=n(t,"H2",{class:!0});var Ao=a(Y);de=n(Ao,"A",{id:!0,class:!0,href:!0});var qa=a(de);Qt=n(qa,"SPAN",{});var Wa=a(Qt);b(Pe.$$.fragment,Wa),Wa.forEach(o),qa.forEach(o),Tr=h(Ao),Dt=n(Ao,"SPAN",{});var Ga=a(Dt);Cr=l(Ga,"MCTCTConfig"),Ga.forEach(o),Ao.forEach(o),zo=h(t),P=n(t,"DIV",{class:!0});var ke=a(P);b(Ze.$$.fragment,ke),vr=h(ke),H=n(ke,"P",{});var Ut=a(H);br=l(Ut,"This is the configuration class to store the configuration of a "),Ct=n(Ut,"A",{href:!0});var Ra=a(Ct);Mr=l(Ra,"MCTCTModel"),Ra.forEach(o),yr=l(Ut,`. It is used to instantiate an
M-CTC-T model according to the specified arguments, defining the model architecture. Instantiating a configuration
with the defaults will yield a similar configuration to that of the M-CTC-T
`),qe=n(Ut,"A",{href:!0,rel:!0});var Aa=a(qe);wr=l(Aa,"speechbrain/m-ctc-t-large"),Aa.forEach(o),$r=l(Ut," architecture."),Ut.forEach(o),kr=h(ke),O=n(ke,"P",{});var Nt=a(O);xr=l(Nt,"Configuration objects inherit from "),vt=n(Nt,"A",{href:!0});var Va=a(vt);Er=l(Va,"PretrainedConfig"),Va.forEach(o),jr=l(Nt,` and can be used to control the model outputs. Read the
documentation from `),bt=n(Nt,"A",{href:!0});var Ba=a(bt);zr=l(Ba,"PretrainedConfig"),Ba.forEach(o),Fr=l(Nt," for more information."),Nt.forEach(o),Jr=h(ke),b(me.$$.fragment,ke),ke.forEach(o),Fo=h(t),K=n(t,"H2",{class:!0});var Vo=a(K);he=n(Vo,"A",{id:!0,class:!0,href:!0});var Sa=a(he);Yt=n(Sa,"SPAN",{});var Xa=a(Yt);b(We.$$.fragment,Xa),Xa.forEach(o),Sa.forEach(o),Ur=h(Vo),Ht=n(Vo,"SPAN",{});var La=a(Ht);Nr=l(La,"MCTCTFeatureExtractor"),La.forEach(o),Vo.forEach(o),Jo=h(t),Z=n(t,"DIV",{class:!0});var xe=a(Z);b(Ge.$$.fragment,xe),Ir=h(xe),Ot=n(xe,"P",{});var Qa=a(Ot);Pr=l(Qa,"Constructs a M-CTC-T feature extractor."),Qa.forEach(o),Zr=h(xe),ee=n(xe,"P",{});var It=a(ee);qr=l(It,"This feature extractor inherits from "),Mt=n(It,"A",{href:!0});var Da=a(Mt);Wr=l(Da,"SequenceFeatureExtractor"),Da.forEach(o),Gr=l(It,` which contains
most of the main methods. Users should refer to this superclass for more information regarding those methods. This
code has been adapted from Flashlight\u2019s C++ code. For more information about the implementation, one can refer to
this `),Re=n(It,"A",{href:!0,rel:!0});var Ya=a(Re);Rr=l(Ya,"notebook"),Ya.forEach(o),Ar=l(It,`
that takes the user step-by-step in the implementation.`),It.forEach(o),Vr=h(xe),pe=n(xe,"DIV",{class:!0});var Bo=a(pe);b(Ae.$$.fragment,Bo),Br=h(Bo),Kt=n(Bo,"P",{});var Ha=a(Kt);Sr=l(Ha,`Main method to featurize and prepare for the model one or several sequence(s). sequences. It returns the
log-mel spectrogram of the input audio, as implemented in the original Flashlight MFSC feature extraction code.`),Ha.forEach(o),Bo.forEach(o),xe.forEach(o),Uo=h(t),te=n(t,"H2",{class:!0});var So=a(te);fe=n(So,"A",{id:!0,class:!0,href:!0});var Oa=a(fe);eo=n(Oa,"SPAN",{});var Ka=a(eo);b(Ve.$$.fragment,Ka),Ka.forEach(o),Oa.forEach(o),Xr=h(So),to=n(So,"SPAN",{});var es=a(to);Lr=l(es,"MCTCTProcessor"),es.forEach(o),So.forEach(o),No=h(t),k=n(t,"DIV",{class:!0});var U=a(k);b(Be.$$.fragment,U),Qr=h(U),oo=n(U,"P",{});var ts=a(oo);Dr=l(ts,"Constructs a MCTCT processor which wraps a MCTCT feature extractor and a MCTCT tokenizer into a single processor."),ts.forEach(o),Yr=h(U),I=n(U,"P",{});var B=a(I);yt=n(B,"A",{href:!0});var os=a(yt);Hr=l(os,"MCTCTProcessor"),os.forEach(o),Or=l(B," offers all the functionalities of "),wt=n(B,"A",{href:!0});var rs=a(wt);Kr=l(rs,"MCTCTFeatureExtractor"),rs.forEach(o),en=l(B," and "),$t=n(B,"A",{href:!0});var ns=a($t);tn=l(ns,"AutoTokenizer"),ns.forEach(o),on=l(B,`. See the
`),Se=n(B,"A",{href:!0});var _a=a(Se);ro=n(_a,"STRONG",{});var as=a(ro);rn=l(as,"call"),as.forEach(o),nn=l(_a,"()"),_a.forEach(o),an=l(B," and "),kt=n(B,"A",{href:!0});var ss=a(kt);sn=l(ss,"decode()"),ss.forEach(o),ln=l(B," for more information."),B.forEach(o),cn=h(U),ue=n(U,"DIV",{class:!0});var Xo=a(ue);b(Xe.$$.fragment,Xo),dn=h(Xo),R=n(Xo,"P",{});var Ee=a(R);mn=l(Ee,`When used in normal mode, this method forwards all its arguments to MCTCTFeatureExtractor\u2019s
`),Le=n(Ee,"A",{href:!0});var Ta=a(Le);no=n(Ta,"STRONG",{});var ls=a(no);hn=l(ls,"call"),ls.forEach(o),pn=l(Ta,"()"),Ta.forEach(o),fn=l(Ee,` and returns its output. If used in the context
`),ao=n(Ee,"CODE",{});var is=a(ao);un=l(is,"as_target_processor()"),is.forEach(o),gn=l(Ee,` this method forwards all its arguments to AutoTokenizer\u2019s
`),so=n(Ee,"CODE",{});var cs=a(so);_n=l(cs,"__call__()"),cs.forEach(o),Tn=l(Ee,". Please refer to the doctsring of the above two methods for more information."),Ee.forEach(o),Xo.forEach(o),Cn=h(U),L=n(U,"DIV",{class:!0});var Pt=a(L);b(Qe.$$.fragment,Pt),vn=h(Pt),lo=n(Pt,"P",{});var ds=a(lo);bn=l(ds,"Instantiate a processor associated with a pretrained model."),ds.forEach(o),Mn=h(Pt),b(ge.$$.fragment,Pt),Pt.forEach(o),yn=h(U),Q=n(U,"DIV",{class:!0});var Zt=a(Q);b(De.$$.fragment,Zt),wn=h(Zt),Ye=n(Zt,"P",{});var Lo=a(Ye);$n=l(Lo,`Saves the attributes of this processor (feature extractor, tokenizer\u2026) in the specified directory so that it
can be reloaded using the `),xt=n(Lo,"A",{href:!0});var ms=a(xt);kn=l(ms,"from_pretrained()"),ms.forEach(o),xn=l(Lo," method."),Lo.forEach(o),En=h(Zt),b(_e.$$.fragment,Zt),Zt.forEach(o),jn=h(U),Te=n(U,"DIV",{class:!0});var Qo=a(Te);b(He.$$.fragment,Qo),zn=h(Qo),Oe=n(Qo,"P",{});var Do=a(Oe);Fn=l(Do,"This method forwards all its arguments to AutoTokenizer\u2019s "),Et=n(Do,"A",{href:!0});var hs=a(Et);Jn=l(hs,"batch_decode()"),hs.forEach(o),Un=l(Do,`. Please refer
to the docstring of this method for more information.`),Do.forEach(o),Qo.forEach(o),Nn=h(U),Ce=n(U,"DIV",{class:!0});var Yo=a(Ce);b(Ke.$$.fragment,Yo),In=h(Yo),et=n(Yo,"P",{});var Ho=a(et);Pn=l(Ho,"This method forwards all its arguments to AutoTokenizer\u2019s "),jt=n(Ho,"A",{href:!0});var ps=a(jt);Zn=l(ps,"decode()"),ps.forEach(o),qn=l(Ho,`. Please refer to the
docstring of this method for more information.`),Ho.forEach(o),Yo.forEach(o),U.forEach(o),Io=h(t),oe=n(t,"H2",{class:!0});var Oo=a(oe);ve=n(Oo,"A",{id:!0,class:!0,href:!0});var fs=a(ve);io=n(fs,"SPAN",{});var us=a(io);b(tt.$$.fragment,us),us.forEach(o),fs.forEach(o),Wn=h(Oo),co=n(Oo,"SPAN",{});var gs=a(co);Gn=l(gs,"MCTCTModel"),gs.forEach(o),Oo.forEach(o),Po=h(t),A=n(t,"DIV",{class:!0});var qt=a(A);b(ot.$$.fragment,qt),Rn=h(qt),rt=n(qt,"P",{});var Ko=a(rt);An=l(Ko,`The bare M-CTC-T Model transformer outputting raw hidden-states without any specific head on top.
This model is a PyTorch `),nt=n(Ko,"A",{href:!0,rel:!0});var _s=a(nt);Vn=l(_s,"torch.nn.Module"),_s.forEach(o),Bn=l(Ko,` sub-class. Use
it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),Ko.forEach(o),Sn=h(qt),W=n(qt,"DIV",{class:!0});var je=a(W);b(at.$$.fragment,je),Xn=h(je),re=n(je,"P",{});var Wt=a(re);Ln=l(Wt,"The "),zt=n(Wt,"A",{href:!0});var Ts=a(zt);Qn=l(Ts,"MCTCTModel"),Ts.forEach(o),Dn=l(Wt," forward method, overrides the "),mo=n(Wt,"CODE",{});var Cs=a(mo);Yn=l(Cs,"__call__"),Cs.forEach(o),Hn=l(Wt," special method."),Wt.forEach(o),On=h(je),b(be.$$.fragment,je),Kn=h(je),b(Me.$$.fragment,je),je.forEach(o),qt.forEach(o),Zo=h(t),ne=n(t,"H2",{class:!0});var er=a(ne);ye=n(er,"A",{id:!0,class:!0,href:!0});var vs=a(ye);ho=n(vs,"SPAN",{});var bs=a(ho);b(st.$$.fragment,bs),bs.forEach(o),vs.forEach(o),ea=h(er),po=n(er,"SPAN",{});var Ms=a(po);ta=l(Ms,"MCTCTForCTC"),Ms.forEach(o),er.forEach(o),qo=h(t),V=n(t,"DIV",{class:!0});var Gt=a(V);b(lt.$$.fragment,Gt),oa=h(Gt),ae=n(Gt,"P",{});var Rt=a(ae);ra=l(Rt,"MCTCT Model with a "),fo=n(Rt,"CODE",{});var ys=a(fo);na=l(ys,"language modeling"),ys.forEach(o),aa=l(Rt,` head on top for Connectionist Temporal Classification (CTC).
This model is a PyTorch `),it=n(Rt,"A",{href:!0,rel:!0});var ws=a(it);sa=l(ws,"torch.nn.Module"),ws.forEach(o),la=l(Rt,` sub-class. Use
it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),Rt.forEach(o),ia=h(Gt),G=n(Gt,"DIV",{class:!0});var ze=a(G);b(ct.$$.fragment,ze),ca=h(ze),se=n(ze,"P",{});var At=a(se);da=l(At,"The "),Ft=n(At,"A",{href:!0});var $s=a(Ft);ma=l($s,"MCTCTForCTC"),$s.forEach(o),ha=l(At," forward method, overrides the "),uo=n(At,"CODE",{});var ks=a(uo);pa=l(ks,"__call__"),ks.forEach(o),fa=l(At," special method."),At.forEach(o),ua=h(ze),b(we.$$.fragment,ze),ga=h(ze),b($e.$$.fragment,ze),ze.forEach(o),Gt.forEach(o),this.h()},h(){c(d,"name","hf:doc:metadata"),c(d,"content",JSON.stringify(Gs)),c(g,"id","mctct"),c(g,"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"),c(g,"href","#mctct"),c(f,"class","relative group"),c(j,"id","overview"),c(j,"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"),c(j,"href","#overview"),c(F,"class","relative group"),c(Je,"href","https://arxiv.org/abs/2111.00161"),c(Je,"rel","nofollow"),c(Ue,"href","https://huggingface.co/cwkeam"),c(Ue,"rel","nofollow"),c(Ne,"href","https://github.com/flashlight/wav2letter/tree/main/recipes/mling_pl"),c(Ne,"rel","nofollow"),c(ce,"id","documentation-resources"),c(ce,"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"),c(ce,"href","#documentation-resources"),c(D,"class","relative group"),c(gt,"href","../tasks/asr"),c(de,"id","transformers.MCTCTConfig"),c(de,"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"),c(de,"href","#transformers.MCTCTConfig"),c(Y,"class","relative group"),c(Ct,"href","/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTModel"),c(qe,"href","https://huggingface.co/speechbrain/m-ctc-t-large"),c(qe,"rel","nofollow"),c(vt,"href","/docs/transformers/v4.30.0/en/main_classes/configuration#transformers.PretrainedConfig"),c(bt,"href","/docs/transformers/v4.30.0/en/main_classes/configuration#transformers.PretrainedConfig"),c(P,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(he,"id","transformers.MCTCTFeatureExtractor"),c(he,"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"),c(he,"href","#transformers.MCTCTFeatureExtractor"),c(K,"class","relative group"),c(Mt,"href","/docs/transformers/v4.30.0/en/main_classes/feature_extractor#transformers.SequenceFeatureExtractor"),c(Re,"href","https://colab.research.google.com/drive/1GLtINkkhzms-IsdcGy_-tVCkv0qNF-Gt#scrollTo=pMCRGMmUC_an"),c(Re,"rel","nofollow"),c(pe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(fe,"id","transformers.MCTCTProcessor"),c(fe,"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"),c(fe,"href","#transformers.MCTCTProcessor"),c(te,"class","relative group"),c(yt,"href","/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTProcessor"),c(wt,"href","/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTFeatureExtractor"),c($t,"href","/docs/transformers/v4.30.0/en/model_doc/auto#transformers.AutoTokenizer"),c(Se,"href","/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTProcessor.__call__"),c(kt,"href","/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTProcessor.decode"),c(Le,"href","/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTFeatureExtractor.__call__"),c(ue,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(L,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(xt,"href","/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Processor.from_pretrained"),c(Q,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(Et,"href","/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.batch_decode"),c(Te,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(jt,"href","/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.decode"),c(Ce,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(ve,"id","transformers.MCTCTModel"),c(ve,"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"),c(ve,"href","#transformers.MCTCTModel"),c(oe,"class","relative group"),c(nt,"href","https://pytorch.org/docs/stable/nn.html#torch.nn.Module"),c(nt,"rel","nofollow"),c(zt,"href","/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTModel"),c(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(A,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(ye,"id","transformers.MCTCTForCTC"),c(ye,"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"),c(ye,"href","#transformers.MCTCTForCTC"),c(ne,"class","relative group"),c(it,"href","https://pytorch.org/docs/stable/nn.html#torch.nn.Module"),c(it,"rel","nofollow"),c(Ft,"href","/docs/transformers/v4.30.0/en/model_doc/mctct#transformers.MCTCTForCTC"),c(G,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(t,p){e(document.head,d),u(t,C,p),u(t,f,p),e(f,g),e(g,T),M(i,T,null),e(f,_),e(f,x),e(x,N),u(t,E,p),u(t,F,p),e(F,j),e(j,J),M(S,J,null),e(F,ht),e(F,le),e(le,or),u(t,bo,p),u(t,ie,p),e(ie,rr),e(ie,Je),e(Je,nr),e(ie,ar),u(t,Mo,p),u(t,pt,p),e(pt,sr),u(t,yo,p),u(t,ft,p),e(ft,Vt),e(Vt,lr),u(t,wo,p),u(t,X,p),e(X,ir),e(X,Ue),e(Ue,cr),e(X,dr),e(X,Ne),e(Ne,mr),e(X,hr),u(t,$o,p),u(t,D,p),e(D,ce),e(ce,Bt),M(Ie,Bt,null),e(D,pr),e(D,St),e(St,fr),u(t,ko,p),u(t,ut,p),e(ut,Xt),e(Xt,gt),e(gt,ur),u(t,xo,p),u(t,_t,p),e(_t,gr),u(t,Eo,p),u(t,Tt,p),e(Tt,Lt),e(Lt,_r),u(t,jo,p),u(t,Y,p),e(Y,de),e(de,Qt),M(Pe,Qt,null),e(Y,Tr),e(Y,Dt),e(Dt,Cr),u(t,zo,p),u(t,P,p),M(Ze,P,null),e(P,vr),e(P,H),e(H,br),e(H,Ct),e(Ct,Mr),e(H,yr),e(H,qe),e(qe,wr),e(H,$r),e(P,kr),e(P,O),e(O,xr),e(O,vt),e(vt,Er),e(O,jr),e(O,bt),e(bt,zr),e(O,Fr),e(P,Jr),M(me,P,null),u(t,Fo,p),u(t,K,p),e(K,he),e(he,Yt),M(We,Yt,null),e(K,Ur),e(K,Ht),e(Ht,Nr),u(t,Jo,p),u(t,Z,p),M(Ge,Z,null),e(Z,Ir),e(Z,Ot),e(Ot,Pr),e(Z,Zr),e(Z,ee),e(ee,qr),e(ee,Mt),e(Mt,Wr),e(ee,Gr),e(ee,Re),e(Re,Rr),e(ee,Ar),e(Z,Vr),e(Z,pe),M(Ae,pe,null),e(pe,Br),e(pe,Kt),e(Kt,Sr),u(t,Uo,p),u(t,te,p),e(te,fe),e(fe,eo),M(Ve,eo,null),e(te,Xr),e(te,to),e(to,Lr),u(t,No,p),u(t,k,p),M(Be,k,null),e(k,Qr),e(k,oo),e(oo,Dr),e(k,Yr),e(k,I),e(I,yt),e(yt,Hr),e(I,Or),e(I,wt),e(wt,Kr),e(I,en),e(I,$t),e($t,tn),e(I,on),e(I,Se),e(Se,ro),e(ro,rn),e(Se,nn),e(I,an),e(I,kt),e(kt,sn),e(I,ln),e(k,cn),e(k,ue),M(Xe,ue,null),e(ue,dn),e(ue,R),e(R,mn),e(R,Le),e(Le,no),e(no,hn),e(Le,pn),e(R,fn),e(R,ao),e(ao,un),e(R,gn),e(R,so),e(so,_n),e(R,Tn),e(k,Cn),e(k,L),M(Qe,L,null),e(L,vn),e(L,lo),e(lo,bn),e(L,Mn),M(ge,L,null),e(k,yn),e(k,Q),M(De,Q,null),e(Q,wn),e(Q,Ye),e(Ye,$n),e(Ye,xt),e(xt,kn),e(Ye,xn),e(Q,En),M(_e,Q,null),e(k,jn),e(k,Te),M(He,Te,null),e(Te,zn),e(Te,Oe),e(Oe,Fn),e(Oe,Et),e(Et,Jn),e(Oe,Un),e(k,Nn),e(k,Ce),M(Ke,Ce,null),e(Ce,In),e(Ce,et),e(et,Pn),e(et,jt),e(jt,Zn),e(et,qn),u(t,Io,p),u(t,oe,p),e(oe,ve),e(ve,io),M(tt,io,null),e(oe,Wn),e(oe,co),e(co,Gn),u(t,Po,p),u(t,A,p),M(ot,A,null),e(A,Rn),e(A,rt),e(rt,An),e(rt,nt),e(nt,Vn),e(rt,Bn),e(A,Sn),e(A,W),M(at,W,null),e(W,Xn),e(W,re),e(re,Ln),e(re,zt),e(zt,Qn),e(re,Dn),e(re,mo),e(mo,Yn),e(re,Hn),e(W,On),M(be,W,null),e(W,Kn),M(Me,W,null),u(t,Zo,p),u(t,ne,p),e(ne,ye),e(ye,ho),M(st,ho,null),e(ne,ea),e(ne,po),e(po,ta),u(t,qo,p),u(t,V,p),M(lt,V,null),e(V,oa),e(V,ae),e(ae,ra),e(ae,fo),e(fo,na),e(ae,aa),e(ae,it),e(it,sa),e(ae,la),e(V,ia),e(V,G),M(ct,G,null),e(G,ca),e(G,se),e(se,da),e(se,Ft),e(Ft,ma),e(se,ha),e(se,uo),e(uo,pa),e(se,fa),e(G,ua),M(we,G,null),e(G,ga),M($e,G,null),Wo=!0},p(t,[p]){const dt={};p&2&&(dt.$$scope={dirty:p,ctx:t}),me.$set(dt);const go={};p&2&&(go.$$scope={dirty:p,ctx:t}),ge.$set(go);const _o={};p&2&&(_o.$$scope={dirty:p,ctx:t}),_e.$set(_o);const To={};p&2&&(To.$$scope={dirty:p,ctx:t}),be.$set(To);const mt={};p&2&&(mt.$$scope={dirty:p,ctx:t}),Me.$set(mt);const Co={};p&2&&(Co.$$scope={dirty:p,ctx:t}),we.$set(Co);const vo={};p&2&&(vo.$$scope={dirty:p,ctx:t}),$e.$set(vo)},i(t){Wo||(y(i.$$.fragment,t),y(S.$$.fragment,t),y(Ie.$$.fragment,t),y(Pe.$$.fragment,t),y(Ze.$$.fragment,t),y(me.$$.fragment,t),y(We.$$.fragment,t),y(Ge.$$.fragment,t),y(Ae.$$.fragment,t),y(Ve.$$.fragment,t),y(Be.$$.fragment,t),y(Xe.$$.fragment,t),y(Qe.$$.fragment,t),y(ge.$$.fragment,t),y(De.$$.fragment,t),y(_e.$$.fragment,t),y(He.$$.fragment,t),y(Ke.$$.fragment,t),y(tt.$$.fragment,t),y(ot.$$.fragment,t),y(at.$$.fragment,t),y(be.$$.fragment,t),y(Me.$$.fragment,t),y(st.$$.fragment,t),y(lt.$$.fragment,t),y(ct.$$.fragment,t),y(we.$$.fragment,t),y($e.$$.fragment,t),Wo=!0)},o(t){w(i.$$.fragment,t),w(S.$$.fragment,t),w(Ie.$$.fragment,t),w(Pe.$$.fragment,t),w(Ze.$$.fragment,t),w(me.$$.fragment,t),w(We.$$.fragment,t),w(Ge.$$.fragment,t),w(Ae.$$.fragment,t),w(Ve.$$.fragment,t),w(Be.$$.fragment,t),w(Xe.$$.fragment,t),w(Qe.$$.fragment,t),w(ge.$$.fragment,t),w(De.$$.fragment,t),w(_e.$$.fragment,t),w(He.$$.fragment,t),w(Ke.$$.fragment,t),w(tt.$$.fragment,t),w(ot.$$.fragment,t),w(at.$$.fragment,t),w(be.$$.fragment,t),w(Me.$$.fragment,t),w(st.$$.fragment,t),w(lt.$$.fragment,t),w(ct.$$.fragment,t),w(we.$$.fragment,t),w($e.$$.fragment,t),Wo=!1},d(t){o(d),t&&o(C),t&&o(f),$(i),t&&o(E),t&&o(F),$(S),t&&o(bo),t&&o(ie),t&&o(Mo),t&&o(pt),t&&o(yo),t&&o(ft),t&&o(wo),t&&o(X),t&&o($o),t&&o(D),$(Ie),t&&o(ko),t&&o(ut),t&&o(xo),t&&o(_t),t&&o(Eo),t&&o(Tt),t&&o(jo),t&&o(Y),$(Pe),t&&o(zo),t&&o(P),$(Ze),$(me),t&&o(Fo),t&&o(K),$(We),t&&o(Jo),t&&o(Z),$(Ge),$(Ae),t&&o(Uo),t&&o(te),$(Ve),t&&o(No),t&&o(k),$(Be),$(Xe),$(Qe),$(ge),$(De),$(_e),$(He),$(Ke),t&&o(Io),t&&o(oe),$(tt),t&&o(Po),t&&o(A),$(ot),$(at),$(be),$(Me),t&&o(Zo),t&&o(ne),$(st),t&&o(qo),t&&o(V),$(lt),$(ct),$(we),$($e)}}}const Gs={local:"mctct",sections:[{local:"overview",title:"Overview"},{local:"documentation-resources",title:"Documentation resources"},{local:"transformers.MCTCTConfig",title:"MCTCTConfig"},{local:"transformers.MCTCTFeatureExtractor",title:"MCTCTFeatureExtractor"},{local:"transformers.MCTCTProcessor",title:"MCTCTProcessor"},{local:"transformers.MCTCTModel",title:"MCTCTModel"},{local:"transformers.MCTCTForCTC",title:"MCTCTForCTC"}],title:"M-CTC-T"};function Rs(z){return Fs(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Qs extends xs{constructor(d){super();Es(this,d,Rs,Ws,js,{})}}export{Qs as default,Gs as metadata};
