Skripta: pretvaranje teksta u govor (Google) s terminala

Danas dijelim s vama vrlo korisnu skriptu za pretvaranje teksta u govor pomoću Googleove govorne mašine. Glavna prednost ove skripte je što "zaobilazi" ograničenje od 100 bajtova koje je nametnuo Google. Zapravo, da budem iskren, poštuje ovo ograničenje, ali automatski šalje sve linije, tako da to ograničenje korisnik ne primjećuje. Oni najzahtjevniji primijetit će, međutim, da pretvorba nije iste kvalitete kao ona koju možemo dobiti u Google Translateu, uglavnom zbog tog ograničenja i da nije moguće proći cijeli tekst u jednom potezu. Kao pozitivnu točku treba dodati da vam ova skripta omogućuje i određivanje jezika teksta koji će se pretvoriti.

Nakon razjašnjenja, pogledajmo koje korake treba slijediti.

koraci

1. - Stvorite datoteku s imenom t2s.sh.

2. - Kopirajte sljedeći sadržaj:

#! / bin / bash ################################## # Govorna skripta Dan Fountain # # Izmijenio UsemosLinux # # TalkToDanF@gmail.com # ################################# INPUT = $ * STRINGNUM = 0 arry = ( $ {INPUT: 2}) echo "---------------------------" echo "Govorna skripta Dan Fountain" echo "TalkToDanF @ gmail .com "echo" --------------------------- "za ključ u" $ {! ary [@]} "do SHORTTMP [$ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" "LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo" riječ: $ key, $ {ary [$ key ]} "#echo" dodavanje u: $ STRINGNUM "ako [[" $ LENGTH "-lt" 100 "]]; zatim #echo započinje novi redak SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} else STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" fi završeno za ključ u retku "$ {! SHORT [@]}" do #echo: $ key je: $ {SHORT [$ key]} "echo" Red za reprodukciju: $ (($ key + 1)) od $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ie = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "gotovo

3. - Dodijelite dozvole za izvršavanje skripte:

sudo chmod + x t2s.sh

4. - Izvršite skriptu koja prolazi kao parametri: a) kôd jezika koji odgovara tekstu, b) tekst koji treba pretvoriti. Na primjer:

./t2s.sh Ovo je vrlo zanimljiv tekst za pretvaranje.
Savjet: neki emulatori terminala omogućuju vam lijepljenje teksta jednostavnim povlačenjem. Tako je moguće odabrati tekst u Firefoxu i povući ga na terminal.

To je to, nadam se da ćete uživati.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Yoyo dijo

    Baš super, hvala puno 😉

    A kakav lijep glas ima djevojka, mislim da sam se zaljubila 😛

    1.    mrak guzz dijo

      Oprostite, možete li mi pomoći s kineskim? Ne otkriva kineske znakove, već samo pinjin.

  2.   Sjena dijo

    Ovo je dobro kao za skriptu koja provjerava poštu ili za personalizirani alarm koji vam prilikom buđenja govori predviđanje i poruke na čekanju xD

  3.   Yoyo dijo

    Ovdje sam napravio testni video video https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    poslužimo se linuxom dijo

      Dobro! Hvala vam!

  4.   benktroks dijo

    Zvuči vrlo dobro, morao sam instalirati samo mpg123 🙂

  5.   nosač dijo

    Cijev za instalaciju mpg123, ali u redu je, ako ne prihvati neke riječi, kaže pravo tildno slovo itd.

    EH EH

  6.   paul honorato dijo

    Baza virusa je ažurirana (?)

    1.    jalbrhcp dijo

      apt update && ./t2.sh hr Baza podataka o virusima je ažurirana

  7.   Aleksandar dijo

    Hahaha Izvrsno, već imam neke svrhe za to, senzualni glas bez sumnje =), hvala na dijeljenju.

  8.   Jorge Moratilla dijo

    Kao korisniku Mac OSX-a, nisam mogao koristiti skriptu, jer nemam mpg123, tako da izmjenom skripte i upotrebom VLC-a možemo ostaviti da ispravno radi u Mac OS X-u.

    http://pastebin.com/C2Mkp1Qy

    1.    Rolo dijo

      problem je u tome što vlc sigurno ostaje uključen i ne zatvara se kad završi s izvršavanjem, a vi biste mogli koristiti cvlc da spriječite otvaranje grafičkog sučelja

      1.    Rolo dijo

        moglo bi se staviti
        cvlc –igraj-i-izađi «https://translate.google.com/translate_tts?tl=$ái1-lex.europa.eu&q=$[KRATKA[$key]}»
        tako da se zatvori na kraju razmnožavanja

  9.   neysonv dijo

    Bok, dečki, dobio sam ovu pogrešku, da vidimo hoće li mi netko reći u čemu je problem
    Red igranja: 1 od 1
    HTTP zahtjev nije uspio: 404 nije pronađen
    [mpg123.c: 610] pogreška: pristup http resursu http://translate.google.com/translate_tts?tl=hola&q= propali.

    1.    neysonv dijo

      [kod] Red igranja: 1 od 1
      HTTP zahtjev nije uspio: 404 nije pronađen
      [mpg123.c: 610] pogreška: pristup http resursu http://translate.google.com/translate_tts?tl=hola&q= propali. [/ kod]

    2.    poslužimo se linuxom dijo

      Problem je u tome što skriptu koristite pogrešno.
      Kada ga pokrenete, jezik teksta morate predati kao prvi parametar, kao što je prikazano u primjeru u postu.
      Dajem vam još jedan primjer:
      ./t2s.sh u Ovo je jednostavan primjer.
      Primijetite da nakon ts2.sh slijedi "en" (što znači "engleski", odnosno engleski). Za španjolski upotrijebite "es", a zatim frazu na tom jeziku koji želite pretvoriti.
      Zagrliti! Pavao.

  10.   anoniman dijo

    znate naredbu za izgovaranje ne? hehe

    espeak -v is-the «hello»

    1.    poslužimo se linuxom dijo

      Da, ali ne isto. Ovaj je glas toliko bolji. 🙂

      1.    notanonim dijo

        slažemo se!
        Pozdrav!

  11.   Sara dijo

    Za one koji imaju problema s mpg123 -q ili ih ne vole, možete se prebaciti na mplayer

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

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

    1.    Guido dijo

      Bolji "mplayer - stvarno-tih", tako da ne ispunjava izlaz tekstom

  12.   Jonathan dijo

    Izvrsna ideja da koristim google za svoje aplikacije odgovara mi poput rukavice.
    http://github.com/alfa30/t2v

  13.   mrak guzz dijo

    Još jedno pitanje; Može li mi netko reći kako da snimim izlazni zvuk ???

    1.    Jose GDF dijo

      Odgovorim vam sam, jer sam ga upravo dobio. Koristeći mpg123, izmijenio sam redak 38 skripte, izgledajući ovako:

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

      Dodao sam -w audio.wav. Ovo stvara wav datoteku sa zvukom fraze, ali kako sam je ostavio, ona se ne čuje. Ako i vi želite čuti frazu, morat ćete dodati još jedan redak. Oboje biste izgledali ovako:

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

      Sigurno bi se to moglo učiniti na još jedan učinkovitiji i čistiji način, ali barem meni uspijeva.

      1.    mrak guzz dijo

        Izvrsni José GDF, isprobao sam vašu metodu s vrlo dobrim rezultatima, pozdrav.

      2.    soimična dijo

        Da biste uštedjeli promet u drugom izvršenju, mogli biste reproducirati .wav koji ste generirali u prvom

      3.    Jose GDF dijo

        Pa da, pomoću playera koji smo instalirali. Na primjer, s VLC Playerom to bi bilo:

        vlc-audio.wav

        Pa, tko kaže vlc, kaže bilo koji drugi igrač, uključujući one koji rade preko terminala.

        Da biste izbjegli prepisivanje datoteke svaki put kada se koristi skripta, za naziv treba koristiti varijablu. Ime koje bi korisnik stavio (pročitajte naredbu) prije pokretanja ... Ali to bi bilo uvijanje uvojka 😀

  14.   drako dijo

    Učinio sam to u PHP-u (da bih stvorio zvuk za telefonski sustav Asterisk *)


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

    if (count ($ argv) <= 1) {
    $ ime = osnovno ime ($ argv [0]);
    die ($ name. 'upotreba:'. $ name. '
    }
    pomicanje_ niza ($ argv);
    $ upit = implode ('', $ argv);
    $ filename = str_replace (niz ('', ',', '.'), '-', $ upit);
    $ filename = str_replace ('-', '-', $ filename);

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

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

    1.    mrak guzz dijo

      Kako bi bilo da sam ovom naredbom već uspio snimiti izlazni zvuk:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      i na kraju ctrl + c da zaustavite snimanje.

      Nikad nisam koristio php
      Ali kada trčite:
      php5 pretvaranje teksta u govor.php je Zdravo
      konsola ovo ugošćuje:
      formati sox FAIL: nema rukovatelja za proširenje datoteke `mp3 ′

      Svaki doprinos je jako zahvalan, pokušat ću ponovo kasnije.

  15.   kirijana dijo

    2 aplikacije za Googleov prevoditelj jezika + prijevod u govor:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José dijo

    Mislim da je to najbolji način za konverziju, glas nije toliko loš kao ostale opcije za Linux> _
    Postoji li način da se pročita čitava datoteka s običnim tekstom?
    Bilo bi vrlo korisno pretvoriti cijele knjige u audio

  17.   čuflas dijo

    Pa, to mi ne ide, ne znam zašto, ovo izlazi:

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

    ---------
    Scenarij govora Dan Fountain
    TalkToDanF@gmail.com
    ---------
    Red igranja: 1 od 1
    http_open: HTTP / 1.0 400 Loš zahtjev
    http://translate.google.com: Nema takve datoteke ili direktorija

    Instalirao sam mpg123 i napravio sam male testove i ništa ... Hvala unaprijed

  18.   Ignacio Cruz Martinez dijo

    Hej, ova skripta mi je jako dobro poslužila kako za preslušavanje zvuka, tako i za snimanje riječi prevoditelja.

    Zapravo, izmijenio sam skriptu kako bih je prilagodio potrebama koje imam: Pretvorite popis riječi u tekstu (lemario) u govor; spremi moj glas u wav, pretvori u ogg i daj im imena prema pročitanoj riječi.

    To sam učinio u KDE-u koristeći Kdialog kako bih odredio put gdje se nalazi datoteka s popisom riječi i direktorij u kojem želim da se glasovni zvuk spremi.

    Kad je konverzija iz WAV u OGG gotova, kreiraju se dvije mape u kojima se spremaju wav s jedne i ogg s druge strane.

    Isprva sam bio ljut jer nisam pravilno pročitao riječi s naglascima, ali otkrio sam da u kôd morate dodati "es & ie = UTF8". Na trenutak sam zaboravio kodiranje znakova.

    Ostavljam vam kod skripte koji sam napravio u slučaju da vam pomogne:

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

    #! / bin / bash

    ###################################
    # Predavanje teksta u govor #
    # Adaptirao Ignacio Cruz Martínez #
    # pošta je tajna xD #
    ###################################

    Dijaloški okvir #KDE za specificiranje putanje i naziva lemarija
    soyunarchivo = $ (kdialog –inputbox «Unesite put i ime datoteke (s nastavkom ako ga ima):»)

    Dijaloški okvir #KDE za određivanje odredišne ​​mape za glasovne datoteke
    path = $ (kdialog –inputbox «Unesite put za spremanje zvuka glasa:»)

    # kroz cat čitaju se svi redovi tekstualne datoteke, svaki redak sastoji se od jedne riječi
    za ja u $ (mačka $ soyunfile)
    do
    odjek $ i

    # pretvaranje u govor pomoću google translate-a, ne zaboravite kodiranje tako da čita naglaske
    mpg123 -q -w "$ path" $ 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"

    # pomoću ffmpeg za pretvaranje wav datoteka u ogg
    ffmpeg -i "$ path" $ i.wav -acodec libvorbis "$ path" $ i.ogg
    obavlja

    #s ovim redovima mape su stvorene za organiziranje glasovnih datoteka u WAV ili OGG
    mkdir "$ path" WAV
    mv "$ path" *. wav "$ path" WAV

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

    Dijaloški okvir #KDE za označavanje završetka posla
    kdialog –msgbox 'Proces je završen'

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

    Sad, ima li netko od vas znanja o licenci za korištenje generiranih glasovnih datoteka?

    Ograničenja za autorska prava i srodne stvari. To me zanima jer neke od tih glasovnih datoteka planiram koristiti za podršku ljudima koji će se opismeniti, u osnovi je to neprofitni projekt.

    I jest da ovaj alat ima najbolju intonaciju za španjolski jezik, nažalost u Linuxu nema ništa slično. Mbrola mi je zadao puno problema da uspostavim vezu s Gespeaker-om.

    Hvala i vidimo se.

    1.    poslužimo se linuxom dijo

      Nemam pojma ... morao bih pogledati licence za Google Translator.

  19.   Armando dijo

    Skripta mi nije uspjela, očito je problem povezan s URL-om, za one koje zanima ovo je ispravan URL:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   lol dijo

    Zdravo! Radio sam testove s vašom skriptom i prilikom izvršavanja, rekao mi je da ne može pronaći zvuk, pa sam unio URL i čini se da je gospodin Google stavio captcha ...

  21.   ' dijo

    ažurirajte skriptu