Script: teksto sa pagsasalita (Google) mula sa terminal

Ngayon ay ibinabahagi ko sa iyo ang isang napaka kapaki-pakinabang na script upang mai-convert ang teksto sa pagsasalita gamit ang Google speech engine. Ang pangunahing bentahe ng script na ito ay na "umiwas" sa 100 byte na limitasyon na ipinataw ng Google. Sa totoo lang, upang maging matapat, nirerespeto nito ang limitasyong ito ngunit awtomatikong nagpapadala ng lahat ng mga linya, kaya't ang limitasyong ito ay hindi napapansin ng gumagamit. Mapapansin ng mga pinakahihingi, na ang pag-convert ay hindi pareho ng kalidad sa maaari naming makuha sa Google Translate, higit sa lahat dahil sa limitasyong ito at hindi posible na maipasa ang buong teksto sa isang pag-swoop. Bilang isang positibong punto, dapat idagdag na pinapayagan ka din ng script na ito na tukuyin ang wika ng teksto upang mabago.

Nilinaw, tingnan natin kung ano ang mga hakbang na susundan.

Mga hakbang upang sundin

1. Lumikha ng isang file na may pangalang t2s.sh.

2. Kopyahin ang sumusunod na nilalaman:

#! / bin / bash #### # # TalkToDanF@gmail.com # ####alizalizal # INPUT = $ * STRINGNUM = 0 ary = ( $ {INPUT: 2}) echo "---------------------------" echo "Speech Script ni Dan Fountain" echo "TalkToDanF @ gmail .com "echo" --------------------------- "para sa key sa" $ {! ary [@]} "gawin SHORTTMP [$ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "salita: $ key, $ {ary [$ key ]} "#echo" pagdaragdag sa: $ STRINGNUM "kung [[" $ LENGTH "-lt" 100 "]]; pagkatapos #echo nagsisimula ng bagong linya SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} iba pa STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" fi tapos para sa key sa linya na "$ {! SHORT [@]}" do #echo ": $ key ay: $ {SHORT [$ key]}" echo " Linya sa paglalaro: $ (($ key + 1)) ng $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ie = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "tapos na

3. Bigyan ng mga pahintulot ang pagpapatupad sa script:

sudo chmod + x t2s.sh

4. Isagawa ang script na dumadaan bilang mga parameter: a) ang code ng wika na naaayon sa teksto, b) ang teksto na mababago. Halimbawa:

./t2s.sh tl Ito ay napaka-kagiliw-giliw na teksto upang i-convert.
Tip: pinapayagan ka ng ilang mga emulator ng terminal na i-paste ang teksto sa pamamagitan lamang ng pag-drag nito. Kaya posible na pumili ng isang teksto sa Firefox at i-drag ito sa terminal.

Iyon lang, sana masiyahan ka dito.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Yoyo dijo

    Ang cool, maraming salamat 😉

    At ang ganda ng boses ng dalaga, sa tingin ko umibig ako 😛

    1.    darkguzz dijo

      Paumanhin, maaari mo ba akong tulungan sa Intsik? Hindi nito nakita ang mga character na Tsino, mga pinyin lang

  2.   Anino dijo

    Mabuti ito para sa isang script na sumusuri sa mail o para sa isang isinapersonal na alarma na kapag gumising ay sinasabi sa iyo ang pagtataya at nakabinbing mga mensahe xD

  3.   Yoyo dijo

    Dito ako gumawa ng isang test video 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    gumamit tayo ng linux dijo

      Mabuti! Salamat!

  4.   bentrox dijo

    Napakahusay ng tunog, kailangan ko lamang i-install ang mpg123 🙂

  5.   tagabitbit dijo

    Kailangan kong mag-install ng mpg123 ngunit ito ay cool, kaya kung hindi ito tumatanggap ng ilang mga salita, nagsasabi ito ng isang tamang titik ng tseke atbp.

    EH EH

  6.   paul honorato dijo

    Ang database ng virus ay na-update (?)

    1.    jalbrhcp dijo

      apt update && ./t2.sh tl Ang virus database ay na-update

  7.   Alexander dijo

    Hahaha Mahusay, mayroon na akong ilang mga gamit para dito, senswal na boses nang walang pag-aalinlangan =), salamat sa pagbabahagi.

  8.   Jorge Moratilla dijo

    Bilang isang gumagamit ng Mac OSX, hindi posible para sa akin na gamitin ang Script dahil wala akong mpg123, kaya sa pamamagitan ng pagbabago ng Script at paggamit ng VLC, maiiwan natin itong gumagana nang tama sa Mac OS X.

    http://pastebin.com/C2Mkp1Qy

    1.    rolo dijo

      ang isyu ay tiyak na mananatili ang vlc at hindi magsasara kapag natapos ang pagpapatupad at maaari mong gamitin ang cvlc upang maiwasan ang pagbukas ng graphic na interface

      1.    rolo dijo

        maaari itong mailagay
        cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$[$key]}»
        upang magsara ito sa pagtatapos ng pagpaparami

  9.   neysonv dijo

    Kumusta mga kalalakihan nakuha ko ang error na ito, tingnan natin kung may nagsabi sa akin kung ano ang problema
    Linya sa paglalaro: 1 ng 1
    Nabigo ang kahilingan sa HTTP: 404 Hindi Nahanap
    [mpg123.c: 610] error: Pag-access sa mapagkukunan ng http http://translate.google.com/translate_tts?tl=hola&q= ang nabigo.

    1.    neysonv dijo

      [code] Linya sa paglalaro: 1 ng 1
      Nabigo ang kahilingan sa HTTP: 404 Hindi Nahanap
      [mpg123.c: 610] error: Pag-access sa mapagkukunan ng http http://translate.google.com/translate_tts?tl=hola&q= ang nabigo. [/ code]

    2.    gumamit tayo ng linux dijo

      Ang problema ay mali ang ginagamit mong script.
      Kapag pinatakbo mo ito, kailangan mong ipasa ang wika ng teksto bilang unang parameter, tulad ng ipinakita sa halimbawa sa post.
      Nagbibigay ako sa iyo ng isa pang halimbawa:
      ./t2s.sh sa Ito ay isang simpleng halimbawa.
      Pansinin na pagkatapos ng ts2.sh sumusunod ito sa "en" (na nangangahulugang "ingles", iyon ay, Ingles). Para sa Espanyol, gamitin ang "es" at pagkatapos ang parirala sa wikang iyon na nais mong i-convert.
      Yakap! Paul

  10.   hindi kilala dijo

    alam mo ang mag-utos ng magsalita no? hehe

    espeak -v ay-ang «hello»

    1.    gumamit tayo ng linux dijo

      Oo ngunit hindi pareho. Ang boses na ito ay mas mahusay. 🙂

      1.    anonymous note dijo

        sumasang-ayon kami!
        Pagbati!

  11.   Sara dijo

    Para sa mga may problema sa mpg123 -q o hindi gusto ito, maaari kang lumipat sa mplayer

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

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

    1.    Guido dijo

      Mas mahusay na "mplayer –really-tahimik" kaya't hindi nito pinupunan ang teksto ng teksto

  12.   Jonathan dijo

    Ang isang napakahusay na ideya na gamitin ang google para sa aking mga application ay nababagay sa akin tulad ng isang guwantes.
    http://github.com/alfa30/t2v

  13.   darkguzz dijo

    Isa pang tanong; Maaari bang sabihin sa akin ng isang tao kung paano i-record ang output audio ???

    1.    Jose GDF dijo

      Sinasagot kita mismo, dahil ngayon ko lang nakuha. Gamit ang mpg123, binago ko ang linya 38 ng script, ganito ang hitsura:

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

      Nagdagdag ako ng -w audio.wav. Lumilikha ito ng isang wav file na may audio ng parirala, ngunit dahil iniwan ko ito, hindi ito naririnig. Kung nais mo ring pakinggan ang parirala, kakailanganin mong magdagdag ng isa pang linya. Pareho kayong magiging ganito:

      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íritu&q=$[SHORT[$key]}»

      Tiyak na magagawa ito sa isa pang mas mahusay at malinis na paraan, ngunit hindi bababa sa ito ay gumagana para sa akin.

      1.    darkguzz dijo

        Mahusay na José GDF, sinubukan ko ang iyong pamamaraan na may napakahusay na mga resulta, pagbati.

      2.    Soymicmic dijo

        Upang mai-save ang trapiko sa pangalawang pagpapatupad maaari mong kopyahin ang .wav na nabuo mo sa una

      3.    Jose GDF dijo

        Oo oo, gamit ang isang player na na-install namin. Halimbawa, sa VLC Player ito ay:

        vlc-audio.wav

        Kaya, na nagsasabi vlc, sabi ng anumang iba pang mga manlalaro, kabilang ang mga gumagana sa pamamagitan ng terminal.

        At upang maiwasan ang pag-o-overtake sa file sa tuwing gagamitin ang script, dapat gamitin ang isang variable para sa pangalan. Pangalanan na ilalagay ng gumagamit (basahin ang utos) bago simulan ... Ngunit ipapakulot nito ang curl 😀

  14.   drako dijo

    Ginawa ko ito sa PHP (upang lumikha ng mga audio para sa isang sistema ng telepono ng Asterisk *)

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

    kung (bilangin ($ argv) <= 1) {
    $ name = basename ($ argv [0]);
    mamatay ($ pangalan. 'paggamit:'. $ pangalan. '
    }
    array_shift ($ argv);
    $ query = implode (", $ argv);
    $ filename = str_replace (array ('', ',', '.'), '-', $ query);
    $ filename = str_replace ('-', '-', $ filename);

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

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

    1.    darkguzz dijo

      Kumusta naman na nagawa kong i-record ang output audio gamit ang utos na ito:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      at sa dulo ctrl + c upang ihinto ang pagrekord.

      Hindi pa ako gumagamit ng php
      Ngunit kapag tumatakbo:
      php5 text-to-speech.php ay Kamusta
      host ang konsola nito:
      sox FAIL format: walang handler para sa file extension `mp3 ′

      Anumang kontribusyon ay lubos na pinahahalagahan, susubukan ko sa paglaon.

  15.   si kirian dijo

    2 apps para sa tagasalin ng wika sa google + pagsasalin ng teksto sa pagsasalita:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José dijo

    Sa palagay ko ito ang pinakamahusay na paraan upang mag-convert, ang boses ay hindi masama tulad ng iba pang mga pagpipilian para sa Linux> _
    Mayroon bang paraan upang mabasa ito ng isang simpleng file ng teksto?
    Napaka kapaki-pakinabang upang mai-convert ang buong mga libro sa audio

  17.   chuflas dijo

    Sa gayon, hindi ito gagana para sa akin, hindi ko alam kung bakit, lumalabas ito:

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

    ---------
    Speech Script ni Dan Fountain
    TalkToDanF@gmail.com
    ---------
    Linya sa paglalaro: 1 ng 1
    http_open: HTTP / 1.0 400 Masamang Kahilingan
    http://translate.google.com: Walang ganoong file o direktoryo

    Mayroon akong naka-install na mpg123 at nagawa ko ang maliit na mga pagsubok at wala ..... Salamat nang maaga

  18.   Ignacio Cruz Martinez dijo

    Kumusta, ang script na ito ay mahusay na nagsilbi sa akin, kapwa upang makinig sa tunog at maitala ang mga salita ng tagasalin.

    Sa katunayan, binago ko ang script upang maiakma ito sa isang pangangailangan na mayroon ako: Ibahin ang isang listahan ng mga salita sa teksto (lemario) sa pagsasalita; i-save ang aking boses sa wav, i-convert sa ogg at pangalanan ang mga ito ayon sa salitang binasa.

    Ginawa ko ito sa KDE gamit ang Kdialog upang tukuyin ang landas kung saan ang file na may listahan ng salita at ang direktoryo kung saan nais kong mai-save ang audio ng boses.

    Kapag natapos ang WAV to OGG conversion, lumilikha ito ng dalawang folder kung saan naka-imbak ang wav sa isang gilid at ang ogg sa kabilang panig.

    Sa una ay nagalit ito sa akin dahil hindi nito binasa nang tama ang mga salitang may accent, ngunit nalaman kong kailangan mong idagdag ang "es & ie = UTF8" sa code. Para sa isang sandali nakalimutan ko ang pag-encode ng character.

    Iniwan ko sa iyo ang code ng script na ginawa ko kung sakaling makakatulong ito sa iyo:

    ###Oooooooooooooooo ####

    #! / bin / bash

    ####
    # Text-to-speech lecture #
    # Inangkop ni Ignacio Cruz Martínez #
    # mail ang lihim xD #
    ####

    #KDE dialog box upang tukuyin ang landas at pangalan ng lemmary
    soyunarchivo = $ (kdialog –inputbox «Ipasok ang path at pangalan ng file (na may isang extension kung mayroon ito):»)

    #KDE dialog box upang tukuyin ang patutunguhang folder para sa mga file ng boses
    path = $ (kdialog –inputbox «Ipasok ang landas upang mai-save ang audio ng boses:»)

    # sa pamamagitan ng pusa lahat ng mga linya ng file ng teksto ay nababasa, ang bawat linya ay binubuo ng isang solong salita
    para sa ako sa $ (cat $ soyunfile)
    do
    echo $ i

    # nagko-convert sa pagsasalita gamit ang google translate, huwag kalimutan ang pag-encode upang mabasa ang mga accent
    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"

    # gamit ang FFmpeg upang mai-convert ang mga wav file sa ogg
    ffmpeg -i "$ path" $ i.wav -acodec libvorbis "$ path" $ i.ogg
    tapos

    #sa mga linyang ito ang mga folder ay nilikha upang ayusin ang mga file ng boses sa WAV o OGG
    mkdir "$ path" WAV
    mv "$ path" * .wav "$ path" WAV

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

    #KDE dialog box upang ipahiwatig ang trabaho ay tapos na
    kdialog –msgbox 'Natapos ang proseso'

    ###Oooooooooooooooo ####

    Ngayon, mayroon ka bang may kaalaman tungkol sa lisensya upang magamit ang nabuong mga file ng boses?

    Limitasyon para sa copyright at mga kaugnay na bagay. Nainteres ito sa akin dahil balak kong gamitin ang ilan sa mga file ng boses na ito upang suportahan ang mga taong magiging marunong bumasa at sumulat, karaniwang ito ay isang proyekto na hindi kumikita.

    At ito ay ang tool na ito na may pinakamahusay na intonation para sa wikang Espanyol, sa kasamaang palad sa Linux walang katulad. Binigyan ako ni Mbrola ng maraming problema upang mai-set up kasama si Gespeaker.

    Salamat at makita ka.

    1.    gumamit tayo ng linux dijo

      Walang ideya ... kailangang tumingin sa mga lisensya ng Google Translator.

  19.   Armando dijo

    Hindi gumana ang Script para sa akin, maliwanag na ito ay isang problema na nauugnay sa URL, para sa mga interesado ito ang tamang URL:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   lol dijo

    Kamusta! Gumagawa ako ng mga pagsubok sa iyong script at kapag naisakatuparan ito, sinabi nito sa akin na hindi nito mahahanap ang audio, kaya't ipinasok ko ang URL at tila inilagay ni G. Google ang isang captcha ...

  21.   ' dijo

    i-update ang script