Domača » Kodiranje » Dodajanje funkcije Besedilo v govor na kateri koli spletni strani

    Dodajanje funkcije Besedilo v govor na kateri koli spletni strani

    The besedilo v govor se nanaša na govorjeno besedilo besedila prikazane na napravi. Trenutno naprave, kot so prenosniki, tablični računalniki in mobilni telefoni že imate to funkcijo. Vse aplikacije, ki se izvajajo na teh napravah, kot je spletni brskalnik, lahko uporablja, in funkcionalnosti. Funkcija pripovedi je lahko primerna pomoč za aplikacijo prikaže obilno besedilo, kot je ponuja možnost poslušanja obiskovalcem spletnega mesta.

    API spletnega govora

    The API spletnega govora JavaScript je vrata v dostop do funkcije Besedilo v govor prek spletnega brskalnika. Torej, če želite uvesti funkcijo za pretvorbo besedila v govor na spletni strani, ki je težka za besedilo, in bralcem omogočiti, da poslušajo vsebino, lahko uporabite ta priročen API ali, bolj natančno, njegovo SpeechSynthesis vmesnik.

    Začetna koda in preverjanje podpore

    Če želite začeti, ustvarimo spletno stran s jaz vzorec besedila, ki ga bom pripovedoval, in trije gumbi.

     

    Hare z mnogimi prijatelji

    Zec je bil zelo priljubljen pri…

    Toda zavrnil je, pri čemer je dejal:

    Moral zgodbe ...

    Gumbi bodo kontrole za pripovedovanje. Sedaj se moramo prepričati, če UA podpira SpeechSynthesis vmesnik. Če želite to narediti, bomo hitro preverili, ali je v JavaScriptu okno predmet ima "sinteza govora" nepremičnine, ali ne.

     onload = function () if ('speechSynthesis' v oknu) / * sinteza govora podprta * / else / * sinteza govora ni podprta * / 

    Če sinteza govora je na voljo, najprej ustvarite referenco za sinteza govora ki jih dodeljujemo Sint spremenljivko. Smo tudi sproži zastavo z false vrednost (bomo videli njen namen pozneje), in mi ustvarite sklice in upravljalnike dogodkov za tri gumbe (Play, Pause, Stop).

    Ko uporabnik klikne enega od gumbov, svojo funkcijo (onClickPlay (), onClickPause (), onClickStop ()).

     if ('speechSynthesis' v oknu) var synth = speechSynthesis; var flag = false; / * sklici na gumbe * / var playEle = document.querySelector ('# play'); var pauseEle = document.querySelector ('# pause'); var stopEle = document.querySelector ('# stop'); / * kliknemo rokovnike dogodkov za gumbe * / playEle.addEventListener ('klik', onClickPlay); pauseEle.addEventListener ('klik', onClickPause); stopEle.addEventListener ('klik', onClickStop); funkcija onClickPlay ()  funkcija onClickPause ()  funkcija onClickStop ()  

    Ustvarite funkcije po meri

    Zdaj pa zgradite funkcije klikanja treh posameznih gumbov, ki jih bodo poklicali upravljavci dogodkov.

    1. Predvajaj / Nadaljuj

    Ko kliknemo gumb Predvajaj, najprej kliknemo preverite zastavo. Če je false, nastavili smo ga prav, tako da, če je kdaj kliknete gumb pozneje, koda znotraj prvi če pogoj ne bo izveden (ne dokler ni zastava false ponovno).

    Potem pa mi ustvarite nov primerek SpeechSynthesisUtterance vmesnik, ki vsebuje informacije o govoru, kot so besedilo, ki ga je treba prebrati, glasnost govora, glas, ki se govori, hitrost, smer in jezik govora. Dodamo besedilo članka kot parameter konstruktorja, in jo dodelite izrek spremenljivko.

     funkcija onClickPlay () if (! flag) flag = true; utterance = novo SpeechSynthesisUtterance (document.querySelector ('članek'). textContent); utterance.voice = synth.getVoices () [0]; utterance.onend = function () flag = false; ; synth.speak (izrekanje);  if (synth.paused) / * sprožitev / nadaljevanje pripovedi * / synth.resume ();  

    Uporabljamo SpeechSynthesis.getVoices () metodo določite glas za govor od glasov, ki so na voljo v uporabniški napravi. Ker ta metoda vrne niz vseh razpoložljivih glasovnih možnosti v napravi, mi dodelite prvi glas, ki je na voljo z uporabo utterance.voice = synth.getVoices () [0]; izjavo.

    The inend lastnost predstavlja upravljalnik dogodkov, ki je se izvede, ko je govor končan. V njem spreminjamo vrednost zastavo spremenljivko nazaj na false tako da kodo, ki začne govor lahko izvedete ko je gumb ponovno kliknil.

    Potem pokličemo SpeechSynthesis.speak () metodo začnite pripovedovanje. Preveriti moramo tudi če se pripoved ustavi, za katere uporabljamo samo za branje SpeechSynthesis.paused nepremičnine. Če se pripoved ustavi, moramo to storiti nadaljevanje pripovedi na klik gumba, ki ga lahko dosežemo z uporabo SpeechSynthesis.resume () metodo.

    2. Premor

    Zdaj pa ustvarimo onClickPause () funkcijo, v kateri najprej preverimo če pripoved poteka in ni zaustavljena. Te pogoje lahko testiramo z uporabo SpeechSynthesis.speaking in SpeechSynthesis.paused lastnosti. Če sta oba pogoja resnična, naša onClickPause () funkcijo začasno ustavi govor s klicem SpeechSynthesis.pause () metodo.

     funkcija onClickPause () if (synth.speaking &&! synth.paused) / * pavza naracija * / synth.pause ();  
    3. Stop

    The onClickStop () funkcija zgrajena podobno kot onClickPause (). Če govor poteka, mi prenehaj s klicem SpeechSynthesis.cancel () metodo odstrani vse izjave.

     funkcija onClickStop () if (synth.speaking) / * stop naracija * / / * za safari * / flag = false; synth.cancel ();  

    Upoštevajte, da o preklicu govora, inend dogodek samodejno sproži, in znotraj njega smo že dodali kodo za ponastavitev zastavice. Vendar pa, v brskalniku Safari je napaka ki preprečuje, da bi ta dogodek izstrelil, zato smo zastavo ponastavili v onClickStop () funkcijo. Ni vam treba storiti, če ne želite podpirati Safari.

    Podpora za brskalnik

    Vse najnovejše različice sodobnih brskalnikov imajo polno ali delno podporo za API za sintezo govora. Brskalniki Webkit ne predvajajo govora z več zavihkov, pavza je napačna (deluje, vendar je napaka) in govor se ne ponastavi, ko uporabnik ponovno naloži stran v brskalnikih Webkit.

    Delovni demo

    Oglejte si predstavitev v živo spodaj ali si oglejte celotno kodo na Githubu.

    Oglejte si Pen Ã?  ° Ã… ¸âÂ?  ?? Ã' £ Text to Speech - JavaScript by HONGKIAT (@hkdc) na CodePen.