import{s as Wl,o as vl}from"../chunks/scheduler.cd324960.js";import{S as Xl,i as Yl,e as a,s as M,c as C,h as zl,a as p,d as e,b as n,f as Gl,g as J,j as i,k as Jl,l as Hl,m as s,n as U,t as y,o as m,p as j,q as ql,r as Fl}from"../chunks/index.d5c3adcc.js";import{T as Ll}from"../chunks/Tip.889bec11.js";import{C as Dl,H as Cl,E as Pl}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.4fcff51e.js";import{C as r}from"../chunks/CodeBlock.075f5775.js";function Ol(mt){let u;return{c(){u=ql(`💡 Некоторые сведения о передискретизации: Если аудиосигнал дискретизирован с частотой 8 кГц, т. е. имеет 8000 выборок в
секунду, то мы знаем, что он не содержит частот выше 4 кГц. Это гарантируется теоремой Найквиста 
о дискретизации. Благодаря этому мы можем быть уверены, что между точками дискретизации исходный непрерывный сигнал всегда
имеет плавную кривую. Повышение частоты дискретизации до более высокой сводится к вычислению дополнительных значений выборки, которые находятся между
существующими, путем аппроксимации этой кривой. Однако понижающая дискретизация требует, чтобы мы сначала отфильтровали все частоты,
которые будут выше нового предела Найквиста, прежде чем оценивать новые точки дискретизации. Другими словами, нельзя
понизить дискретизацию в 2 раза, просто отбрасывая каждый второй сэмпл - это приведет к появлению искажений в сигнале, называемых
наложениями. Корректная передискретизация - дело непростое, и его лучше доверить проверенным библиотекам, таким как librosa или 🤗 Datasets.`)},l(T){u=Fl(T,`💡 Некоторые сведения о передискретизации: Если аудиосигнал дискретизирован с частотой 8 кГц, т. е. имеет 8000 выборок в
секунду, то мы знаем, что он не содержит частот выше 4 кГц. Это гарантируется теоремой Найквиста 
о дискретизации. Благодаря этому мы можем быть уверены, что между точками дискретизации исходный непрерывный сигнал всегда
имеет плавную кривую. Повышение частоты дискретизации до более высокой сводится к вычислению дополнительных значений выборки, которые находятся между
существующими, путем аппроксимации этой кривой. Однако понижающая дискретизация требует, чтобы мы сначала отфильтровали все частоты,
которые будут выше нового предела Найквиста, прежде чем оценивать новые точки дискретизации. Другими словами, нельзя
понизить дискретизацию в 2 раза, просто отбрасывая каждый второй сэмпл - это приведет к появлению искажений в сигнале, называемых
наложениями. Корректная передискретизация - дело непростое, и его лучше доверить проверенным библиотекам, таким как librosa или 🤗 Datasets.`)},m(T,w){s(T,u,w)},d(T){T&&e(u)}}}function Kl(mt){let u,T,w,jt,o,ut,f,rt,h,Ul=`Загрузка набора данных с помощью 🤗 Datasets - это только половина удовольствия. Если вы планируете использовать его либо для обучения модели, либо для выполнения
инференса, необходимо предварительно обработать данные. В общем случае это включает в себя следующие шаги:`,Tt,d,yl="<li>Передискретизация аудиоданных</li> <li>Фильтрация набора данных</li> <li>Преобразование аудиоданных в ожидаемый моделью формат входных данных</li>",Vt,I,ct,E,ml=`Функция <code>load_dataset</code> загружает аудиопримеры с той частотой дискретизации, с которой они были опубликованы. Это не
всегда та частота дискретизации, которая ожидается моделью, которую вы планируете обучать или использовать для инференса. Если есть расхождение между
частотой дискретизации, можно передискретизировать звук до ожидаемой моделью частоты дискретизации.`,wt,A,jl=`Большинство имеющихся предварительно обученных моделей были обучены на аудиоданных с частотой дискретизации 16 кГц.
Когда мы исследовали набор данных MINDS-14, вы могли заметить, что он сэмплирован с частотой 8 кГц, что означает, что нам, скорее всего, потребуется
увеличить частоту дискретизации.`,ot,$,ul=`Чтобы сделать это, используйте метод 🤗 Datasets <code>cast_column</code>. Эта операция не изменяет звук непосредственно в наборе данных (in-place), а дает сигнал
datasets для передискретизации аудиопримеров “на лету” при их загрузке. Следующий код установит частоту дискретизации
равной 16 кГц:`,ft,b,ht,Q,rl="Перезагрузим первый аудиопример из набора данных MINDS-14 и проверим, что он был передискретизирован до нужной <code>sampling rate</code>:",dt,x,It,_,Tl="<strong>Output:</strong>",Et,g,At,R,Vl=`Вы можете заметить, что значения массива теперь также отличаются. Это связано с тем, что теперь для
каждого значения амплитуды мы имеем в два раза больше значений чем раньше.`,$t,V,bt,S,Qt,B,cl=`Возможно, потребуется отфильтровать данные по каким-либо критериям. Одним из распространенных случаев является ограничение аудиопримеров
определенной продолжительности. Например, для предотвращения ошибок, связанных с выходом за пределы доступного обьёма памяти,
необходимо отфильтровать все примеры длительностью более 20 секунд при обучении модели.`,xt,k,wl=`Мы можем сделать это, используя метод 🤗 Datasets <code>filter</code> и передать ему функцию с логикой фильтрации. Начнем с того, что напишем функцию
которая определяет, какие примеры следует оставить, а какие отбросить. Эта функция, <code>is_audio_length_in_range</code>,
возвращает <code>True</code>, если длина образца меньше 20 с, и <code>False</code>, если больше 20 с.`,_t,N,gt,Z,ol=`Функция фильтрации может быть применена к столбцу набора данных, но в данном наборе столбец с длительностью звуковой дорожки отсутствует.
Однако мы можем его создать, отфильтровать по значениям в этом столбце, а затем удалить.`,Rt,G,St,W,fl="<strong>Output:</strong>",Bt,v,kt,X,hl="Мы можем убедиться, что набор данных был отфильтрован с 654 примеров до 624.",Nt,Y,Zt,z,dl=`Одним из наиболее сложных аспектов работы с наборами аудиоданных является подготовка данных в нужном для обучения модели
формате. Как вы видели, исходные аудиоданные поступают в виде массива значений образцов. Однако предварительно обученные модели, независимо от того, используете ли вы их
для инференса или для дообучения под вашу задачу, ожидают, что сырые данные будут преобразованы во входные признаки. Требования
к входным признакам могут быть различными для разных моделей - они зависят от архитектуры модели и данных, на которых она была
предварительно обучена. Хорошей новостью является то, что для каждой поддерживаемой аудиомодели 🤗 Transformers предлагает класс feature extractor
который может преобразовать сырые аудиоданные во входные признаки, ожидаемые моделью.`,Gt,H,Il=`Что же делает экстрактор признаков с исходными аудиоданными? Давайте посмотрим на экстрактор признаков в <a href="https://huggingface.co/papers/2212.04356" rel="nofollow">Whisper</a>,
чтобы понять некоторые общие преобразования извлечения признаков. Whisper - это предварительно обученная модель для
автоматического распознавания речи (ASR), опубликованная в сентябре 2022 года Алеком Рэдфордом и другими из OpenAI.`,Wt,q,El=`Сначала экстрактор признаков Whisper дополняет/обрезает батч аудиопримеров таким образом, что все образцы
имеют длительность входного сигнала 30 секунд. Примеры короче этого значения дополняются до 30 секунд путем добавления нулей в конец
последовательности (нули в аудиосигнале соответствуют отсутствию сигнала или тишине). Примеры длиной более 30 секунд усекаются до 30 секунд.
Поскольку все элементы в батче дополняются/обрезаются до максимальной длины во входном пространстве, необходимость в использованрии маски внимания
отпадает. Whisper уникален в этом отношении, большинству других аудиомоделей требуется маска внимания, которая подробно описывает,
где последовательности были дополненны, и, следовательно, где они должны быть проигнорированы в механизме самовнимания. Whisper
обучен работать без маски внимания и непосредственно по речевым сигналам определять, где следует игнорировать входные сигналы.`,vt,F,Al=`Второй операцией, которую выполняет экстрактор признаков Whisper, является преобразование дополненных звуковых массивов в лог-мел спектрограммы.
Как вы помните, эти спектрограммы описывают, как изменяются частоты сигнала с течением времени, выраженные в шкале мел
и измеряются в децибелах (логарифмическая часть), чтобы сделать частоты и амплитуды более репрезентативными для человеческого слуха.`,Xt,L,$l=`Все эти преобразования могут быть применены к необработанным аудиоданным с помощью пары строк кода. Давайте загрузим
экстрактор признаков из предварительно обученной контрольной точки Whisper, чтобы получить готовые аудиоданные:`,Yt,D,zt,P,bl="Далее можно написать функцию для предварительной обработки одного аудиопримера, передавая его в <code>feature_extractor</code>.",Ht,O,qt,K,Ql="Мы можем применить функцию подготовки данных ко всем нашим обучающим примерам, используя метод 🤗 Datasets’ map:",Ft,tt,Lt,lt,xl="<strong>Output:</strong>",Dt,et,Pt,st,_l="Вот так просто мы получили лог-мел спектрограммы в качестве <code>input_features</code> в наборе данных.",Ot,Mt,gl="Визуализируем ее для одного из примеров в наборе данных <code>minds</code>:",Kt,nt,tl,c,Rl='<img src="https://huggingface.co/datasets/huggingface-course/audio-course-images/resolve/main/log_mel_whisper.png" alt="Log mel spectrogram plot"/>',ll,at,Sl="Теперь вы можете увидеть, как выглядит входной аудиосигнал для модели Whisper после препроцессинга.",el,pt,Bl=`Класс модели feature extractor занимается преобразованием сырых аудиоданных в формат, ожидаемый моделью. Однако,
многие задачи с использованием звука являются мультимодальными, например, распознавание речи.
В таких случаях 🤗 Transformers также предлагает специфичные для конкретной модели
токенизаторы для обработки текстовых данных. Для более глубокого изучения токенизаторов обратитесь к нашему <a href="https://huggingface.co/course/chapter2/4" rel="nofollow">курсу по NLP</a>.`,sl,it,kl=`Вы можете загрузить экстрактор признаков и токенизатор для Whisper и других мультимодальных моделей отдельно, либо загрузить их через
так называемый процессор. Чтобы еще больше упростить задачу, используйте <code>AutoProcessor</code> для загрузки экстрактора признаков и процессора модели из контрольной точки,
например, так:`,Ml,Ct,nl,Jt,Nl=`Здесь мы проиллюстрировали основные этапы подготовки данных. Конечно, пользовательские данные могут потребовать более сложного препроцессинга.
В этом случае можно расширить функцию <code>prepare_dataset</code> для выполнения любых преобразований пользовательских данных. С 🤗 Datasets,
если вы можете записать процес подготовки данных как функцию Python, вы можете <a href="https://huggingface.co/docs/datasets/audio_process" rel="nofollow">применить его</a> к вашему набору данных!`,al,Ut,pl,yt,il;return o=new Dl({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),f=new Cl({props:{title:"Препроцессинг набора аудиоданных",local:"препроцессинг-набора-аудиоданных",headingTag:"h1"}}),I=new Cl({props:{title:"Передискретизация аудиоданных",local:"передискретизация-аудиоданных",headingTag:"h2"}}),b=new r({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwQXVkaW8lMEElMEFtaW5kcyUyMCUzRCUyMG1pbmRzLmNhc3RfY29sdW1uKCUyMmF1ZGlvJTIyJTJDJTIwQXVkaW8oc2FtcGxpbmdfcmF0ZSUzRDE2XzAwMCkp",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> Audio

minds = minds.cast_column(<span class="hljs-string">&quot;audio&quot;</span>, Audio(sampling_rate=<span class="hljs-number">16_000</span>))`,wrap:!1}}),x=new r({props:{code:"bWluZHMlNUIwJTVE",highlighted:'minds[<span class="hljs-number">0</span>]',wrap:!1}}),g=new r({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJTIycGF0aCUyMiUzQSUyMCUyMiUyRnJvb3QlMkYuY2FjaGUlMkZodWdnaW5nZmFjZSUyRmRhdGFzZXRzJTJGZG93bmxvYWRzJTJGZXh0cmFjdGVkJTJGZjE0OTQ4ZTBlODRiZTYzOGRkNzk0M2FjMzY1MThhNGNmMzMyNGU4YjdhYTMzMWM1YWIxMTU0MTUxOGU5MzY4YyUyRmVuLUFVflBBWV9CSUxMJTJGcmVzcG9uc2VfNC53YXYlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjJhdWRpbyUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnBhdGglMjIlM0ElMjAlMjIlMkZyb290JTJGLmNhY2hlJTJGaHVnZ2luZ2ZhY2UlMkZkYXRhc2V0cyUyRmRvd25sb2FkcyUyRmV4dHJhY3RlZCUyRmYxNDk0OGUwZTg0YmU2MzhkZDc5NDNhYzM2NTE4YTRjZjMzMjRlOGI3YWEzMzFjNWFiMTE1NDE1MThlOTM2OGMlMkZlbi1BVX5QQVlfQklMTCUyRnJlc3BvbnNlXzQud2F2JTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyYXJyYXklMjIlM0ElMjBhcnJheSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAyLjA2MzQyNDNlLTA1JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMS45NDM3ODM3ZS0wNCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMDIuMjQxOTM0MGUtMDQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuLi4lMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjA5LjM4NTI4NjJlLTA0JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMS4xMzAyNDUyZS0wMyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMDcuMTUzMTQyOWUtMDQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkdHlwZSUzRGZsb2F0MzIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjApJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyc2FtcGxpbmdfcmF0ZSUyMiUzQSUyMDE2MDAwJTJDJTBBJTIwJTIwJTIwJTIwJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIydHJhbnNjcmlwdGlvbiUyMiUzQSUyMCUyMkklMjB3b3VsZCUyMGxpa2UlMjB0byUyMHBheSUyMG15JTIwZWxlY3RyaWNpdHklMjBiaWxsJTIwdXNpbmclMjBteSUyMGNhcmQlMjBjYW4lMjB5b3UlMjBwbGVhc2UlMjBhc3Npc3QlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjJpbnRlbnRfY2xhc3MlMjIlM0ElMjAxMyUyQyUwQSU3RA==",highlighted:`{
    <span class="hljs-comment">&quot;path&quot;</span>: <span class="hljs-comment">&quot;/root/.cache/huggingface/datasets/downloads/extracted/f14948e0e84be638dd7943ac36518a4cf3324e8b7aa331c5ab11541518e9368c/en-AU~PAY_BILL/response_4.wav&quot;</span>,
    <span class="hljs-comment">&quot;audio&quot;</span>: {
        <span class="hljs-comment">&quot;path&quot;</span>: <span class="hljs-comment">&quot;/root/.cache/huggingface/datasets/downloads/extracted/f14948e0e84be638dd7943ac36518a4cf3324e8b7aa331c5ab11541518e9368c/en-AU~PAY_BILL/response_4.wav&quot;</span>,
        <span class="hljs-comment">&quot;array&quot;</span>: array(
            [
                <span class="hljs-number">2.0634243e-05</span>,
                <span class="hljs-number">1.9437837e-04</span>,
                <span class="hljs-number">2.2419340e-04</span>,
                ...,
                <span class="hljs-number">9.3852862e-04</span>,
                <span class="hljs-number">1.1302452e-03</span>,
                <span class="hljs-number">7.1531429e-04</span>,
            ],
            dtype=float32,
        ),
        <span class="hljs-comment">&quot;sampling_rate&quot;</span>: <span class="hljs-number">16000</span>,
    },
    <span class="hljs-comment">&quot;transcription&quot;</span>: <span class="hljs-comment">&quot;I would like to pay my electricity bill using my card can you please assist&quot;</span>,
    <span class="hljs-comment">&quot;intent_class&quot;</span>: <span class="hljs-number">13</span>,
}`,wrap:!1}}),V=new Ll({props:{$$slots:{default:[Ol]},$$scope:{ctx:mt}}}),S=new Cl({props:{title:"Фильтрация набора данных",local:"фильтрация-набора-данных",headingTag:"h2"}}),N=new r({props:{code:"TUFYX0RVUkFUSU9OX0lOX1NFQ09ORFMlMjAlM0QlMjAyMC4wJTBBJTBBJTBBZGVmJTIwaXNfYXVkaW9fbGVuZ3RoX2luX3JhbmdlKGlucHV0X2xlbmd0aCklM0ElMEElMjAlMjAlMjAlMjByZXR1cm4lMjBpbnB1dF9sZW5ndGglMjAlM0MlMjBNQVhfRFVSQVRJT05fSU5fU0VDT05EUw==",highlighted:`MAX_DURATION_IN_SECONDS = <span class="hljs-number">20.0</span>


<span class="hljs-keyword">def</span> <span class="hljs-title function_">is_audio_length_in_range</span>(<span class="hljs-params">input_length</span>):
    <span class="hljs-keyword">return</span> input_length &lt; MAX_DURATION_IN_SECONDS`,wrap:!1}}),G=new r({props:{code:"JTIzJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQxJTgzJUQwJUI1JUQwJUJDJTIwbGlicm9zYSUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4MyVEMSU4NyVEMCVCNSVEMCVCRCVEMCVCOCVEMSU4RiUyMCVEMCVCNCVEMCVCQiVEMCVCOCVEMSU4MiVEMCVCNSVEMCVCQiVEMSU4QyVEMCVCRCVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCOCUyMCVEMSU4NCVEMSU4MCVEMCVCMCVEMCVCMyVEMCVCQyVEMCVCNSVEMCVCRCVEMSU4MiVEMCVCMCUyMCVEMCVCOCVEMCVCNyUyMCVEMCVCMCVEMSU4MyVEMCVCNCVEMCVCOCVEMCVCRSVEMSU4NCVEMCVCMCVEMCVCOSVEMCVCQiVEMCVCMCUwQW5ld19jb2x1bW4lMjAlM0QlMjAlNUJsaWJyb3NhLmdldF9kdXJhdGlvbihwYXRoJTNEeCklMjBmb3IlMjB4JTIwaW4lMjBtaW5kcyU1QiUyMnBhdGglMjIlNUQlNUQlMEFtaW5kcyUyMCUzRCUyMG1pbmRzLmFkZF9jb2x1bW4oJTIyZHVyYXRpb24lMjIlMkMlMjBuZXdfY29sdW1uKSUwQSUwQSUyMyUyMCVEMCVCOCVEMSU4MSVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMSU4MyVEMCVCNSVEMCVCQyUyMCVEMCVCQyVEMCVCNSVEMSU4MiVEMCVCRSVEMCVCNCUyMCVGMCU5RiVBNCU5NyUyMERhdGFzZXRzJTIwJTYwZmlsdGVyJTYwJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJTg0JUQxJTgzJUQwJUJEJUQwJUJBJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQxJTg0JUQwJUI4JUQwJUJCJUQxJThDJUQxJTgyJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTBBbWluZHMlMjAlM0QlMjBtaW5kcy5maWx0ZXIoaXNfYXVkaW9fbGVuZ3RoX2luX3JhbmdlJTJDJTIwaW5wdXRfY29sdW1ucyUzRCU1QiUyMmR1cmF0aW9uJTIyJTVEKSUwQSUwQSUyMyUyMCVEMSU4MyVEMCVCNCVEMCVCMCVEMCVCQiVEMCVCOCVEMCVCQyUyMCVEMCVCMiVEMSU4MCVEMCVCNSVEMCVCQyVEMCVCNSVEMCVCRCVEMCVCRCVEMSU4QiVEMCVCOSUyMCVEMCVCMiVEMSU4MSVEMCVCRiVEMCVCRSVEMCVCQyVEMCVCRSVEMCVCMyVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCQiVEMSU4QyVEMCVCRCVEMSU4QiVEMCVCOSUyMCVEMSU4MSVEMSU4MiVEMCVCRSVEMCVCQiVEMCVCMSVEMCVCNSVEMSU4NiUwQW1pbmRzJTIwJTNEJTIwbWluZHMucmVtb3ZlX2NvbHVtbnMoJTVCJTIyZHVyYXRpb24lMjIlNUQpJTBBbWluZHM=",highlighted:`<span class="hljs-comment"># используем librosa для получения длительности фрагмента из аудиофайла</span>
new_column = [librosa.get_duration(path=x) <span class="hljs-keyword">for</span> x <span class="hljs-keyword">in</span> minds[<span class="hljs-string">&quot;path&quot;</span>]]
minds = minds.add_column(<span class="hljs-string">&quot;duration&quot;</span>, new_column)

<span class="hljs-comment"># используем метод 🤗 Datasets \`filter\` для применения функции фильтрации</span>
minds = minds.<span class="hljs-built_in">filter</span>(is_audio_length_in_range, input_columns=[<span class="hljs-string">&quot;duration&quot;</span>])

<span class="hljs-comment"># удалим временный вспомогательный столбец</span>
minds = minds.remove_columns([<span class="hljs-string">&quot;duration&quot;</span>])
minds`,wrap:!1}}),v=new r({props:{code:"RGF0YXNldCglN0JmZWF0dXJlcyUzQSUyMCU1QiUyMnBhdGglMjIlMkMlMjAlMjJhdWRpbyUyMiUyQyUyMCUyMnRyYW5zY3JpcHRpb24lMjIlMkMlMjAlMjJpbnRlbnRfY2xhc3MlMjIlNUQlMkMlMjBudW1fcm93cyUzQSUyMDYyNCU3RCk=",highlighted:'<span class="hljs-constructor">Dataset({<span class="hljs-params">features</span>: [<span class="hljs-string">&quot;path&quot;</span>, <span class="hljs-string">&quot;audio&quot;</span>, <span class="hljs-string">&quot;transcription&quot;</span>, <span class="hljs-string">&quot;intent_class&quot;</span>], <span class="hljs-params">num_rows</span>: 624})</span>',wrap:!1}}),Y=new Cl({props:{title:"Препроцессинг аудиоданных",local:"препроцессинг-аудиоданных",headingTag:"h2"}}),D=new r({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFdoaXNwZXJGZWF0dXJlRXh0cmFjdG9yJTBBJTBBZmVhdHVyZV9leHRyYWN0b3IlMjAlM0QlMjBXaGlzcGVyRmVhdHVyZUV4dHJhY3Rvci5mcm9tX3ByZXRyYWluZWQoJTIyb3BlbmFpJTJGd2hpc3Blci1zbWFsbCUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> WhisperFeatureExtractor

feature_extractor = WhisperFeatureExtractor.from_pretrained(<span class="hljs-string">&quot;openai/whisper-small&quot;</span>)`,wrap:!1}}),O=new r({props:{code:"ZGVmJTIwcHJlcGFyZV9kYXRhc2V0KGV4YW1wbGUpJTNBJTBBJTIwJTIwJTIwJTIwYXVkaW8lMjAlM0QlMjBleGFtcGxlJTVCJTIyYXVkaW8lMjIlNUQlMEElMjAlMjAlMjAlMjBmZWF0dXJlcyUyMCUzRCUyMGZlYXR1cmVfZXh0cmFjdG9yKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGF1ZGlvJTVCJTIyYXJyYXklMjIlNUQlMkMlMjBzYW1wbGluZ19yYXRlJTNEYXVkaW8lNUIlMjJzYW1wbGluZ19yYXRlJTIyJTVEJTJDJTIwcGFkZGluZyUzRFRydWUlMEElMjAlMjAlMjAlMjApJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwZmVhdHVyZXM=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">prepare_dataset</span>(<span class="hljs-params">example</span>):
    audio = example[<span class="hljs-string">&quot;audio&quot;</span>]
    features = feature_extractor(
        audio[<span class="hljs-string">&quot;array&quot;</span>], sampling_rate=audio[<span class="hljs-string">&quot;sampling_rate&quot;</span>], padding=<span class="hljs-literal">True</span>
    )
    <span class="hljs-keyword">return</span> features`,wrap:!1}}),tt=new r({props:{code:"bWluZHMlMjAlM0QlMjBtaW5kcy5tYXAocHJlcGFyZV9kYXRhc2V0KSUwQW1pbmRz",highlighted:`minds = minds.<span class="hljs-built_in">map</span>(prepare_dataset)
minds`,wrap:!1}}),et=new r({props:{code:"RGF0YXNldCglMEElMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBmZWF0dXJlcyUzQSUyMCU1QiUyMnBhdGglMjIlMkMlMjAlMjJhdWRpbyUyMiUyQyUyMCUyMnRyYW5zY3JpcHRpb24lMjIlMkMlMjAlMjJpbnRlbnRfY2xhc3MlMjIlMkMlMjAlMjJpbnB1dF9mZWF0dXJlcyUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9yb3dzJTNBJTIwNjI0JTJDJTBBJTIwJTIwJTIwJTIwJTdEJTBBKQ==",highlighted:`Dataset(
    <span class="hljs-punctuation">{</span>
<span class="hljs-symbol">        features:</span> [<span class="hljs-string">&quot;path&quot;</span>, <span class="hljs-string">&quot;audio&quot;</span>, <span class="hljs-string">&quot;transcription&quot;</span>, <span class="hljs-string">&quot;intent_class&quot;</span>, <span class="hljs-string">&quot;input_features&quot;</span>],
<span class="hljs-symbol">        num_rows:</span> <span class="hljs-number">624</span>,
    <span class="hljs-punctuation">}</span>
)`,wrap:!1}}),nt=new r({props:{code:"aW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBJTBBZXhhbXBsZSUyMCUzRCUyMG1pbmRzJTVCMCU1RCUwQWlucHV0X2ZlYXR1cmVzJTIwJTNEJTIwZXhhbXBsZSU1QiUyMmlucHV0X2ZlYXR1cmVzJTIyJTVEJTBBJTBBcGx0LmZpZ3VyZSgpLnNldF9maWd3aWR0aCgxMiklMEFsaWJyb3NhLmRpc3BsYXkuc3BlY3Nob3coJTBBJTIwJTIwJTIwJTIwbnAuYXNhcnJheShpbnB1dF9mZWF0dXJlcyU1QjAlNUQpJTJDJTBBJTIwJTIwJTIwJTIweF9heGlzJTNEJTIydGltZSUyMiUyQyUwQSUyMCUyMCUyMCUyMHlfYXhpcyUzRCUyMm1lbCUyMiUyQyUwQSUyMCUyMCUyMCUyMHNyJTNEZmVhdHVyZV9leHRyYWN0b3Iuc2FtcGxpbmdfcmF0ZSUyQyUwQSUyMCUyMCUyMCUyMGhvcF9sZW5ndGglM0RmZWF0dXJlX2V4dHJhY3Rvci5ob3BfbGVuZ3RoJTJDJTBBKSUwQXBsdC5jb2xvcmJhcigp",highlighted:`<span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np

example = minds[<span class="hljs-number">0</span>]
input_features = example[<span class="hljs-string">&quot;input_features&quot;</span>]

plt.figure().set_figwidth(<span class="hljs-number">12</span>)
librosa.display.specshow(
    np.asarray(input_features[<span class="hljs-number">0</span>]),
    x_axis=<span class="hljs-string">&quot;time&quot;</span>,
    y_axis=<span class="hljs-string">&quot;mel&quot;</span>,
    sr=feature_extractor.sampling_rate,
    hop_length=feature_extractor.hop_length,
)
plt.colorbar()`,wrap:!1}}),Ct=new r({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Qcm9jZXNzb3IlMEElMEFwcm9jZXNzb3IlMjAlM0QlMjBBdXRvUHJvY2Vzc29yLmZyb21fcHJldHJhaW5lZCglMjJvcGVuYWklMkZ3aGlzcGVyLXNtYWxsJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoProcessor

processor = AutoProcessor.from_pretrained(<span class="hljs-string">&quot;openai/whisper-small&quot;</span>)`,wrap:!1}}),Ut=new Pl({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/ru/chapter1/preprocessing.mdx"}}),{c(){u=a("meta"),T=M(),w=a("p"),jt=M(),C(o.$$.fragment),ut=M(),C(f.$$.fragment),rt=M(),h=a("p"),h.textContent=Ul,Tt=M(),d=a("ul"),d.innerHTML=yl,Vt=M(),C(I.$$.fragment),ct=M(),E=a("p"),E.innerHTML=ml,wt=M(),A=a("p"),A.textContent=jl,ot=M(),$=a("p"),$.innerHTML=ul,ft=M(),C(b.$$.fragment),ht=M(),Q=a("p"),Q.innerHTML=rl,dt=M(),C(x.$$.fragment),It=M(),_=a("p"),_.innerHTML=Tl,Et=M(),C(g.$$.fragment),At=M(),R=a("p"),R.textContent=Vl,$t=M(),C(V.$$.fragment),bt=M(),C(S.$$.fragment),Qt=M(),B=a("p"),B.textContent=cl,xt=M(),k=a("p"),k.innerHTML=wl,_t=M(),C(N.$$.fragment),gt=M(),Z=a("p"),Z.textContent=ol,Rt=M(),C(G.$$.fragment),St=M(),W=a("p"),W.innerHTML=fl,Bt=M(),C(v.$$.fragment),kt=M(),X=a("p"),X.textContent=hl,Nt=M(),C(Y.$$.fragment),Zt=M(),z=a("p"),z.textContent=dl,Gt=M(),H=a("p"),H.innerHTML=Il,Wt=M(),q=a("p"),q.textContent=El,vt=M(),F=a("p"),F.textContent=Al,Xt=M(),L=a("p"),L.textContent=$l,Yt=M(),C(D.$$.fragment),zt=M(),P=a("p"),P.innerHTML=bl,Ht=M(),C(O.$$.fragment),qt=M(),K=a("p"),K.textContent=Ql,Ft=M(),C(tt.$$.fragment),Lt=M(),lt=a("p"),lt.innerHTML=xl,Dt=M(),C(et.$$.fragment),Pt=M(),st=a("p"),st.innerHTML=_l,Ot=M(),Mt=a("p"),Mt.innerHTML=gl,Kt=M(),C(nt.$$.fragment),tl=M(),c=a("div"),c.innerHTML=Rl,ll=M(),at=a("p"),at.textContent=Sl,el=M(),pt=a("p"),pt.innerHTML=Bl,sl=M(),it=a("p"),it.innerHTML=kl,Ml=M(),C(Ct.$$.fragment),nl=M(),Jt=a("p"),Jt.innerHTML=Nl,al=M(),C(Ut.$$.fragment),pl=M(),yt=a("p"),this.h()},l(t){const l=zl("svelte-u9bgzb",document.head);u=p(l,"META",{name:!0,content:!0}),l.forEach(e),T=n(t),w=p(t,"P",{}),Gl(w).forEach(e),jt=n(t),J(o.$$.fragment,t),ut=n(t),J(f.$$.fragment,t),rt=n(t),h=p(t,"P",{"data-svelte-h":!0}),i(h)!=="svelte-10nfixp"&&(h.textContent=Ul),Tt=n(t),d=p(t,"UL",{"data-svelte-h":!0}),i(d)!=="svelte-gaket1"&&(d.innerHTML=yl),Vt=n(t),J(I.$$.fragment,t),ct=n(t),E=p(t,"P",{"data-svelte-h":!0}),i(E)!=="svelte-1u3hqdm"&&(E.innerHTML=ml),wt=n(t),A=p(t,"P",{"data-svelte-h":!0}),i(A)!=="svelte-utis1t"&&(A.textContent=jl),ot=n(t),$=p(t,"P",{"data-svelte-h":!0}),i($)!=="svelte-1qhr4wx"&&($.innerHTML=ul),ft=n(t),J(b.$$.fragment,t),ht=n(t),Q=p(t,"P",{"data-svelte-h":!0}),i(Q)!=="svelte-new4zc"&&(Q.innerHTML=rl),dt=n(t),J(x.$$.fragment,t),It=n(t),_=p(t,"P",{"data-svelte-h":!0}),i(_)!=="svelte-1mvdyro"&&(_.innerHTML=Tl),Et=n(t),J(g.$$.fragment,t),At=n(t),R=p(t,"P",{"data-svelte-h":!0}),i(R)!=="svelte-d4ablr"&&(R.textContent=Vl),$t=n(t),J(V.$$.fragment,t),bt=n(t),J(S.$$.fragment,t),Qt=n(t),B=p(t,"P",{"data-svelte-h":!0}),i(B)!=="svelte-o9zdbx"&&(B.textContent=cl),xt=n(t),k=p(t,"P",{"data-svelte-h":!0}),i(k)!=="svelte-17nji5x"&&(k.innerHTML=wl),_t=n(t),J(N.$$.fragment,t),gt=n(t),Z=p(t,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-1ah2h6"&&(Z.textContent=ol),Rt=n(t),J(G.$$.fragment,t),St=n(t),W=p(t,"P",{"data-svelte-h":!0}),i(W)!=="svelte-1mvdyro"&&(W.innerHTML=fl),Bt=n(t),J(v.$$.fragment,t),kt=n(t),X=p(t,"P",{"data-svelte-h":!0}),i(X)!=="svelte-3fx3vp"&&(X.textContent=hl),Nt=n(t),J(Y.$$.fragment,t),Zt=n(t),z=p(t,"P",{"data-svelte-h":!0}),i(z)!=="svelte-15dsp1i"&&(z.textContent=dl),Gt=n(t),H=p(t,"P",{"data-svelte-h":!0}),i(H)!=="svelte-1q04il0"&&(H.innerHTML=Il),Wt=n(t),q=p(t,"P",{"data-svelte-h":!0}),i(q)!=="svelte-jyd83b"&&(q.textContent=El),vt=n(t),F=p(t,"P",{"data-svelte-h":!0}),i(F)!=="svelte-286khs"&&(F.textContent=Al),Xt=n(t),L=p(t,"P",{"data-svelte-h":!0}),i(L)!=="svelte-1jgugqe"&&(L.textContent=$l),Yt=n(t),J(D.$$.fragment,t),zt=n(t),P=p(t,"P",{"data-svelte-h":!0}),i(P)!=="svelte-15btkdu"&&(P.innerHTML=bl),Ht=n(t),J(O.$$.fragment,t),qt=n(t),K=p(t,"P",{"data-svelte-h":!0}),i(K)!=="svelte-1s04r42"&&(K.textContent=Ql),Ft=n(t),J(tt.$$.fragment,t),Lt=n(t),lt=p(t,"P",{"data-svelte-h":!0}),i(lt)!=="svelte-1mvdyro"&&(lt.innerHTML=xl),Dt=n(t),J(et.$$.fragment,t),Pt=n(t),st=p(t,"P",{"data-svelte-h":!0}),i(st)!=="svelte-1nzea2k"&&(st.innerHTML=_l),Ot=n(t),Mt=p(t,"P",{"data-svelte-h":!0}),i(Mt)!=="svelte-s4tkjs"&&(Mt.innerHTML=gl),Kt=n(t),J(nt.$$.fragment,t),tl=n(t),c=p(t,"DIV",{class:!0,"data-svelte-h":!0}),i(c)!=="svelte-csckl"&&(c.innerHTML=Rl),ll=n(t),at=p(t,"P",{"data-svelte-h":!0}),i(at)!=="svelte-cjxb98"&&(at.textContent=Sl),el=n(t),pt=p(t,"P",{"data-svelte-h":!0}),i(pt)!=="svelte-1idzxfc"&&(pt.innerHTML=Bl),sl=n(t),it=p(t,"P",{"data-svelte-h":!0}),i(it)!=="svelte-10ki5ki"&&(it.innerHTML=kl),Ml=n(t),J(Ct.$$.fragment,t),nl=n(t),Jt=p(t,"P",{"data-svelte-h":!0}),i(Jt)!=="svelte-2dkbcs"&&(Jt.innerHTML=Nl),al=n(t),J(Ut.$$.fragment,t),pl=n(t),yt=p(t,"P",{}),Gl(yt).forEach(e),this.h()},h(){Jl(u,"name","hf:doc:metadata"),Jl(u,"content",te),Jl(c,"class","flex justify-center")},m(t,l){Hl(document.head,u),s(t,T,l),s(t,w,l),s(t,jt,l),U(o,t,l),s(t,ut,l),U(f,t,l),s(t,rt,l),s(t,h,l),s(t,Tt,l),s(t,d,l),s(t,Vt,l),U(I,t,l),s(t,ct,l),s(t,E,l),s(t,wt,l),s(t,A,l),s(t,ot,l),s(t,$,l),s(t,ft,l),U(b,t,l),s(t,ht,l),s(t,Q,l),s(t,dt,l),U(x,t,l),s(t,It,l),s(t,_,l),s(t,Et,l),U(g,t,l),s(t,At,l),s(t,R,l),s(t,$t,l),U(V,t,l),s(t,bt,l),U(S,t,l),s(t,Qt,l),s(t,B,l),s(t,xt,l),s(t,k,l),s(t,_t,l),U(N,t,l),s(t,gt,l),s(t,Z,l),s(t,Rt,l),U(G,t,l),s(t,St,l),s(t,W,l),s(t,Bt,l),U(v,t,l),s(t,kt,l),s(t,X,l),s(t,Nt,l),U(Y,t,l),s(t,Zt,l),s(t,z,l),s(t,Gt,l),s(t,H,l),s(t,Wt,l),s(t,q,l),s(t,vt,l),s(t,F,l),s(t,Xt,l),s(t,L,l),s(t,Yt,l),U(D,t,l),s(t,zt,l),s(t,P,l),s(t,Ht,l),U(O,t,l),s(t,qt,l),s(t,K,l),s(t,Ft,l),U(tt,t,l),s(t,Lt,l),s(t,lt,l),s(t,Dt,l),U(et,t,l),s(t,Pt,l),s(t,st,l),s(t,Ot,l),s(t,Mt,l),s(t,Kt,l),U(nt,t,l),s(t,tl,l),s(t,c,l),s(t,ll,l),s(t,at,l),s(t,el,l),s(t,pt,l),s(t,sl,l),s(t,it,l),s(t,Ml,l),U(Ct,t,l),s(t,nl,l),s(t,Jt,l),s(t,al,l),U(Ut,t,l),s(t,pl,l),s(t,yt,l),il=!0},p(t,[l]){const Zl={};l&2&&(Zl.$$scope={dirty:l,ctx:t}),V.$set(Zl)},i(t){il||(y(o.$$.fragment,t),y(f.$$.fragment,t),y(I.$$.fragment,t),y(b.$$.fragment,t),y(x.$$.fragment,t),y(g.$$.fragment,t),y(V.$$.fragment,t),y(S.$$.fragment,t),y(N.$$.fragment,t),y(G.$$.fragment,t),y(v.$$.fragment,t),y(Y.$$.fragment,t),y(D.$$.fragment,t),y(O.$$.fragment,t),y(tt.$$.fragment,t),y(et.$$.fragment,t),y(nt.$$.fragment,t),y(Ct.$$.fragment,t),y(Ut.$$.fragment,t),il=!0)},o(t){m(o.$$.fragment,t),m(f.$$.fragment,t),m(I.$$.fragment,t),m(b.$$.fragment,t),m(x.$$.fragment,t),m(g.$$.fragment,t),m(V.$$.fragment,t),m(S.$$.fragment,t),m(N.$$.fragment,t),m(G.$$.fragment,t),m(v.$$.fragment,t),m(Y.$$.fragment,t),m(D.$$.fragment,t),m(O.$$.fragment,t),m(tt.$$.fragment,t),m(et.$$.fragment,t),m(nt.$$.fragment,t),m(Ct.$$.fragment,t),m(Ut.$$.fragment,t),il=!1},d(t){t&&(e(T),e(w),e(jt),e(ut),e(rt),e(h),e(Tt),e(d),e(Vt),e(ct),e(E),e(wt),e(A),e(ot),e($),e(ft),e(ht),e(Q),e(dt),e(It),e(_),e(Et),e(At),e(R),e($t),e(bt),e(Qt),e(B),e(xt),e(k),e(_t),e(gt),e(Z),e(Rt),e(St),e(W),e(Bt),e(kt),e(X),e(Nt),e(Zt),e(z),e(Gt),e(H),e(Wt),e(q),e(vt),e(F),e(Xt),e(L),e(Yt),e(zt),e(P),e(Ht),e(qt),e(K),e(Ft),e(Lt),e(lt),e(Dt),e(Pt),e(st),e(Ot),e(Mt),e(Kt),e(tl),e(c),e(ll),e(at),e(el),e(pt),e(sl),e(it),e(Ml),e(nl),e(Jt),e(al),e(pl),e(yt)),e(u),j(o,t),j(f,t),j(I,t),j(b,t),j(x,t),j(g,t),j(V,t),j(S,t),j(N,t),j(G,t),j(v,t),j(Y,t),j(D,t),j(O,t),j(tt,t),j(et,t),j(nt,t),j(Ct,t),j(Ut,t)}}}const te='{"title":"Препроцессинг набора аудиоданных","local":"препроцессинг-набора-аудиоданных","sections":[{"title":"Передискретизация аудиоданных","local":"передискретизация-аудиоданных","sections":[],"depth":2},{"title":"Фильтрация набора данных","local":"фильтрация-набора-данных","sections":[],"depth":2},{"title":"Препроцессинг аудиоданных","local":"препроцессинг-аудиоданных","sections":[],"depth":2}],"depth":1}';function le(mt){return vl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class pe extends Xl{constructor(u){super(),Yl(this,u,le,Kl,Wl,{})}}export{pe as component};
