Skript: prevod textu na reč (Google) z terminálu

Dnes s vami zdieľam veľmi užitočný skript na prevod textu na reč pomocou rečového nástroja spoločnosti Google. Hlavnou výhodou tohto skriptu je, že „obchádza“ limit 100 bajtov uložený spoločnosťou Google. Úprimne povedané, tento limit dodržiava, ale všetky riadky odosiela automaticky, čo znamená, že toto obmedzenie si používateľ nevšimne. Tí najnáročnejší si však všimnú, že konverzia nie je v takej kvalite ako tá, ktorú môžeme získať v Google Translate, hlavne kvôli tomuto limitu a že nie je možné odovzdať celý text naraz. Pozitívne je potrebné dodať, že tento skript tiež umožňuje určiť jazyk textu, ktorý sa má prevádzať.

Po objasnení sa pozrime, aké sú kroky, ktoré treba podniknúť.

kroky

1. - Vytvorte súbor s názvom t2s.sh.

2. - Skopírujte nasledujúci obsah:

#! / bin / bash ################################## # Skript reči od Dan Fountain # # Upravené UsemosLinuxom # # TalkToDanF@gmail.com # ################################### INPUT = $ * STRINGNUM = 0 ary = ($ {VSTUP: 2}) echo "---------------------------" echo "Skript reči od Dan Fountain" echo "TalkToDanF @ gmail.com „echo“ --------------------------- „pre zadanie výrazu„ $ {! ary [@]} “urobte KRÁTKYTM [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "slovo: $ key, $ {ary [$ key]} "#echo" pridávanie do: $ STRINGNUM "ak [[" $ LENGTH "-lt" 100 "]]; potom #echo začatie nového riadku KRÁTKY [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} iný STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" KRÁTKY [ $ STRINGNUM] = "$ {ary [$ key]}" je hotovo pre kľúč v riadku „$ {! SHORT [@]}" do #echo ": $ key je: $ {SHORT [$ key]}" echo " Hracia línia: $ (($ key + 1)) z $ (($ STRINGNUM + 1)) „mplayer“ http://translate.google.com/translate_tts? tj = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "hotovo

3. - Udelte oprávnenie na vykonávanie skriptu:

sudo chmod + x t2s.sh

4. - Vykonajte skript prechádzajúci ako parametre: a) kód jazyka zodpovedajúci textu, b) text, ktorý sa má konvertovať. Napríklad:

./t2s.sh sk Je to veľmi zaujímavý text na konverziu.
Tip: niektoré terminálové emulátory vám umožňujú vkladať text jednoduchým ťahaním. Je teda možné zvoliť text vo Firefoxe a presunúť ho do terminálu.

To je všetko, dúfam, že sa vám bude páčiť.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   yoyo dijo

    Aké super, ďakujem pekne 😉

    A aký krásny hlas má dievča, myslím, že som sa zamilovala 😛

    1.    darkguzz dijo

      Prepáčte, môžete mi pomôcť s čínštinou? Nezistí čínske znaky, iba pchin-jin.

  2.   tieň dijo

    Je to dobré ako pre skript, ktorý kontroluje poštu, alebo pre osobný alarm, ktorý vám po prebudení oznámi predpoveď a čakajúce správy xD

  3.   yoyo dijo

    Tu som natočil testovacie video 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    pouzivajme linux dijo

      Dobre! Ďakujem!

  4.   bencrox dijo

    Znie to veľmi dobre, stačilo mi nainštalovať iba mpg123 🙂

  5.   vrátnik dijo

    Tube na inštaláciu mpg123, ale je super, že ak neprijme nejaké slová, napíše správne vlnovkové písmeno atď.

    EH EH

  6.   Paul Honorato dijo

    Vírusová databáza bola aktualizovaná (?)

    1.    jalbrhcp dijo

      apt update && ./t2.sh sk Vírusová databáza bola aktualizovaná

  7.   Alexander dijo

    Hahaha Výborne, už na to mám nejaké využitie, zmyselný hlas nepochybne =), vďaka za zdieľanie.

  8.   Jorge Moratilla dijo

    Ako používateľ systému Mac OSX pre mňa nebolo možné používať skript, pretože nemám mpg123, takže úpravou skriptu a použitím VLC ho môžeme nechať správne fungovať v systéme Mac OS X.

    http://pastebin.com/C2Mkp1Qy

    1.    rolo dijo

      problém je v tom, že vlc určite zostane zapnutý a po ukončení vykonávania sa nezavrie a môžete použiť cvlc na zabránenie otvorenia grafického rozhrania

      1.    rolo dijo

        dalo by sa to povedať
        cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$ái1-lex.europa.eu&q=$[SHORT[$key]}»
        aby sa uzavrela na konci reprodukcie

  9.   neysonv dijo

    Ahojte chlapci, zobrazuje sa mi táto chyba, uvidíme, či mi niekto povie, v čom je problém
    Hracia čiara: 1 z 1
    HTTP požiadavka zlyhala: 404 sa nenašiel
    Chyba [mpg123.c: 610]: Prístup k prostriedku http http://translate.google.com/translate_tts?tl=hola&q= zlyhali.

    1.    neysonv dijo

      [kód] Hracia čiara: 1 z 1
      HTTP požiadavka zlyhala: 404 sa nenašiel
      Chyba [mpg123.c: 610]: Prístup k prostriedku http http://translate.google.com/translate_tts?tl=hola&q= zlyhali. [/ kód]

    2.    pouzivajme linux dijo

      Problém je v tom, že používate skript nesprávne.
      Pri jeho spustení musíte zadať jazyk textu ako prvý parameter, ako je uvedené v príklade v príspevku.
      Dám ti ďalší príklad:
      ./t2s.sh v Toto je jednoduchý príklad.
      Všimnite si, že za ts2.sh nasleduje „en“ (čo znamená „anglický“, teda anglický). Pre španielčinu použite „es“ a potom frázu v jazyku, ktorý chcete previesť.
      Objať! Pavla.

  10.   anonymný dijo

    poznáte príkaz hlasu nie? hehe

    espeak -v je «ahoj»

    1.    pouzivajme linux dijo

      Áno, ale nie to isté. Tento hlas je oveľa lepší. 🙂

      1.    anonymná poznámka dijo

        súhlasíme!
        Zdravím!

  11.   sara dijo

    Pre tých, ktorí majú problémy s mpg123 -q alebo sa im nepáči, môžete prepnúť na 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 dijo

      Lepší „mplayer –skutočne tichý“, takže nevypĺňa výstup textom

  12.   Jonathan dijo

    Veľmi dobrý nápad použiť pre svoje aplikácie google mi vyhovuje ako uliate.
    http://github.com/alfa30/t2v

  13.   darkguzz dijo

    Ešte jedna otázka; Mohol by mi niekto povedať, ako zaznamenať výstupný zvuk ???

    1.    Jose GDF dijo

      Sám ti odpovedám, pretože som to práve dostal. Pomocou mpg123 som upravil riadok 38 skriptu a vyzeral takto:

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

      Pridal som -w audio.wav. Takto sa vytvorí súbor wav so zvukom frázy, ale ako som už uviedol, nie je ho počuť. Ak chcete tiež počuť frázu, musíte pridať ďalší riadok. Obaja by ste vyzerali takto:

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

      Určite by sa to dalo urobiť iným efektívnejším a čistejším spôsobom, ale aspoň to funguje pre mňa.

      1.    darkguzz dijo

        Vynikajúci José GDF, vyskúšal som vašu metódu s veľmi dobrými výsledkami, zdravím vás.

      2.    sójový dijo

        Ak chcete ušetriť prenos pri druhom spustení, môžete reprodukovať súbory .wav, ktoré ste vygenerovali pri prvom spustení

      3.    Jose GDF dijo

        Áno, pomocou prehrávača, ktorý sme nainštalovali. Napríklad s VLC Player by to bolo:

        vlc-audio.wav

        Kto povie vlc, povie ktorýkoľvek iný hráč, vrátane tých, ktorí pracujú pomocou terminálu.

        Aby nedošlo k prepísaniu súboru pri každom použití skriptu, mala by sa pre názov použiť premenná. Meno, ktoré by používateľ dal (príkaz na čítanie) pred spustením ... To by však zvlnilo zvlnenie 😀

  14.   drako dijo

    Urobil som to v PHP (aby som vytvoril audio pre telefónny systém Asterisk *)


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

    if (count ($ argv) <= 1) {
    $ name = basename ($ argv [0]);
    zomrieť ($ name. 'použitie:'. $ name. '
    }
    array_shift ($ argv);
    $ query = implode ('', $ argv);
    $ názov súboru = str_replace (pole ('', ',', '.'), '-', $ dopyt);
    $ názov súboru = str_replace ('-', '-', $ názov súboru);

    $ url = str_replace ('{query}', rawurlencode ($ query), $ url);
    $ ch = curl_init ();
    curl_setopt ($ ch, CURLOPT_URL, $ url);
    curl_setopt ($ ch, CURLOPT_HEADER, 0);
    curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, pravda);
    $ výsledok = curl_exec ($ ch);
    curl_close ($ ch);

    $ path = getcwd (). '/'. $ názov súboru;
    file_put_contents ($ path. '. mp3', $ result);
    @exec ("sox {$ cesta} .mp3 -b 16 -r 8000 -t wavpcm {$ cesta} .wav");
    @unlink ($ cesta. '. mp3');

    1.    darkguzz dijo

      Čo tak sa mi už podarilo zaznamenať výstupný zvuk pomocou tohto príkazu:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      a na konci ctrl + c zastavíte nahrávanie.

      Nikdy som nepoužíval php
      Ale pri behu:
      php5 prevod textu na reč.php je Dobrý deň
      konsola hostí toto:
      formáty sox FAIL: žiadny obslužný program pre príponu súboru `mp3 ′

      Akýkoľvek príspevok si veľmi vážime, skúsim to znova neskôr.

  15.   Kirian dijo

    2 aplikácie pre prekladač jazykov Google + preklad textu na reč:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José dijo

    Myslím, že je to najlepší spôsob prevodu, hlas nie je taký zlý ako ostatné možnosti pre Linux> _
    Existuje spôsob, ako ho donútiť čítať textový súbor?
    Bolo by veľmi užitočné prevádzať celé knihy do zvuku

  17.   chuflas dijo

    No nefunguje mi to, neviem prečo, toto vychádza:

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

    ---------
    Skript reči, ktorý napísal Dan Fountain
    TalkToDanF@gmail.com
    ---------
    Hracia čiara: 1 z 1
    http_open: HTTP / 1.0 400 Chybná požiadavka
    http://translate.google.com: Súbor alebo adresár neexistuje

    Mám nainštalovaný mpg123 a urobil som malé testy a nič .... Vopred ďakujem

  18.   Ignacio Cruz Martinez dijo

    Dobrý deň, tento scenár mi poslúžil veľmi dobre, a to ako na počúvanie zvuku, tak na zaznamenávanie slov prekladateľa.

    V skutočnosti som upravil skript tak, aby som ho prispôsobil potrebám, ktoré mám: Transformovať zoznam slov v texte (lemario) na reč; uložiť môj hlas do wav, previesť na ogg a pomenovať ich podľa prečítaného slova.

    Urobil som to v KDE pomocou Kdialogu, aby som určil cestu, kde je súbor so zoznamom slov, a adresár, do ktorého chcem uložiť hlasový zvuk.

    Po dokončení konverzie WAV na OGG sa pre mňa vytvoria dva priečinky, kde sú uložené wav na jednej strane a ogg na druhej strane.

    Spočiatku som sa hneval, pretože som nečítal správne slová s prízvukmi, ale zistil som, že do kódu musíte pridať „es & ie = UTF8“. Na chvíľu som zabudol kódovanie znakov.

    Nechám vám kód skriptu, ktorý som vytvoril, keby vám pomohol:

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

    #! / Bin / bash

    #####################################
    # Prednáška prevodu textu na reč #
    # Upravil Ignacio Cruz Martínez #
    # pošta je tajná xD #
    #####################################

    Dialógové okno #KDE na určenie cesty a názvu lemmaria
    soyunarchivo = $ (kdialog –inputbox «Zadajte cestu a názov súboru (s príponou, ak ju má):»)

    Dialógové okno #KDE určuje cieľový priečinok pre hlasové súbory
    path = $ (kdialog –inputbox «Zadajte cestu na uloženie hlasového zvuku:»)

    # skrz mačku sa načítajú všetky riadky textového súboru, každý riadok sa skladá z jedného slova
    pre i v $ (cat $ soyunfile)
    do
    echo $ i

    # prevedenie na reč pomocou služby Google Translate, nezabudnite na kódovanie, aby sa v ňom nachádzali akcenty
    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"

    # použitie ffmpeg na prevod súborov wav na ogg
    ffmpeg -i "$ cesta" $ i.wav -acodec libvorbis "$ cesta" $ i.ogg
    vykonané

    #s týmito riadkami sa vytvárajú priečinky na usporiadanie hlasových súborov vo formáte WAV alebo OGG
    mkdir "$ cesta" WAV
    mv "$ cesta" *. wav "$ cesta" WAV

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

    Dialógové okno #KDE označuje, že úloha je dokončená
    kdialog –msgbox 'Proces bol ukončený'

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

    Teraz má niekto z vás vedomosti o licencii na používanie generovaných hlasových súborov?

    Obmedzenie autorských práv a súvisiacich vecí. To ma zaujíma, pretože plánujem použiť niektoré z týchto hlasových súborov na podporu ľudí, ktorí sa stanú gramotnými, v podstate ide o neziskový projekt.

    A je to tak, že tento nástroj má najlepšiu intonáciu pre španielsky jazyk, bohužiaľ v systéme Linux nič podobné neexistuje. Spoločnosť Mbrola mi dala veľa problémov, aby som ju založil spolu s Gespeakerom.

    Ďakujem a uvidíme sa.

    1.    pouzivajme linux dijo

      Netuším ... musel by som sa pozrieť na licencie Prekladača Google.

  19.   Armando dijo

    Skript pre mňa nefungoval, zjavne ide o problém súvisiaci s adresou URL, pre tých, ktorí majú záujem, je to správna adresa URL:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   lol dijo

    Ahoj! Robil som testy s vašim skriptom a pri jeho spustení mi povedal, že nemôže nájsť zvuk, takže som zadal URL a zdá sa, že pán google vložil captcha ...

  21.   ' dijo

    aktualizovať skript