import{s as ie,o as ce,n as fe}from"../chunks/scheduler.cd324960.js";import{S as re,i as ue,e as i,s as o,c as O,h as he,a as c,d as s,b as p,f as pe,g as X,j as m,k as Q,l as me,m as n,n as D,t as K,o as V,p as B,q as I,r as J}from"../chunks/index.d5c3adcc.js";import{T as ge}from"../chunks/Tip.889bec11.js";import{C as de,H as Te,E as _e}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.14d935fa.js";function xe(E){let f,r,_="requirements.txt",T,l,$="transformers",u,h,d="<code>git+https://github.com/hollance/transformers.git@6900e8ba6532162a8613d2270ec2286c3f58f57b</code>";return{c(){f=I(`По нашему опыту экспериментов с голландским языком, использование контрольной точки MMS TTS дает лучшую производительность, чем
    с дообученной SpeechT5, но вы можете обнаружить, что ваша дообученная контрольная точка TTS предпочтительнее для вашего языка.
    Если вы решили использовать контрольную точку MMS TTS, вам необходимо обновить `),r=i("a"),r.textContent=_,T=I(`
    файл вашей демонстрации для установки `),l=i("code"),l.textContent=$,u=I(` из ветки PR:
    `),h=i("p"),h.innerHTML=d,this.h()},l(a){f=J(a,`По нашему опыту экспериментов с голландским языком, использование контрольной точки MMS TTS дает лучшую производительность, чем
    с дообученной SpeechT5, но вы можете обнаружить, что ваша дообученная контрольная точка TTS предпочтительнее для вашего языка.
    Если вы решили использовать контрольную точку MMS TTS, вам необходимо обновить `),r=c(a,"A",{href:!0,"data-svelte-h":!0}),m(r)!=="svelte-l0vtp8"&&(r.textContent=_),T=J(a,`
    файл вашей демонстрации для установки `),l=c(a,"CODE",{"data-svelte-h":!0}),m(l)!=="svelte-olzpwg"&&(l.textContent=$),u=J(a,` из ветки PR:
    `),h=c(a,"P",{"data-svelte-h":!0}),m(h)!=="svelte-1oo2kle"&&(h.innerHTML=d),this.h()},h(){Q(r,"href","https://huggingface.co/spaces/course-demos/speech-to-speech-translation/blob/a03175878f522df7445290d5508bfb5c5178f787/requirements.txt#L2")},m(a,g){n(a,f,g),n(a,r,g),n(a,T,g),n(a,l,g),n(a,u,g),n(a,h,g)},p:fe,d(a){a&&(s(f),s(r),s(T),s(l),s(u),s(h))}}}function $e(E){let f,r,_,T,l,$,u,h,d,a=`В этом разделе мы объединили материал, рассмотренный в предыдущих шести разделах курса, для создания трех интегрированных
аудио приложений. Как вы убедились, создание более сложных аудио инструментов вполне достижимо при использовании базовых навыков работы
приобретенных в рамках данного курса.`,g,v,W=`В практическом занятии используется одно из приложений, рассматриваемых в данном разделе, которое расширяется с помощью нескольких многоязычных
функций 🌍. Ваша задача - взять <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>. Это необходимо для того, чтобы ваше демо было доступно для нас
и могло быть проверено на корректность.`,Y,b,Z=`Советы по обновлению функции перевода речи для выполнения многоязычного перевода приведены в разделе <a href="speech-to-speech">перевод речи в речь</a>.
Следуя этим инструкциям, вы сможете обновить демо версию для перевода с речи на языке X в текст на языке Y, а это уже половина задачи!`,q,M,ee="Для синтеза из текста на языке Y в речь на языке Y, где Y - многоязычный язык, вам потребуется [NL] использовать контрольную точку многоязычной модели TTS.",j,C,te=`Для этого можно использовать либо контрольную точку 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,x,z,L,se=`Ваше демо должно принимать на вход аудиофайл, а на выходе возвращать другой аудиофайл, соответствующий сигнатуре функции
<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] в шаблоне демо.`,G,S,ne=`Поэтому мы рекомендуем оставить основную функцию <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> по мере необходимости.`,N,H,ae=`После того как вы создали своё демо в виде приложения Gradio на Hugging Face Hub, вы можете отправить его на оценку. Перейдите в пространство
<a href="https://huggingface.co/spaces/huggingface-course/audio-course-u7-assessment" rel="nofollow">audio-course-u7-assessment</a> и при появлении запроса укажите идентификатор репозитория вашего демо.
Этот пространство проверяет правильность сборки демо-версии, посылая [NL] образец аудиофайла в демо и проверяя, что возвращаемый аудиофайл действительно неанглийский.`,A,P,le='Если ваше демо работает корректно, вы получите зеленую галочку рядом с вашим именем в общем <a href="https://huggingface.co/spaces/MariaK/Check-my-progress-Audio-Course" rel="nofollow">пространстве прогресса</a> ✅.',R,w,U,y,F;return l=new de({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),u=new Te({props:{title:"Практическое занятие",local:"практическое-занятие",headingTag:"h1"}}),x=new ge({props:{$$slots:{default:[xe]},$$scope:{ctx:E}}}),w=new _e({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/ru/chapter7/hands-on.mdx"}}),{c(){f=i("meta"),r=o(),_=i("p"),T=o(),O(l.$$.fragment),$=o(),O(u.$$.fragment),h=o(),d=i("p"),d.textContent=a,g=o(),v=i("p"),v.innerHTML=W,Y=o(),b=i("p"),b.innerHTML=Z,q=o(),M=i("p"),M.textContent=ee,j=o(),C=i("p"),C.innerHTML=te,k=o(),O(x.$$.fragment),z=o(),L=i("p"),L.innerHTML=se,G=o(),S=i("p"),S.innerHTML=ne,N=o(),H=i("p"),H.innerHTML=ae,A=o(),P=i("p"),P.innerHTML=le,R=o(),O(w.$$.fragment),U=o(),y=i("p"),this.h()},l(e){const t=he("svelte-u9bgzb",document.head);f=c(t,"META",{name:!0,content:!0}),t.forEach(s),r=p(e),_=c(e,"P",{}),pe(_).forEach(s),T=p(e),X(l.$$.fragment,e),$=p(e),X(u.$$.fragment,e),h=p(e),d=c(e,"P",{"data-svelte-h":!0}),m(d)!=="svelte-ehnz8"&&(d.textContent=a),g=p(e),v=c(e,"P",{"data-svelte-h":!0}),m(v)!=="svelte-5jr76x"&&(v.innerHTML=W),Y=p(e),b=c(e,"P",{"data-svelte-h":!0}),m(b)!=="svelte-j728l1"&&(b.innerHTML=Z),q=p(e),M=c(e,"P",{"data-svelte-h":!0}),m(M)!=="svelte-17o9t0r"&&(M.textContent=ee),j=p(e),C=c(e,"P",{"data-svelte-h":!0}),m(C)!=="svelte-1y8pj0q"&&(C.innerHTML=te),k=p(e),X(x.$$.fragment,e),z=p(e),L=c(e,"P",{"data-svelte-h":!0}),m(L)!=="svelte-feppwu"&&(L.innerHTML=se),G=p(e),S=c(e,"P",{"data-svelte-h":!0}),m(S)!=="svelte-1vsd4ux"&&(S.innerHTML=ne),N=p(e),H=c(e,"P",{"data-svelte-h":!0}),m(H)!=="svelte-xmx54v"&&(H.innerHTML=ae),A=p(e),P=c(e,"P",{"data-svelte-h":!0}),m(P)!=="svelte-1dgvgc3"&&(P.innerHTML=le),R=p(e),X(w.$$.fragment,e),U=p(e),y=c(e,"P",{}),pe(y).forEach(s),this.h()},h(){Q(f,"name","hf:doc:metadata"),Q(f,"content",ve)},m(e,t){me(document.head,f),n(e,r,t),n(e,_,t),n(e,T,t),D(l,e,t),n(e,$,t),D(u,e,t),n(e,h,t),n(e,d,t),n(e,g,t),n(e,v,t),n(e,Y,t),n(e,b,t),n(e,q,t),n(e,M,t),n(e,j,t),n(e,C,t),n(e,k,t),D(x,e,t),n(e,z,t),n(e,L,t),n(e,G,t),n(e,S,t),n(e,N,t),n(e,H,t),n(e,A,t),n(e,P,t),n(e,R,t),D(w,e,t),n(e,U,t),n(e,y,t),F=!0},p(e,[t]){const oe={};t&2&&(oe.$$scope={dirty:t,ctx:e}),x.$set(oe)},i(e){F||(K(l.$$.fragment,e),K(u.$$.fragment,e),K(x.$$.fragment,e),K(w.$$.fragment,e),F=!0)},o(e){V(l.$$.fragment,e),V(u.$$.fragment,e),V(x.$$.fragment,e),V(w.$$.fragment,e),F=!1},d(e){e&&(s(r),s(_),s(T),s($),s(h),s(d),s(g),s(v),s(Y),s(b),s(q),s(M),s(j),s(C),s(k),s(z),s(L),s(G),s(S),s(N),s(H),s(A),s(P),s(R),s(U),s(y)),s(f),B(l,e),B(u,e),B(x,e),B(w,e)}}}const ve='{"title":"Практическое занятие","local":"практическое-занятие","sections":[],"depth":1}';function be(E){return ce(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class He extends re{constructor(f){super(),ue(this,f,be,$e,ie,{})}}export{He as component};
