import{s as rt,o as lt,n as Ee}from"../chunks/scheduler.25b97de1.js";import{S as dt,i as mt,g as d,s as a,r as g,A as ct,h as m,f as o,c as s,j as K,u as _,x as p,k as ee,y as l,a as i,v as M,d as v,t as y,w as b}from"../chunks/index.d9030fc9.js";import{T as ut}from"../chunks/Tip.baa67368.js";import{D as me}from"../chunks/Docstring.ffac8efa.js";import{C as Ye}from"../chunks/CodeBlock.e6cd0d95.js";import{E as it}from"../chunks/ExampleCodeBlock.22dfe688.js";import{H as ce,E as pt}from"../chunks/EditOnGithub.91d95064.js";function ht(z){let r,T="Example:",u,c,h;return c=new Ye({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyME1pbWlNb2RlbCUyQyUyME1pbWlDb25maWclMEElMEElMjMlMjBJbml0aWFsaXppbmclMjBhJTIwJTIya3l1dGFpJTJGbWltaSUyMiUyMHN0eWxlJTIwY29uZmlndXJhdGlvbiUwQWNvbmZpZ3VyYXRpb24lMjAlM0QlMjBNaW1pQ29uZmlnKCklMEElMEElMjMlMjBJbml0aWFsaXppbmclMjBhJTIwbW9kZWwlMjAod2l0aCUyMHJhbmRvbSUyMHdlaWdodHMpJTIwZnJvbSUyMHRoZSUyMCUyMmt5dXRhaSUyRm1pbWklMjIlMjBzdHlsZSUyMGNvbmZpZ3VyYXRpb24lMEFtb2RlbCUyMCUzRCUyME1pbWlNb2RlbChjb25maWd1cmF0aW9uKSUwQSUwQSUyMyUyMEFjY2Vzc2luZyUyMHRoZSUyMG1vZGVsJTIwY29uZmlndXJhdGlvbiUwQWNvbmZpZ3VyYXRpb24lMjAlM0QlMjBtb2RlbC5jb25maWc=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> MimiModel, MimiConfig

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a &quot;kyutai/mimi&quot; style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>configuration = MimiConfig()

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a model (with random weights) from the &quot;kyutai/mimi&quot; style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>model = MimiModel(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`,wrap:!1}}),{c(){r=d("p"),r.textContent=T,u=a(),g(c.$$.fragment)},l(n){r=m(n,"P",{"data-svelte-h":!0}),p(r)!=="svelte-11lpom8"&&(r.textContent=T),u=s(n),_(c.$$.fragment,n)},m(n,w){i(n,r,w),i(n,u,w),M(c,n,w),h=!0},p:Ee,i(n){h||(v(c.$$.fragment,n),h=!0)},o(n){y(c.$$.fragment,n),h=!1},d(n){n&&(o(r),o(u)),b(c,n)}}}function ft(z){let r,T=`Although the recipe for forward pass needs to be defined within this function, one should call the <code>Module</code>
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`;return{c(){r=d("p"),r.innerHTML=T},l(u){r=m(u,"P",{"data-svelte-h":!0}),p(r)!=="svelte-fincs2"&&(r.innerHTML=T)},m(u,c){i(u,r,c)},p:Ee,d(u){u&&o(r)}}}function gt(z){let r,T="Examples:",u,c,h;return c=new Ye({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9GZWF0dXJlRXh0cmFjdG9yJTJDJTIwTWltaU1vZGVsJTBBJTBBZGF0YXNldCUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJoZi1pbnRlcm5hbC10ZXN0aW5nJTJGYXNocmFxLWVzYzUwLTEtZG9nLWV4YW1wbGUlMjIpJTBBYXVkaW9fc2FtcGxlJTIwJTNEJTIwZGF0YXNldCU1QiUyMnRyYWluJTIyJTVEJTVCJTIyYXVkaW8lMjIlNUQlNUIwJTVEJTVCJTIyYXJyYXklMjIlNUQlMEElMEFtb2RlbF9pZCUyMCUzRCUyMCUyMmt5dXRhaSUyRm1pbWklMjIlMEFtb2RlbCUyMCUzRCUyME1pbWlNb2RlbC5mcm9tX3ByZXRyYWluZWQobW9kZWxfaWQpJTBBZmVhdHVyZV9leHRyYWN0b3IlMjAlM0QlMjBBdXRvRmVhdHVyZUV4dHJhY3Rvci5mcm9tX3ByZXRyYWluZWQobW9kZWxfaWQpJTBBJTBBaW5wdXRzJTIwJTNEJTIwZmVhdHVyZV9leHRyYWN0b3IocmF3X2F1ZGlvJTNEYXVkaW9fc2FtcGxlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEElMEFvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKippbnB1dHMpJTBBYXVkaW9fY29kZXMlMjAlM0QlMjBvdXRwdXRzLmF1ZGlvX2NvZGVzJTBBYXVkaW9fdmFsdWVzJTIwJTNEJTIwb3V0cHV0cy5hdWRpb192YWx1ZXM=",highlighted:`<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">from</span> transformers <span class="hljs-keyword">import</span> AutoFeatureExtractor, MimiModel

<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;hf-internal-testing/ashraq-esc50-1-dog-example&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>audio_sample = dataset[<span class="hljs-string">&quot;train&quot;</span>][<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-number">0</span>][<span class="hljs-string">&quot;array&quot;</span>]

<span class="hljs-meta">&gt;&gt;&gt; </span>model_id = <span class="hljs-string">&quot;kyutai/mimi&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>model = MimiModel.from_pretrained(model_id)
<span class="hljs-meta">&gt;&gt;&gt; </span>feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)

<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = feature_extractor(raw_audio=audio_sample, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span>outputs = model(**inputs)
<span class="hljs-meta">&gt;&gt;&gt; </span>audio_codes = outputs.audio_codes
<span class="hljs-meta">&gt;&gt;&gt; </span>audio_values = outputs.audio_values`,wrap:!1}}),{c(){r=d("p"),r.textContent=T,u=a(),g(c.$$.fragment)},l(n){r=m(n,"P",{"data-svelte-h":!0}),p(r)!=="svelte-kvfsh7"&&(r.textContent=T),u=s(n),_(c.$$.fragment,n)},m(n,w){i(n,r,w),i(n,u,w),M(c,n,w),h=!0},p:Ee,i(n){h||(v(c.$$.fragment,n),h=!0)},o(n){y(c.$$.fragment,n),h=!1},d(n){n&&(o(r),o(u)),b(c,n)}}}function _t(z){let r,T,u,c,h,n,w,ue,X,Be='The Mimi model was proposed in <a href="https://kyutai.org/Moshi.pdf" rel="nofollow">Moshi: a speech-text foundation model for real-time dialogue</a> by Alexandre Défossez, Laurent Mazaré, Manu Orsini, Amélie Royer, Patrick Pérez, Hervé Jégou, Edouard Grave and Neil Zeghidour. Mimi is a high-fidelity audio codec model developed by the Kyutai team, that combines semantic and acoustic information into audio tokens running at 12Hz and a bitrate of 1.1kbps. In other words, it can be used to map audio waveforms into “audio tokens”, known as “codebooks”.',pe,R,Pe="The abstract from the paper is the following:",he,V,Le="<em>We introduce Moshi, a speech-text foundation model and full-duplex spoken dialogue framework. Current systems for spoken dialogue rely on pipelines of independent components, namely voice activity detection, speech recognition, textual dialogue and text-to-speech. Such frameworks cannot emulate the experience of real conversations. First, their complexity induces a latency of several seconds between interactions. Second, text being the intermediate modality for dialogue, non-linguistic information that modifies meaning— such as emotion or non-speech sounds— is lost in the interaction. Finally, they rely on a segmentation into speaker turns, which does not take into account overlapping speech, interruptions and interjections. Moshi solves these independent issues altogether by casting spoken dialogue as speech-to-speech generation. Starting from a text language model backbone, Moshi generates speech as tokens from the residual quantizer of a neural audio codec, while modeling separately its own speech and that of the user into parallel streams. This allows for the removal of explicit speaker turns, and the modeling of arbitrary conversational dynamics. We moreover extend the hierarchical semantic-to-acoustic token generation of previous work to first predict time-aligned text tokens as a prefix to audio tokens. Not only this “Inner Monologue” method significantly improves the linguistic quality of generated speech, but we also illustrate how it can provide streaming speech recognition and text-to-speech. Our resulting model is the first real-time full-duplex spoken large language model, with a theoretical latency of 160ms, 200ms in practice, and is available at github.com/kyutai-labs/moshi.</em>",fe,N,Qe='Its architecture is based on <a href="model_doc/encodec">Encodec</a> with several major differences:',ge,G,Se="<li>it uses a much lower frame-rate.</li> <li>it uses additional transformers for encoding and decoding for better latent contextualization</li> <li>it uses a different quantization scheme: one codebook is dedicated to semantic projection.</li>",_e,F,Me,H,De="Here is a quick example of how to encode and decode an audio using this model:",ve,E,ye,Y,Ae=`This model was contributed by <a href="https://huggingface.co/ylacombe" rel="nofollow">Yoach Lacombe (ylacombe)</a>.
The original code can be found <a href="https://github.com/kyutai-labs/moshi" rel="nofollow">here</a>.`,be,B,we,x,P,je,te,Oe=`This is the configuration class to store the configuration of an <a href="/docs/transformers/main/en/model_doc/mimi#transformers.MimiModel">MimiModel</a>. It is used to instantiate a
Mimi 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
<a href="https://huggingface.co/kyutai/mimi" rel="nofollow">kyutai/mimi</a> architecture.`,ze,oe,Ke=`Configuration objects inherit from <a href="/docs/transformers/main/en/main_classes/configuration#transformers.PretrainedConfig">PretrainedConfig</a> and can be used to control the model outputs. Read the
documentation from <a href="/docs/transformers/main/en/main_classes/configuration#transformers.PretrainedConfig">PretrainedConfig</a> for more information.`,We,W,ke,L,Te,f,Q,Ue,ne,et=`The Mimi neural audio codec model.
This model inherits from <a href="/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel">PreTrainedModel</a>. Check the superclass documentation for the generic methods the
library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads
etc.)`,Ie,ae,tt=`This model is also a PyTorch <a href="https://pytorch.org/docs/stable/nn.html#torch.nn.Module" rel="nofollow">torch.nn.Module</a> subclass.
Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage
and behavior.`,qe,J,S,Ze,se,ot="Decodes the given frames into an output audio waveform.",Xe,ie,nt=`Note that the output might be a bit bigger than the input. In that case, any extra steps at the end can be
trimmed.`,Re,U,D,Ve,re,at="Encodes the input audio waveform into discrete codes.",Ne,$,A,Ge,le,st='The <a href="/docs/transformers/main/en/model_doc/mimi#transformers.MimiModel">MimiModel</a> forward method, overrides the <code>__call__</code> special method.',Fe,I,He,q,xe,O,$e,de,Ce;return h=new ce({props:{title:"Mimi",local:"mimi",headingTag:"h1"}}),w=new ce({props:{title:"Overview",local:"overview",headingTag:"h2"}}),F=new ce({props:{title:"Usage example",local:"usage-example",headingTag:"h2"}}),E=new Ye({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTJDJTIwQXVkaW8lMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwTWltaU1vZGVsJTJDJTIwQXV0b0ZlYXR1cmVFeHRyYWN0b3IlMEFsaWJyaXNwZWVjaF9kdW1teSUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJoZi1pbnRlcm5hbC10ZXN0aW5nJTJGbGlicmlzcGVlY2hfYXNyX2R1bW15JTIyJTJDJTIwJTIyY2xlYW4lMjIlMkMlMjBzcGxpdCUzRCUyMnZhbGlkYXRpb24lMjIpJTBBJTBBJTIzJTIwbG9hZCUyMG1vZGVsJTIwYW5kJTIwZmVhdHVyZSUyMGV4dHJhY3RvciUwQW1vZGVsJTIwJTNEJTIwTWltaU1vZGVsLmZyb21fcHJldHJhaW5lZCglMjJreXV0YWklMkZtaW1pJTIyKSUwQWZlYXR1cmVfZXh0cmFjdG9yJTIwJTNEJTIwQXV0b0ZlYXR1cmVFeHRyYWN0b3IuZnJvbV9wcmV0cmFpbmVkKCUyMmt5dXRhaSUyRm1pbWklMjIpJTBBJTBBJTIzJTIwbG9hZCUyMGF1ZGlvJTIwc2FtcGxlJTBBbGlicmlzcGVlY2hfZHVtbXklMjAlM0QlMjBsaWJyaXNwZWVjaF9kdW1teS5jYXN0X2NvbHVtbiglMjJhdWRpbyUyMiUyQyUyMEF1ZGlvKHNhbXBsaW5nX3JhdGUlM0RmZWF0dXJlX2V4dHJhY3Rvci5zYW1wbGluZ19yYXRlKSklMEFhdWRpb19zYW1wbGUlMjAlM0QlMjBsaWJyaXNwZWVjaF9kdW1teSU1Qi0xJTVEJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCUwQWlucHV0cyUyMCUzRCUyMGZlYXR1cmVfZXh0cmFjdG9yKHJhd19hdWRpbyUzRGF1ZGlvX3NhbXBsZSUyQyUyMHNhbXBsaW5nX3JhdGUlM0RmZWF0dXJlX2V4dHJhY3Rvci5zYW1wbGluZ19yYXRlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEElMEFlbmNvZGVyX291dHB1dHMlMjAlM0QlMjBtb2RlbC5lbmNvZGUoaW5wdXRzJTVCJTIyaW5wdXRfdmFsdWVzJTIyJTVEJTJDJTIwaW5wdXRzJTVCJTIycGFkZGluZ19tYXNrJTIyJTVEKSUwQWF1ZGlvX3ZhbHVlcyUyMCUzRCUyMG1vZGVsLmRlY29kZShlbmNvZGVyX291dHB1dHMuYXVkaW9fY29kZXMlMkMlMjBpbnB1dHMlNUIlMjJwYWRkaW5nX21hc2slMjIlNUQpJTVCMCU1RCUwQSUyMyUyMG9yJTIwdGhlJTIwZXF1aXZhbGVudCUyMHdpdGglMjBhJTIwZm9yd2FyZCUyMHBhc3MlMEFhdWRpb192YWx1ZXMlMjAlM0QlMjBtb2RlbChpbnB1dHMlNUIlMjJpbnB1dF92YWx1ZXMlMjIlNUQlMkMlMjBpbnB1dHMlNUIlMjJwYWRkaW5nX21hc2slMjIlNUQpLmF1ZGlvX3ZhbHVlcw==",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><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> MimiModel, AutoFeatureExtractor
<span class="hljs-meta">&gt;&gt;&gt; </span>librispeech_dummy = load_dataset(<span class="hljs-string">&quot;hf-internal-testing/librispeech_asr_dummy&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><span class="hljs-comment"># load model and feature extractor</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>model = MimiModel.from_pretrained(<span class="hljs-string">&quot;kyutai/mimi&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>feature_extractor = AutoFeatureExtractor.from_pretrained(<span class="hljs-string">&quot;kyutai/mimi&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># load audio sample</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>librispeech_dummy = librispeech_dummy.cast_column(<span class="hljs-string">&quot;audio&quot;</span>, Audio(sampling_rate=feature_extractor.sampling_rate))
<span class="hljs-meta">&gt;&gt;&gt; </span>audio_sample = librispeech_dummy[-<span class="hljs-number">1</span>][<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>]
<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = feature_extractor(raw_audio=audio_sample, sampling_rate=feature_extractor.sampling_rate, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span>encoder_outputs = model.encode(inputs[<span class="hljs-string">&quot;input_values&quot;</span>], inputs[<span class="hljs-string">&quot;padding_mask&quot;</span>])
<span class="hljs-meta">&gt;&gt;&gt; </span>audio_values = model.decode(encoder_outputs.audio_codes, inputs[<span class="hljs-string">&quot;padding_mask&quot;</span>])[<span class="hljs-number">0</span>]
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># or the equivalent with a forward pass</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>audio_values = model(inputs[<span class="hljs-string">&quot;input_values&quot;</span>], inputs[<span class="hljs-string">&quot;padding_mask&quot;</span>]).audio_values`,wrap:!1}}),B=new ce({props:{title:"MimiConfig",local:"transformers.MimiConfig",headingTag:"h2"}}),P=new me({props:{name:"class transformers.MimiConfig",anchor:"transformers.MimiConfig",parameters:[{name:"sampling_rate",val:" = 24000"},{name:"frame_rate",val:" = 12.5"},{name:"audio_channels",val:" = 1"},{name:"hidden_size",val:" = 512"},{name:"num_filters",val:" = 64"},{name:"num_residual_layers",val:" = 1"},{name:"upsampling_ratios",val:" = None"},{name:"kernel_size",val:" = 7"},{name:"last_kernel_size",val:" = 3"},{name:"residual_kernel_size",val:" = 3"},{name:"dilation_growth_rate",val:" = 2"},{name:"use_causal_conv",val:" = True"},{name:"pad_mode",val:" = 'constant'"},{name:"compress",val:" = 2"},{name:"trim_right_ratio",val:" = 1.0"},{name:"codebook_size",val:" = 2048"},{name:"codebook_dim",val:" = 256"},{name:"num_quantizers",val:" = 32"},{name:"use_conv_shortcut",val:" = False"},{name:"vector_quantization_hidden_dimension",val:" = 256"},{name:"num_semantic_quantizers",val:" = 1"},{name:"upsample_groups",val:" = 512"},{name:"num_hidden_layers",val:" = 8"},{name:"intermediate_size",val:" = 2048"},{name:"num_attention_heads",val:" = 8"},{name:"num_key_value_heads",val:" = 8"},{name:"head_dim",val:" = None"},{name:"hidden_act",val:" = 'gelu'"},{name:"max_position_embeddings",val:" = 8000"},{name:"initializer_range",val:" = 0.02"},{name:"norm_eps",val:" = 1e-05"},{name:"use_cache",val:" = False"},{name:"rope_theta",val:" = 10000.0"},{name:"sliding_window",val:" = 250"},{name:"attention_dropout",val:" = 0.0"},{name:"layer_scale_initial_scale",val:" = 0.01"},{name:"attention_bias",val:" = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.MimiConfig.sampling_rate",description:`<strong>sampling_rate</strong> (<code>int</code>, <em>optional</em>, defaults to 24000) &#x2014;
The sampling rate at which the audio waveform should be digitalized expressed in hertz (Hz).`,name:"sampling_rate"},{anchor:"transformers.MimiConfig.frame_rate",description:`<strong>frame_rate</strong> (<code>float</code>, <em>optional</em>, defaults to 12.5) &#x2014;
Framerate of the model.`,name:"frame_rate"},{anchor:"transformers.MimiConfig.audio_channels",description:`<strong>audio_channels</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
Number of channels in the audio data. Either 1 for mono or 2 for stereo.`,name:"audio_channels"},{anchor:"transformers.MimiConfig.hidden_size",description:`<strong>hidden_size</strong> (<code>int</code>, <em>optional</em>, defaults to 512) &#x2014;
Intermediate representation dimension.`,name:"hidden_size"},{anchor:"transformers.MimiConfig.num_filters",description:`<strong>num_filters</strong> (<code>int</code>, <em>optional</em>, defaults to 64) &#x2014;
Number of convolution kernels of first <code>MimiConv1d</code> down sampling layer.`,name:"num_filters"},{anchor:"transformers.MimiConfig.num_residual_layers",description:`<strong>num_residual_layers</strong> (<code>int</code>,  <em>optional</em>, defaults to 1) &#x2014;
Number of residual layers.`,name:"num_residual_layers"},{anchor:"transformers.MimiConfig.upsampling_ratios",description:`<strong>upsampling_ratios</strong> (<code>Sequence[int]</code>, <em>optional</em>) &#x2014;
Kernel size and stride ratios. The encoder uses downsampling ratios instead of upsampling ratios, hence it
will use the ratios in the reverse order to the ones specified here that must match the decoder order.
If not specified, will defaults to <code>[8, 6, 5, 4]</code>`,name:"upsampling_ratios"},{anchor:"transformers.MimiConfig.kernel_size",description:`<strong>kernel_size</strong> (<code>int</code>, <em>optional</em>, defaults to 7) &#x2014;
Kernel size for the initial convolution.`,name:"kernel_size"},{anchor:"transformers.MimiConfig.last_kernel_size",description:`<strong>last_kernel_size</strong> (<code>int</code>, <em>optional</em>, defaults to 3) &#x2014;
Kernel size for the last convolution layer.`,name:"last_kernel_size"},{anchor:"transformers.MimiConfig.residual_kernel_size",description:`<strong>residual_kernel_size</strong> (<code>int</code>, <em>optional</em>, defaults to 3) &#x2014;
Kernel size for the residual layers.`,name:"residual_kernel_size"},{anchor:"transformers.MimiConfig.dilation_growth_rate",description:`<strong>dilation_growth_rate</strong> (<code>int</code>, <em>optional</em>, defaults to 2) &#x2014;
How much to increase the dilation with each layer.`,name:"dilation_growth_rate"},{anchor:"transformers.MimiConfig.use_causal_conv",description:`<strong>use_causal_conv</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to use fully causal convolution.`,name:"use_causal_conv"},{anchor:"transformers.MimiConfig.pad_mode",description:`<strong>pad_mode</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;constant&quot;</code>) &#x2014;
Padding mode for the convolutions.`,name:"pad_mode"},{anchor:"transformers.MimiConfig.compress",description:`<strong>compress</strong> (<code>int</code>, <em>optional</em>, defaults to 2) &#x2014;
Reduced dimensionality in residual branches.`,name:"compress"},{anchor:"transformers.MimiConfig.trim_right_ratio",description:`<strong>trim_right_ratio</strong> (<code>float</code>, <em>optional</em>, defaults to 1.0) &#x2014;
Ratio for trimming at the right of the transposed convolution under the <code>use_causal_conv = True</code> setup. If
equal to 1.0, it means that all the trimming is done at the right.`,name:"trim_right_ratio"},{anchor:"transformers.MimiConfig.codebook_size",description:`<strong>codebook_size</strong> (<code>int</code>, <em>optional</em>, defaults to 2048) &#x2014;
Number of discret codes in each codebooks.`,name:"codebook_size"},{anchor:"transformers.MimiConfig.codebook_dim",description:`<strong>codebook_dim</strong> (<code>int</code>, <em>optional</em>, defaults to 256) &#x2014;
Dimension of the unquantized codebook vectors. If not defined, uses <code>hidden_size</code>.`,name:"codebook_dim"},{anchor:"transformers.MimiConfig.num_quantizers",description:`<strong>num_quantizers</strong> (<code>int</code>, <em>optional</em>, defaults to 32) &#x2014;
Number of quantizer channels, or codebooks, in the quantizer.`,name:"num_quantizers"},{anchor:"transformers.MimiConfig.use_conv_shortcut",description:`<strong>use_conv_shortcut</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to use a convolutional layer as the &#x2018;skip&#x2019; connection in the <code>MimiResnetBlock</code> block. If False,
an identity function will be used, giving a generic residual connection.`,name:"use_conv_shortcut"},{anchor:"transformers.MimiConfig.vector_quantization_hidden_dimension",description:`<strong>vector_quantization_hidden_dimension</strong> (<code>int</code>, <em>optional</em>, defaults to 256) &#x2014;
Intermediate representation dimension in the residual vector quantization space.`,name:"vector_quantization_hidden_dimension"},{anchor:"transformers.MimiConfig.num_semantic_quantizers",description:`<strong>num_semantic_quantizers</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
Number of semantic quantizer channels, or codebooks, in the semantic quantizer. Must be lower than <code>num_quantizers</code>.`,name:"num_semantic_quantizers"},{anchor:"transformers.MimiConfig.upsample_groups",description:`<strong>upsample_groups</strong> (<code>int</code>, <em>optional</em>, defaults to 512) &#x2014;
If <code>frame_rate!=encodec_frame_rate</code>, indicates the number of groups used in the upsampling operation to go from one rate to another.`,name:"upsample_groups"},{anchor:"transformers.MimiConfig.num_hidden_layers",description:`<strong>num_hidden_layers</strong> (<code>int</code>, <em>optional</em>, defaults to 8) &#x2014;
Number of hidden layers in the Transformer models.`,name:"num_hidden_layers"},{anchor:"transformers.MimiConfig.intermediate_size",description:`<strong>intermediate_size</strong> (<code>int</code>, <em>optional</em>, defaults to 2048) &#x2014;
Dimension of the MLP representations.`,name:"intermediate_size"},{anchor:"transformers.MimiConfig.num_attention_heads",description:`<strong>num_attention_heads</strong> (<code>int</code>, <em>optional</em>, defaults to 8) &#x2014;
Number of attention heads for each attention layer in the Transformer encoder.`,name:"num_attention_heads"},{anchor:"transformers.MimiConfig.num_key_value_heads",description:`<strong>num_key_value_heads</strong> (<code>int</code>, <em>optional</em>, defaults to 8) &#x2014;
This is the number of key_value heads that should be used to implement Grouped Query Attention. If
<code>num_key_value_heads=num_attention_heads</code>, the model will use Multi Head Attention (MHA), if
<code>num_key_value_heads=1</code> the model will use Multi Query Attention (MQA) otherwise GQA is used. When
converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed
by meanpooling all the original heads within that group. For more details checkout <a href="https://arxiv.org/pdf/2305.13245.pdf" rel="nofollow">this
paper</a>. If it is not specified, will default to <code>8</code>.`,name:"num_key_value_heads"},{anchor:"transformers.MimiConfig.head_dim",description:`<strong>head_dim</strong> (<code>int</code>, <em>optional</em>, defaults to <code>hidden_size // num_attention_heads</code>) &#x2014;
The attention head dimension.`,name:"head_dim"},{anchor:"transformers.MimiConfig.hidden_act",description:`<strong>hidden_act</strong> (<code>str</code> or <code>function</code>, <em>optional</em>, defaults to <code>&quot;gelu&quot;</code>) &#x2014;
The non-linear activation function (function or string) in the decoder.`,name:"hidden_act"},{anchor:"transformers.MimiConfig.max_position_embeddings",description:`<strong>max_position_embeddings</strong> (<code>int</code>, <em>optional</em>, defaults to 8000) &#x2014;
The maximum sequence length that this model might ever be used with. Mimi&#x2019;s sliding window attention
allows sequence of up to 8000 tokens.`,name:"max_position_embeddings"},{anchor:"transformers.MimiConfig.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.MimiConfig.norm_eps",description:`<strong>norm_eps</strong> (<code>float</code>, <em>optional</em>, defaults to 1e-05) &#x2014;
The epsilon used by the LayerNorm normalization layers.`,name:"norm_eps"},{anchor:"transformers.MimiConfig.use_cache",description:`<strong>use_cache</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not the model should return the last key/values attentions (not used by all models). Only
relevant if <code>config.is_decoder=True</code>.`,name:"use_cache"},{anchor:"transformers.MimiConfig.rope_theta",description:`<strong>rope_theta</strong> (<code>float</code>, <em>optional</em>, defaults to 10000.0) &#x2014;
The base period of the RoPE embeddings.`,name:"rope_theta"},{anchor:"transformers.MimiConfig.sliding_window",description:`<strong>sliding_window</strong> (<code>int</code>, <em>optional</em>, defaults to 250) &#x2014;
Sliding window attention window size. If not specified, will default to <code>250</code>.`,name:"sliding_window"},{anchor:"transformers.MimiConfig.attention_dropout",description:`<strong>attention_dropout</strong> (<code>float</code>, <em>optional</em>, defaults to 0.0) &#x2014;
The dropout ratio for the attention probabilities.`,name:"attention_dropout"},{anchor:"transformers.MimiConfig.layer_scale_initial_scale",description:`<strong>layer_scale_initial_scale</strong> (<code>float</code>, <em>optional</em>, defaults to 0.01) &#x2014;
Initiale scale of the residual rescaling operation done in the Transformer models.`,name:"layer_scale_initial_scale"},{anchor:"transformers.MimiConfig.attention_bias",description:`<strong>attention_bias</strong> (<code>bool</code>, defaults to <code>False</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to use a bias in the query, key, value and output projection layers during self-attention.`,name:"attention_bias"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/configuration_mimi.py#L28"}}),W=new it({props:{anchor:"transformers.MimiConfig.example",$$slots:{default:[ht]},$$scope:{ctx:z}}}),L=new ce({props:{title:"MimiModel",local:"transformers.MimiModel",headingTag:"h2"}}),Q=new me({props:{name:"class transformers.MimiModel",anchor:"transformers.MimiModel",parameters:[{name:"config",val:": MimiConfig"}],parametersDescription:[{anchor:"transformers.MimiModel.config",description:`<strong>config</strong> (<a href="/docs/transformers/main/en/model_doc/mimi#transformers.MimiConfig">MimiConfig</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/main/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/main/src/transformers/models/mimi/modeling_mimi.py#L1477"}}),S=new me({props:{name:"decode",anchor:"transformers.MimiModel.decode",parameters:[{name:"audio_codes",val:": Tensor"},{name:"padding_mask",val:": Optional = None"},{name:"decoder_past_key_values",val:": Union = None"},{name:"return_dict",val:": Optional = None"}],parametersDescription:[{anchor:"transformers.MimiModel.decode.audio_codes",description:`<strong>audio_codes</strong> (<code>torch.LongTensor</code>  of shape <code>(batch_size, num_quantizers, codes_length)</code>, <em>optional</em>) &#x2014;
Discret code embeddings computed using <code>model.encode</code>.`,name:"audio_codes"},{anchor:"transformers.MimiModel.decode.padding_mask",description:`<strong>padding_mask</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, channels, sequence_length)</code>) &#x2014;
Indicates which inputs are to be ignored due to padding, where elements are either 1 for <em>not masked</em> or 0
for <em>masked</em>.`,name:"padding_mask"},{anchor:"transformers.MimiModel.decode.decoder_past_key_values",description:`<strong>decoder_past_key_values</strong> (<code>Cache</code>, <em>optional</em>) &#x2014;
Pre-computed hidden-states (key and values in the self-attention blocks) that can be used to speed up sequential decoding of the decoder transformer.
This typically consists in the <code>past_key_values</code> returned by the model at a previous stage of decoding, when <code>use_cache=True</code> or <code>config.use_cache=True</code>.</p>
<p>The model will output the same cache format that is fed as input.</p>
<p>If <code>past_key_values</code> are used, the user can optionally input only the last <code>audio_values</code> or \`audio_codes (those that don&#x2019;t
have their past key value states given to this model).`,name:"decoder_past_key_values"},{anchor:"transformers.MimiModel.decode.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return a <a href="/docs/transformers/main/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.`,name:"return_dict"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1642"}}),D=new me({props:{name:"encode",anchor:"transformers.MimiModel.encode",parameters:[{name:"input_values",val:": Tensor"},{name:"padding_mask",val:": Tensor = None"},{name:"num_quantizers",val:": Optional = None"},{name:"encoder_past_key_values",val:": Union = None"},{name:"return_dict",val:": Optional = None"}],parametersDescription:[{anchor:"transformers.MimiModel.encode.input_values",description:`<strong>input_values</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, channels, sequence_length)</code>) &#x2014;
Float values of the input audio waveform.`,name:"input_values"},{anchor:"transformers.MimiModel.encode.padding_mask",description:`<strong>padding_mask</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, channels, sequence_length)</code>) &#x2014;
Indicates which inputs are to be ignored due to padding, where elements are either 1 for <em>not masked</em> or 0
for <em>masked</em>.`,name:"padding_mask"},{anchor:"transformers.MimiModel.encode.num_quantizers",description:`<strong>num_quantizers</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Number of quantizers (i.e codebooks) to use. By default, all quantizers are used.`,name:"num_quantizers"},{anchor:"transformers.MimiModel.encode.encoder_past_key_values",description:`<strong>encoder_past_key_values</strong> (<code>Cache</code>, <em>optional</em>) &#x2014;
Pre-computed hidden-states (key and values in the self-attention blocks) that can be used to speed up sequential decoding of the encoder transformer.
This typically consists in the <code>past_key_values</code> returned by the model at a previous stage of decoding, when <code>use_cache=True</code> or <code>config.use_cache=True</code>.</p>
<p>The model will output the same cache format that is fed as input.</p>
<p>If <code>past_key_values</code> are used, the user can optionally input only the last <code>audio_values</code> or \`audio_codes (those that don&#x2019;t
have their past key value states given to this model).`,name:"encoder_past_key_values"},{anchor:"transformers.MimiModel.encode.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return a <a href="/docs/transformers/main/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.`,name:"return_dict"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1556",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>codebook</code> of shape <code>[batch_size, num_codebooks, frames]</code>, the discrete encoded codes for the input audio waveform.</p>
`}}),A=new me({props:{name:"forward",anchor:"transformers.MimiModel.forward",parameters:[{name:"input_values",val:": Tensor"},{name:"padding_mask",val:": Optional = None"},{name:"num_quantizers",val:": Optional = None"},{name:"audio_codes",val:": Optional = None"},{name:"encoder_past_key_values",val:": Union = None"},{name:"decoder_past_key_values",val:": Union = None"},{name:"return_dict",val:": Optional = None"}],parametersDescription:[{anchor:"transformers.MimiModel.forward.input_values",description:`<strong>input_values</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, channels, sequence_length)</code>, <em>optional</em>) &#x2014;
Raw audio input converted to Float.`,name:"input_values"},{anchor:"transformers.MimiModel.forward.padding_mask",description:`<strong>padding_mask</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>) &#x2014;
Indicates which inputs are to be ignored due to padding, where elements are either 1 for <em>not masked</em> or 0
for <em>masked</em>.`,name:"padding_mask"},{anchor:"transformers.MimiModel.forward.num_quantizers",description:`<strong>num_quantizers</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Number of quantizers (i.e codebooks) to use. By default, all quantizers are used.`,name:"num_quantizers"},{anchor:"transformers.MimiModel.forward.audio_codes",description:`<strong>audio_codes</strong> (<code>torch.LongTensor</code>  of shape <code>(batch_size, num_quantizers, codes_length)</code>, <em>optional</em>) &#x2014;
Discret code embeddings computed using <code>model.encode</code>.`,name:"audio_codes"},{anchor:"transformers.MimiModel.forward.encoder_past_key_values",description:`<strong>encoder_past_key_values</strong> (<code>Cache</code>, <em>optional</em>) &#x2014;
Pre-computed hidden-states (key and values in the self-attention blocks) that can be used to speed up sequential decoding of the encoder transformer.
This typically consists in the <code>past_key_values</code> returned by the model at a previous stage of decoding, when <code>use_cache=True</code> or <code>config.use_cache=True</code>.</p>
<p>The model will output the same cache format that is fed as input.</p>
<p>If <code>past_key_values</code> are used, the user can optionally input only the last <code>audio_values</code> or \`audio_codes (those that don&#x2019;t
have their past key value states given to this model).`,name:"encoder_past_key_values"},{anchor:"transformers.MimiModel.forward.decoder_past_key_values",description:`<strong>decoder_past_key_values</strong> (<code>Cache</code>, <em>optional</em>) &#x2014;
Pre-computed hidden-states (key and values in the self-attention blocks) that can be used to speed up sequential decoding of the decoder transformer.
This typically consists in the <code>past_key_values</code> returned by the model at a previous stage of decoding, when <code>use_cache=True</code> or <code>config.use_cache=True</code>.</p>
<p>The model will output the same cache format that is fed as input.</p>
<p>If <code>past_key_values</code> are used, the user can optionally input only the last <code>audio_values</code> or \`audio_codes (those that don&#x2019;t
have their past key value states given to this model).`,name:"decoder_past_key_values"},{anchor:"transformers.MimiModel.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/main/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.`,name:"return_dict"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1690",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>A <code>transformers.models.mimi.modeling_mimi.MimiOutput</code> 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/main/en/model_doc/mimi#transformers.MimiConfig"
>MimiConfig</a>) and inputs.</p>
<ul>
<li>
<p><strong>audio_codes</strong> (<code>torch.LongTensor</code>  of shape <code>(batch_size, num_quantizers, codes_length)</code>, <em>optional</em>) — Discret code embeddings computed using <code>model.encode</code>.</p>
</li>
<li>
<p><strong>audio_values</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>)
Decoded audio values, obtained using the decoder part of Mimi.</p>
</li>
<li>
<p><strong>encoder_past_key_values</strong> (<code>Cache</code>, <em>optional</em>) — Pre-computed hidden-states (key and values in the self-attention blocks) that can be used to speed up sequential decoding of the encoder transformer.
This typically consists in the <code>past_key_values</code> returned by the model at a previous stage of decoding, when <code>use_cache=True</code> or <code>config.use_cache=True</code>.</p>
<p>The model will output the same cache format that is fed as input.</p>
<p>If <code>past_key_values</code> are used, the user can optionally input only the last <code>audio_values</code> or \`audio_codes (those that don’t
have their past key value states given to this model).</p>
</li>
<li>
<p><strong>decoder_past_key_values</strong> (<code>Cache</code>, <em>optional</em>) — Pre-computed hidden-states (key and values in the self-attention blocks) that can be used to speed up sequential decoding of the decoder transformer.
This typically consists in the <code>past_key_values</code> returned by the model at a previous stage of decoding, when <code>use_cache=True</code> or <code>config.use_cache=True</code>.</p>
<p>The model will output the same cache format that is fed as input.</p>
<p>If <code>past_key_values</code> are used, the user can optionally input only the last <code>audio_values</code> or \`audio_codes (those that don’t
have their past key value states given to this model).</p>
</li>
</ul>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>transformers.models.mimi.modeling_mimi.MimiOutput</code> or <code>tuple(torch.FloatTensor)</code></p>
`}}),I=new ut({props:{$$slots:{default:[ft]},$$scope:{ctx:z}}}),q=new it({props:{anchor:"transformers.MimiModel.forward.example",$$slots:{default:[gt]},$$scope:{ctx:z}}}),O=new pt({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/en/model_doc/mimi.md"}}),{c(){r=d("meta"),T=a(),u=d("p"),c=a(),g(h.$$.fragment),n=a(),g(w.$$.fragment),ue=a(),X=d("p"),X.innerHTML=Be,pe=a(),R=d("p"),R.textContent=Pe,he=a(),V=d("p"),V.innerHTML=Le,fe=a(),N=d("p"),N.innerHTML=Qe,ge=a(),G=d("ul"),G.innerHTML=Se,_e=a(),g(F.$$.fragment),Me=a(),H=d("p"),H.textContent=De,ve=a(),g(E.$$.fragment),ye=a(),Y=d("p"),Y.innerHTML=Ae,be=a(),g(B.$$.fragment),we=a(),x=d("div"),g(P.$$.fragment),je=a(),te=d("p"),te.innerHTML=Oe,ze=a(),oe=d("p"),oe.innerHTML=Ke,We=a(),g(W.$$.fragment),ke=a(),g(L.$$.fragment),Te=a(),f=d("div"),g(Q.$$.fragment),Ue=a(),ne=d("p"),ne.innerHTML=et,Ie=a(),ae=d("p"),ae.innerHTML=tt,qe=a(),J=d("div"),g(S.$$.fragment),Ze=a(),se=d("p"),se.textContent=ot,Xe=a(),ie=d("p"),ie.textContent=nt,Re=a(),U=d("div"),g(D.$$.fragment),Ve=a(),re=d("p"),re.textContent=at,Ne=a(),$=d("div"),g(A.$$.fragment),Ge=a(),le=d("p"),le.innerHTML=st,Fe=a(),g(I.$$.fragment),He=a(),g(q.$$.fragment),xe=a(),g(O.$$.fragment),$e=a(),de=d("p"),this.h()},l(e){const t=ct("svelte-u9bgzb",document.head);r=m(t,"META",{name:!0,content:!0}),t.forEach(o),T=s(e),u=m(e,"P",{}),K(u).forEach(o),c=s(e),_(h.$$.fragment,e),n=s(e),_(w.$$.fragment,e),ue=s(e),X=m(e,"P",{"data-svelte-h":!0}),p(X)!=="svelte-16k1mag"&&(X.innerHTML=Be),pe=s(e),R=m(e,"P",{"data-svelte-h":!0}),p(R)!=="svelte-vfdo9a"&&(R.textContent=Pe),he=s(e),V=m(e,"P",{"data-svelte-h":!0}),p(V)!=="svelte-ffvq6r"&&(V.innerHTML=Le),fe=s(e),N=m(e,"P",{"data-svelte-h":!0}),p(N)!=="svelte-jmjp86"&&(N.innerHTML=Qe),ge=s(e),G=m(e,"UL",{"data-svelte-h":!0}),p(G)!=="svelte-9chpkl"&&(G.innerHTML=Se),_e=s(e),_(F.$$.fragment,e),Me=s(e),H=m(e,"P",{"data-svelte-h":!0}),p(H)!=="svelte-b4kgu7"&&(H.textContent=De),ve=s(e),_(E.$$.fragment,e),ye=s(e),Y=m(e,"P",{"data-svelte-h":!0}),p(Y)!=="svelte-1h1fcg1"&&(Y.innerHTML=Ae),be=s(e),_(B.$$.fragment,e),we=s(e),x=m(e,"DIV",{class:!0});var C=K(x);_(P.$$.fragment,C),je=s(C),te=m(C,"P",{"data-svelte-h":!0}),p(te)!=="svelte-16el385"&&(te.innerHTML=Oe),ze=s(C),oe=m(C,"P",{"data-svelte-h":!0}),p(oe)!=="svelte-o55m63"&&(oe.innerHTML=Ke),We=s(C),_(W.$$.fragment,C),C.forEach(o),ke=s(e),_(L.$$.fragment,e),Te=s(e),f=m(e,"DIV",{class:!0});var k=K(f);_(Q.$$.fragment,k),Ue=s(k),ne=m(k,"P",{"data-svelte-h":!0}),p(ne)!=="svelte-1jgh5s1"&&(ne.innerHTML=et),Ie=s(k),ae=m(k,"P",{"data-svelte-h":!0}),p(ae)!=="svelte-hswkmf"&&(ae.innerHTML=tt),qe=s(k),J=m(k,"DIV",{class:!0});var j=K(J);_(S.$$.fragment,j),Ze=s(j),se=m(j,"P",{"data-svelte-h":!0}),p(se)!=="svelte-18b2f30"&&(se.textContent=ot),Xe=s(j),ie=m(j,"P",{"data-svelte-h":!0}),p(ie)!=="svelte-12sn3fy"&&(ie.textContent=nt),j.forEach(o),Re=s(k),U=m(k,"DIV",{class:!0});var Je=K(U);_(D.$$.fragment,Je),Ve=s(Je),re=m(Je,"P",{"data-svelte-h":!0}),p(re)!=="svelte-1mhlb4g"&&(re.textContent=at),Je.forEach(o),Ne=s(k),$=m(k,"DIV",{class:!0});var Z=K($);_(A.$$.fragment,Z),Ge=s(Z),le=m(Z,"P",{"data-svelte-h":!0}),p(le)!=="svelte-xcj6aj"&&(le.innerHTML=st),Fe=s(Z),_(I.$$.fragment,Z),He=s(Z),_(q.$$.fragment,Z),Z.forEach(o),k.forEach(o),xe=s(e),_(O.$$.fragment,e),$e=s(e),de=m(e,"P",{}),K(de).forEach(o),this.h()},h(){ee(r,"name","hf:doc:metadata"),ee(r,"content",Mt),ee(x,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),ee(J,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),ee(U,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),ee($,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),ee(f,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,t){l(document.head,r),i(e,T,t),i(e,u,t),i(e,c,t),M(h,e,t),i(e,n,t),M(w,e,t),i(e,ue,t),i(e,X,t),i(e,pe,t),i(e,R,t),i(e,he,t),i(e,V,t),i(e,fe,t),i(e,N,t),i(e,ge,t),i(e,G,t),i(e,_e,t),M(F,e,t),i(e,Me,t),i(e,H,t),i(e,ve,t),M(E,e,t),i(e,ye,t),i(e,Y,t),i(e,be,t),M(B,e,t),i(e,we,t),i(e,x,t),M(P,x,null),l(x,je),l(x,te),l(x,ze),l(x,oe),l(x,We),M(W,x,null),i(e,ke,t),M(L,e,t),i(e,Te,t),i(e,f,t),M(Q,f,null),l(f,Ue),l(f,ne),l(f,Ie),l(f,ae),l(f,qe),l(f,J),M(S,J,null),l(J,Ze),l(J,se),l(J,Xe),l(J,ie),l(f,Re),l(f,U),M(D,U,null),l(U,Ve),l(U,re),l(f,Ne),l(f,$),M(A,$,null),l($,Ge),l($,le),l($,Fe),M(I,$,null),l($,He),M(q,$,null),i(e,xe,t),M(O,e,t),i(e,$e,t),i(e,de,t),Ce=!0},p(e,[t]){const C={};t&2&&(C.$$scope={dirty:t,ctx:e}),W.$set(C);const k={};t&2&&(k.$$scope={dirty:t,ctx:e}),I.$set(k);const j={};t&2&&(j.$$scope={dirty:t,ctx:e}),q.$set(j)},i(e){Ce||(v(h.$$.fragment,e),v(w.$$.fragment,e),v(F.$$.fragment,e),v(E.$$.fragment,e),v(B.$$.fragment,e),v(P.$$.fragment,e),v(W.$$.fragment,e),v(L.$$.fragment,e),v(Q.$$.fragment,e),v(S.$$.fragment,e),v(D.$$.fragment,e),v(A.$$.fragment,e),v(I.$$.fragment,e),v(q.$$.fragment,e),v(O.$$.fragment,e),Ce=!0)},o(e){y(h.$$.fragment,e),y(w.$$.fragment,e),y(F.$$.fragment,e),y(E.$$.fragment,e),y(B.$$.fragment,e),y(P.$$.fragment,e),y(W.$$.fragment,e),y(L.$$.fragment,e),y(Q.$$.fragment,e),y(S.$$.fragment,e),y(D.$$.fragment,e),y(A.$$.fragment,e),y(I.$$.fragment,e),y(q.$$.fragment,e),y(O.$$.fragment,e),Ce=!1},d(e){e&&(o(T),o(u),o(c),o(n),o(ue),o(X),o(pe),o(R),o(he),o(V),o(fe),o(N),o(ge),o(G),o(_e),o(Me),o(H),o(ve),o(ye),o(Y),o(be),o(we),o(x),o(ke),o(Te),o(f),o(xe),o($e),o(de)),o(r),b(h,e),b(w,e),b(F,e),b(E,e),b(B,e),b(P),b(W),b(L,e),b(Q),b(S),b(D),b(A),b(I),b(q),b(O,e)}}}const Mt='{"title":"Mimi","local":"mimi","sections":[{"title":"Overview","local":"overview","sections":[],"depth":2},{"title":"Usage example","local":"usage-example","sections":[],"depth":2},{"title":"MimiConfig","local":"transformers.MimiConfig","sections":[],"depth":2},{"title":"MimiModel","local":"transformers.MimiModel","sections":[],"depth":2}],"depth":1}';function vt(z){return lt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ct extends dt{constructor(r){super(),mt(this,r,vt,_t,rt,{})}}export{Ct as component};
