import{s as Je,f as fe,n as Te,o as Ce}from"../chunks/scheduler.f7e1785c.js";import{S as be,i as ge,g as p,s as a,r as _,A as Ie,h as i,f as t,c as n,j as ne,u as v,x as o,k as c,y as Ae,a as s,v as x,d as B,t as E,w as $}from"../chunks/index.9f8f0838.js";import{C as ae}from"../chunks/CodeBlock.b3510e34.js";import{H as Ge}from"../chunks/Heading.6643a2f7.js";function We(pe){let r,k,W,H,m,Q,u,ie=`Теперь, когда мы настроили модель Whisper для распознавания речи на Дивехи, давайте продолжим и создадим демо с использованием <a href="https://gradio.app" rel="nofollow">Gradio</a>,
чтобы показать ее сообществу!`,R,y,Me=`Первое, что нам нужно сделать, это загрузить дообученную модель, используя класс <code>pipeline()</code> - это уже знакомо из раздела о <a href="asr_models">предварительно обученных моделях</a>.
Вы можете заменить идентификатор модели (<code>model_id</code>) на пространство имен вашей дообученной модели на Hugging Face Hub, или на одну из
предобученных <a href="https://huggingface.co/models?sort=downloads&amp;search=openai%2Fwhisper-" rel="nofollow">моделей Whisper</a>  для выполнения распознавания речи без настройки (zero-shot):`,Y,w,S,j,oe=`Во-вторых, мы определим функцию, которая принимает путь к аудиофайлу в качестве входных данных и передает его через конвейер (<code>pipeline</code>).
Здесь конвейер автоматически заботится о загрузке аудиофайла, пересэмплировании его до правильной частоты дискретизации и выполнении вывода модели.
Затем мы просто вернем преобразованный текст в качестве выходных данных функции. Чтобы обеспечить возможность нашей модели обрабатывать аудиофайлы
произвольной длины, мы включим <em>фрагментирование</em> (разбиение на фрагменты), как описано в разделе о <a href="asr_models">предварительно обученных моделях</a>:`,V,d,z,U,re=`Мы будем использовать функцию <a href="https://gradio.app/docs/#blocks" rel="nofollow">blocks</a> в Gradio, чтобы создать две вкладки в нашем демо: одну
для транскрипции с микрофона и другую для загрузки файла.`,q,h,X,J,ce="Наконец, мы запускаем демонстрацию Gradio, используя два только что определенных блока:",N,f,F,T,me="Это запустит демонстрацию Gradio, подобную той, которая работает на пространстве Hugging Face:",P,M,ue,L,C,ye=`Если вы хотите разместить своё демо на платформе Hugging Face Hub, вы можете использовать этот Space в качестве шаблона для своей модели.
Для этого выполните следующие шаги:`,K,b,we='Щелкните по ссылке, чтобы дублировать шаблон демо в свою учетную запись: <a href="https://huggingface.co/spaces/course-demos/whisper-small?duplicate=true" rel="nofollow">https://huggingface.co/spaces/course-demos/whisper-small?duplicate=true</a>',D,g,je="Рекомендуем дать своему Space имя, подобное имени вашей обученной модели (например, whisper-small-dv-demo) и установить видимость на “Public” (Публичный).",O,I,de=`После дублирования Space в вашей учетной записи перейдите в раздел “Files and versions” -> “app.py” -> “edit”. Затем измените идентификатор модели
на идентификатор вашей обученной модели(строка 6). Прокрутите страницу вниз и нажмите “Commit changes to main” (Зафиксировать изменения в главной версии).
Демо перезагрузится, используя вашу обученную модель. Теперь вы можете поделиться этим демо со своими друзьями и родственниками, чтобы они могли использовать
модель, которую вы обучили!`,ee,A,Ue='Вы можете посмотреть наш видеоурок, чтобы лучше понять, как продублировать Space: <a href="https://www.youtube.com/watch?v=VQYuvl6-9VE" rel="nofollow">YouTube Video</a>',le,G,he="Ожидаем с нетерпением увидеть ваши демо на Hugging Face Hub!",te,Z,se;return m=new Ge({props:{title:"Создание Демо с Gradio",local:"создание-демо-с-gradio",headingTag:"h1"}}),w=new ae({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBbW9kZWxfaWQlMjAlM0QlMjAlMjJzYW5jaGl0LWdhbmRoaSUyRndoaXNwZXItc21hbGwtZHYlMjIlMjAlMjAlMjMlMjB1cGRhdGUlMjB3aXRoJTIweW91ciUyMG1vZGVsJTIwaWQlMEFwaXBlJTIwJTNEJTIwcGlwZWxpbmUoJTIyYXV0b21hdGljLXNwZWVjaC1yZWNvZ25pdGlvbiUyMiUyQyUyMG1vZGVsJTNEbW9kZWxfaWQp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

model_id = <span class="hljs-string">&quot;sanchit-gandhi/whisper-small-dv&quot;</span>  <span class="hljs-comment"># update with your model id</span>
pipe = pipeline(<span class="hljs-string">&quot;automatic-speech-recognition&quot;</span>, model=model_id)`,wrap:!1}}),d=new ae({props:{code:"ZGVmJTIwdHJhbnNjcmliZV9zcGVlY2goZmlsZXBhdGgpJTNBJTBBJTIwJTIwJTIwJTIwb3V0cHV0JTIwJTNEJTIwcGlwZSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBmaWxlcGF0aCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG1heF9uZXdfdG9rZW5zJTNEMjU2JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ2VuZXJhdGVfa3dhcmdzJTNEJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydGFzayUyMiUzQSUyMCUyMnRyYW5zY3JpYmUlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJsYW5ndWFnZSUyMiUzQSUyMCUyMnNpbmhhbGVzZSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyQyUyMCUyMCUyMyUyMHVwZGF0ZSUyMHdpdGglMjB0aGUlMjBsYW5ndWFnZSUyMHlvdSd2ZSUyMGZpbmUtdHVuZWQlMjBvbiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNodW5rX2xlbmd0aF9zJTNEMzAlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBiYXRjaF9zaXplJTNEOCUyQyUwQSUyMCUyMCUyMCUyMCklMEElMjAlMjAlMjAlMjByZXR1cm4lMjBvdXRwdXQlNUIlMjJ0ZXh0JTIyJTVE",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">transcribe_speech</span>(<span class="hljs-params">filepath</span>):
    output = pipe(
        filepath,
        max_new_tokens=<span class="hljs-number">256</span>,
        generate_kwargs={
            <span class="hljs-string">&quot;task&quot;</span>: <span class="hljs-string">&quot;transcribe&quot;</span>,
            <span class="hljs-string">&quot;language&quot;</span>: <span class="hljs-string">&quot;sinhalese&quot;</span>,
        },  <span class="hljs-comment"># update with the language you&#x27;ve fine-tuned on</span>
        chunk_length_s=<span class="hljs-number">30</span>,
        batch_size=<span class="hljs-number">8</span>,
    )
    <span class="hljs-keyword">return</span> output[<span class="hljs-string">&quot;text&quot;</span>]`,wrap:!1}}),h=new ae({props:{code:"aW1wb3J0JTIwZ3JhZGlvJTIwYXMlMjBnciUwQSUwQWRlbW8lMjAlM0QlMjBnci5CbG9ja3MoKSUwQSUwQW1pY190cmFuc2NyaWJlJTIwJTNEJTIwZ3IuSW50ZXJmYWNlKCUwQSUyMCUyMCUyMCUyMGZuJTNEdHJhbnNjcmliZV9zcGVlY2glMkMlMEElMjAlMjAlMjAlMjBpbnB1dHMlM0Rnci5BdWRpbyhzb3VyY2UlM0QlMjJtaWNyb3Bob25lJTIyJTJDJTIwdHlwZSUzRCUyMmZpbGVwYXRoJTIyKSUyQyUwQSUyMCUyMCUyMCUyMG91dHB1dHMlM0Rnci5vdXRwdXRzLlRleHRib3goKSUyQyUwQSklMEElMEFmaWxlX3RyYW5zY3JpYmUlMjAlM0QlMjBnci5JbnRlcmZhY2UoJTBBJTIwJTIwJTIwJTIwZm4lM0R0cmFuc2NyaWJlX3NwZWVjaCUyQyUwQSUyMCUyMCUyMCUyMGlucHV0cyUzRGdyLkF1ZGlvKHNvdXJjZSUzRCUyMnVwbG9hZCUyMiUyQyUyMHR5cGUlM0QlMjJmaWxlcGF0aCUyMiklMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRzJTNEZ3Iub3V0cHV0cy5UZXh0Ym94KCklMkMlMEEp",highlighted:`<span class="hljs-keyword">import</span> gradio <span class="hljs-keyword">as</span> gr

demo = gr.Blocks()

mic_transcribe = gr.Interface(
    fn=transcribe_speech,
    inputs=gr.Audio(source=<span class="hljs-string">&quot;microphone&quot;</span>, <span class="hljs-built_in">type</span>=<span class="hljs-string">&quot;filepath&quot;</span>),
    outputs=gr.outputs.Textbox(),
)

file_transcribe = gr.Interface(
    fn=transcribe_speech,
    inputs=gr.Audio(source=<span class="hljs-string">&quot;upload&quot;</span>, <span class="hljs-built_in">type</span>=<span class="hljs-string">&quot;filepath&quot;</span>),
    outputs=gr.outputs.Textbox(),
)`,wrap:!1}}),f=new ae({props:{code:"d2l0aCUyMGRlbW8lM0ElMEElMjAlMjAlMjAlMjBnci5UYWJiZWRJbnRlcmZhY2UoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCbWljX3RyYW5zY3JpYmUlMkMlMjBmaWxlX3RyYW5zY3JpYmUlNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIlMjJUcmFuc2NyaWJlJTIwTWljcm9waG9uZSUyMiUyQyUyMCUyMlRyYW5zY3JpYmUlMjBBdWRpbyUyMEZpbGUlMjIlNUQlMkMlMEElMjAlMjAlMjAlMjApJTBBJTBBZGVtby5sYXVuY2goZGVidWclM0RUcnVlKQ==",highlighted:`<span class="hljs-keyword">with</span> demo:
    gr.TabbedInterface(
        [mic_transcribe, file_transcribe],
        [<span class="hljs-string">&quot;Transcribe Microphone&quot;</span>, <span class="hljs-string">&quot;Transcribe Audio File&quot;</span>],
    )

demo.launch(debug=<span class="hljs-literal">True</span>)`,wrap:!1}}),{c(){r=p("meta"),k=a(),W=p("p"),H=a(),_(m.$$.fragment),Q=a(),u=p("p"),u.innerHTML=ie,R=a(),y=p("p"),y.innerHTML=Me,Y=a(),_(w.$$.fragment),S=a(),j=p("p"),j.innerHTML=oe,V=a(),_(d.$$.fragment),z=a(),U=p("p"),U.innerHTML=re,q=a(),_(h.$$.fragment),X=a(),J=p("p"),J.textContent=ce,N=a(),_(f.$$.fragment),F=a(),T=p("p"),T.textContent=me,P=a(),M=p("iframe"),L=a(),C=p("p"),C.textContent=ye,K=a(),b=p("p"),b.innerHTML=we,D=a(),g=p("p"),g.textContent=je,O=a(),I=p("p"),I.textContent=de,ee=a(),A=p("p"),A.innerHTML=Ue,le=a(),G=p("p"),G.textContent=he,te=a(),Z=p("p"),this.h()},l(e){const l=Ie("svelte-u9bgzb",document.head);r=i(l,"META",{name:!0,content:!0}),l.forEach(t),k=n(e),W=i(e,"P",{}),ne(W).forEach(t),H=n(e),v(m.$$.fragment,e),Q=n(e),u=i(e,"P",{"data-svelte-h":!0}),o(u)!=="svelte-lgj7fa"&&(u.innerHTML=ie),R=n(e),y=i(e,"P",{"data-svelte-h":!0}),o(y)!=="svelte-1saak9b"&&(y.innerHTML=Me),Y=n(e),v(w.$$.fragment,e),S=n(e),j=i(e,"P",{"data-svelte-h":!0}),o(j)!=="svelte-1cs2qoc"&&(j.innerHTML=oe),V=n(e),v(d.$$.fragment,e),z=n(e),U=i(e,"P",{"data-svelte-h":!0}),o(U)!=="svelte-fs7m8d"&&(U.innerHTML=re),q=n(e),v(h.$$.fragment,e),X=n(e),J=i(e,"P",{"data-svelte-h":!0}),o(J)!=="svelte-tank3z"&&(J.textContent=ce),N=n(e),v(f.$$.fragment,e),F=n(e),T=i(e,"P",{"data-svelte-h":!0}),o(T)!=="svelte-1js4r14"&&(T.textContent=me),P=n(e),M=i(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),ne(M).forEach(t),L=n(e),C=i(e,"P",{"data-svelte-h":!0}),o(C)!=="svelte-1ehqm3b"&&(C.textContent=ye),K=n(e),b=i(e,"P",{"data-svelte-h":!0}),o(b)!=="svelte-1wy1h5v"&&(b.innerHTML=we),D=n(e),g=i(e,"P",{"data-svelte-h":!0}),o(g)!=="svelte-n717jv"&&(g.textContent=je),O=n(e),I=i(e,"P",{"data-svelte-h":!0}),o(I)!=="svelte-1m0nxlc"&&(I.textContent=de),ee=n(e),A=i(e,"P",{"data-svelte-h":!0}),o(A)!=="svelte-lzxgha"&&(A.innerHTML=Ue),le=n(e),G=i(e,"P",{"data-svelte-h":!0}),o(G)!=="svelte-1nmgitz"&&(G.textContent=he),te=n(e),Z=i(e,"P",{}),ne(Z).forEach(t),this.h()},h(){c(r,"name","hf:doc:metadata"),c(r,"content",Ze),fe(M.src,ue="https://course-demos-whisper-small.hf.space")||c(M,"src",ue),c(M,"frameborder","0"),c(M,"height","450"),c(M,"title","Gradio app"),c(M,"class","container p-0 flex-grow space-iframe"),c(M,"allow","accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking"),c(M,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads")},m(e,l){Ae(document.head,r),s(e,k,l),s(e,W,l),s(e,H,l),x(m,e,l),s(e,Q,l),s(e,u,l),s(e,R,l),s(e,y,l),s(e,Y,l),x(w,e,l),s(e,S,l),s(e,j,l),s(e,V,l),x(d,e,l),s(e,z,l),s(e,U,l),s(e,q,l),x(h,e,l),s(e,X,l),s(e,J,l),s(e,N,l),x(f,e,l),s(e,F,l),s(e,T,l),s(e,P,l),s(e,M,l),s(e,L,l),s(e,C,l),s(e,K,l),s(e,b,l),s(e,D,l),s(e,g,l),s(e,O,l),s(e,I,l),s(e,ee,l),s(e,A,l),s(e,le,l),s(e,G,l),s(e,te,l),s(e,Z,l),se=!0},p:Te,i(e){se||(B(m.$$.fragment,e),B(w.$$.fragment,e),B(d.$$.fragment,e),B(h.$$.fragment,e),B(f.$$.fragment,e),se=!0)},o(e){E(m.$$.fragment,e),E(w.$$.fragment,e),E(d.$$.fragment,e),E(h.$$.fragment,e),E(f.$$.fragment,e),se=!1},d(e){e&&(t(k),t(W),t(H),t(Q),t(u),t(R),t(y),t(Y),t(S),t(j),t(V),t(z),t(U),t(q),t(X),t(J),t(N),t(F),t(T),t(P),t(M),t(L),t(C),t(K),t(b),t(D),t(g),t(O),t(I),t(ee),t(A),t(le),t(G),t(te),t(Z)),t(r),$(m,e),$(w,e),$(d,e),$(h,e),$(f,e)}}}const Ze='{"title":"Создание Демо с Gradio","local":"создание-демо-с-gradio","sections":[],"depth":1}';function _e(pe){return Ce(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class $e extends be{constructor(r){super(),ge(this,r,_e,We,Je,{})}}export{$e as component};
