Diskuze: použití českého hlasu v texttospeech ve WPF C#
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Kdysi jsem zkousel text-to-speech exe probramy a dalsi veci kolem toho. Nevim, jaka je situace dnes. Shrnu ti, co jsem zjistil.
Nicmene, kdysi jsem si takovou ctecku udelal sam v dos6. Nahral jsem si sebe,
jak vyslovuji pismenka jako wav soubory a pak jsem pouzival jakysi prehravac wav
v pascalu. Pekne to drmolilo. Nebylo to jako acapela, ale slo asi o 10k
programek a k nemu asi 2M wav nebo tak nejak
Kdyby sis to chtel udelat sam, tak nejlepsi je pouzit program, ktery ti z textu
vybere vsechny slabiky nebo kombinace 2-3 pismen. A ty pak poskladas z toho
text, ktery obsahuje tu kombinaci na zacatku vety, na konci, na zacatku slova,
na konci a uprostred. Nechas to nekomu precist, vystrihas. A pak uz potrebujes
jen ten prehravac
Hlasove ctecky pouzivaji dneska prevazne slepci. Takze staci zajit do nadace
nebo najit stranky a zeptat se jich, co pouzivaji a kde. Na mobilu maji jinou
nez na pc-webovy prohlizec.
Si muzes zkusit tu elisku, je celkem dobra na cteni knizek, a tady maji
ukazku, kde napises text a ono to chvili sroti a pak jede. Tak zrovna ten muj
programek nic teda nesrotil a to byla 486 procesor
https://soundcloud.com/…czech-eliska
Takhle, pokud chces zpoustet cizi produkt, da se to pres cmd, prikazovou
radku. Ale bacha na licence. Kdyz to vystavis online a nemal licencovane,
porusujes jakasi autorska prava
Mozna bych nasel jeste ten prehravac v pascalu, ale nerucim za to. Je to uz 30
let
Děkuji za odpověď a jímá mne smutek z toho, co ta naše diakritika natropila, už ani nevím, zda za ty háčky a čárky může Jan Hus. Pro mne by bylo řešení protlačit tu Elišku do Windows hlasů, což se mi žel nedaří. Mám ji zakoupenou společně s Textaloud programem, kde mohu i korigovat její výslovnost, tam mi přečte co chci, ale stěží okno Textaloud prg zakomponuji do své aplikace. Kdysi dávno jsem Elišku využíval přímo v aplikaci Acapela. Přitom ve Wordu je nainstalované rozšíření Textaloud a tam čtení s Eliškou vesele funguje. Ale na závěr jsem zjistil pro mne důležitou věc: když na něco tlačím a usilovně to chci, a dopřeji si od toho určitý časový odstup, zjistím nakonec, že to mohu vyřešit úplně jinak anebo, že ten konkrétní přístup pro který jsem hledal nějaké řešení vlastně vůbec nepotřebuji. Okolnosti si s námi někdy hrají a zahání nás do plonkový soutěsky. Ještě jednou díky za odpověď.
Jestli to mas pro sebe, mas ty aplikace koupene a bude to na tvem pocitaci,
jak jsem psal, mozna by to slo pres cmd. Jestli ta aplikace cmd prikazy
podporuje. Pobezi tam tvuj program a na pozadi ta druha aplikace.
A kdyby to pres cmd neslo, vzdycky je tu moznost ovladat primo okno te aplikace
a odesilat ji stisky klavesnice, mysi.
Ja c# nepouzivam. Takze ti vic neporadim. C# je podobny PHP, ktere pouzivam.
PHP ma prikazovou radku.
Potom jsem nejakou chvili zkousel QT. A tam jsem prave delal programky, ktere
ovladaji jine aplikace window. Jsou na to funkce, takze to bylo jednoduche.
Delaji se tak ruzne cheat-aplikace do her, kdy mackas tlacitka a klavesy v okne
aplikace. Win se tomu nijak nebrani (ani neni nutne nikde zaskrtnout spesl
povoleni, coz mne trochu zarazi, pak se nedivim, ze si viry muzou vytvaret root
opravneni v systemu).
Opět díky za informace. Textaloud mám zakoupený i s českým hlasem
„Eliška“ a dělám to „only“ pro sebe, takže, pokud bych mohl ovládat
tento program z mé aplikace v C#, byl bych spokojený. Ještě jsem nezkoumal
zda tam funguje cmd, ale kdy tam šlo posílat aktivitu na klávesnici či
myši, bral bych to, i když je to pro mne nové pole výzkumu, ale proč ne.
Zmínil si se o Qt, o tom vím jen to, že je to knihovna programovacího jazyka
C++, ale existuje i pro další jazyky včetně C#, takže bych se mohl vydat
tímhle směrem. Jestli bys měl ještě nějaké rady v tomhle směru, budu ti
za ně vděčen.
Já jsem v minulém století jako IT začínal s Asemblerem a TurboPascalem,
chvíli jsem v programování i podnikal, ale to jen proto, aby mi mohla
organizace, ze které jsem odešel zaplatit za program, za který by mi nic
nedali, kdybych tam zůstal. Když jsem byl venku, šlo to z jiné hromady a já
kvitoval výdělek. To bylo v době, kdy si bolševik balil kufry. K C# jsem
přešel až v tomto století, a jen proto, že jsem si chtěl udělat nějaké
nástroje na překládání z angličtiny, kterou jsem chtěl už konečně
dotáhnout do konce. Potom jsem měl několikaletou pauzu a bylo velice
namáhavé to zase do sebe vstřebat, nicméně jsem to zamýšlené uskutečnil
a teď již jen ladím detaily. Paradox je, že v té angličtině jsem se
zlepšil mimo tenhle nástroj, takže mi spíš jde o kvalitu českého
překladu. Ale důvod pro to, udělat si svůj překladatelský engine pramení
z mladých dob, kdy jsem četl německé knihy a přitom listoval ve slovníku.
Takže tím jsem zdůvodnil své nynější programátorské počínání.
Ještě jednou, za každé nasměrování jsem vděčen.
google = c# run comandline
string strCmdText;
strCmdText= "/C copy /b Image1.jpg + Archive.rar Image2.jpg";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);
---
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C copy /b Image1.jpg + Archive.rar Image2.jpg";
process.StartInfo = startInfo;
process.Start();
google = c# press keyboard on next window
-> c# Sending keyboard commands to another window
[DllImport("user32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
public void Start()
{
IntPtr zero = IntPtr.Zero;
for (int i = 0; (i < 60) && (zero == IntPtr.Zero); i++)
{
Thread.Sleep(500);
zero = FindWindow(null, "YourWindowName");
}
if (zero != IntPtr.Zero)
{
SetForegroundWindow(zero);
SendKeys.SendWait("{TAB}");
SendKeys.SendWait("{TAB}");
SendKeys.SendWait("{ENTER}");
SendKeys.Flush();
}
}
Zobrazeno 7 zpráv z 7.