I dag deler jeg med dig et meget nyttigt script til at konvertere tekst til tale ved hjælp af Googles talemaskine. Den største fordel ved dette script er, at det "omgår" grænsen på 100 byte, som Google pålægger. For at være ærlig respekterer den faktisk denne grænse, men sender alle linjer automatisk, hvilket betyder, at denne begrænsning går ubemærket hen af brugeren. De mest krævende bemærker dog, at konverteringen ikke er af samme kvalitet som den, vi kan få i Google Translate, hovedsageligt på grund af denne grænse, og at det ikke er muligt at videregive hele teksten på én gang. Som et positivt punkt skal det tilføjes, at dette script også giver dig mulighed for at specificere sproget for den tekst, der skal konverteres.
Efter at være afklaret, lad os se, hvad trinene skal følges.
Steps
1.- Opret en fil med navnet t2s.sh.
2.- Kopier følgende indhold:
#! / bin / bash ############################### ######## # Speech Script af Dan Fountain # # Ændret af UsemosLinux # # TalkToDanF@gmail.com # ####################################### INPUT = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) ekko "---------------------------" ekko "Tale Script af Dan Fountain" ekko "TalkToDanF @ gmail.com "ekko" --------------------------- "for at indtaste" $ {! ary [@]} "gør KORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (ekko $ {# SHORTTMP [$ STRINGNUM]}) #echo "ord: $ key, $ {ary [$ nøgle]} "#echo" tilføjer til: $ STRINGNUM "hvis [[" $ LENGDE "-lt" 100 "]]; derefter #echo starter ny linje SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} andet STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" er gjort for nøgle i "$ {! SHORT [@]}" gør #echo "linje: $ key er: $ {SHORT [$ key]}" echo " Afspilningslinje: $ (($ nøgle + 1)) af $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ie = UTF-8 &tl = $ {1} & q = $ {KORT [$ nøgle]} "færdig
3.- Giv udfør tilladelser til scriptet:
sudo chmod + x t2s.sh
4.- Udfør scriptet, der passerer som parametre: a) sprogkoden, der svarer til teksten, b) teksten, der skal konverteres. For eksempel:
./t2s.sh da Dette er en meget interessant tekst at konvertere.
Det er det, håber du nyder det.
Hvor sejt, meget tak 😉
Og hvilken smuk stemme pigen har, jeg tror, jeg blev forelsket 😛
Undskyld, kan du hjælpe mig med kinesisk? Det registrerer ikke kinesiske tegn, kun pinyin.
Dette er godt som for et script, der kontrollerer posten eller for en personlig alarm, der når du vågner fortæller dig prognosen og de ventende meddelelser xD
Her lavede jeg en testvideo 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0
Godt! Tak skal du have!
Det lyder meget godt, jeg måtte kun installere mpg123 🙂
Rør til installation af mpg123, men det er sejt, at hvis det ikke accepterer nogle ord, står der et rigtigt tildebrev osv.
EH EH
Virusdatabasen er opdateret (?)
apt update && ./t2.sh da Viradatabasen er opdateret
Hahaha Fremragende, jeg har allerede nogle anvendelser til det, sensuel stemme uden tvivl =), tak for deling.
Som Mac OSX-bruger har det ikke været muligt for mig at bruge scriptet, da jeg ikke har mpg123, så ved at ændre scriptet og bruge VLC kan vi lade det fungere korrekt i Mac OS X.
http://pastebin.com/C2Mkp1Qy
problemet er, at vlc helt sikkert forbliver tændt og ikke lukker, når den er færdig med at udføre, og du kan bruge cvlc til at forhindre, at den grafiske grænseflade åbnes
det kunne sættes
cvlc – play-and-exit «https://translate.google.com/translate_tts?tl=$ [$ key]}»
så den lukker i slutningen af reproduktionen
Hej gutter, jeg får denne fejl, lad os se, om nogen fortæller mig, hvad problemet er
Afspilningslinje: 1 af 1
HTTP-anmodning mislykkedes: 404 blev ikke fundet
[mpg123.c: 610] fejl: Adgang til http-ressource http://translate.google.com/translate_tts?tl=hola&q= det mislykkede.
[kode] Afspilningslinje: 1 af 1
HTTP-anmodning mislykkedes: 404 blev ikke fundet
[mpg123.c: 610] fejl: Adgang til http-ressource http://translate.google.com/translate_tts?tl=hola&q= det mislykkede. [/ kode]
Problemet er, at du bruger scriptet forkert.
Når du kører den, skal du sende sprogets sprog som den første parameter, som vist i eksemplet i indlægget.
Jeg giver dig et andet eksempel:
./t2s.sh i Dette er et simpelt eksempel.
Bemærk, at efter ts2.sh følger "en" (hvilket betyder "engelsk", dvs. engelsk). For spansk skal du bruge "es" og derefter sætningen på det sprog, du vil konvertere.
Kram! Paul.
du kender talekommandoen nej? hehe
espeak -v er-det «hej»
Ja, men ikke det samme. Denne stemme er så meget bedre. 🙂
vi er enige!
Greetings!
For dem, der har problemer med mpg123 -q eller ikke kan lide det, kan du skifte til mplayer
mpg123 -q "http://translate.google.com/translate_tts?tl=$ [1-lex.europa.eu&q=$ [KORT [$ nøgle]}"
mplayer «http://translate.google.com/translate_tts?tl=$ [1 [& q = $ [KORT [$ nøgle]}»
Bedre "mplayer - virkelig stille", så den ikke fylder output med tekst
En meget god idé at bruge google til mine applikationer passer mig som en handske.
http://github.com/alfa30/t2v
Et spørgsmål mere; Kunne nogen fortælle mig, hvordan jeg optager outputlyden ???
Jeg svarer dig selv, for jeg har lige fået det. Ved hjælp af mpg123 har jeg ændret linje 38 i scriptet og ser sådan ud:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$ [1 [&q=$ [KORT [$ nøgle]}»
Jeg har tilføjet -w audio.wav. Dette opretter en wav-fil med lyden af sætningen, men som jeg har efterladt den, høres den ikke. Hvis du også vil høre sætningen, skal du tilføje en ny linje. I vil begge se sådan ud:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$ [1-lex.europa.eu&q=$ [KORT [$ nøgle]}» &
mpg123 -q "http://translate.google.com/translate_tts?tl=$ [1-lex.europa.eu&q=$ [KORT [$ nøgle]}"
Det kunne bestemt gøres på en anden mere effektiv og ren måde, men i det mindste fungerer det for mig.
Fremragende José GDF, jeg prøvede din metode med meget gode resultater, hilsner.
For at spare trafik i den anden udførelse kan du reproducere .wav, som du genererede i den første
Nå ja, ved hjælp af en afspiller, som vi har installeret. For eksempel med VLC Player ville det være:
vlc-audio.wav
Nå, hvem siger vlc, siger enhver anden spiller, inklusive dem, der arbejder ved terminal.
Og for at undgå at overskrive filen hver gang scriptet bruges, skal en variabel bruges til navnet. Navn, som brugeren ville lægge (læs kommandoen) inden start ... Men det ville være krølning af krøllen 😀
Jeg gjorde det i PHP (for at oprette lyd til et Asterisk-telefonsystem *)
$ url = 'http://translate.google.com/translate_tts?ie=UTF-8&q={forespørgsel}% 0A & tl = er & prev = input ';
hvis (count ($ argv) <= 1) {
$ navn = basenavn ($ argv [0]);
die ($ navn. 'brug:'. $ navn. '
}
array_shift ($ argv);
$ forespørgsel = implode ('', $ argv);
$ filnavn = str_replace (matrix ('', ',', '.'), '-', $ forespørgsel);
$ filnavn = str_replace ('-', '-', $ filnavn);
$ 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, sand);
$ resultat = curl_exec ($ ch);
curl_close ($ ch);
$ sti = getcwd (). '/'. $ filnavn;
file_put_contents ($ sti. '. mp3', $ resultat);
@exec ("sox {$ path} .mp3 -b 16 -r 8000 -t wavpcm {$ path} .wav");
@unlink ($ sti. '. mp3');
Hvad med at jeg allerede har formået at optage outputlyden med denne kommando:
arecord ~ / zhongwen.mp3 & ./t2s.sh zh ni hao; fg
og i slutningen ctrl + c for at stoppe optagelsen.
Jeg havde aldrig brugt php
Men når du løber:
php5 text-to-speech.php er Hej
konsola er vært for dette:
sox FAIL formater: ingen handler til filtypenavnet `mp3 ′
Ethvert bidrag er meget værdsat, jeg vil prøve igen senere.
2 apps til google sprog oversætter + tekst til tale oversættelse:
http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/
Jeg synes, det er den bedste måde at konvertere på, stemmen er ikke så dårlig som de andre muligheder for Linux> _
Er der en måde at få det til at læse en almindelig tekstfil?
Det ville være meget nyttigt at konvertere hele bøger til lyd
Jeg ved ikke hvorfor, det kommer ud:
xxxxx: ~ / Documents / Linux $ ./t2s.sh er hej
---------
Tale script af Dan Fountain
TalkToDanF@gmail.com
---------
Afspilningslinje: 1 af 1
http_open: HTTP / 1.0 400 Dårlig anmodning
http://translate.google.com: Ingen sådan fil eller katalog
Jeg har mpg123 installeret, og jeg har lavet små tests og intet…. Tak på forhånd
Hej, dette script har tjent mig meget godt, både for at lytte til lyden og til at optage oversætterens ord.
Faktisk har jeg ændret scriptet for at tilpasse det til et behov, jeg har: Transformer en liste med ord i tekst (lemario) til tale; gem min stemme i wav, konverter til ogg og navngiv dem i henhold til det læste ord.
Jeg gjorde dette i KDE ved hjælp af Kdialog for at specificere stien, hvor filen med ordlisten er, og den mappe, hvor jeg ønsker, at stemmelyden skal gemmes.
Når konverteringen fra WAV til OGG er afsluttet, oprettes der to mapper, hvor wav på den ene side og ogg på den anden gemmes.
Først var jeg vred, fordi jeg ikke læste ordene med accenter korrekt, men jeg fandt ud af, at du skal tilføje "es & ie = UTF8" i koden. Et øjeblik glemte jeg tegnkodningen.
Jeg efterlader dig koden til scriptet, som jeg lavede, hvis det hjælper dig:
Nr. ########################
#! / Bin / bash
#########################################
# Tekst til tale-forelæsning #
# Tilpasset af Ignacio Cruz Martínez #
# mailen er hemmelig xD #
#########################################
#KDE dialogboks for at specificere sti og navn på lemmary
soyunarchivo = $ (kdialog –inputbox «Indtast stien og navnet på filen (med en udvidelse hvis den har en):»)
#KDE dialogboks for at specificere destinationsmappe for stemmefiler
sti = $ (kdialog –inputbox «Indtast stien for at gemme stemmelyden:»)
# gennem kat læses alle linjer i tekstfilen, hver linje består af et enkelt ord
for jeg i $ (cat $ soyunfile)
do
ekko $ i
# konvertering til tale ved hjælp af google translate, glem ikke kodningen, så den læser accenter
mpg123 -q -w "$ sti" $ 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"
# bruger ffmpeg til at konvertere wav-filer til ogg
ffmpeg -i "$ sti" $ i.wav -acodec libvorbis "$ sti" $ i.ogg
færdig
#med disse linjer oprettes mapperne for at organisere stemmefilerne i WAV eller OGG
mkdir "$ sti" WAV
mv "$ sti" *. wav "$ sti" WAV
mkdir "$ sti" OGG
mv "$ sti" *. ogg "$ sti" OGG
#KDE dialogboks for at angive, at jobbet er afsluttet
kdialog –msgbox 'Processen afsluttet'
################################################################# #####################
Har nogen af jer nu viden om licensen til at bruge de genererede stemmefiler?
Begrænsning af ophavsret og relaterede ting. Dette interesserer mig, fordi jeg planlægger at bruge nogle af disse stemmefiler til at støtte folk, der skal læse, grundlæggende er det et nonprofit-projekt.
Og det er, at dette værktøj har den bedste intonation til det spanske sprog, desværre i Linux er der intet lignende. Mbrola har givet mig en masse problemer med at oprette sammen med Gespeaker.
Tak og vi ses.
Ingen idé ... skulle se på Google Translator-licenserne.
Scriptet fungerede ikke for mig, tilsyneladende er det et problem relateret til URL'en, for dem der er interesserede er dette den korrekte URL:
http://translate.google.com/translate_tts?tl=es&q=Hola
Hej! Jeg har lavet tests med dit script, og da jeg udførte det, fortalte det mig, at det ikke kunne finde lyden, så jeg har indtastet URL'en, og det ser ud til, at Mr. google har sat en captcha ...
opdater scriptet