Script: szövegről beszédre (Google) a terminálról

Ma megosztok veletek egy nagyon hasznos szkriptet a szöveg beszéddé alakításához a Google beszédmotorjával. A szkript fő előnye, hogy "megkerüli" a Google által előírt 100 bájtos határt. Valójában, hogy őszinte legyek, tiszteletben tartja ezt a határt, de automatikusan elküldi az összes sort, ami azt jelenti, hogy ezt a korlátozást a felhasználó észre sem veszi. A legigényesebbek azonban észreveszik, hogy az átalakítás nem ugyanolyan minőségű, mint amit a Google Fordítóban megszerezhetünk, főleg ennek a korlátnak köszönhetően, és hogy a teljes szöveget nem lehet egy csapásra átadni. Pozitívumként hozzá kell tenni, hogy ez a szkript lehetővé teszi az átalakítandó szöveg nyelvének megadását is.

Miután tisztáztuk, nézzük meg, milyen lépéseket kell követni.

Steps

1. - Hozzon létre egy t2s.sh nevű fájlt.

2. - Másolja a következő tartalmat:

#! / bin / bash ##################################### # Beszédszkript: Dan Fountain # # Módosította: UsemosLinux # # TalkToDanF@gmail.com # ###################################### INPUT = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) echo "---------------------------" echo "Dan Fountain beszédfájlja" echo "TalkToDanF @ gmail.com "echo" --------------------------- "a" $ {! ary [@]} "kulcshoz írja be a SHORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "szó: $ key, $ {ary [$ kulcs]} "#echo" hozzáadása ehhez: $ STRINGNUM ", ha [[" $ LENGTH "-lt" 100 "]]; akkor #echo új sor indítása SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} további STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" fi kész a kulcshoz a "$ {! SHORT [@]}" do #echo "sorban: $ kulcs: $ {SHORT [$ key]}" visszhang " Lejátszási sor: $ (($ kulcs + 1)) / $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? azaz = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "kész

3. - Engedélyek megadása a szkript számára:

sudo chmod + x t2s.sh

4. - Paraméterként hajtsa végre a szkriptet: a) a szövegnek megfelelő nyelvi kódot, b) az átalakítandó szöveget. Például:

./t2s.sh hu Ez nagyon érdekes szöveg, amelyet konvertálni lehet.
Tipp: Egyes terminálemulátorok lehetővé teszik a szöveg beillesztését, csak húzással. Tehát lehetséges kiválasztani egy szöveget a Firefoxban, és áthúzni a terminálra.

Ennyi, remélem, élvezni fogja.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Yoyo dijo

    Milyen klassz, köszönöm szépen 😉

    És milyen gyönyörű hangja van a lánynak, azt hiszem, beleszerettem 😛

    1.    darkguzz dijo

      Bocsásson meg, tudna nekem segíteni kínaiul? Nem észleli a kínai karaktereket, csak a pinyint.

  2.   árnyék dijo

    Ez jó, mint egy szkript esetében, amely ellenőrzi a leveleket, vagy egy személyre szabott riasztást, amely ébredéskor megmondja az előrejelzéseket és a függőben lévő üzeneteket

  3.   Yoyo dijo

    Itt készítettem egy tesztvideót 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    használjuk a linuxot dijo

      Jó! Köszönöm!

  4.   bentrox dijo

    Nagyon jól hangzik, csak az mpg123 🙂 programot kellett telepítenem

  5.   hordár dijo

    Cső az mpg123 telepítéséhez, de nagyon jó, hogy ha nem fogad el néhány szót, akkor megfelelő pipát ír stb.

    EH EH

  6.   Paul honorato dijo

    A vírusadatbázis frissítve (?)

    1.    jalbrhcp dijo

      apt update && ./t2.sh hu A vírusadatbázis frissült

  7.   Alexander dijo

    Hahaha Kiváló, már van rá némi felhasználásom, kétségtelenül érzéki hang =), köszönöm a megosztást.

  8.   Jorge Moratilla dijo

    Mac OSX felhasználóként nem tudtam használni a szkriptet, mivel nincs mpg123-om, így a szkript módosításával és a VLC használatával hagyhatjuk, hogy megfelelően működjön a Mac OS X-ben.

    http://pastebin.com/C2Mkp1Qy

    1.    Rolo dijo

      a probléma az, hogy a vlc biztosan bekapcsol és nem zár le, amikor befejezi a végrehajtást, és a cvlc segítségével megakadályozhatja a grafikus felület megnyitását

      1.    Rolo dijo

        lehetne tenni
        cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$ái1-lex.europa.eu&q=$[SHORT[$key]}»
        hogy a reprodukció végén bezáruljon

  9.   neysonv dijo

    Helló srácok kapom ezt a hibát, nézzük meg, ha valaki megmondja, mi a probléma
    Játéksor: 1/1
    A HTTP kérés nem sikerült: 404 nem található
    [mpg123.c: 610] hiba: Hozzáférés a http erőforráshoz http://translate.google.com/translate_tts?tl=hola&q= az elbukott.

    1.    neysonv dijo

      [kód] Játéksor: 1 az 1-ből
      A HTTP kérés nem sikerült: 404 nem található
      [mpg123.c: 610] hiba: Hozzáférés a http erőforráshoz http://translate.google.com/translate_tts?tl=hola&q= az elbukott. [/ kód]

    2.    használjuk a linuxot dijo

      A probléma az, hogy rosszul használja a szkriptet.
      Futtatásakor meg kell adnia a szöveg nyelvét első paraméterként, amint azt a bejegyzés példája mutatja.
      Mondok egy másik példát:
      ./t2s.sh itt Ez egy egyszerű példa.
      Vegyük észre, hogy a ts2.sh után az "en" (azaz "angol", azaz angol) kifejezés következik. Spanyol nyelvnél használja az "es" szót, majd az átalakítani kívánt nyelvi kifejezést.
      Ölelés! Pál.

  10.   névtelen dijo

    ismeri a nem beszéd parancsot? hehe

    espeak -v is-the "helló"

    1.    használjuk a linuxot dijo

      Igen, de nem ugyanaz. Sokkal jobb ez a hang. 🙂

      1.    névtelen feljegyzés dijo

        egyetértünk!
        Üdvözlet!

  11.   Sara dijo

    Azok számára, akiknek problémái vannak az mpg123 -q-vel, vagy nem szeretik, átállhatnak mplayer-re

    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

      Jobb "mplayer -valóban-csendes", így nem tölti ki a kimenetet szöveggel

  12.   Jonatán dijo

    Nagyon jó ötlet, hogy a google-t használjam az alkalmazásaimhoz, olyan, mint egy kesztyű.
    http://github.com/alfa30/t2v

  13.   darkguzz dijo

    Még egy kérdés; Meg tudná valaki mondani, hogyan kell rögzíteni a kimenő hangot ???

    1.    Jose GDF dijo

      Magam válaszolok neked, mert most kaptam meg. Az mpg123 használatával módosítottam a szkript 38. sorát, így néz ki:

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

      Hozzáadtam a -w audio.wav fájlt. Ez létrehoz egy wav fájlt a kifejezés hangjával, de ahogy otthagytam, nem hallható. Ha Ön is szeretné hallani a kifejezést, akkor hozzá kell adnia egy másik sort. Mindketten így néznétek ki:

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

      Biztosan meg lehetne csinálni más, hatékonyabb és tisztább módszerrel is, de nekem legalábbis működik.

      1.    darkguzz dijo

        Kiváló José GDF, nagyon jó eredménnyel, üdvözlettel próbáltam ki a módszerét.

      2.    szómikus dijo

        A forgalom megtakarításához a második végrehajtás során megismételheti az elsőben létrehozott .wav fájlt

      3.    Jose GDF dijo

        Igen, egy olyan lejátszót használunk, amelyet telepítettünk. Például a VLC Player esetén:

        vlc-audio.wav

        Nos, aki azt mondja, hogy vlc, azt mondja, hogy bármely más játékos, beleértve azokat is, akik terminálonként működnek.

        És hogy elkerüljük a fájl felülírását minden egyes szkript használatakor, a névhez változót kell használni. Név, amelyet a felhasználó feltesz (read command), mielőtt elkezdi ... De ez a curl göndörítése lenne 😀

  14.   drako dijo

    PHP-ben csináltam (audio készítéshez Asterisk telefonrendszerhez *)


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

    if (szám ($ argv) <= 1) {
    $ name = basename ($ argv [0]);
    die ($ name. 'use:'. $ name. '
    }
    tömb_eltolás ($ argv);
    $ query = implode ('', $ argv);
    $ fájlnév = str_replace (tömb ('', ',', '.'), '-', $ lekérdezés);
    $ fájlnév = str_replace ('-', '-', $ fájlnév);

    $ 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);
    $ eredmény = curl_exec ($ ch);
    curl_close ($ ch);

    $ path = getcwd (). '/'. $ fájlnév;
    file_put_contents ($ elérési út. '. mp3', $ eredmény);
    @exec ("sox {$ path} .mp3 -b 16 -r 8000 -t wavpcm {$ path} .wav");
    @ unlink ($ elérési út. '. mp3');

    1.    darkguzz dijo

      Mi lenne, ha már sikerült rögzítenem a kimeneti hangot ezzel a paranccsal:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      és a végén ctrl + c a felvétel leállításához.

      Soha nem használtam php-t
      De futás közben:
      A php5 text-to-speech.php a Hello
      a konsola ezt fogadja:
      sox FAIL formátumok: nincs kezelő az "mp3" fájlkiterjesztéshez

      Bármilyen hozzájárulást nagyon értékelünk, később megpróbálom újra.

  15.   Kirian dijo

    2 alkalmazás a google fordító számára + szöveg-beszéd fordítás:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José dijo

    Szerintem ez a legjobb módja az átalakításnak, a hang nem olyan rossz, mint a Linux többi opciója> _
    Van rá mód, hogy egyszerű szöveges fájlt olvasson?
    Nagyon hasznos lenne egész könyveket hangzattá konvertálni

  17.   chuflas dijo

    Nos, ez nem megy nekem, nem tudom miért, ez kiderül:

    xxxxx: ~ / Documents / Linux $ ./t2s.sh hello

    ---------
    Beszéd forgatókönyve: Dan Fountain
    TalkToDanF@gmail.com
    ---------
    Játéksor: 1/1
    http_open: HTTP / 1.0 400 Rossz kérés
    http://translate.google.com: Nincs ilyen fájl, vagy könyvtár

    Telepítettem az mpg123-at, és kevés tesztet végeztem, és semmi ... Előre is köszönöm

  18.   Ignacio Cruz Martinez dijo

    Hé, ez a forgatókönyv nagyon jól szolgált nekem, mind a hang meghallgatására, mind a fordító szavainak rögzítésére.

    Valójában módosítottam a szkriptet, hogy igazítsam azt a szükségletemre, amellyel rendelkezem: A szöveges szavak listájának (lemario) átalakítása beszéddé; mentse a hangomat wav formátumban, térjen át ogg-ra és nevezze el őket az olvasott szó szerint.

    Ezt a KDE-ben tettem a Kdialog használatával, hogy meghatározzam az elérési utat, ahol a fájl a szavak listájával van, és a könyvtárat, ahová a hangos hangot szeretném menteni.

    Amikor a WAV-OGG átalakítás befejeződött, két mappát hoz létre nekem, ahová az egyik oldalon a wav, a másikon az ogg kerül.

    Eleinte mérges lett, mert nem olvasta helyesen az ékezetes szavakat, de azt tapasztaltam, hogy a kódba hozzá kell tenni az "es & ie = UTF8" szót. Egy pillanatra elfelejtettem a karakterkódolást.

    Hagyom a szkript kódját, amelyet akkor készítettem, ha működik:

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

    #! / bin / bash

    ######################################
    # Szövegfelolvasó előadás #
    # Ignacio Cruz Martínez adaptálta #
    # a levél titkos xD #
    ######################################

    #KDE párbeszédpanel a lemmary elérési útjának és nevének megadásához
    soyunarchivo = $ (kdialog –inputbox «Írja be a fájl elérési útját és nevét (kiterjesztéssel, ha van ilyen:»)

    #KDE párbeszédpanel a hangfájlok célmappájának megadásához
    elérési út = $ (kdialog –inputbox «Adja meg az utat a hangos hang mentéséhez:»)

    # a macskán keresztül a szövegfájl összes sora beolvasásra kerül, minden sor egyetlen szóból áll
    for i in $ (cat $ soyunfile)
    do
    visszhang $ i

    # konvertálás beszéddé a google translate segítségével, ne felejtsd el a kódolást, hogy az ékezeteket olvasson
    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"

    # az ffmpeg segítségével konvertálja a wav fájlokat ogg formátumba
    ffmpeg -i "$ path" $ i.wav -acodec libvorbis "$ path" $ i.ogg
    csinált

    # Ezekkel a sorokkal a mappák jönnek létre a hangfájlok WAV vagy OGG formátumba rendezéséhez
    mkdir "$ path" WAV
    mv "$ path" *. wav "$ path" WAV

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

    #KDE párbeszédpanel a munka befejezésének jelzésére
    kdialog –msgbox 'A folyamat le van zárva'

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

    Most ismeri valamelyikőtök a létrehozott hangfájlok használatára vonatkozó licencet?

    A szerzői jogi és kapcsolódó dolgok korlátozása. Ez engem érdekel, mert e hangfájlok egy részét felhasználom az írástudóvá váló emberek támogatására, alapvetően nonprofit projektről van szó.

    És ez az, hogy ennek az eszköznek van a legjobb intonációja a spanyol nyelv számára, sajnos a Linuxban nincs semmi hasonló. Mbrola rengeteg fáradságot okozott nekem a Gespeakerrel közösen történő felállításban.

    Köszönöm és találkozunk.

    1.    használjuk a linuxot dijo

      Fogalma sincs ... meg kellene néznie a Google Translator licenceket.

  19.   Armando dijo

    A szkript nem működött nálam, nyilvánvalóan az URL-hez kapcsolódó probléma, akiket érdekel, ez a helyes URL:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   lol dijo

    Szia! Teszteket végeztem a szkripteddel, és a végrehajtásakor azt mondta nekem, hogy nem találja a hangot, ezért beírtam az URL-t, és úgy tűnik, hogy a Google úr feltett egy captchát ...

  21.   ' dijo

    frissítse a szkriptet