import{s as Te,f as be,n as Ce,o as ge}from"../chunks/scheduler.f7e1785c.js";import{S as Ie,i as Ae,g as p,s as a,r as Z,A as Ge,h as i,f as l,c as n,j as ie,u as _,x as o,k as c,y as We,a as s,v,d as x,t as $,w as B}from"../chunks/index.9f8f0838.js";import{C as pe}from"../chunks/CodeBlock.b3510e34.js";import{H as Ze,E as _e}from"../chunks/EditOnGithub.5a9bb8c5.js";function ve(Me){let r,H,E,Q,m,R,u,oe=`Теперь, когда мы настроили модель Whisper для распознавания речи на Дивехи, давайте продолжим и создадим демо с использованием <a href="https://gradio.app" rel="nofollow">Gradio</a>,
чтобы показать ее сообществу!`,Y,y,re=`Первое, что нам нужно сделать, это загрузить дообученную модель, используя класс <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):`,S,w,V,d,ce=`Во-вторых, мы определим функцию, которая принимает путь к аудиофайлу в качестве входных данных и передает его через конвейер (<code>pipeline</code>).
Здесь конвейер автоматически заботится о загрузке аудиофайла, пересэмплировании его до правильной частоты дискретизации и выполнении вывода модели.
Затем мы просто вернем преобразованный текст в качестве выходных данных функции. Чтобы обеспечить возможность нашей модели обрабатывать аудиофайлы
произвольной длины, мы включим <em>фрагментирование</em> (разбиение на фрагменты), как описано в разделе о <a href="asr_models">предварительно обученных моделях</a>:`,z,j,q,U,me=`Мы будем использовать функцию <a href="https://gradio.app/docs/#blocks" rel="nofollow">blocks</a> в Gradio, чтобы создать две вкладки в нашем демо: одну
для транскрипции с микрофона и другую для загрузки файла.`,X,h,N,f,ue="Наконец, мы запускаем демонстрацию Gradio, используя два только что определенных блока:",F,J,P,T,ye="Это запустит демонстрацию Gradio, подобную той, которая работает на пространстве Hugging Face:",L,M,we,K,b,de=`Если вы хотите разместить своё демо на платформе Hugging Face Hub, вы можете использовать этот Space в качестве шаблона для своей модели.
Для этого выполните следующие шаги:`,D,C,je='Щелкните по ссылке, чтобы дублировать шаблон демо в свою учетную запись: <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>',O,g,Ue="Рекомендуем дать своему Space имя, подобное имени вашей обученной модели (например, whisper-small-dv-demo) и установить видимость на “Public” (Публичный).",ee,I,he=`После дублирования Space в вашей учетной записи перейдите в раздел “Files and versions” -> “app.py” -> “edit”. Затем измените идентификатор модели
на идентификатор вашей обученной модели(строка 6). Прокрутите страницу вниз и нажмите “Commit changes to main” (Зафиксировать изменения в главной версии).
Демо перезагрузится, используя вашу обученную модель. Теперь вы можете поделиться этим демо со своими друзьями и родственниками, чтобы они могли использовать
модель, которую вы обучили!`,te,A,fe='Вы можете посмотреть наш видеоурок, чтобы лучше понять, как продублировать Space: <a href="https://www.youtube.com/watch?v=VQYuvl6-9VE" rel="nofollow">YouTube Video</a>',le,G,Je="Ожидаем с нетерпением увидеть ваши демо на Hugging Face Hub!",se,W,ae,k,ne;return m=new Ze({props:{title:"Создание Демо с Gradio",local:"создание-демо-с-gradio",headingTag:"h1"}}),w=new pe({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}}),j=new pe({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 pe({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}}),J=new pe({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}}),W=new _e({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/ru/chapter5/demo.mdx"}}),{c(){r=p("meta"),H=a(),E=p("p"),Q=a(),Z(m.$$.fragment),R=a(),u=p("p"),u.innerHTML=oe,Y=a(),y=p("p"),y.innerHTML=re,S=a(),Z(w.$$.fragment),V=a(),d=p("p"),d.innerHTML=ce,z=a(),Z(j.$$.fragment),q=a(),U=p("p"),U.innerHTML=me,X=a(),Z(h.$$.fragment),N=a(),f=p("p"),f.textContent=ue,F=a(),Z(J.$$.fragment),P=a(),T=p("p"),T.textContent=ye,L=a(),M=p("iframe"),K=a(),b=p("p"),b.textContent=de,D=a(),C=p("p"),C.innerHTML=je,O=a(),g=p("p"),g.textContent=Ue,ee=a(),I=p("p"),I.textContent=he,te=a(),A=p("p"),A.innerHTML=fe,le=a(),G=p("p"),G.textContent=Je,se=a(),Z(W.$$.fragment),ae=a(),k=p("p"),this.h()},l(e){const t=Ge("svelte-u9bgzb",document.head);r=i(t,"META",{name:!0,content:!0}),t.forEach(l),H=n(e),E=i(e,"P",{}),ie(E).forEach(l),Q=n(e),_(m.$$.fragment,e),R=n(e),u=i(e,"P",{"data-svelte-h":!0}),o(u)!=="svelte-lgj7fa"&&(u.innerHTML=oe),Y=n(e),y=i(e,"P",{"data-svelte-h":!0}),o(y)!=="svelte-1saak9b"&&(y.innerHTML=re),S=n(e),_(w.$$.fragment,e),V=n(e),d=i(e,"P",{"data-svelte-h":!0}),o(d)!=="svelte-1cs2qoc"&&(d.innerHTML=ce),z=n(e),_(j.$$.fragment,e),q=n(e),U=i(e,"P",{"data-svelte-h":!0}),o(U)!=="svelte-fs7m8d"&&(U.innerHTML=me),X=n(e),_(h.$$.fragment,e),N=n(e),f=i(e,"P",{"data-svelte-h":!0}),o(f)!=="svelte-tank3z"&&(f.textContent=ue),F=n(e),_(J.$$.fragment,e),P=n(e),T=i(e,"P",{"data-svelte-h":!0}),o(T)!=="svelte-1js4r14"&&(T.textContent=ye),L=n(e),M=i(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),ie(M).forEach(l),K=n(e),b=i(e,"P",{"data-svelte-h":!0}),o(b)!=="svelte-1ehqm3b"&&(b.textContent=de),D=n(e),C=i(e,"P",{"data-svelte-h":!0}),o(C)!=="svelte-1wy1h5v"&&(C.innerHTML=je),O=n(e),g=i(e,"P",{"data-svelte-h":!0}),o(g)!=="svelte-n717jv"&&(g.textContent=Ue),ee=n(e),I=i(e,"P",{"data-svelte-h":!0}),o(I)!=="svelte-1m0nxlc"&&(I.textContent=he),te=n(e),A=i(e,"P",{"data-svelte-h":!0}),o(A)!=="svelte-lzxgha"&&(A.innerHTML=fe),le=n(e),G=i(e,"P",{"data-svelte-h":!0}),o(G)!=="svelte-1nmgitz"&&(G.textContent=Je),se=n(e),_(W.$$.fragment,e),ae=n(e),k=i(e,"P",{}),ie(k).forEach(l),this.h()},h(){c(r,"name","hf:doc:metadata"),c(r,"content",xe),be(M.src,we="https://course-demos-whisper-small.hf.space")||c(M,"src",we),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,t){We(document.head,r),s(e,H,t),s(e,E,t),s(e,Q,t),v(m,e,t),s(e,R,t),s(e,u,t),s(e,Y,t),s(e,y,t),s(e,S,t),v(w,e,t),s(e,V,t),s(e,d,t),s(e,z,t),v(j,e,t),s(e,q,t),s(e,U,t),s(e,X,t),v(h,e,t),s(e,N,t),s(e,f,t),s(e,F,t),v(J,e,t),s(e,P,t),s(e,T,t),s(e,L,t),s(e,M,t),s(e,K,t),s(e,b,t),s(e,D,t),s(e,C,t),s(e,O,t),s(e,g,t),s(e,ee,t),s(e,I,t),s(e,te,t),s(e,A,t),s(e,le,t),s(e,G,t),s(e,se,t),v(W,e,t),s(e,ae,t),s(e,k,t),ne=!0},p:Ce,i(e){ne||(x(m.$$.fragment,e),x(w.$$.fragment,e),x(j.$$.fragment,e),x(h.$$.fragment,e),x(J.$$.fragment,e),x(W.$$.fragment,e),ne=!0)},o(e){$(m.$$.fragment,e),$(w.$$.fragment,e),$(j.$$.fragment,e),$(h.$$.fragment,e),$(J.$$.fragment,e),$(W.$$.fragment,e),ne=!1},d(e){e&&(l(H),l(E),l(Q),l(R),l(u),l(Y),l(y),l(S),l(V),l(d),l(z),l(q),l(U),l(X),l(N),l(f),l(F),l(P),l(T),l(L),l(M),l(K),l(b),l(D),l(C),l(O),l(g),l(ee),l(I),l(te),l(A),l(le),l(G),l(se),l(ae),l(k)),l(r),B(m,e),B(w,e),B(j,e),B(h,e),B(J,e),B(W,e)}}}const xe='{"title":"Создание Демо с Gradio","local":"создание-демо-с-gradio","sections":[],"depth":1}';function $e(Me){return ge(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Qe extends Ie{constructor(r){super(),Ae(this,r,$e,ve,Te,{})}}export{Qe as component};
