NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
Rudolf Hrubý:6.8.2024 16:34

Mám svůj program, napsaný ve WPF C#, ve kterém používám System.Speech­.Synthesis.Spe­echSynthesizer a v .GetInstalled­Voices() se mi ukážou jen anglické hlasy. Přitom mám český language package instalován s hlasem Jakuba. Nainstaloval jsem na zkoušku i German a Italy packages a ejhle tyto hlasy se mi tam ukázaly. Dotaz na Microsoft nic nevyřešil a někde na webu jsem našel, že Microsoft se podporou češtiny v této oblasti nehodlá zabývat (prý malá zemička). Ptám se, podařilo se někomu z vás rozchodit texttospeech s českým hlasem? S anglickými hlasy nemám problém. Děkuji předem za odpověď. Rudolf

Zkusil jsem: Zkoušel jsem několikrát odstranit český language package a znovu ho nainstalovat s tím, že jsem restartoval notebook, ale výsledek byl nula. Jedu pod Windows 11.

Chci docílit: Vytvořil jsem si překladatelský program, který má integrovaný slovník (SQL) i přístup pouhým kliknutím na slovo do externího i toho integrovaného slovníku, a anglickou větu či její část si nechávám přečíst příslušným anglickým hlasem se zvýrazňováním slov, které se čtou. To samé jsem chtěl dosáhnout s českým textem. Mám zakoupený hlas Eliška, který mi funguje v TextAloud programu, nicméně nevím jak ji zapasovat do Windows. Ale i kdyby se mi to povedlo, nevím zda by se mi objevila mezi těmi anglickými hlasy.

 
Odpovědět
6.8.2024 16:34
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:11.8.2024 21:25

Kdysi jsem zkousel text-to-speech exe probramy a dalsi veci kolem toho. Nevim, jaka je situace dnes. Shrnu ti, co jsem zjistil.

  • je to jak rikas, ms to neresi (ono, cestina ma jiny gramaticky vzor nez vetsina jazyku, ale dnes uz to umi AI)
  • z tech, co produkuji ceske pluginy se mi nejvic libila Acapala group.
  • jakasi cestina se da od MS nainstalovat
  • kdyz to nainstalujes z jinych zdroju, tak to neni provazane na ty microsoft balicky a bezi to jako jiny oddeleny program (proto to asi nejde pouzit)
  • zkousel jsem to ruzne propojit s cteckami knih, ale ty externi balicky se mi tam malokdy zobrazili.

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

 
Nahoru Odpovědět
11.8.2024 21:25
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:11.8.2024 21:26

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 :)

 
Nahoru Odpovědět
11.8.2024 21:26
Avatar
Odpovídá na Peter Mlich
Rudolf Hrubý:12.8.2024 8:09

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ěď.

 
Nahoru Odpovědět
12.8.2024 8:09
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:13.8.2024 8:06

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).

 
Nahoru Odpovědět
13.8.2024 8:06
Avatar
Odpovídá na Peter Mlich
Rudolf Hrubý:16.8.2024 8:35

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.

 
Nahoru Odpovědět
16.8.2024 8:35
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:18.8.2024 21:05

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();
    }
}
 
Nahoru Odpovědět
18.8.2024 21:05
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.