import{s as ge,o as xe,n as We}from"../chunks/scheduler.cd324960.js";import{S as Se,i as Qe,e as M,s as n,c as p,h as Ne,a as i,d as l,b as a,f as Be,g as y,j as o,k as ne,l as Ae,m as s,n as J,t as U,o as T,p as w,q as $e,r as Ze}from"../chunks/index.d5c3adcc.js";import{T as ke}from"../chunks/Tip.889bec11.js";import{C as ve,H as se,E as Re}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.145cba0d.js";import{C as r}from"../chunks/CodeBlock.c3eab8a6.js";function Xe(wt){let I,h,j="ASRDiarizationPipeline",d,u,C="<code>pipeline = ASRDiarizationPipeline.from_pretrained(&quot;openai/whisper-base&quot;)</code>";return{c(){I=$e("Вы также можете инстанцировать  "),h=M("code"),h.textContent=j,d=$e(` directly непосредственно из предварительно обученных моделей, указав идентификатор 
    модели ASR на Hub:
    `),u=M("p"),u.innerHTML=C},l(m){I=Ze(m,"Вы также можете инстанцировать  "),h=i(m,"CODE",{"data-svelte-h":!0}),o(h)!=="svelte-1613cio"&&(h.textContent=j),d=Ze(m,` directly непосредственно из предварительно обученных моделей, указав идентификатор 
    модели ASR на Hub:
    `),u=i(m,"P",{"data-svelte-h":!0}),o(u)!=="svelte-k598fh"&&(u.innerHTML=C)},m(m,c){s(m,I,c),s(m,h,c),s(m,d,c),s(m,u,c)},p:We,d(m){m&&(l(I),l(h),l(d),l(u))}}}function He(wt){let I,h,j,d,u,C,m,c,G,ae=`В этом заключительном разделе мы используем модель Whisper для создания транскрипции разговора или встречи между двумя или более говорящими. Затем мы объединим
ее с моделью <em>диаризации диктора</em> для прогнозирования “кто когда говорил”. Сопоставив временные метки из транскрипции Whisper с временными метками от модели диаризации,
мы можем спрогнозировать сквозную транскрипцию встречи с полностью отформатированным временем начала и окончания для каждого говорящего. Это базовая версия услуг по
транскрибированию совещаний, которую вы могли видеть в интернете от таких компаний, как <a href="https://otter.ai" rel="nofollow">Otter.ai</a> и др:`,ot,f,Me='<img src="https://huggingface.co/datasets/huggingface-course/audio-course-images/resolve/main/diarization_transcription.png"/>',mt,B,rt,$,ie=`Диаризация диктора (или диаризация) - это задача получения немаркированных аудиоданных и прогнозирования того, “кто когда говорил”. При этом мы можем
прогнозировать временные метки начала/окончания каждой очереди дикторов, соответствующие моменту начала речи и моменту ее окончания.`,ut,Z,pe=`🤗 В настоящее время в библиотеке Transformers нет модели для диаризации диктора, но на Hub есть контрольные точки, которые можно использовать
с относительной легкостью. В этом примере мы будем использовать предварительно обученную модель диаризации диктора из <a href="https://github.com/pyannote/pyannote-audio" rel="nofollow">pyannote.audio</a>.
Давайте приступим к работе и установим пакет с помощью pip:`,It,g,ht,x,ye=`Отлично! Веса для этой модели размещены на Hugging Face Hub. Чтобы получить к ним доступ, сначала нужно согласиться с условиями использования модели диаризации
диктора: <a href="https://huggingface.co/pyannote/speaker-diarization" rel="nofollow">pyannote/speaker-diarization</a>. А затем - с условиями использования модели
сегментации: <a href="https://huggingface.co/pyannote/segmentation" rel="nofollow">pyannote/segmentation</a>.`,dt,W,Je="После завершения работы мы можем загрузить предварительно обученный конвейер диаризации дикторов локально на наше устройство:",ct,S,jt,Q,Ue=`Давайте опробуем его на примере аудиофайла! Для этого мы загрузим образец из датасета <a href="https://huggingface.co/datasets/librispeech_asr" rel="nofollow">LibriSpeech ASR</a>, содержащий речь
двух разных дикторов, который мы объединили в один аудиофайл:`,ft,N,bt,A,Te="Мы можем прослушать аудиозапись, чтобы понять, как она звучит:",Ct,k,Gt,v,we=`Класс! Мы отчетливо слышим двух разных дикторов с переходом примерно на 15 секунде звучания. Давайте передадим этот аудиофайл в модель диаризации, чтобы получить
время начала и окончания разговора. Заметим, что pyannote.audio ожидает, что входной аудиофайл будет представлять собой тензор PyTorch формы <code>(channels, seq_len)</code>,
поэтому перед запуском модели нам необходимо выполнить это преобразование:`,Bt,R,$t,X,Zt,H,oe=`Выглядит это довольно неплохо! Видно, что первый диктор говорит до отметки 14,5 секунды, а второй - с 15,4 секунды.
Теперь нам нужно получить транскрипцию!`,gt,V,xt,E,me=`В третий раз в этом блоке мы будем использовать модель Whisper для нашей системы транскрипции речи. В частности, мы загрузим контрольную точку <a href="https://huggingface.co/openai/whisper-base" rel="nofollow">Whisper Base</a>,
поскольку она достаточно мала, чтобы обеспечить хорошую скорость инференса при приемлемой точности транскрипции. Как и прежде, вы можете использовать любую контрольную точку распознавания речи с
<a href="https://huggingface.co/models?pipeline_tag=automatic-speech-recognition&amp;library=transformers&amp;sort=trending" rel="nofollow">Hub</a>, включая Wav2Vec2, MMS ASR или другие контрольные точки Whisper:`,Wt,_,St,q,re=`Давайте получим транскрипцию для нашего образца аудиозаписи, возвращая также временные метки на уровне сегментов, чтобы знать время начала и окончания каждого сегмента.
Из раздела 5 вы помните, что для активации задачи прогнозирования временных меток в Whisper нам необходимо передать аргумент <code>return_timestamps=True</code>:`,Qt,F,Nt,Y,At,z,ue=`Отлично! Мы видим, что каждый сегмент транскрипции имеет начальное и конечное время, причем смена дикторов происходит на отметке 15,48 секунды. Теперь мы можем сопоставить
эту транскрипцию с временными метками дикторов, полученными с помощью модели диаризации, и получить окончательную транскрипцию.`,kt,D,vt,L,Ie=`Чтобы получить окончательную транскрипцию, совместим временные метки, полученные с помощью модели диаризации, с временными метками, полученными с помощью модели Whisper.
Модель диаризации предсказала окончание речи первого диктора на 14,5 с, а второго - на 15,4 с, в то время как Whisper предсказал границы сегментов на 13,88, 15,48 и 19,44 с соответственно.
Поскольку временные метки, полученные с помощью Whisper, не полностью совпадают с данными модели диаризации, нам необходимо найти, какие из этих границ ближе всего к 14,5 и 15,4 с, и
соответствующим образом сегментировать транскрипцию по дикторам. В частности, мы найдем наиболее близкое совпадение между временными метками диаризации и транскрипции,
минимизировав абсолютное расстояние между ними.`,Rt,P,he="К счастью для нас, мы можем использовать пакет 🤗 Speechbox для выполнения этого выравнивания. Сначала давайте установим пакет <code>speechbox</code> из main:",Xt,K,Ht,O,de=`Теперь мы можем инстанцировать наш комбинированный конвейер диаризации и транскрипции, передав модель диаризации и
модель ASR в класс <a href="https://github.com/huggingface/speechbox/tree/main#asr-with-speaker-diarization" rel="nofollow"><code>ASRDiarizationPipeline</code></a>:`,Vt,tt,Et,b,_t,et,ce="Передадим аудиофайл в композитный конвейер и посмотрим, что получится в результате:",qt,lt,Ft,st,Yt,nt,je=`Отлично! Первый диктор сегментирован как говорящий с 0 до 15,48 секунды, а второй - с 15,48 до 21,28 секунды,
с соответствующими транскрипциями для каждого из них.`,zt,at,fe=`Для более удобного форматирования временных меток можно определить две вспомогательные функции. Первая преобразует кортеж временных меток в строку, округленную
до заданного количества знаков после запятой. Вторая объединяет идентификатор диктора, временную метку и текстовую информацию в одну строку, а для удобства
чтения разбивает каждого диктора на отдельные строки:`,Dt,Mt,Lt,it,be="Повторно запустим конвейер, на этот раз форматируя транскрипцию в соответствии с функцией, которую мы только что определили:",Pt,pt,Kt,yt,Ot,Jt,Ce=`Вот так! Таким образом, мы провели диарирование и транскрибацию входного аудиосигнала и получили транскрибации с сегментацией дикторов. Хотя алгоритм минимального расстояния для
выравнивания временных меток диаризации и транскрибации прост, он хорошо работает на практике. Если вы хотите изучить более сложные методы совмещения временных меток, то исходный
код <code>ASRDiarizationPipeline</code> является хорошей отправной точкой: <a href="https://github.com/huggingface/speechbox/blob/96d2d1a180252d92263f862a1cd25a48860f1aed/src/speechbox/diarize.py#L12" rel="nofollow">speechbox/diarize.py</a>`,te,Ut,ee,Tt,le;return u=new ve({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),m=new se({props:{title:"Транскрибирование встречи",local:"транскрибирование-встречи",headingTag:"h1"}}),B=new se({props:{title:"Диаризация диктора",local:"диаризация-диктора",headingTag:"h2"}}),g=new r({props:{code:"cGlwJTIwaW5zdGFsbCUyMC0tdXBncmFkZSUyMHB5YW5ub3RlLmF1ZGlv",highlighted:"pip install --upgrade pyannote.audio",wrap:!1}}),S=new r({props:{code:"ZnJvbSUyMHB5YW5ub3RlLmF1ZGlvJTIwaW1wb3J0JTIwUGlwZWxpbmUlMEElMEFkaWFyaXphdGlvbl9waXBlbGluZSUyMCUzRCUyMFBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJweWFubm90ZSUyRnNwZWFrZXItZGlhcml6YXRpb24lNDAyLjElMjIlMkMlMjB1c2VfYXV0aF90b2tlbiUzRFRydWUlMEEp",highlighted:`<span class="hljs-keyword">from</span> pyannote.audio <span class="hljs-keyword">import</span> Pipeline

diarization_pipeline = Pipeline.from_pretrained(
    <span class="hljs-string">&quot;pyannote/speaker-diarization@2.1&quot;</span>, use_auth_token=<span class="hljs-literal">True</span>
)`,wrap:!1}}),N=new r({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBJTBBY29uY2F0ZW5hdGVkX2xpYnJpc3BlZWNoJTIwJTNEJTIwbG9hZF9kYXRhc2V0KCUwQSUyMCUyMCUyMCUyMCUyMnNhbmNoaXQtZ2FuZGhpJTJGY29uY2F0ZW5hdGVkX2xpYnJpc3BlZWNoJTIyJTJDJTIwc3BsaXQlM0QlMjJ0cmFpbiUyMiUyQyUyMHN0cmVhbWluZyUzRFRydWUlMEEpJTBBc2FtcGxlJTIwJTNEJTIwbmV4dChpdGVyKGNvbmNhdGVuYXRlZF9saWJyaXNwZWVjaCkp",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset

concatenated_librispeech = load_dataset(
    <span class="hljs-string">&quot;sanchit-gandhi/concatenated_librispeech&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>, streaming=<span class="hljs-literal">True</span>
)
sample = <span class="hljs-built_in">next</span>(<span class="hljs-built_in">iter</span>(concatenated_librispeech))`,wrap:!1}}),k=new r({props:{code:"ZnJvbSUyMElQeXRob24uZGlzcGxheSUyMGltcG9ydCUyMEF1ZGlvJTBBJTBBQXVkaW8oc2FtcGxlJTVCJTIyYXVkaW8lMjIlNUQlNUIlMjJhcnJheSUyMiU1RCUyQyUyMHJhdGUlM0RzYW1wbGUlNUIlMjJhdWRpbyUyMiU1RCU1QiUyMnNhbXBsaW5nX3JhdGUlMjIlNUQp",highlighted:`<span class="hljs-keyword">from</span> IPython.display <span class="hljs-keyword">import</span> Audio

Audio(sample[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>], rate=sample[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;sampling_rate&quot;</span>])`,wrap:!1}}),R=new r({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFpbnB1dF90ZW5zb3IlMjAlM0QlMjB0b3JjaC5mcm9tX251bXB5KHNhbXBsZSU1QiUyMmF1ZGlvJTIyJTVEJTVCJTIyYXJyYXklMjIlNUQlNUJOb25lJTJDJTIwJTNBJTVEKS5mbG9hdCgpJTBBb3V0cHV0cyUyMCUzRCUyMGRpYXJpemF0aW9uX3BpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCU3QiUyMndhdmVmb3JtJTIyJTNBJTIwaW5wdXRfdGVuc29yJTJDJTIwJTIyc2FtcGxlX3JhdGUlMjIlM0ElMjBzYW1wbGUlNUIlMjJhdWRpbyUyMiU1RCU1QiUyMnNhbXBsaW5nX3JhdGUlMjIlNUQlN0QlMEEpJTBBJTBBb3V0cHV0cy5mb3JfanNvbigpJTVCJTIyY29udGVudCUyMiU1RA==",highlighted:`<span class="hljs-keyword">import</span> torch

input_tensor = torch.from_numpy(sample[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;array&quot;</span>][<span class="hljs-literal">None</span>, :]).<span class="hljs-built_in">float</span>()
outputs = diarization_pipeline(
    {<span class="hljs-string">&quot;waveform&quot;</span>: input_tensor, <span class="hljs-string">&quot;sample_rate&quot;</span>: sample[<span class="hljs-string">&quot;audio&quot;</span>][<span class="hljs-string">&quot;sampling_rate&quot;</span>]}
)

outputs.for_json()[<span class="hljs-string">&quot;content&quot;</span>]`,wrap:!1}}),X=new r({props:{code:"JTVCJTdCJ3NlZ21lbnQnJTNBJTIwJTdCJ3N0YXJ0JyUzQSUyMDAuNDk3ODEyNSUyQyUyMCdlbmQnJTNBJTIwMTQuNTIwOTM3NTAwMDAwMDAyJTdEJTJDJTBBJTIwJTIwJ3RyYWNrJyUzQSUyMCdCJyUyQyUwQSUyMCUyMCdsYWJlbCclM0ElMjAnU1BFQUtFUl8wMSclN0QlMkMlMEElMjAlN0Inc2VnbWVudCclM0ElMjAlN0Inc3RhcnQnJTNBJTIwMTUuMzY0Njg3NTAwMDAwMDAyJTJDJTIwJ2VuZCclM0ElMjAyMS4zNzIxODc1JTdEJTJDJTBBJTIwJTIwJ3RyYWNrJyUzQSUyMCdBJyUyQyUwQSUyMCUyMCdsYWJlbCclM0ElMjAnU1BFQUtFUl8wMCclN0QlNUQ=",highlighted:`[{&#x27;segment&#x27;: {&#x27;start&#x27;: 0.4978125, &#x27;end&#x27;: 14.520937500000002},
  &#x27;track&#x27;: &#x27;B&#x27;,
  &#x27;label&#x27;: &#x27;SPEAKER_01&#x27;},
 {&#x27;segment&#x27;: {&#x27;start&#x27;: 15.364687500000002, &#x27;end&#x27;: 21.3721875},
  &#x27;track&#x27;: &#x27;A&#x27;,
  &#x27;label&#x27;: &#x27;SPEAKER_00&#x27;}]`,wrap:!1}}),V=new se({props:{title:"Транскрибирование речи",local:"транскрибирование-речи",headingTag:"h2"}}),_=new r({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBYXNyX3BpcGVsaW5lJTIwJTNEJTIwcGlwZWxpbmUoJTBBJTIwJTIwJTIwJTIwJTIyYXV0b21hdGljLXNwZWVjaC1yZWNvZ25pdGlvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMG1vZGVsJTNEJTIyb3BlbmFpJTJGd2hpc3Blci1iYXNlJTIyJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

asr_pipeline = pipeline(
    <span class="hljs-string">&quot;automatic-speech-recognition&quot;</span>,
    model=<span class="hljs-string">&quot;openai/whisper-base&quot;</span>,
)`,wrap:!1}}),F=new r({props:{code:"YXNyX3BpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMHNhbXBsZSU1QiUyMmF1ZGlvJTIyJTVELmNvcHkoKSUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRlX2t3YXJncyUzRCU3QiUyMm1heF9uZXdfdG9rZW5zJTIyJTNBJTIwMjU2JTdEJTJDJTBBJTIwJTIwJTIwJTIwcmV0dXJuX3RpbWVzdGFtcHMlM0RUcnVlJTJDJTBBKQ==",highlighted:`asr_pipeline(
    sample[<span class="hljs-string">&quot;audio&quot;</span>].copy(),
    generate_kwargs={<span class="hljs-string">&quot;max_new_tokens&quot;</span>: <span class="hljs-number">256</span>},
    return_timestamps=<span class="hljs-literal">True</span>,
)`,wrap:!1}}),Y=new r({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJTIydGV4dCUyMiUzQSUyMCUyMiUyMFRoZSUyMHNlY29uZCUyMGFuZCUyMGltcG9ydGFuY2UlMjBpcyUyMGFzJTIwZm9sbG93cy4lMjBTb3ZlcmVpZ250eSUyMG1heSUyMGJlJTIwZGVmaW5lZCUyMHRvJTIwYmUlMjB0aGUlMjByaWdodCUyMG9mJTIwbWFraW5nJTIwbGF3cy4lMjBJbiUyMEZyYW5jZSUyQyUyMHRoZSUyMGtpbmclMjByZWFsbHklMjBleGVyY2lzZXMlMjBhJTIwcG9ydGlvbiUyMG9mJTIwdGhlJTIwc292ZXJlaWduJTIwcG93ZXIlMkMlMjBzaW5jZSUyMHRoZSUyMGxhd3MlMjBoYXZlJTIwbm8lMjB3ZWlnaHQuJTIwSGUlMjB3YXMlMjBpbiUyMGElMjBmYXZvcmVkJTIwc3RhdGUlMjBvZiUyMG1pbmQlMkMlMjBvd2luZyUyMHRvJTIwdGhlJTIwYmxpZ2h0JTIwaGlzJTIwd2lmZSdzJTIwYWN0aW9uJTIwdGhyZWF0ZW5lZCUyMHRvJTIwY2FzdCUyMHVwb24lMjBoaXMlMjBlbnRpcmUlMjBmdXR1cmUuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyY2h1bmtzJTIyJTNBJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTIydGltZXN0YW1wJTIyJTNBJTIwKDAuMCUyQyUyMDMuNTYpJTJDJTIwJTIydGV4dCUyMiUzQSUyMCUyMiUyMFRoZSUyMHNlY29uZCUyMGFuZCUyMGltcG9ydGFuY2UlMjBpcyUyMGFzJTIwZm9sbG93cy4lMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJ0aW1lc3RhbXAlMjIlM0ElMjAoMy41NiUyQyUyMDcuODQpJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydGV4dCUyMiUzQSUyMCUyMiUyMFNvdmVyZWlnbnR5JTIwbWF5JTIwYmUlMjBkZWZpbmVkJTIwdG8lMjBiZSUyMHRoZSUyMHJpZ2h0JTIwb2YlMjBtYWtpbmclMjBsYXdzLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnRpbWVzdGFtcCUyMiUzQSUyMCg3Ljg0JTJDJTIwMTMuODgpJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydGV4dCUyMiUzQSUyMCUyMiUyMEluJTIwRnJhbmNlJTJDJTIwdGhlJTIwa2luZyUyMHJlYWxseSUyMGV4ZXJjaXNlcyUyMGElMjBwb3J0aW9uJTIwb2YlMjB0aGUlMjBzb3ZlcmVpZ24lMjBwb3dlciUyQyUyMHNpbmNlJTIwdGhlJTIwbGF3cyUyMGhhdmUlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMjJ0aW1lc3RhbXAlMjIlM0ElMjAoMTMuODglMkMlMjAxNS40OCklMkMlMjAlMjJ0ZXh0JTIyJTNBJTIwJTIyJTIwbm8lMjB3ZWlnaHQuJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydGltZXN0YW1wJTIyJTNBJTIwKDE1LjQ4JTJDJTIwMTkuNDQpJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydGV4dCUyMiUzQSUyMCUyMiUyMEhlJTIwd2FzJTIwaW4lMjBhJTIwZmF2b3JlZCUyMHN0YXRlJTIwb2YlMjBtaW5kJTJDJTIwb3dpbmclMjB0byUyMHRoZSUyMGJsaWdodCUyMGhpcyUyMHdpZmUncyUyMGFjdGlvbiUyMHRocmVhdGVuZWQlMjB0byUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUyMnRpbWVzdGFtcCUyMiUzQSUyMCgxOS40NCUyQyUyMDIxLjI4KSUyQyUyMCUyMnRleHQlMjIlM0ElMjAlMjIlMjBjYXN0JTIwdXBvbiUyMGhpcyUyMGVudGlyZSUyMGZ1dHVyZS4lMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlNUQlMkMlMEElN0Q=",highlighted:`{
    &quot;text&quot;: &quot; The second and importance is as follows. Sovereignty may be defined to be the right of making laws. In France, the king really exercises a portion of the sovereign power, since the laws have no weight. He was in a favored state of mind, owing to the blight his wife&#x27;s action threatened to cast upon his entire future.&quot;,
    &quot;chunks&quot;: [
        {&quot;timestamp&quot;: (0.0, 3.56), &quot;text&quot;: &quot; The second and importance is as follows.&quot;},
        {
            &quot;timestamp&quot;: (3.56, 7.84),
            &quot;text&quot;: &quot; Sovereignty may be defined to be the right of making laws.&quot;,
        },
        {
            &quot;timestamp&quot;: (7.84, 13.88),
            &quot;text&quot;: &quot; In France, the king really exercises a portion of the sovereign power, since the laws have&quot;,
        },
        {&quot;timestamp&quot;: (13.88, 15.48), &quot;text&quot;: &quot; no weight.&quot;},
        {
            &quot;timestamp&quot;: (15.48, 19.44),
            &quot;text&quot;: &quot; He was in a favored state of mind, owing to the blight his wife&#x27;s action threatened to&quot;,
        },
        {&quot;timestamp&quot;: (19.44, 21.28), &quot;text&quot;: &quot; cast upon his entire future.&quot;},
    ],
}`,wrap:!1}}),D=new se({props:{title:"Speechbox",local:"speechbox",headingTag:"h2"}}),K=new r({props:{code:"cGlwJTIwaW5zdGFsbCUyMGdpdCUyQmh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmh1Z2dpbmdmYWNlJTJGc3BlZWNoYm94",highlighted:"pip install git+https://github.com/huggingface/speechbox",wrap:!1}}),tt=new r({props:{code:"ZnJvbSUyMHNwZWVjaGJveCUyMGltcG9ydCUyMEFTUkRpYXJpemF0aW9uUGlwZWxpbmUlMEElMEFwaXBlbGluZSUyMCUzRCUyMEFTUkRpYXJpemF0aW9uUGlwZWxpbmUoJTBBJTIwJTIwJTIwJTIwYXNyX3BpcGVsaW5lJTNEYXNyX3BpcGVsaW5lJTJDJTIwZGlhcml6YXRpb25fcGlwZWxpbmUlM0RkaWFyaXphdGlvbl9waXBlbGluZSUwQSk=",highlighted:`<span class="hljs-keyword">from</span> speechbox <span class="hljs-keyword">import</span> ASRDiarizationPipeline

pipeline = ASRDiarizationPipeline(
    asr_pipeline=asr_pipeline, diarization_pipeline=diarization_pipeline
)`,wrap:!1}}),b=new ke({props:{$$slots:{default:[Xe]},$$scope:{ctx:wt}}}),lt=new r({props:{code:"cGlwZWxpbmUoc2FtcGxlJTVCJTIyYXVkaW8lMjIlNUQuY29weSgpKQ==",highlighted:'pipeline(sample[<span class="hljs-string">&quot;audio&quot;</span>].copy())',wrap:!1}}),st=new r({props:{code:"JTVCJTdCJ3NwZWFrZXInJTNBJTIwJ1NQRUFLRVJfMDEnJTJDJTBBJTIwJTIwJ3RleHQnJTNBJTIwJyUyMFRoZSUyMHNlY29uZCUyMGFuZCUyMGltcG9ydGFuY2UlMjBpcyUyMGFzJTIwZm9sbG93cy4lMjBTb3ZlcmVpZ250eSUyMG1heSUyMGJlJTIwZGVmaW5lZCUyMHRvJTIwYmUlMjB0aGUlMjByaWdodCUyMG9mJTIwbWFraW5nJTIwbGF3cy4lMjBJbiUyMEZyYW5jZSUyQyUyMHRoZSUyMGtpbmclMjByZWFsbHklMjBleGVyY2lzZXMlMjBhJTIwcG9ydGlvbiUyMG9mJTIwdGhlJTIwc292ZXJlaWduJTIwcG93ZXIlMkMlMjBzaW5jZSUyMHRoZSUyMGxhd3MlMjBoYXZlJTIwbm8lMjB3ZWlnaHQuJyUyQyUwQSUyMCUyMCd0aW1lc3RhbXAnJTNBJTIwKDAuMCUyQyUyMDE1LjQ4KSU3RCUyQyUwQSUyMCU3QidzcGVha2VyJyUzQSUyMCdTUEVBS0VSXzAwJyUyQyUwQSUyMCUyMCd0ZXh0JyUzQSUyMCUyMiUyMEhlJTIwd2FzJTIwaW4lMjBhJTIwZmF2b3JlZCUyMHN0YXRlJTIwb2YlMjBtaW5kJTJDJTIwb3dpbmclMjB0byUyMHRoZSUyMGJsaWdodCUyMGhpcyUyMHdpZmUncyUyMGFjdGlvbiUyMHRocmVhdGVuZWQlMjB0byUyMGNhc3QlMjB1cG9uJTIwaGlzJTIwZW50aXJlJTIwZnV0dXJlLiUyMiUyQyUwQSUyMCUyMCd0aW1lc3RhbXAnJTNBJTIwKDE1LjQ4JTJDJTIwMjEuMjgpJTdEJTVE",highlighted:`[{&#x27;speaker&#x27;: &#x27;SPEAKER_01&#x27;,
  &#x27;text&#x27;: &#x27; The second and importance is as follows. Sovereignty may be defined to be the right of making laws. In France, the king really exercises a portion of the sovereign power, since the laws have no weight.&#x27;,
  &#x27;timestamp&#x27;: (0.0, 15.48)},
 {&#x27;speaker&#x27;: &#x27;SPEAKER_00&#x27;,
  &#x27;text&#x27;: &quot; He was in a favored state of mind, owing to the blight his wife&#x27;s action threatened to cast upon his entire future.&quot;,
  &#x27;timestamp&#x27;: (15.48, 21.28)}]`,wrap:!1}}),Mt=new r({props:{code:"ZGVmJTIwdHVwbGVfdG9fc3RyaW5nKHN0YXJ0X2VuZF90dXBsZSUyQyUyMG5kaWdpdHMlM0QxKSUzQSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMHN0cigocm91bmQoc3RhcnRfZW5kX3R1cGxlJTVCMCU1RCUyQyUyMG5kaWdpdHMpJTJDJTIwcm91bmQoc3RhcnRfZW5kX3R1cGxlJTVCMSU1RCUyQyUyMG5kaWdpdHMpKSklMEElMEElMEFkZWYlMjBmb3JtYXRfYXNfdHJhbnNjcmlwdGlvbihyYXdfc2VnbWVudHMpJTNBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTIyJTVDbiU1Q24lMjIuam9pbiglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjaHVuayU1QiUyMnNwZWFrZXIlMjIlNUQlMjAlMkIlMjAlMjIlMjAlMjIlMjAlMkIlMjB0dXBsZV90b19zdHJpbmcoY2h1bmslNUIlMjJ0aW1lc3RhbXAlMjIlNUQpJTIwJTJCJTIwY2h1bmslNUIlMjJ0ZXh0JTIyJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZm9yJTIwY2h1bmslMjBpbiUyMHJhd19zZWdtZW50cyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1RCUwQSUyMCUyMCUyMCUyMCk=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">tuple_to_string</span>(<span class="hljs-params">start_end_tuple, ndigits=<span class="hljs-number">1</span></span>):
    <span class="hljs-keyword">return</span> <span class="hljs-built_in">str</span>((<span class="hljs-built_in">round</span>(start_end_tuple[<span class="hljs-number">0</span>], ndigits), <span class="hljs-built_in">round</span>(start_end_tuple[<span class="hljs-number">1</span>], ndigits)))


<span class="hljs-keyword">def</span> <span class="hljs-title function_">format_as_transcription</span>(<span class="hljs-params">raw_segments</span>):
    <span class="hljs-keyword">return</span> <span class="hljs-string">&quot;\\n\\n&quot;</span>.join(
        [
            chunk[<span class="hljs-string">&quot;speaker&quot;</span>] + <span class="hljs-string">&quot; &quot;</span> + tuple_to_string(chunk[<span class="hljs-string">&quot;timestamp&quot;</span>]) + chunk[<span class="hljs-string">&quot;text&quot;</span>]
            <span class="hljs-keyword">for</span> chunk <span class="hljs-keyword">in</span> raw_segments
        ]
    )`,wrap:!1}}),pt=new r({props:{code:"b3V0cHV0cyUyMCUzRCUyMHBpcGVsaW5lKHNhbXBsZSU1QiUyMmF1ZGlvJTIyJTVELmNvcHkoKSklMEElMEFmb3JtYXRfYXNfdHJhbnNjcmlwdGlvbihvdXRwdXRzKQ==",highlighted:`outputs = pipeline(sample[<span class="hljs-string">&quot;audio&quot;</span>].copy())

format_as_transcription(outputs)`,wrap:!1}}),yt=new r({props:{code:"U1BFQUtFUl8wMSUyMCgwLjAlMkMlMjAxNS41KSUyMFRoZSUyMHNlY29uZCUyMGFuZCUyMGltcG9ydGFuY2UlMjBpcyUyMGFzJTIwZm9sbG93cy4lMjBTb3ZlcmVpZ250eSUyMG1heSUyMGJlJTIwZGVmaW5lZCUyMHRvJTIwYmUlMjB0aGUlMjByaWdodCUyMG9mJTIwbWFraW5nJTIwbGF3cy4lMEFJbiUyMEZyYW5jZSUyQyUyMHRoZSUyMGtpbmclMjByZWFsbHklMjBleGVyY2lzZXMlMjBhJTIwcG9ydGlvbiUyMG9mJTIwdGhlJTIwc292ZXJlaWduJTIwcG93ZXIlMkMlMjBzaW5jZSUyMHRoZSUyMGxhd3MlMjBoYXZlJTIwbm8lMjB3ZWlnaHQuJTBBJTBBU1BFQUtFUl8wMCUyMCgxNS41JTJDJTIwMjEuMyklMjBIZSUyMHdhcyUyMGluJTIwYSUyMGZhdm9yZWQlMjBzdGF0ZSUyMG9mJTIwbWluZCUyQyUyMG93aW5nJTIwdG8lMjB0aGUlMjBibGlnaHQlMjBoaXMlMjB3aWZlJ3MlMjBhY3Rpb24lMjB0aHJlYXRlbmVkJTIwdG8lMjBjYXN0JTIwdXBvbiUwQWhpcyUyMGVudGlyZSUyMGZ1dHVyZS4=",highlighted:`SPEAKER_01 (0.0, 15.5) The second and importance is as follows. Sovereignty may be defined to be the right of making laws.
In France, the king really exercises a portion of the sovereign power, since the laws have no weight.

SPEAKER_00 (15.5, 21.3) He was in a favored state of mind, owing to the blight his wife&#x27;s action threatened to cast upon
his entire future.`,wrap:!1}}),Ut=new Re({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/ru/chapter7/transcribe-meeting.mdx"}}),{c(){I=M("meta"),h=n(),j=M("p"),d=n(),p(u.$$.fragment),C=n(),p(m.$$.fragment),c=n(),G=M("p"),G.innerHTML=ae,ot=n(),f=M("div"),f.innerHTML=Me,mt=n(),p(B.$$.fragment),rt=n(),$=M("p"),$.textContent=ie,ut=n(),Z=M("p"),Z.innerHTML=pe,It=n(),p(g.$$.fragment),ht=n(),x=M("p"),x.innerHTML=ye,dt=n(),W=M("p"),W.textContent=Je,ct=n(),p(S.$$.fragment),jt=n(),Q=M("p"),Q.innerHTML=Ue,ft=n(),p(N.$$.fragment),bt=n(),A=M("p"),A.textContent=Te,Ct=n(),p(k.$$.fragment),Gt=n(),v=M("p"),v.innerHTML=we,Bt=n(),p(R.$$.fragment),$t=n(),p(X.$$.fragment),Zt=n(),H=M("p"),H.textContent=oe,gt=n(),p(V.$$.fragment),xt=n(),E=M("p"),E.innerHTML=me,Wt=n(),p(_.$$.fragment),St=n(),q=M("p"),q.innerHTML=re,Qt=n(),p(F.$$.fragment),Nt=n(),p(Y.$$.fragment),At=n(),z=M("p"),z.textContent=ue,kt=n(),p(D.$$.fragment),vt=n(),L=M("p"),L.textContent=Ie,Rt=n(),P=M("p"),P.innerHTML=he,Xt=n(),p(K.$$.fragment),Ht=n(),O=M("p"),O.innerHTML=de,Vt=n(),p(tt.$$.fragment),Et=n(),p(b.$$.fragment),_t=n(),et=M("p"),et.textContent=ce,qt=n(),p(lt.$$.fragment),Ft=n(),p(st.$$.fragment),Yt=n(),nt=M("p"),nt.textContent=je,zt=n(),at=M("p"),at.textContent=fe,Dt=n(),p(Mt.$$.fragment),Lt=n(),it=M("p"),it.textContent=be,Pt=n(),p(pt.$$.fragment),Kt=n(),p(yt.$$.fragment),Ot=n(),Jt=M("p"),Jt.innerHTML=Ce,te=n(),p(Ut.$$.fragment),ee=n(),Tt=M("p"),this.h()},l(t){const e=Ne("svelte-u9bgzb",document.head);I=i(e,"META",{name:!0,content:!0}),e.forEach(l),h=a(t),j=i(t,"P",{}),Be(j).forEach(l),d=a(t),y(u.$$.fragment,t),C=a(t),y(m.$$.fragment,t),c=a(t),G=i(t,"P",{"data-svelte-h":!0}),o(G)!=="svelte-1ra3eri"&&(G.innerHTML=ae),ot=a(t),f=i(t,"DIV",{class:!0,"data-svelte-h":!0}),o(f)!=="svelte-9us2ce"&&(f.innerHTML=Me),mt=a(t),y(B.$$.fragment,t),rt=a(t),$=i(t,"P",{"data-svelte-h":!0}),o($)!=="svelte-3gd3hr"&&($.textContent=ie),ut=a(t),Z=i(t,"P",{"data-svelte-h":!0}),o(Z)!=="svelte-1tt65sg"&&(Z.innerHTML=pe),It=a(t),y(g.$$.fragment,t),ht=a(t),x=i(t,"P",{"data-svelte-h":!0}),o(x)!=="svelte-1kv315r"&&(x.innerHTML=ye),dt=a(t),W=i(t,"P",{"data-svelte-h":!0}),o(W)!=="svelte-9rhb47"&&(W.textContent=Je),ct=a(t),y(S.$$.fragment,t),jt=a(t),Q=i(t,"P",{"data-svelte-h":!0}),o(Q)!=="svelte-1i8rm0o"&&(Q.innerHTML=Ue),ft=a(t),y(N.$$.fragment,t),bt=a(t),A=i(t,"P",{"data-svelte-h":!0}),o(A)!=="svelte-x4a8xo"&&(A.textContent=Te),Ct=a(t),y(k.$$.fragment,t),Gt=a(t),v=i(t,"P",{"data-svelte-h":!0}),o(v)!=="svelte-18p9q30"&&(v.innerHTML=we),Bt=a(t),y(R.$$.fragment,t),$t=a(t),y(X.$$.fragment,t),Zt=a(t),H=i(t,"P",{"data-svelte-h":!0}),o(H)!=="svelte-18ctben"&&(H.textContent=oe),gt=a(t),y(V.$$.fragment,t),xt=a(t),E=i(t,"P",{"data-svelte-h":!0}),o(E)!=="svelte-zjuzv9"&&(E.innerHTML=me),Wt=a(t),y(_.$$.fragment,t),St=a(t),q=i(t,"P",{"data-svelte-h":!0}),o(q)!=="svelte-85qm4z"&&(q.innerHTML=re),Qt=a(t),y(F.$$.fragment,t),Nt=a(t),y(Y.$$.fragment,t),At=a(t),z=i(t,"P",{"data-svelte-h":!0}),o(z)!=="svelte-1spjeeq"&&(z.textContent=ue),kt=a(t),y(D.$$.fragment,t),vt=a(t),L=i(t,"P",{"data-svelte-h":!0}),o(L)!=="svelte-7l9wow"&&(L.textContent=Ie),Rt=a(t),P=i(t,"P",{"data-svelte-h":!0}),o(P)!=="svelte-94nqxh"&&(P.innerHTML=he),Xt=a(t),y(K.$$.fragment,t),Ht=a(t),O=i(t,"P",{"data-svelte-h":!0}),o(O)!=="svelte-7vo6bc"&&(O.innerHTML=de),Vt=a(t),y(tt.$$.fragment,t),Et=a(t),y(b.$$.fragment,t),_t=a(t),et=i(t,"P",{"data-svelte-h":!0}),o(et)!=="svelte-y8al4t"&&(et.textContent=ce),qt=a(t),y(lt.$$.fragment,t),Ft=a(t),y(st.$$.fragment,t),Yt=a(t),nt=i(t,"P",{"data-svelte-h":!0}),o(nt)!=="svelte-10ttfy7"&&(nt.textContent=je),zt=a(t),at=i(t,"P",{"data-svelte-h":!0}),o(at)!=="svelte-g6hmbq"&&(at.textContent=fe),Dt=a(t),y(Mt.$$.fragment,t),Lt=a(t),it=i(t,"P",{"data-svelte-h":!0}),o(it)!=="svelte-pj9jll"&&(it.textContent=be),Pt=a(t),y(pt.$$.fragment,t),Kt=a(t),y(yt.$$.fragment,t),Ot=a(t),Jt=i(t,"P",{"data-svelte-h":!0}),o(Jt)!=="svelte-jyyc5l"&&(Jt.innerHTML=Ce),te=a(t),y(Ut.$$.fragment,t),ee=a(t),Tt=i(t,"P",{}),Be(Tt).forEach(l),this.h()},h(){ne(I,"name","hf:doc:metadata"),ne(I,"content",Ve),ne(f,"class","flex justify-center")},m(t,e){Ae(document.head,I),s(t,h,e),s(t,j,e),s(t,d,e),J(u,t,e),s(t,C,e),J(m,t,e),s(t,c,e),s(t,G,e),s(t,ot,e),s(t,f,e),s(t,mt,e),J(B,t,e),s(t,rt,e),s(t,$,e),s(t,ut,e),s(t,Z,e),s(t,It,e),J(g,t,e),s(t,ht,e),s(t,x,e),s(t,dt,e),s(t,W,e),s(t,ct,e),J(S,t,e),s(t,jt,e),s(t,Q,e),s(t,ft,e),J(N,t,e),s(t,bt,e),s(t,A,e),s(t,Ct,e),J(k,t,e),s(t,Gt,e),s(t,v,e),s(t,Bt,e),J(R,t,e),s(t,$t,e),J(X,t,e),s(t,Zt,e),s(t,H,e),s(t,gt,e),J(V,t,e),s(t,xt,e),s(t,E,e),s(t,Wt,e),J(_,t,e),s(t,St,e),s(t,q,e),s(t,Qt,e),J(F,t,e),s(t,Nt,e),J(Y,t,e),s(t,At,e),s(t,z,e),s(t,kt,e),J(D,t,e),s(t,vt,e),s(t,L,e),s(t,Rt,e),s(t,P,e),s(t,Xt,e),J(K,t,e),s(t,Ht,e),s(t,O,e),s(t,Vt,e),J(tt,t,e),s(t,Et,e),J(b,t,e),s(t,_t,e),s(t,et,e),s(t,qt,e),J(lt,t,e),s(t,Ft,e),J(st,t,e),s(t,Yt,e),s(t,nt,e),s(t,zt,e),s(t,at,e),s(t,Dt,e),J(Mt,t,e),s(t,Lt,e),s(t,it,e),s(t,Pt,e),J(pt,t,e),s(t,Kt,e),J(yt,t,e),s(t,Ot,e),s(t,Jt,e),s(t,te,e),J(Ut,t,e),s(t,ee,e),s(t,Tt,e),le=!0},p(t,[e]){const Ge={};e&2&&(Ge.$$scope={dirty:e,ctx:t}),b.$set(Ge)},i(t){le||(U(u.$$.fragment,t),U(m.$$.fragment,t),U(B.$$.fragment,t),U(g.$$.fragment,t),U(S.$$.fragment,t),U(N.$$.fragment,t),U(k.$$.fragment,t),U(R.$$.fragment,t),U(X.$$.fragment,t),U(V.$$.fragment,t),U(_.$$.fragment,t),U(F.$$.fragment,t),U(Y.$$.fragment,t),U(D.$$.fragment,t),U(K.$$.fragment,t),U(tt.$$.fragment,t),U(b.$$.fragment,t),U(lt.$$.fragment,t),U(st.$$.fragment,t),U(Mt.$$.fragment,t),U(pt.$$.fragment,t),U(yt.$$.fragment,t),U(Ut.$$.fragment,t),le=!0)},o(t){T(u.$$.fragment,t),T(m.$$.fragment,t),T(B.$$.fragment,t),T(g.$$.fragment,t),T(S.$$.fragment,t),T(N.$$.fragment,t),T(k.$$.fragment,t),T(R.$$.fragment,t),T(X.$$.fragment,t),T(V.$$.fragment,t),T(_.$$.fragment,t),T(F.$$.fragment,t),T(Y.$$.fragment,t),T(D.$$.fragment,t),T(K.$$.fragment,t),T(tt.$$.fragment,t),T(b.$$.fragment,t),T(lt.$$.fragment,t),T(st.$$.fragment,t),T(Mt.$$.fragment,t),T(pt.$$.fragment,t),T(yt.$$.fragment,t),T(Ut.$$.fragment,t),le=!1},d(t){t&&(l(h),l(j),l(d),l(C),l(c),l(G),l(ot),l(f),l(mt),l(rt),l($),l(ut),l(Z),l(It),l(ht),l(x),l(dt),l(W),l(ct),l(jt),l(Q),l(ft),l(bt),l(A),l(Ct),l(Gt),l(v),l(Bt),l($t),l(Zt),l(H),l(gt),l(xt),l(E),l(Wt),l(St),l(q),l(Qt),l(Nt),l(At),l(z),l(kt),l(vt),l(L),l(Rt),l(P),l(Xt),l(Ht),l(O),l(Vt),l(Et),l(_t),l(et),l(qt),l(Ft),l(Yt),l(nt),l(zt),l(at),l(Dt),l(Lt),l(it),l(Pt),l(Kt),l(Ot),l(Jt),l(te),l(ee),l(Tt)),l(I),w(u,t),w(m,t),w(B,t),w(g,t),w(S,t),w(N,t),w(k,t),w(R,t),w(X,t),w(V,t),w(_,t),w(F,t),w(Y,t),w(D,t),w(K,t),w(tt,t),w(b,t),w(lt,t),w(st,t),w(Mt,t),w(pt,t),w(yt,t),w(Ut,t)}}}const Ve='{"title":"Транскрибирование встречи","local":"транскрибирование-встречи","sections":[{"title":"Диаризация диктора","local":"диаризация-диктора","sections":[],"depth":2},{"title":"Транскрибирование речи","local":"транскрибирование-речи","sections":[],"depth":2},{"title":"Speechbox","local":"speechbox","sections":[],"depth":2}],"depth":1}';function Ee(wt){return xe(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class De extends Se{constructor(I){super(),Qe(this,I,Ee,He,ge,{})}}export{De as component};
