.tex to .ogg

Fórumok

Sziasztok.

Egy igen haszontalan dolgot találtam ki.
Jámboran írom a latex-doksimat, melyet ugyebár tanulok is, félig angol félig magyar, de inkább angol szakzsargon. Amolyan kommunikáció-halmaz, egy bekezdésben soronként egy mondat.

Arra gondoltam, hogy a kritikus bekezdések előtt meg után
%%%---%%%
jellel beírok egy elő- és egy utósriptet, és ezen két scriptecske közötti sorok végére is teszek ilyen % jeles stringet

Ezeket a % jeleket a tex ugye sosem fordítja, de ha az egész .tex forrás fájlt ezen jelsorozat alapján greppelem, akkor előállhat egy borzalmasan nagy script, melyben minden bekezdés más-más sorszámot kap a beleírt scriptecske alapján.

Nos, ha a grep végeredményét chmod 777 után futtatom, akkor a végkimenet a text2wave és a sox prg-knek köszönhetően .ogg fájlokká alakulnak, ami mehet ki a hangfalakra és szólhat a fülembe bele egész nap, míg meg nem tanulom.

A doksi is megmarad, és szép hangfájlok is keletkeznek.

Ennél egyszerűbb megoldást ismer valaki?

:-)

-------------
konkrétabban írok, íme egy bekezdés:

Preambulumba:
\newcommand{\noun}[1]{\textsc{#1}}

dokumentumba (cucc.tex):

\begin{center}
\ovalbox{\begin{minipage}[t]{12cm} % ez csodálatosan bekeretezi ami .ogg kimenetben is szerepel majd
\begin{center}
---SORSZAM mondatköteg:\\
%%%---%%%echo "
\noun{Angol mondatok jönnek ide.}\\ %%%---%%%
\noun{Angol mondatok jönnek ide.}\\ %%%---%%%
\noun{Angol mondatok jönnek ide.}\\ %%%---%%%
\noun{Angol mondatok jönnek ide.}\\ %%%---%%%
%%%---%%%" | text2wave -o fajlnev-SORSZAM.wav
%%%---%%%sox fajlnev-SORSZAM.wav fajlnev-SORSZAM.ogg
%%%---%%%rm -f fajlnev-SORSZAM.wav
---
\par\end{center}%
\end{minipage}}
\par\end{center}

% ertelemszeruen a SORSZAM egy numerikus alak..

végén az oggosítás:

cat cucc.tex |\
grep %%%---%%% |\
sed 's/%%%---%%%//g' |\
sed 's/\\\\/\\/g' |\
sed 's/{//g' |\
sed 's/}//g' |\
sed 's/\\noun//g'> olvasd
chmod 755 ./olvasd #### igen, itt volt a 777..
sh ./olvasd
espeak "all OK"
exit 0

---
zsibbasztó: a fent elírtak működnek is, most végeztem...

Hozzászólások

offtopic
az ötlet érdekes, de ha kérhetném, még viccből se legyen chmod 777. Ha már mindenképp, akkor is max 755. És ezt ilyenkor kell megtanulni az otthoni gépünkön, hogy később se rosszul használjuk.
/offtopic

Az espeak nevű progival műveltem egyszer hasonlókat, sima txt fájlokkal dolgozott, és tudott magyarul is olvasni (meg sok más nyelven is). Mondjuk, ha úgy tud angolul is, mint magyarul, akkor azért tanuláshoz nem ajánlanám... de hátha.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

Az espeak.
Ez érdekes.

Emléxem, annak idején készítettem egy angol tanuló scriptet, mely szintén előállította a txt fájlba beírt dolgaimat soronként, a magyart az espeak mondta ki, az angolt a festival. végül a kimenet .ogg volt, a fájlnév meg az éppen aktuális szó angol meg magyar megfelelője ekezetek.nelkul

:)

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Jópofa dolog, viszont nagyon csúnya (és hosszútávon is nehezen karbantartható) hogy a szkript egyes részeit a tex fájlba írod bele. A .tex fájlba csak markupot tegyél, %%% meg egyéb jeleket amiknek megvan a jelentésük (blokk kezdete, vége, stb.), és a külső szkript amelyik most grepezik meg sedezik az kéne hogy tartalmazza a text2wave és hasonló parancsokat is.

Tényleg csúnya, és igen nehézkes karbantartani.
Ha forráskódon kívül, pl. egy Lyx-et használok, akkor egyenesen őrület ilyet tenni, bár már rájöttem, hogyan lehet mégis.

Hosszabb távon ha ilyesmire szükségem lenne, valahogy úgy oldanám meg a dolgot, hogy azon sorokat, melyeket ki is akarok mondatni, valamivel jelölöm pl. a fenti kódban a \noun helyett mondjuk \nounnn -nal, amely ugyanazt teszi, mint a \noun, csak benne van a kód is... Viszont a preambulumon kívül így valóban nem lesz habraty BASH kód.

A topicot csak egy ötlet erejéig írtam le, ahány programozó, annyiféle megoldás lehetséges erre. Szóval kíváncsi vagyok mindenre :)

----------
Végiggondoltam még egyszer amit írtál.
Tényleg megoldható. Ha a sorok végén mondjuk 7 db % jel van, meg vannak jelölve azon mondatok, melyeket a külső bash script oggá alakít. A "mezőelválasztó" (amely darabol) pedig minden olyan sor, melynek végén %%%%%%% van, az elején meg %%%---%%%
így a tex forráskód nem tartalmaz a preambulumban sem bash kódot, és minden szép.

---
--- A gond akkor van, ha látszólag minden működik. ---
---