Skript: převod textu na řeč (Google) z terminálu

Dnes s vámi sdílím velmi užitečný skript pro převod textu na řeč pomocí řečového modulu Google. Hlavní výhodou tohoto skriptu je, že „obchází“ limit 100 bajtů uložený společností Google. Ve skutečnosti, abych byl upřímný, tento limit respektuje, ale automaticky odesílá všechny řádky, což znamená, že toto omezení uživatel nepozoruje. Ti nejnáročnější si ale všimnou, že konverze není stejně kvalitní jako ta, kterou můžeme získat v Google Translate, hlavně kvůli tomuto limitu a že není možné předat celý text jedním tahem. Pozitivní je třeba dodat, že tento skript také umožňuje určit jazyk převáděného textu.

Po objasnění se podívejme, jaké kroky je třeba dodržet.

kroky

1.- Vytvořte soubor s názvem t2s.sh.

2.- Zkopírujte následující obsah:

#! / bin / bash ################################### # Speech Script od Dan Fountain # # Modified by UsemosLinux # # TalkToDanF@gmail.com # ################################## INPUT = $ * STRINGNUM = 0 ary = ( $ {VSTUP: 2}) echo "---------------------------" echo "Speech Script od Dan Fountain" echo "TalkToDanF @ gmail .com „echo“ --------------------------- pro klíč v „$ {! ary [@]}“ do KRÁTKÉHO [$ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "slovo: $ key, $ {ary [$ key ]} "#echo" přidání do: $ STRINGNUM "pokud [[" $ LENGTH "-lt" 100 "]]; pak #echo spuštění nového řádku SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} else STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" hotovo pro klíč v řádku „$ {! SHORT [@]}" do #echo ": $ key je: $ {SHORT [$ key]}" echo " Hrací linie: $ (($ key + 1)) z $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ie = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "hotovo

3.- Udělte oprávnění ke spuštění skriptu:

sudo chmod + x t2s.sh

4.- Proveďte předávání skriptu jako parametry: a) kód jazyka odpovídající textu, b) text, který má být převeden. Například:

./t2s.sh cs Tento text je velmi zajímavý k převodu.
Tip: některé terminálové emulátory umožňují vkládat text pouhým přetažením. Je tedy možné vybrat text ve Firefoxu a přetáhnout jej do terminálu.

To je vše, doufám, že se vám bude líbit.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Yoyo řekl

    Jak skvělé, děkuji moc 😉

    A jaký krásný hlas má ta dívka, myslím, že jsem se zamiloval 😛

    1.    darkguzz řekl

      Promiňte, můžete mi pomoci s čínštinou? Nezjistí čínské znaky, pouze pchin-jin.

  2.   Stín řekl

    To je dobré jako u skriptu, který kontroluje poštu, nebo u osobního alarmu, který vám při probuzení řekne předpověď a čekající zprávy xD

  3.   Yoyo řekl

    Zde jsem vytvořil testovací video 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    pojďme použít linux řekl

      Dobrý! Děkuji!

  4.   Benctrox řekl

    Zní to velmi dobře, stačilo mi nainstalovat mpg123 🙂

  5.   Portaro řekl

    Tube pro instalaci mpg123, ale je skvělé, že pokud nepřijme některá slova, říká správné písmeno vlnovky atd.

    EH EH

  6.   paul honorato řekl

    Virová databáze byla aktualizována (?)

    1.    jalbrhcp řekl

      apt update && ./t2.sh cs Virová databáze byla aktualizována

  7.   Alexander řekl

    Hahaha Výborně, už pro to mám nějaké využití, bezpochyby smyslný hlas =), děkuji za sdílení.

  8.   Jorge Moratilla řekl

    Jako uživatel systému Mac OSX pro mě nebylo možné použít skript, protože nemám mpg123, takže úpravou skriptu a použitím VLC jej můžeme nechat správně fungovat v systému Mac OS X.

    http://pastebin.com/C2Mkp1Qy

    1.    Rolo řekl

      problém je v tom, že vlc určitě zůstane zapnutý a nezavírá se po dokončení provádění a můžete použít cvlc, abyste zabránili otevření grafického rozhraní

      1.    Rolo řekl

        dalo by se to říct
        cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$[$key]}»
        tak, že se zavře na konci reprodukce

  9.   neysonv řekl

    Ahoj kluci, dostávám tuto chybu, uvidíme, jestli mi někdo řekne, v čem je problém
    Hrací linie: 1 z 1
    HTTP požadavek se nezdařil: 404 nebyl nalezen
    [mpg123.c: 610] chyba: Přístup ke zdroji http http://translate.google.com/translate_tts?tl=hola&q= selhal.

    1.    neysonv řekl

      [kód] Hrací linie: 1 z 1
      HTTP požadavek se nezdařil: 404 nebyl nalezen
      [mpg123.c: 610] chyba: Přístup ke zdroji http http://translate.google.com/translate_tts?tl=hola&q= selhal. [/ kód]

    2.    pojďme použít linux řekl

      Problém je v tom, že používáte skript špatně.
      Když jej spustíte, musíte předat jazyk textu jako první parametr, jak je znázorněno v příkladu v příspěvku.
      Dám vám další příklad:
      ./t2s.sh v Toto je jednoduchý příklad.
      Všimněte si, že po ts2.sh následuje „en“ (což znamená „anglicky“, tj. Anglicky). U španělštiny použijte „es“ a poté frázi v jazyce, který chcete převést.
      Objetí! Pavel.

  10.   anonymní řekl

    znáte příkaz mluvit ne? hehe

    espeak -v je «ahoj»

    1.    pojďme použít linux řekl

      Ano, ale ne totéž. Tento hlas je mnohem lepší. 🙂

      1.    anonymní poznámka řekl

        souhlasíme!
        Zdravím!

  11.   Sara řekl

    Pro ty, kteří mají problémy s mpg123 -q nebo se jim nelíbí, můžete přepnout 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 řekl

      Lepší „mplayer – opravdu tichý“, takže nevyplňuje výstup textem

  12.   Jonathan řekl

    Velmi dobrý nápad použít google pro mé aplikace mi vyhovuje jako ulitý.
    http://github.com/alfa30/t2v

  13.   darkguzz řekl

    Ještě jedna otázka; Mohl by mi někdo říct, jak nahrávat výstupní zvuk ???

    1.    Jose GDF řekl

      Odpovídám vám sám, protože jsem to právě dostal. Pomocí mpg123 jsem upravil řádek 38 skriptu a vypadal takto:

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

      Přidal jsem -w audio.wav. Tím se vytvoří soubor wav se zvukem fráze, ale jak jsem ji opustil, není slyšet. Pokud chcete frázi slyšet také, budete muset přidat další řádek. Oba byste vypadali takto:

      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]}"

      Určitě by to mohlo být provedeno jiným efektivnějším a čistším způsobem, ale alespoň to funguje pro mě.

      1.    darkguzz řekl

        Vynikající José GDF, vyzkoušel jsem vaši metodu s velmi dobrými výsledky, pozdravy.

      2.    sojový řekl

        Chcete-li ušetřit provoz při druhém spuštění, můžete reprodukovat .wav, který jste vygenerovali v prvním

      3.    Jose GDF řekl

        Ano, pomocí přehrávače, který jsme nainstalovali. Například s VLC Player by to bylo:

        vlc-audio.wav

        Kdo říká vlc, říká jakýkoli jiný hráč, včetně těch, kteří pracují pomocí terminálu.

        A aby nedošlo k přepsání souboru při každém použití skriptu, měla by se pro název použít proměnná. Jméno, které uživatel zadá (příkaz pro čtení) před spuštěním ... Ale to by zvlnění zvlnění 😀

  14.   drako řekl

    Udělal jsem to v PHP (k vytvoření audia pro telefonní 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]);
    die ($ name. 'usage:'. $ name. '
    }
    array_shift ($ argv);
    $ query = implode ('', $ argv);
    $ název souboru = str_replace (pole ('', ',', '.'), '-', $ dotaz);
    $ název souboru = str_replace ('-', '-', $ název souboru);

    $ 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, true);
    $ result = curl_exec ($ ch);
    curl_close ($ ch);

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

    1.    darkguzz řekl

      A co já jsem již dokázal zaznamenat výstupní zvuk pomocí tohoto příkazu:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      a na konci ctrl + c nahrávání zastaví.

      Nikdy jsem nepoužíval php
      Ale při běhu:
      php5 text-to-speech.php je Dobrý den
      konsola hostí toto:
      formáty sox FAIL: žádný obslužný program pro příponu souboru `mp3 ′

      Jakýkoli příspěvek si velmi ceníme, zkusím to znovu později.

  15.   Kirian řekl

    2 aplikace pro překladač jazyků Google + překlad textu na řeč:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José řekl

    Myslím, že je to nejlepší způsob převodu, hlas není tak špatný jako ostatní možnosti pro Linux> _
    Existuje způsob, jak jej donutit číst prostý textový soubor?
    Bylo by velmi užitečné převést celé knihy na zvuk

  17.   chuflas řekl

    No, nefunguje mi to, nevím proč, toto vyjde:

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

    ---------
    Skript řeči od Dan Fountain
    TalkToDanF@gmail.com
    ---------
    Hrací linie: 1 z 1
    http_open: HTTP / 1.0 400 Špatný požadavek
    http://translate.google.com: Žádný takový soubor nebo adresář

    Mám nainstalovaný mpg123 a udělal jsem malé testy a nic…. Díky předem

  18.   Ignacio Cruz Martinez řekl

    Dobrý den, tento skript mi ​​velmi dobře posloužil, a to jak k poslechu zvuku, tak k záznamu slov překladatele.

    Ve skutečnosti jsem upravil skript tak, aby se přizpůsobil potřebám, které mám: Transformovat seznam slov v textu (lemario) na řeč; uložit můj hlas do wav, převést na ogg a pojmenovat je podle přečteného slova.

    Udělal jsem to v KDE pomocí Kdialogu, abych určil cestu, kde je soubor se seznamem slov, a adresář, kam chci uložit hlasový zvuk.

    Po dokončení převodu WAV na OGG vytvoří dvě složky, kde jsou uloženy wav na jedné straně a ogg na druhé straně.

    Nejprve mě to rozzlobilo, protože to nečetlo slova s ​​diakritikou správně, ale zjistil jsem, že musíte do kódu přidat „es & ie = UTF8“. Na chvíli jsem zapomněl kódování znaků.

    Nechám vám kód skriptu, který jsem vytvořil pro případ, že vám pomůže:

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

    #! / bin / bash

    ####################################
    # Přednáška převodu textu na řeč #
    # Upraveno Ignacio Cruz Martínezem #
    # pošta je tajná xD #
    ####################################

    Dialogové okno #KDE k určení cesty a názvu lemmarie
    soyunarchivo = $ (kdialog –inputbox «Zadejte cestu a název souboru (s příponou, pokud ji má):»)

    Dialogové okno #KDE k určení cílové složky pro hlasové soubory
    path = $ (kdialog –inputbox «Zadejte cestu pro uložení hlasového zvuku:»)

    # přes kočku se načtou všechny řádky textového souboru, každý řádek se skládá z jednoho slova
    pro i v $ (cat $ soyunfile)
    do
    ozvěna $ i

    # převod do řeči pomocí google translate, nezapomeňte na kódování, aby bylo možné číst 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žití ffmpeg k převodu souborů wav na ogg
    ffmpeg -i "$ cesta" $ i.wav -acodec libvorbis "$ cesta" $ i.ogg
    hotový

    #s těmito řádky se vytvářejí složky k uspořádání hlasových souborů ve formátu WAV nebo OGG
    mkdir "$ cesta" WAV
    mv "$ cesta" *. wav "$ cesta" WAV

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

    Dialogové okno #KDE označující dokončení úlohy
    kdialog –msgbox 'Proces ukončen'

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

    Máte nyní někdo z vás znalosti o licenci k používání generovaných hlasových souborů?

    Omezení autorských práv a souvisejících věcí. To mě zajímá, protože plánuji použít některé z těchto hlasových souborů na podporu lidí, kteří se stanou gramotnými, v zásadě se jedná o neziskový projekt.

    A je to tak, že tento nástroj má nejlepší intonaci pro španělský jazyk, bohužel v Linuxu nic podobného neexistuje. Mbrola mi dal spoustu potíží zařídit společně s Gespeakerem.

    Díky a uvidíme se.

    1.    pojďme použít linux řekl

      Žádný nápad ... musel bych se podívat na licence překladače Google.

  19.   Armando řekl

    Skript pro mě nefungoval, zjevně jde o problém související s URL, pro ty, kteří mají zájem, je to správná URL:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   lol řekl

    Ahoj! Dělám testy s vaším skriptem a při jeho provádění mi řekl, že nemohl najít zvuk, takže jsem zadal URL a zdá se, že pan Google vložil captcha ...

  21.   ' řekl

    aktualizujte skript