Android TextToSpeechPouzivam v mojej apke TTS (TextToSpeech) na precitanie urciteho textu.Problem je, ze ak su v texte napr. rimske cislice (Karol IV., Ferdinand I), tak to cita ako pismena a nie cisla. Je nejaka moznost to vyriesit? Nejaky html tag k danej cislici, na zaklade coho by to tts inak interpretoval, alebo sa s tym neda robit nic? Nevieme ako mas riesenu appku. Kazdopadne automaticke rozoznavanie toho co je meno a co uz nie je bud otazka na jednoduchu heuristiku (dajme tomu ze ak je prve pismeno predchadadcajuceho slova velke, a za nim nasleduju iba velke pismena z mnoziny rimskych cisloc, tak mozes urcit ze toto je cislo a citat to ako cislo. Alebo sa tym zaobera oblast strojoveho ucenia znama ako 'named entity recognition' co je nieco co by som pouzil ak by som chcel autotagger na mena. Zvacsa rnn v podobe lstm sieti sa na to pouziva. No mam to riesene tym sposobom, ze mam String, ktory obsahuje bezny text.A pomocou TextToSpeech tts = new TextToSpeech(this, this);tts.setLanguage(Locale.US);tts.speak(mojtext, TextToSpeech.QUEUE_FLUSH, null);ten text precita. Samozrejme to je len skratena verzia kodu. Ale nie je tam ziadna moznost nejak definovat, co ma ako citat.Preto sa pytam, ci priamo v texte neexistuje nieco co by som mohol pridat, napr. Karol IV., ze by to cital ako cislicu, ale nenasiel som nic podobne. Akym sposobom mu mam urcit, ze sa jedna o cislo a pod. Vies spracovavat textovy vstup? Preco to iba neprebehnut a neprepisat priamo v texte? III => 3. Text taham z XML z mojho servera, takze k nemu mam pristup, ale ten text sa zobrazuje aj na webe (tam musia byt rimske) a v apke sa ten isty text iba cita TTS. Ale to ma nenapadlo, ze ked natiahnem text do apky, vtedy by som nahradil rimske cisla za normalne, cize vizualne to nebude nikde zobrazene, takze mozu tam byt aj klasicke cislice. Problem moze nastat ak je napr, Karol I - tak nemozem vsetky I nahradit, lebo to moze byt niekde v texte aj velke pismeno. ale I. s bodkou to da zmysel, takze spravim to tak. Dakujem za dobry napad, neviem preco ma to nenapadlo Aky to je jazyk? Lebo napriklad pri Canon Mark IV alebo podobnych veciach to moze robit bordel. Po slovensky menej, ale po anglicky urcite. Lebo bud cita vsetko ako Carl One alebo cita tieto mena spravne Carl the First... len potom precita predchadzajuci priklad ako Canon Mark the Fourth co nie je uplne nejasne ale trochu zmatocne urcite. no zatial len v slovencine, malo by to byt ako tak v pohode. Uvidime v buducnosti. S mensimi chybami pocitam, nic nie je idealne ...
Android TextToSpeech
|