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.
Ennyi, remélem, élvezni fogja.
Milyen klassz, köszönöm szépen 😉
És milyen gyönyörű hangja van a lánynak, azt hiszem, beleszerettem 😛
Bocsásson meg, tudna nekem segíteni kínaiul? Nem észleli a kínai karaktereket, csak a pinyint.
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
Itt készítettem egy tesztvideót 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0
Jó! Köszönöm!
Nagyon jól hangzik, csak az mpg123 🙂 programot kellett telepítenem
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
A vírusadatbázis frissítve (?)
apt update && ./t2.sh hu A vírusadatbázis frissült
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.
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
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
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
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.
[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]
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.
ismeri a nem beszéd parancsot? hehe
espeak -v is-the "helló"
Igen, de nem ugyanaz. Sokkal jobb ez a hang. 🙂
egyetértünk!
Üdvözlet!
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]}»
Jobb "mplayer -valóban-csendes", így nem tölti ki a kimenetet szöveggel
Nagyon jó ötlet, hogy a google-t használjam az alkalmazásaimhoz, olyan, mint egy kesztyű.
http://github.com/alfa30/t2v
Még egy kérdés; Meg tudná valaki mondani, hogyan kell rögzíteni a kimenő hangot ???
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.
Kiváló José GDF, nagyon jó eredménnyel, üdvözlettel próbáltam ki a módszerét.
A forgalom megtakarításához a második végrehajtás során megismételheti az elsőben létrehozott .wav fájlt
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 😀
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');
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.
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/
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
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
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.
Fogalma sincs ... meg kellene néznie a Google Translator licenceket.
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
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 ...
frissítse a szkriptet