import{s as oe,o as pe,n as ie}from"../chunks/scheduler.f7e1785c.js";import{S as ce,i as re,g as o,s as c,r as F,A as fe,h as p,f as t,c as r,j as le,u as O,x as u,k as J,y as he,a as n,v as X,d as D,t as K,w as V,m as B,n as I}from"../chunks/index.9f8f0838.js";import{T as ue}from"../chunks/Tip.4575d9cf.js";import{H as me,E as de}from"../chunks/EditOnGithub.5a9bb8c5.js";function ge(y){let i,f,T="requirements.txt",d,l,x="transformers",h,m,v="<code>git+https://github.com/hollance/transformers.git@6900e8ba6532162a8613d2270ec2286c3f58f57b</code>";return{c(){i=B(`По нашему опыту экспериментов с голландским языком, использование контрольной точки MMS TTS дает лучшую производительность, чем
    с дообученной SpeechT5, но вы можете обнаружить, что ваша дообученная контрольная точка TTS предпочтительнее для вашего языка.
    Если вы решили использовать контрольную точку MMS TTS, вам необходимо обновить `),f=o("a"),f.textContent=T,d=B(`
    файл вашей демонстрации для установки `),l=o("code"),l.textContent=x,h=B(` из ветки PR:
    `),m=o("p"),m.innerHTML=v,this.h()},l(a){i=I(a,`По нашему опыту экспериментов с голландским языком, использование контрольной точки MMS TTS дает лучшую производительность, чем
    с дообученной SpeechT5, но вы можете обнаружить, что ваша дообученная контрольная точка TTS предпочтительнее для вашего языка.
    Если вы решили использовать контрольную точку MMS TTS, вам необходимо обновить `),f=p(a,"A",{href:!0,"data-svelte-h":!0}),u(f)!=="svelte-l0vtp8"&&(f.textContent=T),d=I(a,`
    файл вашей демонстрации для установки `),l=p(a,"CODE",{"data-svelte-h":!0}),u(l)!=="svelte-olzpwg"&&(l.textContent=x),h=I(a,` из ветки PR:
    `),m=p(a,"P",{"data-svelte-h":!0}),u(m)!=="svelte-1oo2kle"&&(m.innerHTML=v),this.h()},h(){J(f,"href","https://huggingface.co/spaces/course-demos/speech-to-speech-translation/blob/a03175878f522df7445290d5508bfb5c5178f787/requirements.txt#L2")},m(a,g){n(a,i,g),n(a,f,g),n(a,d,g),n(a,l,g),n(a,h,g),n(a,m,g)},p:ie,d(a){a&&(t(i),t(f),t(d),t(l),t(h),t(m))}}}function Te(y){let i,f,T,d,l,x,h,m=`В этом разделе мы объединили материал, рассмотренный в предыдущих шести разделах курса, для создания трех интегрированных
аудио приложений. Как вы убедились, создание более сложных аудио инструментов вполне достижимо при использовании базовых навыков работы
приобретенных в рамках данного курса.`,v,a,g=`В практическом занятии используется одно из приложений, рассматриваемых в данном разделе, которое расширяется с помощью нескольких многоязычных
функций 🌍. Ваша задача - взять <a href="https://huggingface.co/spaces/course-demos/speech-to-speech-translation" rel="nofollow">каскадный перевод речи в речь из Gradio демо</a>
из первого урока данного раздела и модернизировать его для перевода на любой <strong>неанглийский</strong> язык. То есть демо
должно принимать речь на языке X и переводить ее в речь на языке Y, где целевой язык Y не является английским.
Начать следует с <a href="https://huggingface.co/spaces/course-demos/speech-to-speech-translation?duplicate=true" rel="nofollow">дублирования</a> шаблона в вашем пространстве
имен Hugging Face. Нет необходимости использовать GPU-ускоритель - бесплатный уровень подписки с CPU отлично справится с этой задачей 🤗.
Однако следует убедиться, что видимость вашего демо установлена в <strong>public</strong>. Это необходимо для того, чтобы ваше демо было доступно для нас
и могло быть проверено на корректность.`,E,$,Q=`Советы по обновлению функции перевода речи для выполнения многоязычного перевода приведены в разделе <a href="speech-to-speech">перевод речи в речь</a>.
Следуя этим инструкциям, вы сможете обновить демо версию для перевода с речи на языке X в текст на языке Y, а это уже половина задачи!`,Y,b,W="Для синтеза из текста на языке Y в речь на языке Y, где Y - многоязычный язык, вам потребуется [NL] использовать контрольную точку многоязычной модели TTS.",j,M,Z=`Для этого можно использовать либо контрольную точку SpeechT5 TTS, которую вы дообучали на предыдущем практическом занятии, либо предварительно
обученную контрольную точку многоязычной TTS. Существует два варианта предварительно обученных контрольных точек: либо контрольная точка
<a href="https://huggingface.co/sanchit-gandhi/speecht5_tts_vox_nl" rel="nofollow">sanchit-gandhi/speecht5_tts_vox_nl</a>, которая представляет собой контрольную точку SpeechT5,
дообученную на голландском фрагменте набора данных <a href="https://huggingface.co/datasets/facebook/voxpopuli" rel="nofollow">VoxPopuli</a> [NL], либо контрольная точка MMS TTS
(смотрите  раздел <a href="../chapter6/pre-trained_models">предварительно обученные модели text-to-speech</a>).`,k,_,q,C,ee=`Ваше демо должно принимать на вход аудиофайл, а на выходе возвращать другой аудиофайл, соответствующий сигнатуре функции
<a href="https://huggingface.co/spaces/course-demos/speech-to-speech-translation/blob/3946ba6705a6632a63de8672ac52a482ab74b3fc/app.py#L35" rel="nofollow"><code>speech_to_speech_translation</code></a> [NL] в шаблоне демо.`,A,L,te=`Поэтому мы рекомендуем оставить основную функцию <code>speech_to_speech_translation</code> как есть, и обновлять лишь функции <a href="https://huggingface.co/spaces/course-demos/speech-to-speech-translation/blob/a03175878f522df7445290d5508bfb5c5178f787/app.py#L24" rel="nofollow"><code>translate</code></a>
и <a href="https://huggingface.co/spaces/course-demos/speech-to-speech-translation/blob/a03175878f522df7445290d5508bfb5c5178f787/app.py#L29" rel="nofollow"><code>synthesise</code></a> по мере необходимости.`,G,S,se=`После того как вы создали своё демо в виде приложения Gradio на Hugging Face Hub, вы можете отправить его на оценку. Перейдите в пространство
<a href="https://huggingface.co/spaces/huggingface-course/audio-course-u7-assessment" rel="nofollow">audio-course-u7-assessment</a> и при появлении запроса укажите идентификатор репозитория вашего демо.
Этот пространство проверяет правильность сборки демо-версии, посылая [NL] образец аудиофайла в демо и проверяя, что возвращаемый аудиофайл действительно неанглийский.`,N,H,ne='Если ваше демо работает корректно, вы получите зеленую галочку рядом с вашим именем в общем <a href="https://huggingface.co/spaces/MariaK/Check-my-progress-Audio-Course" rel="nofollow">пространстве прогресса</a> ✅.',z,P,R,w,U;return l=new me({props:{title:"Практическое занятие",local:"практическое-занятие",headingTag:"h1"}}),_=new ue({props:{$$slots:{default:[ge]},$$scope:{ctx:y}}}),P=new de({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/ru/chapter7/hands-on.mdx"}}),{c(){i=o("meta"),f=c(),T=o("p"),d=c(),F(l.$$.fragment),x=c(),h=o("p"),h.textContent=m,v=c(),a=o("p"),a.innerHTML=g,E=c(),$=o("p"),$.innerHTML=Q,Y=c(),b=o("p"),b.textContent=W,j=c(),M=o("p"),M.innerHTML=Z,k=c(),F(_.$$.fragment),q=c(),C=o("p"),C.innerHTML=ee,A=c(),L=o("p"),L.innerHTML=te,G=c(),S=o("p"),S.innerHTML=se,N=c(),H=o("p"),H.innerHTML=ne,z=c(),F(P.$$.fragment),R=c(),w=o("p"),this.h()},l(e){const s=fe("svelte-u9bgzb",document.head);i=p(s,"META",{name:!0,content:!0}),s.forEach(t),f=r(e),T=p(e,"P",{}),le(T).forEach(t),d=r(e),O(l.$$.fragment,e),x=r(e),h=p(e,"P",{"data-svelte-h":!0}),u(h)!=="svelte-ehnz8"&&(h.textContent=m),v=r(e),a=p(e,"P",{"data-svelte-h":!0}),u(a)!=="svelte-5jr76x"&&(a.innerHTML=g),E=r(e),$=p(e,"P",{"data-svelte-h":!0}),u($)!=="svelte-j728l1"&&($.innerHTML=Q),Y=r(e),b=p(e,"P",{"data-svelte-h":!0}),u(b)!=="svelte-17o9t0r"&&(b.textContent=W),j=r(e),M=p(e,"P",{"data-svelte-h":!0}),u(M)!=="svelte-1y8pj0q"&&(M.innerHTML=Z),k=r(e),O(_.$$.fragment,e),q=r(e),C=p(e,"P",{"data-svelte-h":!0}),u(C)!=="svelte-feppwu"&&(C.innerHTML=ee),A=r(e),L=p(e,"P",{"data-svelte-h":!0}),u(L)!=="svelte-1vsd4ux"&&(L.innerHTML=te),G=r(e),S=p(e,"P",{"data-svelte-h":!0}),u(S)!=="svelte-xmx54v"&&(S.innerHTML=se),N=r(e),H=p(e,"P",{"data-svelte-h":!0}),u(H)!=="svelte-1dgvgc3"&&(H.innerHTML=ne),z=r(e),O(P.$$.fragment,e),R=r(e),w=p(e,"P",{}),le(w).forEach(t),this.h()},h(){J(i,"name","hf:doc:metadata"),J(i,"content",_e)},m(e,s){he(document.head,i),n(e,f,s),n(e,T,s),n(e,d,s),X(l,e,s),n(e,x,s),n(e,h,s),n(e,v,s),n(e,a,s),n(e,E,s),n(e,$,s),n(e,Y,s),n(e,b,s),n(e,j,s),n(e,M,s),n(e,k,s),X(_,e,s),n(e,q,s),n(e,C,s),n(e,A,s),n(e,L,s),n(e,G,s),n(e,S,s),n(e,N,s),n(e,H,s),n(e,z,s),X(P,e,s),n(e,R,s),n(e,w,s),U=!0},p(e,[s]){const ae={};s&2&&(ae.$$scope={dirty:s,ctx:e}),_.$set(ae)},i(e){U||(D(l.$$.fragment,e),D(_.$$.fragment,e),D(P.$$.fragment,e),U=!0)},o(e){K(l.$$.fragment,e),K(_.$$.fragment,e),K(P.$$.fragment,e),U=!1},d(e){e&&(t(f),t(T),t(d),t(x),t(h),t(v),t(a),t(E),t($),t(Y),t(b),t(j),t(M),t(k),t(q),t(C),t(A),t(L),t(G),t(S),t(N),t(H),t(z),t(R),t(w)),t(i),V(l,e),V(_,e),V(P,e)}}}const _e='{"title":"Практическое занятие","local":"практическое-занятие","sections":[],"depth":1}';function xe(y){return pe(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ce extends ce{constructor(i){super(),re(this,i,xe,Te,oe,{})}}export{Ce as component};
