Script: text către vorbire (Google) de la terminal

Astăzi vă împărtășesc un script foarte util pentru a converti textul în vorbire folosind motorul de vorbire Google. Principalul avantaj al acestui script este că „ocolește” limita de 100 de octeți impusă de Google. De fapt, pentru a fi sincer, respectă această limită, dar trimite toate liniile automat, ceea ce înseamnă că această limitare trece neobservată de utilizator. Cei mai pretențioși vor observa, totuși, că conversia nu este de aceeași calitate cu cea pe care o putem obține în Google Translate, în principal datorită acestei limite și că nu este posibil să treci întregul text dintr-o singură dată. Ca punct pozitiv, ar trebui adăugat că acest script vă permite, de asemenea, să specificați limba textului care urmează să fie convertit.

După ce am clarificat, să vedem care sunt pașii de urmat.

paşi

1. - Creați un fișier cu numele t2s.sh.

2. - Copiați următorul conținut:

#! / bin / bash ################################# # Script de vorbire de Dan Fountain # # Modificat de UsemosLinux # # TalkToDanF@gmail.com # ################################### INPUT = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) echo "---------------------------" echo "Speech Script de Dan Fountain" echo "TalkToDanF @ gmail.com "ecou" --------------------------- "pentru cheia din" $ {! ary [@]} "faceți SHORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (ecou $ {# SHORTTMP [$ STRINGNUM]}) #echo "cuvânt: $ cheie, $ {ary [$ cheie]} "#echo" adăugând la: $ STRINGNUM "dacă [[" $ LENGTH "-lt" 100 "]]; apoi #echo începe linia nouă SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} altceva STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" a fost finalizat pentru cheia din linia "$ {! SHORT [@]}" do #echo ": $ cheia este: $ {SHORT [$ key]}" ecou " Linie de joc: $ (($ key + 1)) of $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ie = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "gata

3. - Acordați permisiuni de executare pentru script:

sudo chmod + x t2s.sh

4. - Executați trecerea scriptului ca parametri: a) codul limbii corespunzătoare textului, b) textul care urmează să fie convertit. De exemplu:

./t2s.sh ro Acesta este un text foarte interesant de convertit.
Sfat: unele emulatoare de terminal vă permit să lipiți text doar glisându-l. Deci, este posibil să selectați un text în Firefox și să-l trageți la terminal.

Gata, sper să vă placă.


37 comentarii, lasă-le pe ale tale

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   yoyo el a spus

    Ce mișto, mulțumesc mult 😉

    Și ce voce frumoasă are fata, cred că m-am îndrăgostit 😛

    1.    darkguzz el a spus

      Scuzați-mă, mă puteți ajuta cu chineza? Nu detectează caractere chinezești, ci doar pinyin.

  2.   Umbră el a spus

    Acest lucru este bun ca pentru un script care verifică poșta sau pentru o alarmă personalizată care, la trezire, vă spune prognoza și mesajele în așteptare xD

  3.   yoyo el a spus

    Aici am făcut un videoclip de test 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    să folosim Linux el a spus

      Bun! Mulțumesc!

  4.   bentrox el a spus

    Sună foarte bine, a trebuit să instalez doar mpg123 🙂

  5.   porter el a spus

    A trebuit să instalez mpg123, dar a fost grozav, deci dacă nu acceptă unele cuvinte, scrie o literă corectă etc.

    EH EH

  6.   paul honorato el a spus

    Baza de date a virusului a fost actualizată (?)

    1.    jalbrhcp el a spus

      apt update && ./t2.sh ro Baza de date a virusului a fost actualizată

  7.   Alexander el a spus

    Hahaha Excelent, am deja câteva utilizări pentru ea, voce senzuală fără îndoială =), mulțumesc pentru partajare.

  8.   Jorge Moratilla el a spus

    În calitate de utilizator Mac OSX, nu mi-a fost posibil să folosesc Scriptul deoarece nu am mpg123 activat, deci modificând Scriptul și folosind VLC îl putem lăsa să funcționeze corect pe Mac OS X.

    http://pastebin.com/C2Mkp1Qy

    1.    Rolo el a spus

      problema este că vlc rămâne sigur și nu se închide când se termină executarea și puteți utiliza cvlc pentru a împiedica deschiderea interfeței grafice

      1.    Rolo el a spus

        s-ar putea pune
        cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$[$key]}»
        astfel încât să se închidă la sfârșitul reproducerii

  9.   neysonv el a spus

    Bună băieți, am această eroare, să vedem dacă cineva îmi spune care este problema
    Linia de joc: 1 din 1
    Solicitarea HTTP a eșuat: 404 Nu a fost găsit
    Eroare [mpg123.c: 610]: acces la resursa http http://translate.google.com/translate_tts?tl=hola&q= eșuatul.

    1.    neysonv el a spus

      [cod] Linia de joc: 1 din 1
      Solicitarea HTTP a eșuat: 404 Nu a fost găsit
      Eroare [mpg123.c: 610]: acces la resursa http http://translate.google.com/translate_tts?tl=hola&q= eșuatul. [/ cod]

    2.    să folosim Linux el a spus

      Problema este că utilizați scriptul greșit.
      Când îl rulați, trebuie să treceți limba textului ca prim parametru, așa cum se arată în exemplul din postare.
      Vă dau un alt exemplu:
      ./t2s.sh în Acesta este un exemplu simplu.
      Observați că după ts2.sh urmează „en” (care înseamnă „engleză”, adică engleză). Pentru spaniolă, utilizați „es” și apoi expresia în limba pe care doriți să o convertiți.
      Îmbrăţişare! Paul.

  10.   anonim el a spus

    știi comanda speak nu? hehe

    spune -v este „buna ziua”

    1.    să folosim Linux el a spus

      Da, dar nu la fel. Această voce este mult mai bună. 🙂

      1.    notă anonimă el a spus

        suntem de acord!
        Salutări!

  11.   Sara el a spus

    Pentru cei care au probleme cu mpg123 -q sau nu le place, puteți trece la mplayer

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

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

    1.    Guido el a spus

      Mai bun „mplayer – într-adevăr liniștit”, astfel încât să nu umple rezultatul cu text

  12.   Jonathan el a spus

    O idee grozavă de a folosi google pentru aplicațiile mele mi se potrivește ca o mănușă.
    http://github.com/alfa30/t2v

  13.   darkguzz el a spus

    Inca o intrebare; Ar putea cineva să-mi spună cum să înregistrez sunetul de ieșire ???

    1.    Jose GDF el a spus

      Vă răspund eu însumi, pentru că tocmai l-am obținut. Folosind mpg123, am modificat linia 38 a scriptului, arătând astfel:

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

      Am adăugat -w audio.wav. Aceasta creează un fișier wav cu sunetul expresiei, dar, după cum l-am lăsat, nu este auzit. Dacă doriți și să auziți fraza, va trebui să adăugați o altă linie. Amândoi ați arăta astfel:

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

      Cu siguranță s-ar putea face într-un alt mod mai eficient și mai curat, dar cel puțin funcționează pentru mine.

      1.    darkguzz el a spus

        Excelent José GDF, am încercat metoda ta cu rezultate foarte bune, salutări.

      2.    soimicmic el a spus

        Pentru a salva traficul în a doua execuție, puteți reproduce .wav-ul pe care l-ați generat în prima

      3.    Jose GDF el a spus

        Ei bine, da, folosind un player pe care l-am instalat. De exemplu, cu VLC Player ar fi:

        vlc-audio.wav

        Ei bine, cine spune vlc, spune orice alt jucător, inclusiv cei care funcționează prin terminal.

        Și pentru a evita suprascrierea fișierului de fiecare dată când este utilizat scriptul, ar trebui utilizată o variabilă pentru nume. Numele pe care utilizatorul l-ar pune (citiți comanda) înainte de a începe ... Dar asta ar fi curling bucla 😀

  14.   drako el a spus

    Am făcut-o în PHP (pentru a crea audio pentru un sistem de telefon Asterisk *)


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

    if (count ($ argv) <= 1) {
    $ nume = nume de bază ($ argv [0]);
    die ($ nume. 'utilizare:'. $ nume. '
    }
    array_shift ($ argv);
    $ interogare = implode ('', $ argv);
    $ nume de fișier = str_replace (matrice ('', ',', '.'), '-', $ interogare);
    $ filename = str_replace ('-', '-', $ filename);

    $ url = str_replace ('{interogare}', rawurlencode ($ interogare), $ url);
    $ ch = curl_init ();
    curl_setopt ($ ch, CURLOPT_URL, $ url);
    curl_setopt ($ ch, CURLOPT_HEADER, 0);
    curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, adevărat);
    $ result = curl_exec ($ ch);
    curl_close ($ ch);

    $ cale = getcwd (). '/'. $ nume de fișier;
    file_put_contents ($ cale. '. mp3', $ rezultat);
    @exec ("sox {$ path} .mp3 -b 16 -r 8000 -t wavpcm {$ path} .wav");
    @unlink ($ cale. '. mp3');

    1.    darkguzz el a spus

      Ce zici că am reușit deja să înregistrez sunetul de ieșire cu această comandă:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      iar la sfârșit ctrl + c pentru a opri înregistrarea.

      Nu folosisem niciodată php
      Dar când alergați:
      php5 text-to-speech.php este Hello
      konsola găzduiește acest lucru:
      formate SOX FAIL: niciun handler pentru extensia de fișier `mp3 ′

      Orice contribuție este foarte apreciată, voi încerca din nou mai târziu.

  15.   Kirian el a spus

    2 aplicații pentru traducător de limbă Google + traducere text în vorbire:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José el a spus

    Cred că este cel mai bun mod de a converti, vocea nu este la fel de rea ca și celelalte opțiuni pentru Linux> _
    Există o modalitate de a-l face să citească un fișier text simplu?
    Ar fi foarte util să convertiți cărți întregi în audio

  17.   chuflas el a spus

    Ei bine, nu funcționează pentru mine, nu știu de ce, asta iese:

    xxxxx: ~ / Documents / Linux $ ./t2s.sh este salut

    ---------
    Script de discurs de Dan Fountain
    TalkToDanF@gmail.com
    ---------
    Linia de joc: 1 din 1
    http_open: HTTP / 1.0 400 Cerere greșită
    http://translate.google.com: Nu există un astfel de fișier sau director

    Am instalat mpg123 și am făcut mici teste și nimic .... Mulțumesc anticipat

  18.   Ignacio Cruz Martinez el a spus

    Hei, acest scenariu mi-a servit foarte bine, atât pentru a asculta sunetul, cât și pentru a înregistra cuvintele traducătorului.

    De fapt, am modificat scriptul pentru al adapta la o nevoie pe care o am: Transformă o listă de cuvinte din text (lemario) în vorbire; salvați-mi vocea în wav, convertiți-o în ogg și denumiți-le conform cuvântului citit.

    Am făcut acest lucru în KDE folosind Kdialog pentru a specifica calea în care se află fișierul cu lista de cuvinte și directorul în care vreau să fie salvat sunetul vocal.

    Când se termină conversia de la WAV la OGG, se creează două foldere în care sunt salvate wav-ul pe o parte și ogg-ul pe cealaltă.

    La început m-a enervat pentru că nu citea corect cuvintele cu accente, dar am constatat că trebuie să adăugați „es & ie = UTF8” în cod. Pentru o clipă am uitat codificarea caracterelor.

    Vă las codul scriptului pe care l-am făcut în caz că vă ajută:

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

    #! / Bin / bash

    ###################################
    # Lectie text-to-speech #
    # Adaptat de Ignacio Cruz Martínez #
    # mailul este secret xD #
    ###################################

    Caseta de dialog #KDE pentru a specifica calea și numele lemarului
    soyunarchivo = $ (kdialog –inputbox «Introduceți calea și numele fișierului (cu o extensie dacă are una):»)

    Caseta de dialog #KDE pentru a specifica folderul de destinație pentru fișierele vocale
    cale = $ (kdialog –inputbox «Introduceți calea pentru a salva sunetul vocal:»)

    # prin cat se citesc toate liniile fișierului text, fiecare linie constând dintr-un singur cuvânt
    pentru i în $ (cat $ soyunfile)
    do
    ecou $ i

    # conversia la vorbire folosind Google Translate, nu uitați de codificare, astfel încât să citească accentele
    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"

    # folosind ffmpeg pentru a converti fișiere wav în ogg
    ffmpeg -i "$ path" $ i.wav -acodec libvorbis "$ path" $ i.ogg
    făcut

    #cu aceste linii, folderele sunt create pentru a organiza fișierele vocale în WAV sau OGG
    mkdir "$ path" WAV
    mv "$ path" *. wav "$ path" WAV

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

    Caseta de dialog #KDE pentru a indica finalizarea lucrării
    kdialog –msgbox „Proces terminat”

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

    Acum, aveți cineva dintre voi cunoștințe despre licența de utilizare a fișierelor vocale generate?

    Limitarea drepturilor de autor și a lucrurilor conexe. Acest lucru mă interesează, deoarece intenționez să folosesc unele dintre aceste fișiere vocale pentru a sprijini oamenii care vor deveni alfabetizați, practic este un proiect non-profit.

    Și este că acest instrument are cea mai bună intonație pentru limba spaniolă, din păcate în Linux nu există nimic similar. Mbrola mi-a dat multe probleme să mă înființez împreună cu Gespeaker.

    Mulțumesc și ne vedem.

    1.    să folosim Linux el a spus

      Nici o idee ... ar trebui să se uite la licențele Google Translator.

  19.   Armando el a spus

    Scriptul nu a funcționat pentru mine, se pare că este o problemă legată de adresa URL, pentru cei interesați aceasta este adresa URL corectă:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   laugh out Loud el a spus

    Salut! Am făcut teste cu scriptul dvs. și când l-am executat, mi-a spus că nu a putut găsi audio, așa că am introdus adresa URL și se pare că domnul google a pus un captcha ...

  21.   ' el a spus

    actualizați scriptul