import{S as Sa,i as xa,s as Ea,e as i,k as u,w as ge,t as l,M as _a,c as s,d as t,m as d,a as n,x as me,h as c,b as h,G as a,g as r,y as ve,L as La,q as be,o as Te,B as ye,v as $a}from"../../chunks/vendor-hf-doc-builder.js";import{I as we}from"../../chunks/IconCopyLink-hf-doc-builder.js";function Aa(Kt){let v,ke,b,S,Y,A,Oe,Z,De,Se,x,Ye,Q,Ze,Qe,xe,f,We,Xe,et,W,tt,at,Ee,K,it,_e,U,st,Le,z,nt,$e,T,E,X,P,ot,ee,rt,Ae,I,q,lt,ct,Pe,y,_,te,H,ht,ae,ut,Ie,R,C,dt,pt,qe,w,L,ie,N,ft,se,gt,He,V,G,mt,vt,Re,k,$,ne,M,bt,oe,Tt,Ce,j,J,yt,wt,Ne,p,re,kt,St,le,xt,Et,ce,_t,Lt,he,$t,At,ue,Pt,Ve,B,It,Ge,g,de,qt,Ht,pe,Rt,Ct,fe,Nt,Me,F,Vt,je;return A=new we({}),P=new we({}),H=new we({}),N=new we({}),M=new we({}),{c(){v=i("meta"),ke=u(),b=i("h1"),S=i("a"),Y=i("span"),ge(A.$$.fragment),Oe=u(),Z=i("span"),De=l("Text-to-speech datasets"),Se=u(),x=i("p"),Ye=l("Text-to-speech task (also called "),Q=i("em"),Ze=l("speech synthesis"),Qe=l(") comes with a range of challenges."),xe=u(),f=i("p"),We=l("First, just like in the previously discussed automatic speech recognition, the alignment between text and speech can be tricky."),Xe=i("br"),et=l(`
However, unlike ASR, TTS is a `),W=i("strong"),tt=l("one-to-many"),at=l(` mapping problem, i.e. the same text can be synthesised in many different ways. Think about the diversity of voices and speaking styles in the speech you hear on a daily basis - each person has a different way of speaking the same sentence, but they are all valid and correct! Even different outputs (spectrograms or audio waveforms) can correspond to the same ground truth. The model has to learn to generate the correct duration and timing for each phoneme, word, or sentence which can be challenging,
especially for long and complex sentences.`),Ee=u(),K=i("p"),it=l(`Next, there\u2019s the long-distance dependency problem: language has a temporal aspect, and understanding the meaning of a
sentence often requires considering the context of surrounding words. Ensuring that the TTS model captures and retains
contextual information over long sequences is crucial for generating coherent and natural-sounding speech.`),_e=u(),U=i("p"),st=l(`Finally, training TTS models typically requires pairs of text and corresponding speech recordings. On top of that, to ensure
the model can generate speech that sounds natural for various speakers and speaking styles, data should contain diverse and
representative speech samples from multiple speakers. Collecting such data is expensive, time-consuming and for some languages
is not feasible. You may think, why not just take a dataset designed for ASR (automatic speech recognition) and use it for
training a TTS model? Unfortunately, automated speech recognition (ASR) datasets are not the best option. The features that
make it beneficial for ASR, such as excessive background noise, are typically undesirable in TTS. It\u2019s great to be able to
pick out speach from a noisy street recording, but not so much if your voice assistant replies to you with cars honking
and construction going full-swing in the background. Still, some ASR datasets can sometimes be useful for fine-tuning,
as finding top-quality, multilingual, and multi-speaker TTS datasets can be quite challenging.`),Le=u(),z=i("p"),nt=l("Let\u2019s explore a few datasets suitable for TTS that you can find on the \u{1F917} Hub."),$e=u(),T=i("h2"),E=i("a"),X=i("span"),ge(P.$$.fragment),ot=u(),ee=i("span"),rt=l("LJSpeech"),Ae=u(),I=i("p"),q=i("a"),lt=l("LJSpeech"),ct=l(` is a dataset that consists of 13,100 English-language audio clips
paired with their corresponding transcriptions. The dataset contains recording of a single speaker reading sentences
from 7 non-fiction books in English. LJSpeech is often used as a benchmark for evaluating TTS models
due to its high audio quality and diverse linguistic content.`),Pe=u(),y=i("h2"),_=i("a"),te=i("span"),ge(H.$$.fragment),ht=u(),ae=i("span"),ut=l("Multilingual LibriSpeech"),Ie=u(),R=i("p"),C=i("a"),dt=l("Multilingual LibriSpeech"),pt=l(` is a multilingual extension
of the LibriSpeech dataset, which is a large-scale collection of read English-language audiobooks. Multilingual LibriSpeech
expands on this by including additional languages, such as German, Dutch, Spanish, French, Italian, Portuguese, and Polish.
It offers audio recordings along with aligned transcriptions for each language. The dataset provides a valuable resource
for developing multilingual TTS systems and exploring cross-lingual speech synthesis techniques.`),qe=u(),w=i("h2"),L=i("a"),ie=i("span"),ge(N.$$.fragment),ft=u(),se=i("span"),gt=l("VCTK (Voice Cloning Toolkit)"),He=u(),V=i("p"),G=i("a"),mt=l("VCTK"),vt=l(` is a dataset specifically designed for text-to-speech research and development.
It contains audio recordings of 110 English speakers with various accents. Each speaker reads out about 400 sentences,
which were selected from a newspaper, the rainbow passage and an elicitation paragraph used for the speech accent archive.
VCTK offers a valuable resource for training TTS models with varied voices and accents, enabling more natural and diverse
speech synthesis.`),Re=u(),k=i("h2"),$=i("a"),ne=i("span"),ge(M.$$.fragment),bt=u(),oe=i("span"),Tt=l("Libri-TTS/ LibriTTS-R"),Ce=u(),j=i("p"),J=i("a"),yt=l("Libri-TTS/ LibriTTS-R"),wt=l(` is a multi-speaker English corpus of
approximately 585 hours of read English speech at 24kHz sampling rate, prepared by Heiga Zen with the assistance of Google
Speech and Google Brain team members. The LibriTTS corpus is designed for TTS research. It is derived from the original
materials (mp3 audio files from LibriVox and text files from Project Gutenberg) of the LibriSpeech corpus. The main
differences from the LibriSpeech corpus are listed below:`),Ne=u(),p=i("ul"),re=i("li"),kt=l("The audio files are at 24kHz sampling rate."),St=u(),le=i("li"),xt=l("The speech is split at sentence breaks."),Et=u(),ce=i("li"),_t=l("Both original and normalized texts are included."),Lt=u(),he=i("li"),$t=l("Contextual information (e.g., neighbouring sentences) can be extracted."),At=u(),ue=i("li"),Pt=l("Utterances with significant background noise are excluded."),Ve=u(),B=i("p"),It=l("Assembling a good dataset for TTS is no easy task as such dataset would have to possess several key characteristics:"),Ge=u(),g=i("ul"),de=i("li"),qt=l("High-quality and diverse recordings that cover a wide range of speech patterns, accents, languages, and emotions. The recordings should be clear, free from background noise, and exhibit natural speech characteristics."),Ht=u(),pe=i("li"),Rt=l("Transcriptions: Each audio recording should be accompanied by its corresponding text transcription."),Ct=u(),fe=i("li"),Nt=l("Variety of linguistic content: The dataset should contain a diverse range of linguistic content, including different types of sentences, phrases, and words. It should cover various topics, genres, and domains to ensure the model\u2019s ability to handle different linguistic contexts."),Me=u(),F=i("p"),Vt=l(`Good news is, it is unlikely that you would have to train a TTS model from scratch. In the next section we\u2019ll look into
pre-trained models available on the \u{1F917} Hub.`),this.h()},l(e){const o=_a('[data-svelte="svelte-1phssyn"]',document.head);v=s(o,"META",{name:!0,content:!0}),o.forEach(t),ke=d(e),b=s(e,"H1",{class:!0});var Je=n(b);S=s(Je,"A",{id:!0,class:!0,href:!0});var Ut=n(S);Y=s(Ut,"SPAN",{});var zt=n(Y);me(A.$$.fragment,zt),zt.forEach(t),Ut.forEach(t),Oe=d(Je),Z=s(Je,"SPAN",{});var Bt=n(Z);De=c(Bt,"Text-to-speech datasets"),Bt.forEach(t),Je.forEach(t),Se=d(e),x=s(e,"P",{});var Ke=n(x);Ye=c(Ke,"Text-to-speech task (also called "),Q=s(Ke,"EM",{});var Ft=n(Q);Ze=c(Ft,"speech synthesis"),Ft.forEach(t),Qe=c(Ke,") comes with a range of challenges."),Ke.forEach(t),xe=d(e),f=s(e,"P",{});var O=n(f);We=c(O,"First, just like in the previously discussed automatic speech recognition, the alignment between text and speech can be tricky."),Xe=s(O,"BR",{}),et=c(O,`
However, unlike ASR, TTS is a `),W=s(O,"STRONG",{});var Ot=n(W);tt=c(Ot,"one-to-many"),Ot.forEach(t),at=c(O,` mapping problem, i.e. the same text can be synthesised in many different ways. Think about the diversity of voices and speaking styles in the speech you hear on a daily basis - each person has a different way of speaking the same sentence, but they are all valid and correct! Even different outputs (spectrograms or audio waveforms) can correspond to the same ground truth. The model has to learn to generate the correct duration and timing for each phoneme, word, or sentence which can be challenging,
especially for long and complex sentences.`),O.forEach(t),Ee=d(e),K=s(e,"P",{});var Dt=n(K);it=c(Dt,`Next, there\u2019s the long-distance dependency problem: language has a temporal aspect, and understanding the meaning of a
sentence often requires considering the context of surrounding words. Ensuring that the TTS model captures and retains
contextual information over long sequences is crucial for generating coherent and natural-sounding speech.`),Dt.forEach(t),_e=d(e),U=s(e,"P",{});var Yt=n(U);st=c(Yt,`Finally, training TTS models typically requires pairs of text and corresponding speech recordings. On top of that, to ensure
the model can generate speech that sounds natural for various speakers and speaking styles, data should contain diverse and
representative speech samples from multiple speakers. Collecting such data is expensive, time-consuming and for some languages
is not feasible. You may think, why not just take a dataset designed for ASR (automatic speech recognition) and use it for
training a TTS model? Unfortunately, automated speech recognition (ASR) datasets are not the best option. The features that
make it beneficial for ASR, such as excessive background noise, are typically undesirable in TTS. It\u2019s great to be able to
pick out speach from a noisy street recording, but not so much if your voice assistant replies to you with cars honking
and construction going full-swing in the background. Still, some ASR datasets can sometimes be useful for fine-tuning,
as finding top-quality, multilingual, and multi-speaker TTS datasets can be quite challenging.`),Yt.forEach(t),Le=d(e),z=s(e,"P",{});var Zt=n(z);nt=c(Zt,"Let\u2019s explore a few datasets suitable for TTS that you can find on the \u{1F917} Hub."),Zt.forEach(t),$e=d(e),T=s(e,"H2",{class:!0});var Ue=n(T);E=s(Ue,"A",{id:!0,class:!0,href:!0});var Qt=n(E);X=s(Qt,"SPAN",{});var Wt=n(X);me(P.$$.fragment,Wt),Wt.forEach(t),Qt.forEach(t),ot=d(Ue),ee=s(Ue,"SPAN",{});var Xt=n(ee);rt=c(Xt,"LJSpeech"),Xt.forEach(t),Ue.forEach(t),Ae=d(e),I=s(e,"P",{});var Gt=n(I);q=s(Gt,"A",{href:!0,rel:!0});var ea=n(q);lt=c(ea,"LJSpeech"),ea.forEach(t),ct=c(Gt,` is a dataset that consists of 13,100 English-language audio clips
paired with their corresponding transcriptions. The dataset contains recording of a single speaker reading sentences
from 7 non-fiction books in English. LJSpeech is often used as a benchmark for evaluating TTS models
due to its high audio quality and diverse linguistic content.`),Gt.forEach(t),Pe=d(e),y=s(e,"H2",{class:!0});var ze=n(y);_=s(ze,"A",{id:!0,class:!0,href:!0});var ta=n(_);te=s(ta,"SPAN",{});var aa=n(te);me(H.$$.fragment,aa),aa.forEach(t),ta.forEach(t),ht=d(ze),ae=s(ze,"SPAN",{});var ia=n(ae);ut=c(ia,"Multilingual LibriSpeech"),ia.forEach(t),ze.forEach(t),Ie=d(e),R=s(e,"P",{});var Mt=n(R);C=s(Mt,"A",{href:!0,rel:!0});var sa=n(C);dt=c(sa,"Multilingual LibriSpeech"),sa.forEach(t),pt=c(Mt,` is a multilingual extension
of the LibriSpeech dataset, which is a large-scale collection of read English-language audiobooks. Multilingual LibriSpeech
expands on this by including additional languages, such as German, Dutch, Spanish, French, Italian, Portuguese, and Polish.
It offers audio recordings along with aligned transcriptions for each language. The dataset provides a valuable resource
for developing multilingual TTS systems and exploring cross-lingual speech synthesis techniques.`),Mt.forEach(t),qe=d(e),w=s(e,"H2",{class:!0});var Be=n(w);L=s(Be,"A",{id:!0,class:!0,href:!0});var na=n(L);ie=s(na,"SPAN",{});var oa=n(ie);me(N.$$.fragment,oa),oa.forEach(t),na.forEach(t),ft=d(Be),se=s(Be,"SPAN",{});var ra=n(se);gt=c(ra,"VCTK (Voice Cloning Toolkit)"),ra.forEach(t),Be.forEach(t),He=d(e),V=s(e,"P",{});var jt=n(V);G=s(jt,"A",{href:!0,rel:!0});var la=n(G);mt=c(la,"VCTK"),la.forEach(t),vt=c(jt,` is a dataset specifically designed for text-to-speech research and development.
It contains audio recordings of 110 English speakers with various accents. Each speaker reads out about 400 sentences,
which were selected from a newspaper, the rainbow passage and an elicitation paragraph used for the speech accent archive.
VCTK offers a valuable resource for training TTS models with varied voices and accents, enabling more natural and diverse
speech synthesis.`),jt.forEach(t),Re=d(e),k=s(e,"H2",{class:!0});var Fe=n(k);$=s(Fe,"A",{id:!0,class:!0,href:!0});var ca=n($);ne=s(ca,"SPAN",{});var ha=n(ne);me(M.$$.fragment,ha),ha.forEach(t),ca.forEach(t),bt=d(Fe),oe=s(Fe,"SPAN",{});var ua=n(oe);Tt=c(ua,"Libri-TTS/ LibriTTS-R"),ua.forEach(t),Fe.forEach(t),Ce=d(e),j=s(e,"P",{});var Jt=n(j);J=s(Jt,"A",{href:!0,rel:!0});var da=n(J);yt=c(da,"Libri-TTS/ LibriTTS-R"),da.forEach(t),wt=c(Jt,` is a multi-speaker English corpus of
approximately 585 hours of read English speech at 24kHz sampling rate, prepared by Heiga Zen with the assistance of Google
Speech and Google Brain team members. The LibriTTS corpus is designed for TTS research. It is derived from the original
materials (mp3 audio files from LibriVox and text files from Project Gutenberg) of the LibriSpeech corpus. The main
differences from the LibriSpeech corpus are listed below:`),Jt.forEach(t),Ne=d(e),p=s(e,"UL",{});var m=n(p);re=s(m,"LI",{});var pa=n(re);kt=c(pa,"The audio files are at 24kHz sampling rate."),pa.forEach(t),St=d(m),le=s(m,"LI",{});var fa=n(le);xt=c(fa,"The speech is split at sentence breaks."),fa.forEach(t),Et=d(m),ce=s(m,"LI",{});var ga=n(ce);_t=c(ga,"Both original and normalized texts are included."),ga.forEach(t),Lt=d(m),he=s(m,"LI",{});var ma=n(he);$t=c(ma,"Contextual information (e.g., neighbouring sentences) can be extracted."),ma.forEach(t),At=d(m),ue=s(m,"LI",{});var va=n(ue);Pt=c(va,"Utterances with significant background noise are excluded."),va.forEach(t),m.forEach(t),Ve=d(e),B=s(e,"P",{});var ba=n(B);It=c(ba,"Assembling a good dataset for TTS is no easy task as such dataset would have to possess several key characteristics:"),ba.forEach(t),Ge=d(e),g=s(e,"UL",{});var D=n(g);de=s(D,"LI",{});var Ta=n(de);qt=c(Ta,"High-quality and diverse recordings that cover a wide range of speech patterns, accents, languages, and emotions. The recordings should be clear, free from background noise, and exhibit natural speech characteristics."),Ta.forEach(t),Ht=d(D),pe=s(D,"LI",{});var ya=n(pe);Rt=c(ya,"Transcriptions: Each audio recording should be accompanied by its corresponding text transcription."),ya.forEach(t),Ct=d(D),fe=s(D,"LI",{});var wa=n(fe);Nt=c(wa,"Variety of linguistic content: The dataset should contain a diverse range of linguistic content, including different types of sentences, phrases, and words. It should cover various topics, genres, and domains to ensure the model\u2019s ability to handle different linguistic contexts."),wa.forEach(t),D.forEach(t),Me=d(e),F=s(e,"P",{});var ka=n(F);Vt=c(ka,`Good news is, it is unlikely that you would have to train a TTS model from scratch. In the next section we\u2019ll look into
pre-trained models available on the \u{1F917} Hub.`),ka.forEach(t),this.h()},h(){h(v,"name","hf:doc:metadata"),h(v,"content",JSON.stringify(Pa)),h(S,"id","texttospeech-datasets"),h(S,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(S,"href","#texttospeech-datasets"),h(b,"class","relative group"),h(E,"id","ljspeech"),h(E,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(E,"href","#ljspeech"),h(T,"class","relative group"),h(q,"href","https://huggingface.co/datasets/lj_speech"),h(q,"rel","nofollow"),h(_,"id","multilingual-librispeech"),h(_,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(_,"href","#multilingual-librispeech"),h(y,"class","relative group"),h(C,"href","https://huggingface.co/datasets/facebook/multilingual_librispeech"),h(C,"rel","nofollow"),h(L,"id","vctk-voice-cloning-toolkit"),h(L,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(L,"href","#vctk-voice-cloning-toolkit"),h(w,"class","relative group"),h(G,"href","https://huggingface.co/datasets/vctk"),h(G,"rel","nofollow"),h($,"id","libritts-librittsr"),h($,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h($,"href","#libritts-librittsr"),h(k,"class","relative group"),h(J,"href","https://huggingface.co/datasets/cdminix/libritts-r-aligned"),h(J,"rel","nofollow")},m(e,o){a(document.head,v),r(e,ke,o),r(e,b,o),a(b,S),a(S,Y),ve(A,Y,null),a(b,Oe),a(b,Z),a(Z,De),r(e,Se,o),r(e,x,o),a(x,Ye),a(x,Q),a(Q,Ze),a(x,Qe),r(e,xe,o),r(e,f,o),a(f,We),a(f,Xe),a(f,et),a(f,W),a(W,tt),a(f,at),r(e,Ee,o),r(e,K,o),a(K,it),r(e,_e,o),r(e,U,o),a(U,st),r(e,Le,o),r(e,z,o),a(z,nt),r(e,$e,o),r(e,T,o),a(T,E),a(E,X),ve(P,X,null),a(T,ot),a(T,ee),a(ee,rt),r(e,Ae,o),r(e,I,o),a(I,q),a(q,lt),a(I,ct),r(e,Pe,o),r(e,y,o),a(y,_),a(_,te),ve(H,te,null),a(y,ht),a(y,ae),a(ae,ut),r(e,Ie,o),r(e,R,o),a(R,C),a(C,dt),a(R,pt),r(e,qe,o),r(e,w,o),a(w,L),a(L,ie),ve(N,ie,null),a(w,ft),a(w,se),a(se,gt),r(e,He,o),r(e,V,o),a(V,G),a(G,mt),a(V,vt),r(e,Re,o),r(e,k,o),a(k,$),a($,ne),ve(M,ne,null),a(k,bt),a(k,oe),a(oe,Tt),r(e,Ce,o),r(e,j,o),a(j,J),a(J,yt),a(j,wt),r(e,Ne,o),r(e,p,o),a(p,re),a(re,kt),a(p,St),a(p,le),a(le,xt),a(p,Et),a(p,ce),a(ce,_t),a(p,Lt),a(p,he),a(he,$t),a(p,At),a(p,ue),a(ue,Pt),r(e,Ve,o),r(e,B,o),a(B,It),r(e,Ge,o),r(e,g,o),a(g,de),a(de,qt),a(g,Ht),a(g,pe),a(pe,Rt),a(g,Ct),a(g,fe),a(fe,Nt),r(e,Me,o),r(e,F,o),a(F,Vt),je=!0},p:La,i(e){je||(be(A.$$.fragment,e),be(P.$$.fragment,e),be(H.$$.fragment,e),be(N.$$.fragment,e),be(M.$$.fragment,e),je=!0)},o(e){Te(A.$$.fragment,e),Te(P.$$.fragment,e),Te(H.$$.fragment,e),Te(N.$$.fragment,e),Te(M.$$.fragment,e),je=!1},d(e){t(v),e&&t(ke),e&&t(b),ye(A),e&&t(Se),e&&t(x),e&&t(xe),e&&t(f),e&&t(Ee),e&&t(K),e&&t(_e),e&&t(U),e&&t(Le),e&&t(z),e&&t($e),e&&t(T),ye(P),e&&t(Ae),e&&t(I),e&&t(Pe),e&&t(y),ye(H),e&&t(Ie),e&&t(R),e&&t(qe),e&&t(w),ye(N),e&&t(He),e&&t(V),e&&t(Re),e&&t(k),ye(M),e&&t(Ce),e&&t(j),e&&t(Ne),e&&t(p),e&&t(Ve),e&&t(B),e&&t(Ge),e&&t(g),e&&t(Me),e&&t(F)}}}const Pa={local:"texttospeech-datasets",sections:[{local:"ljspeech",title:"LJSpeech"},{local:"multilingual-librispeech",title:"Multilingual LibriSpeech"},{local:"vctk-voice-cloning-toolkit",title:"VCTK (Voice Cloning Toolkit)"},{local:"libritts-librittsr",title:"Libri-TTS/ LibriTTS-R"}],title:"Text-to-speech datasets"};function Ia(Kt){return $a(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ra extends Sa{constructor(v){super();xa(this,v,Ia,Aa,Ea,{})}}export{Ra as default,Pa as metadata};
