Scenarijus: tekstas į kalbą („Google“) iš terminalo

Šiandien aš dalinuosi su jumis labai naudingu scenarijumi, kuris konvertuoja tekstą į kalbą naudojant „Google“ kalbos variklį. Pagrindinis šio scenarijaus privalumas yra tas, kad jis „apeina“ „Google“ nustatytą 100 baitų limitą. Tiesą sakant, tiesą sakant, jis gerbia šią ribą, tačiau automatiškai siunčia visas eilutes, o tai reiškia, kad vartotojas nepastebi šio apribojimo. Patys reikliausi pastebės, kad konversija nėra tokios kokybės, kokią galime gauti „Google“ vertėju, daugiausia dėl šios ribos ir kad neįmanoma perduoti viso teksto vienu ypu. Kaip teigiamą dalyką reikėtų pridurti, kad šis scenarijus taip pat leidžia jums nurodyti konvertuojamo teksto kalbą.

Išsiaiškinę, pažiūrėkime, kokių žingsnių reikia laikytis.

žingsniai

1. Sukurkite failą pavadinimu t2s.sh.

2. Nukopijuokite šį turinį:

#! / bin / bash #################################### # Kalbos scenarijų sukūrė Danas Fountainas # # Pakeitė „UsemosLinux“ # # TalkToDanF@gmail.com # ##################################### INPUT = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) echo "---------------------------" echo "Dano Fountaino kalbos scenarijus" echo "TalkToDanF @ gmail.com „echo“ --------------------------- raktui įvesti „$ {! ary [@]}“, atlikite TRUMPĄ [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "žodis: $ key, $ {ary [$ raktas]} „#echo“ pridedamas prie: $ STRINGNUM ", jei [[" "$ LENGTH" -lt "100"]]; tada #echo pradedant naują eilutę SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} dar STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" TRUMPAS [ $ STRINGNUM] = "$ {ary [$ key]}" baigtas raktui eilutėje "$ {! SHORT [@]}" do #echo ": $ key yra: $ {SHORT [$ key]}" aidas " Žaidimo eilutė: $ (($ key + 1)) iš $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ty = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "atlikta

3. Suteikite vykdyti scenarijaus teises:

sudo chmod + x t2s.sh

4. Vykdykite scenarijų perdavimą kaip parametrus: a) kalbos, atitinkančios tekstą, kodą, b) konvertuojamą tekstą. Pavyzdžiui:

./t2s.sh lt Tai labai įdomus konvertuojamas tekstas.
Patarimas: Kai kurie terminalų emuliatoriai leidžia įklijuoti tekstą tiesiog vilkdami. Taigi „Firefox“ galima pasirinkti tekstą ir nuvilkti jį į terminalą.

Viskas, tikiuosi, kad jums patiks.


37 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   yoyo sakė

    Kaip šaunu, labai ačiū 😉

    Ir kokį gražų balsą turi mergina, manau, kad įsimylėjau 😛

    1.    tamsusis sakė

      Atleiskite, ar galite man padėti su kinų kalba? Tai neaptinka kinų rašmenų, tik pinyin.

  2.   šešėlis sakė

    Tai gerai, kaip scenarijui, kuris tikrina paštą, ar personalizuotam aliarmui, kuris pabudęs pasako prognozes ir laukiančius pranešimus xD

  3.   yoyo sakė

    Čia aš padariau bandomąjį vaizdo įrašą 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    naudokime linux sakė

      Gerai! Ačiū!

  4.   benktroksas sakė

    Tai skamba labai gerai, turėjau įdiegti tik mpg123 🙂

  5.   Portaro sakė

    Turėjau įdiegti mpg123, bet jis buvo šaunus, taigi, jei jis nepriima kai kurių žodžių, jis sako dešinę varnelę ir kt.

    EH EH

  6.   Paul honorato sakė

    Atnaujinta virusų duomenų bazė (?)

    1.    jalbrhcp sakė

      apt update && ./t2.sh lt Atnaujinta virusų duomenų bazė

  7.   Aleksandras sakė

    Hahaha Puiku, aš jau turiu tam tikrų paskirčių, jausmingas balsas be jokios abejonės =), ačiū, kad pasidalinai.

  8.   Jorge Moratilla sakė

    Kaip „Mac OSX“ vartotojui man nebuvo įmanoma naudoti scenarijaus, nes neturiu „mpg123“, todėl pakeisdami scenarijų ir naudodami VLC galime palikti jį tinkamai veikti „Mac OS X“.

    http://pastebin.com/C2Mkp1Qy

    1.    rolo sakė

      problema ta, kad „vlc“ tikrai lieka įjungtas ir neužsidaro, kai baigia vykdyti, ir jūs galite naudoti „cvlc“, kad grafinė sąsaja neatsidarytų

      1.    rolo sakė

        galima būtų įdėti
        cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$ái1-lex.europa.eu&q=$[SHORT[$key]}»
        kad reprodukcijos pabaigoje ji užsidarytų

  9.   neysonv sakė

    Sveiki, vaikinai, gaunu šią klaidą, pažiūrėkime, ar kas nors man pasakys, kokia yra problema
    Žaidimo linija: 1 iš 1
    HTTP užklausa nepavyko: 404 nerasta
    [mpg123.c: 610] klaida: prieiga prie http šaltinio http://translate.google.com/translate_tts?tl=hola&q= nepavykęs.

    1.    neysonv sakė

      [kodas] Žaidimo linija: 1 iš 1
      HTTP užklausa nepavyko: 404 nerasta
      [mpg123.c: 610] klaida: prieiga prie http šaltinio http://translate.google.com/translate_tts?tl=hola&q= nepavykęs. [/ kodas]

    2.    naudokime linux sakė

      Problema ta, kad scenarijų naudojate neteisingai.
      Kai jį paleisite, turite perduoti teksto kalbą kaip pirmąjį parametrą, kaip parodyta įrašo pavyzdyje.
      Pateikiu jums dar vieną pavyzdį:
      ./t2s.sh in Tai paprastas pavyzdys.
      Atkreipkite dėmesį, kad po ts2.sh jis eina „en“ (tai reiškia „anglų“, tai yra, anglų). Ispanų kalboje naudokite „es“ ir frazę ta kalba, kurią norite konvertuoti.
      Apkabink! Paulius.

  10.   anoniminis sakė

    žinai kalbėjimo komandą ne? hehe

    espeak -v yra-labas

    1.    naudokime linux sakė

      Taip, bet ne tas pats. Šis balsas yra daug geresnis. 🙂

      1.    notanonimiškas sakė

        mes sutinkame!
        Sveiki atvykę!

  11.   sara sakė

    Tiems, kurie turi problemų su mpg123 -q arba nepatinka, galite pereiti prie „mplayer“

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

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

    1.    Guido sakė

      Geresnis „mplayer –realy-quiet“, kad neužpildytų išvesties tekstu

  12.   Jonathanas sakė

    Puiki idėja naudoti „Google“ savo programoms man tinka kaip pirštinė.
    http://github.com/alfa30/t2v

  13.   tamsusis sakė

    Dar vienas klausimas; Ar kas nors galėtų pasakyti, kaip įrašyti išvesties garsą ???

    1.    Jose GDF sakė

      Aš pats tau atsakau, nes ką tik gavau. Naudodamas mpg123 pakeičiau scenarijaus 38 eilutę, atrodančią taip:

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

      Aš pridėjau -w audio.wav. Tai sukuria WAV failą su frazės garso įrašu, tačiau, kaip aš jį palikau, jis nėra girdimas. Jei taip pat norite išgirsti frazę, turėtumėte pridėti kitą eilutę. Jūs abu atrodytumėte taip:

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

      Tikrai tai būtų galima padaryti kitu efektyvesniu ir švaresniu būdu, bet bent jau man tai tinka.

      1.    tamsusis sakė

        Puikus José GDF, aš išbandžiau jūsų metodą labai gerais rezultatais, sveikinimais.

      2.    soymmic sakė

        Norėdami išsaugoti srautą per antrą vykdymą, galite atkurti .wav, kurį sugeneravote per pirmąjį

      3.    Jose GDF sakė

        Na taip, naudojant grotuvą, kurį mes įdiegėme. Pavyzdžiui, naudojant „VLC Player“ tai būtų:

        vlc-audio.wav

        Na, kas sako „vlc“, sako bet kuris kitas žaidėjas, įskaitant tuos, kurie dirba pagal terminalą.

        Kad failas neperrašytų kiekvieną kartą, kai naudojamas scenarijus, vardui turėtų būti naudojamas kintamasis. Pavadinimas, kurį vartotojas įdės (skaityti komandą) prieš pradėdamas ... Bet tai būtų garbanos garbanojimas 😀

  14.   drako sakė

    Aš tai padariau PHP (norėdamas sukurti garso įrašus „Asterisk“ telefono sistemai *)

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

    jei (skaičius ($ argv) <= 1) {
    $ vardas = bazinis vardas ($ argv [0]);
    mirti ($ name. 'use:'. $ name. '
    }
    array_shift ($ argv);
    $ užklausa = implode ('', $ argv);
    $ filename = str_replace (masyvas ('', ',', '.'), '-', $ užklausa);
    $ failo vardas = str_replace ('-', '-', $ failo vardas);

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

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

    1.    tamsusis sakė

      Kaip aš jau spėjau įrašyti išvesties garsą šia komanda:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      ir pabaigoje „Ctrl“ + c, kad sustabdytumėte įrašymą.

      Niekada nenaudojau php
      Bet bėgdamas:
      php5 text-to-speech.php yra Sveiki
      konsola priima tai:
      „sox FAIL“ formatai: nėra failų plėtinio „mp3“ tvarkytuvo

      Bet koks indėlis labai vertinamas, vėliau bandysiu dar kartą.

  15.   kirianas sakė

    2 programos „Google“ vertėjui + teksto į kalbą vertimas:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José sakė

    Manau, kad tai geriausias būdas konvertuoti, balsas nėra toks blogas, kaip kitos „Linux“ parinktys> _
    Ar yra būdas priversti jį skaityti paprasto teksto failą?
    Būtų labai naudinga visas knygas paversti garso įrašais

  17.   čuflas sakė

    Na, man tai netinka, nežinau kodėl, tai išeina:

    xxxxx: ~ / Documents / Linux $ ./t2s.sh yra labas

    ---------
    Kalbos scenarijus pagal Daną Fountainą
    „TalkToDanF@gmail.com“
    ---------
    Žaidimo linija: 1 iš 1
    http_open: HTTP / 1.0 400 netinkama užklausa
    http://translate.google.com: Nėra tokio failo ar katalogo

    Turiu įdiegtą mpg123 ir atlikau mažai bandymų ir nieko ... Ačiū iš anksto

  18.   Ignacio Cruzas Martinezas sakė

    Ei, šis scenarijus man buvo labai naudingas tiek klausant garso, tiek įrašant vertėjo žodžius.

    Tiesą sakant, aš pakeičiau scenarijų, kad pritaikyčiau jį prie poreikio, kurį turiu: Teksto žodžių sąrašą (lemario) paversti kalba; išsaugok mano balsą wav, konvertuok į ogg ir pavadink juos pagal perskaitytą žodį.

    Tai padariau KDE naudodamas „Kdialog“ nurodydamas kelią, kuriame yra failas su žodžių sąrašu, ir katalogą, kuriame noriu išsaugoti balso garsą.

    Baigus konvertuoti WAV į OGG, jis sukuria du aplankus, kuriuose saugomas wav iš vienos pusės ir ogg iš kitos pusės.

    Iš pradžių supykau, nes neteisingai perskaičiau žodžius su kirčiavimais, bet radau, kad kode reikia pridėti „es & ie = UTF8“. Akimirką pamiršau simbolių kodavimą.

    Palieku scenarijaus kodą, kurį padariau, jei jis veikia:

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

    #! / bin / bash

    #####################################
    # Teksto į kalbą paskaita #
    # Pritaikė Ignacio Cruzas Martínezas #
    # paštas slaptas xD #
    #####################################

    #KDE dialogo lange nurodykite lemmary kelią ir pavadinimą
    soyunarchivo = $ (kdialog –inputbox «Įveskite failo kelią ir pavadinimą (su plėtiniu, jei jis turi):»)

    #KDE dialogo langas, skirtas nurodyti balso failų paskirties aplanką
    kelias = $ (kdialog –inputbox «Įveskite kelią, kad išsaugotumėte balso garsą:»)

    # per katę perskaitomos visos teksto failo eilutės, kiekviena eilutė susideda iš vieno žodžio
    i už $ (cat $ soyunfile)
    do
    aidas $ i

    # konvertuokite į kalbą naudodami „google translate“, nepamirškite apie kodavimą, kad jis skaitytų akcentus
    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"

    # naudojant ffmpeg konvertuoti WAV failus į OGG
    ffmpeg -i "$ path" $ i.wav -acodec libvorbis "$ path" $ i.ogg
    Done

    # šiomis eilutėmis aplankai yra sukurti balso failams WAV arba OGG tvarkyti
    mkdir "$ path" WAV
    mv "$ path" *. wav "$ path" WAV

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

    #KDE dialogo langas, nurodantis, kad darbas baigtas
    kdialog –msgbox 'Procesas baigtas'

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

    Ar kas nors iš jūsų turi žinių apie licenciją naudoti sugeneruotus balso failus?

    Autorių teisių ir susijusių dalykų apribojimas. Tai mane domina, nes planuoju naudoti kai kuriuos iš šių balso failų žmonėms, kurie taps raštingais, iš esmės tai yra ne pelno projektas.

    Ir tai, kad šis įrankis turi geriausią intonaciją ispanų kalbai, deja, „Linux“ nėra nieko panašaus. „Mbrola“ man sukėlė daug rūpesčių kurti kartu su „Gespeaker“.

    Ačiū ir iki pasimatymo.

    1.    naudokime linux sakė

      Neįsivaizduojama ... tektų pažvelgti į „Google Translator“ licencijas.

  19.   Armando sakė

    Scenarijus man neveikė, matyt, tai yra problema, susijusi su URL, tiems, kurie domisi, tai yra teisingas URL:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   daug juoko sakė

    Sveiki! Atlikau testus su jūsų scenarijumi ir jį vykdydamas jis man pasakė, kad jis negali rasti garso įrašo, todėl įvedžiau URL ir atrodo, kad p. Google įdėjo captcha ...

  21.   ' sakė

    atnaujinti scenarijų