Skripta: pretvorba besedila v govor (Google) s terminala

Danes z vami delim zelo koristen skript za pretvorbo besedila v govor z uporabo Googlovega govornega mehanizma. Glavna prednost tega skripta je, da "zaobide" 100-bajtno omejitev, ki jo je naložil Google. Pravzaprav, če sem iskren, spoštuje to omejitev, vendar samodejno pošlje vse vrstice, kar pomeni, da uporabnik te omejitve ne opazi. Najzahtevnejši pa bodo opazili, da pretvorba ni enake kakovosti kot tista, ki jo lahko dobimo v Google Translateu, predvsem zaradi te omejitve in da celotnega besedila ni mogoče predati z enim zamahom. Pozitivno je dodati, da vam ta skript omogoča tudi določitev jezika besedila, ki ga želite pretvoriti.

Po razjasnitvi poglejmo, katere korake je treba upoštevati.

koraki

1.- Ustvarite datoteko z imenom t2s.sh.

2.- Kopirajte naslednjo vsebino:

#! / bin / bash ################################## # Skripta govora Dan Fountain # # Spremenil UsemosLinux # # TalkToDanF@gmail.com # ################################## INPUT = $ * STRINGNUM = 0 arry = ($ {INPUT: 2}) echo "---------------------------" echo "Govorni scenarij Dan Fountain" echo "TalkToDanF @ gmail.com "echo" --------------------------- "za ključ v" $ {! ary [@]} "do SHORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" "LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo" beseda: $ key, $ {ary [$ tipka]} "#echo" dodajanje v: $ STRINGNUM "če [[" $ LENGTH "-lt" 100 "]]; nato #echo začenja novo vrstico SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} else STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" fi končano za ključ v vrstici "$ {! SHORT [@]}" do #echo ": $ key je: $ {SHORT [$ key]}" echo " Vrstica za igranje: $ (($ key + 1)) od $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ie = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "končano

3.- Dodelite dovoljenja za izvajanje skriptu:

sudo chmod + x t2s.sh

4.- Izvedite skript, ki se poda kot parametri: a) koda jezika, ki ustreza besedilu, b) besedilo, ki ga želite pretvoriti. Na primer:

./t2s.sh sl To je zelo zanimivo besedilo za pretvorbo.
Nasvet: Nekateri emulatorji terminalov omogočajo lepljenje besedila tako, da ga preprosto povlečete. Torej je mogoče v Firefoxu izbrati besedilo in ga povleči na terminal.

To je to, upam, da boste uživali.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Yoyo je dejal

    Kako kul, najlepša hvala 😉

    In kako čudovit glas ima deklica, mislim, da sem se zaljubila 😛

    1.    darkguzz je dejal

      Oprostite, mi lahko pomagate pri kitajščini? Ne zazna kitajskih črk, samo pinjin.

  2.   Shadow je dejal

    To je dobro kot za skript, ki preverja pošto ali za osebni alarm, ki vam ob prebujanju sporoča napoved in čakajoča sporočila xD

  3.   Yoyo je dejal

    Tu sem naredil testni video 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    uporabimo linux je dejal

      Dobro! Hvala vam!

  4.   benktroks je dejal

    Sliši se zelo dobro, namestiti sem moral le mpg123 🙂

  5.   vratar je dejal

    Cev za namestitev mpg123, vendar je kul, če ne sprejme nekaterih besed, napiše pravo tildno črko itd.

    EH EH

  6.   paul honorato je dejal

    Baza virusov je posodobljena (?)

    1.    jalbrhcp je dejal

      apt update && ./t2.sh sl Baza virusov je posodobljena

  7.   Alexander je dejal

    Hahaha Odlično, že imam nekaj uporab, senzualni glas brez dvoma =), hvala za skupno rabo.

  8.   Jorge Moratilla je dejal

    Kot uporabnik Mac OSX skripta nisem mogel uporabljati, ker nimam mpg123, zato lahko s spreminjanjem skripta in uporabo VLC omogočimo pravilno delovanje v Mac OS X.

    http://pastebin.com/C2Mkp1Qy

    1.    rolo je dejal

      težava je v tem, da vlc zagotovo ostane vklopljen in se ne zapre, ko konča izvajanje, in lahko uporabite cvlc, da preprečite odpiranje grafičnega vmesnika

      1.    rolo je dejal

        bi se dalo
        cvlc –predvajanje-in-izhod «https://translate.google.com/translate_tts?tl=$[$key]}»
        tako da se ob koncu razmnoževanja zapre

  9.   neysonv je dejal

    Živjo fantje, dobil sem to napako, poglejmo, če mi kdo pove, v čem je težava
    Vrstica za igranje: 1 od 1
    Zahteva HTTP ni uspela: 404 ni mogoče najti
    [mpg123.c: 610] napaka: Dostop do vira http http://translate.google.com/translate_tts?tl=hola&q= neuspeli.

    1.    neysonv je dejal

      [koda] Vrstica predvajanja: 1 od 1
      Zahteva HTTP ni uspela: 404 ni mogoče najti
      [mpg123.c: 610] napaka: Dostop do vira http http://translate.google.com/translate_tts?tl=hola&q= neuspeli. [/ Koda]

    2.    uporabimo linux je dejal

      Težava je v tem, da skript uporabljate napačno.
      Ko ga zaženete, morate kot prvi parameter predati jezik besedila, kot je prikazano v primeru v prispevku.
      Dajem vam še en primer:
      ./t2s.sh v To je preprost primer.
      Upoštevajte, da za ts2.sh sledi "en" (kar pomeni "angleščina", to je angleščina). Za španščino uporabite "es" in nato besedno zvezo v jeziku, ki ga želite pretvoriti.
      Objem! Paul.

  10.   anonimen je dejal

    poznate ukaz za govor ne? hehe

    espeak -v is-the «hello»

    1.    uporabimo linux je dejal

      Da, vendar ne enako. Ta glas je toliko boljši. 🙂

      1.    notanonim je dejal

        se strinjamo!
        Lep pozdrav!

  11.   Sara je dejal

    Za tiste, ki imajo težave z mpg123 -q ali pa jim ni všeč, lahko preklopite na mplayer

    mpg123 -q «http://translate.google.com/translate_tts?tl=$[1íritu&q=$[KRATKO[$key]}»

    mplayer «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]}»

    1.    Guido je dejal

      Boljši "mplayer - resnično tih", tako da izhod ne zapolni z besedilom

  12.   Jonathan je dejal

    Zelo dobra ideja, da za svoje aplikacije uporabljam google, mi ustreza kot rokavice.
    http://github.com/alfa30/t2v

  13.   darkguzz je dejal

    Še eno vprašanje; Bi mi lahko kdo povedal, kako posneti izhodni zvok ???

    1.    Jose GDF je dejal

      Odgovorim vam sam, ker sem pravkar dobil. Z uporabo mpg123 sem spremenil vrstico 38 skripta, videti tako:

      mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$íritu1lah&q=$[KRATKO[$key]}»

      Dodal sem -w audio.wav. To ustvari datoteko wav z zvokom besedne zveze, vendar je, ko sem jo pustil, ni slišati. Če želite tudi slišati besedno zvezo, morate dodati še eno vrstico. Oba bi bila videti takole:

      mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[KRATKO[$key]}» &
      mpg123 -q «http://translate.google.com/translate_tts?tl=$[1íritu&q=$[KRATKO[$key]}»

      Zagotovo bi to lahko storili na drug bolj učinkovit in čist način, vendar vsaj zame deluje.

      1.    darkguzz je dejal

        Odlično José GDF, preizkusil sem vašo metodo z zelo dobrimi rezultati, lep pozdrav.

      2.    soimična je dejal

        Če želite prihraniti promet pri drugi izvedbi, lahko reproducirate datoteko .wav, ki ste jo ustvarili v prvi izvedbi

      3.    Jose GDF je dejal

        No ja, z uporabo predvajalnika, ki smo ga namestili. Na primer, pri predvajalniku VLC bi bilo:

        vlc-avdio.wav

        No, kdo pravi vlc, pravi kateri koli drug igralec, vključno s tistimi, ki delujejo prek terminala.

        Da bi se izognili prepisovanju datoteke vsakič, ko uporabite skript, je za ime treba uporabiti spremenljivko. Ime, ki bi ga uporabnik dal (preberi ukaz), preden začne ... Ampak to bi bilo kodranje curla 😀

  14.   drako je dejal

    Naredil sem to v PHP (za ustvarjanje zvoka za telefonski sistem Asterisk *)


    $ url = 'http://translate.google.com/translate_tts?ie=UTF-8&q={poizvedba}% 0A & tl = je & prev = input ';

    if (count ($ argv) <= 1) {
    $ ime = osnovno ime ($ argv [0]);
    die ($ name. 'uporaba:'. $ ime. '
    }
    array_shift ($ argv);
    $ poizvedba = implode ('', $ argv);
    $ ime datoteke = str_replace (matrika ('', ',', '.'), '-', $ poizvedba);
    $ ime datoteke = str_replace ('-', '-', $ ime datoteke);

    $ url = str_replace ('{poizvedba}', rawurlencode ($ poizvedba), $ url);
    $ ch = curl_init ();
    curl_setopt ($ ch, CURLOPT_URL, $ url);
    curl_setopt ($ ch, CURLOPT_HEADER, 0);
    curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, resnično);
    $ rezultat = curl_exec ($ ch);
    curl_close ($ ch);

    $ pot = getcwd (). '/'. $ ime datoteke;
    file_put_contents ($ pot. '. mp3', $ rezultat);
    @exec ("sox {$ path} .mp3 -b 16 -r 8000 -t wavpcm {$ path} .wav");
    @unlink ($ path. '. mp3');

    1.    darkguzz je dejal

      Kako pa je, da sem s tem ukazom že uspel posneti izhodni zvok:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      in na koncu ctrl + c, da ustavite snemanje.

      Nikoli nisem uporabljal php
      Toda med tekom:
      php5 text-to-speech.php je Pozdravljeni
      konsola gosti to:
      formati sox FAIL: ni vodnika za pripono datoteke `mp3 '

      Vsak prispevek je zelo cenjen, poskusil bom kasneje.

  15.   Kirian je dejal

    2 aplikaciji za Googlov jezikovni prevajalec + prevajanje besedila v govor:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José je dejal

    Mislim, da je to najboljši način za pretvorbo, glas ni tako slab kot druge možnosti za Linux> _
    Ali obstaja način, da se prebere navadna besedilna datoteka?
    Zelo koristno bi bilo pretvoriti celotne knjige v zvok

  17.   čuflas je dejal

    No, ne vem zakaj, to se izkaže:

    xxxxx: ~ / Documents / Linux $ ./t2s.sh je pozdravljen

    ---------
    Govorni scenarij Dan Fountain
    TalkToDanF@gmail.com
    ---------
    Vrstica za igranje: 1 od 1
    http_open: HTTP / 1.0 400 Bad Request
    http://translate.google.com: Takšne datoteke ali imenika ni

    Nameščen je mpg123, naredil sem majhne teste in nič ... Hvala vnaprej

  18.   Ignacio Cruz Martinez je dejal

    Hej, ta scenarij mi je zelo služil, tako za poslušanje zvoka kot za snemanje besed prevajalca.

    Pravzaprav sem priredil skript, da ga prilagodim potrebam: Spremenim seznam besed v besedilu (lemario) v govor; shrani moj glas v wav, pretvori v ogg in jih poimenuj glede na prebrano besedo.

    To sem naredil v KDE s pomočjo Kdialoga, da določim pot, kjer je datoteka s seznamom besed in imenik, kamor želim shraniti glasovni zvok.

    Ko je pretvorba iz WAV v OGG končana, ustvari dve mapi, kjer se shranita wav na eni strani in ogg na drugi strani.

    Sprva me je razjezilo, ker besed s poudarki ni pravilno prebral, vendar sem ugotovil, da morate v kodo dodati "es & ie = UTF8". Za trenutek sem pozabil kodiranje znakov.

    Kodo skripta, ki sem ga naredil, pustim, če deluje:

    #################################################### ######################

    #! / Bin / bash

    ###################################
    # Predavanje besedila v govor #
    # Priredil Ignacio Cruz Martínez #
    # pošta je tajna xD #
    ###################################

    V pogovornem oknu #KDE določite pot in ime lemarije
    soyunarchivo = $ (kdialog –inputbox «Vnesite pot in ime datoteke (s pripono, če jo ima):»)

    Pogovorno okno #KDE za določitev ciljne mape za glasovne datoteke
    pot = $ (kdialog –inputbox «Vnesite pot, da shranite glasovni zvok:»)

    # skozi cat se preberejo vse vrstice besedilne datoteke, vsaka vrstica je sestavljena iz ene besede
    za i v $ (cat $ soyunfile)
    do
    echo $ i

    # pretvorba v govor s pomočjo google translate, ne pozabite na kodiranje, tako da bere naglas
    mpg123 -q -w "$ pot" $ i.wav "http://translate.google.com/translate_tts?tl=es&ie=UTF8&q=$i"
    mpg123 -q "http://translate.google.com/translate_tts?tl=es&ie=UTF8&q=$i"

    # z uporabo ffmpeg za pretvorbo wav datotek v ogg
    ffmpeg -i "$ path" $ i.wav -acodec libvorbis "$ path" $ i.ogg
    opravljeno

    #s temi vrsticami so mape ustvarjene za organiziranje glasovnih datotek v WAV ali OGG
    mkdir "$ pot" WAV
    mv "$ pot" *. wav "$ pot" WAV

    mkdir "$ pot" OGG
    mv "$ pot" *. ogg "$ pot" OGG

    Pogovorno okno #KDE, ​​ki označuje, da je opravilo končano
    kdialog –msgbox 'Proces je zaključen'

    #################################################### ####################

    Ali ima kdo od vas znanje o licenci za uporabo ustvarjenih glasovnih datotek?

    Omejitve glede avtorskih pravic in sorodnih stvari. To me zanima, ker nameravam uporabiti nekatere od teh glasovnih datotek za podporo ljudem, ki bodo postali pismeni, v bistvu gre za neprofitni projekt.

    In to je, da ima to orodje najboljšo intonacijo za španski jezik, žal v Linuxu ni nič podobnega. Mbrola mi je dal veliko težav pri ustanovitvi skupaj z Gespeakerjem.

    Hvala in se vidimo.

    1.    uporabimo linux je dejal

      Pojma nimam ... bi si moral ogledati licence za Google Translator.

  19.   Armando je dejal

    Skript zame ni deloval, očitno gre za težavo, povezano z URL-jem, za tiste, ki jih to zanima, je to pravi URL:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   lol je dejal

    Zdravo! Naredil sem teste z vašim skriptom in pri njegovem izvajanju mi ​​je rekel, da ne najde zvoka, zato sem vnesel URL in zdi se, da je gospod Google dal captcha ...

  21.   ' je dejal

    posodobite skript